毕业设计说明书(论文)
4.2.2 短消息发送和接收的功能实现。
打开串口调试软件,选择串口COM 1,9600波特率,无奇偶校验,8位数据,一个停止位,等待接收GSM模块发送过来的数据,当有新短信时,TC35模块会把SIM卡接受到的PDU数据包通过串行口发给单片机,单片机把对PDU数据包进行解码,并对解码的内容进行分析,然后对被控对象进行控制,再把短信的信息通过串口传送到上位机的串口调试软件里。
4.2.3 发送短消息的程序实现。
前面已经对发送PDU串的编制进行了分析,对于编好的PDU串存储在单片机内部,通过相应的AT指令来实现短消息的发送。用来实现消息发送的AT指令是:AT+CMGS。以前面用的发送PDU串为例,即发送内容为“2号开”,接收方手机号为13915898557;需要说明的是,在此省去了对SMSC地址格式和SMSC地址这两个分段的编写,采用了SIM卡设置的SMSC地址。即发送的PDU串为:0891683108509105F011000D91683119858955F700080006003253F75F00。 具体程序如下:
unsigned char sms_SendTc35SMS(unsigned char *pdu_str,unsigned int length)
{
unsigned char idata at_cmd_str[15];
sprintf(at_cmd_str,\ tc35_SendAtCommand(at_cmd_str); ES=0; dt=100; {
while(dt)
while((RI==0)&&(dt!=0)) FeedWatchdog(); RI=0; if(SBUF=='>')
break;
第 26 页 共 39 页
毕业设计说明书(论文)
}
if(dt==0) {
#ifdef Debug
PrintMessage(\#endif return(false);
}
dt=2;while(dt)FeedWatchdog(); tc35_SendAtCommand(pdu_str); at_cmd_str[0]=Ctrl_Z; at_cmd_str[1]='\\0';
tc35_SendAtCommand(at_cmd_str); tc35_WaitTc35Respond(); return(false); }
程序中定义了一个pdu_str指针,把指针指向PDU数据数据包,length为短信的长度21。
发送AT+CMGS=21\\r,等待TC35回复“>”,打开串口把PDU数据发送出去,并以Ctrl_Z+’\\0’结束。程序中的FeedWatchdog是本人自定义的用来处理延时操作的函数,因为在连续的两个AT指令之间需要设置一定的间隔时间(设为了1秒),为每一条发送的指令提供响应时间。
4.2.4 接收消息的程序实现。
先介绍几个相关的AT指令,(1)AT+CPMS,优先信息存储。该命令用来指定读写信息的存储区域。在这里设置AT+CPMS=\。使收到的短消息存储在GSM模块中的SIM卡上,不是存储在模块木身的内存中。(2)AT&W,用来保存所做的设置.(3)AT+CNMI,新信息指示,可用于设定当有某类短消息到达时,如何处置它。在此不对它的详细指令语法多做介绍了,这里设置为
第 27 页 共 39 页
毕业设计说明书(论文)
AT+CNMI=3,1,这样,当收到一条新消息时,系统就会收到一个提示信息,格式如:+CMTI: \。
在保存了上述设置后,当软件收到新消息到达的提示信息时,单片机把PDU数据包存放在一个字符串里面,接收到的PDU数据包如下:
0891683108100005F0040D91683119109991F20008404060313530230660A8597DFF01。
1. 部分程序实现如下: void tc35_InitTc35(void) {
dt=4;while(dt)FeedWatchdog();
tc35_SucceedTc35Command(\
tc35_SucceedTc35Command(\
dt=4;while(dt)FeedWatchdog();
tc35_SendAtCommand(\
tc35_WaitTc35Respond(); dt=4;while(dt)FeedWatchdog();
tc35_SucceedTc35Command(\ }
这段程序是选择短信格式(PDU)以及存储的位置,最后保存退出。 2. 部分程序实现如下:
if((es_buf[3]=='T')&&(es_buf[4]=='I')) {
inSmsF=1;return; }
这段程序是单片机通过串口把GSM MODEM发送过来的数据存放在
es_buf中,我上面的程序中判断接收到数据中是否包含”T”、”I” ,有的话
“inSmsF”新短信标志位置高,返回。 3. 部分程序实现如下: void sms_SetMenuBySMS(void) {
第 28 页 共 39 页
毕业设计说明书(论文)
unsigned char data index;
for(index=1;index<=SmsEntryMax;index++) {
if(sms_CheckTc35SMS()==0)return; if(inCallF==1) {
inCallF=0;
tc35_HangupIncomeCall(); }
FeedWatchdog();
if(sms_ReadTc35SMS(index)==false)return; sms_DeleteTc35SMS(index);
phone_sms();
} }
这段程序是调用了读短信子程序sms_ReadTc35SMS,在sms_ReadTc35SMS中把短信读出,再执行删除短信子程序sms_DeleteTc35SMS。
第 29 页 共 39 页
毕业设计说明书(论文)
第
5章 课题的测试结果及分析
5.1 运行结果
运行程序结果如图5-1所示:
图5-1 运行结果
在单片机以及TC35模块上电,接上RS232后打开串口调试软件,选择9600波特率选择好端口。上图中一开始出现GSM Modem Initial OK!说明初始化正常,已寻找到网络。等待接收短信,在后面显示的是发送短信过来的手机号码+时间+内容,在本地手机发送内容“3”为控制电机转动,“2”为控制电机停止,在完成动作后自动回复一条动作完成短信到本地手机。
5.2 系统性能分析
5.2.1 系统抗干扰
抗干扰设计是单片机应用系统设计的重要组成部分,没有良好的抗干扰措施,系统就无法安全可靠的工作。当然,我们只能通过系统软件、硬件设计尽可能的减少干扰带来的影响,而不可能完全消除干扰。本系统在抗干扰方面考虑了如下的问题。
·加宽地线和电源线,加宽后的地线和电源线是信号线的7倍。 ·所有芯片可靠接地,并且接地线构成环路。 ·手工布置元件和布线,连线尽可能短。
5.2.2 通信时延分析
第 30 页 共 39 页
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库毕业论文采用嵌入式移动网络的远程控制系统(6)在线全文阅读。
相关推荐: