单片机控制GSM模块实现短信收发的软件设计
C64,它的主要作用是存储数据,而且断电信息也不会丢失,这些特性正是存储数据所必须的。
GSM的短信息业务SMS利用信令信道传输,这是GSM通信网所特有的。它不用拨号建立连接,把要发的信息加上目的数据发送到短信息服务中心,经短信服务中心完成存储后再发送给最终的信宿。所以当目的GSM终端没开机时信息不会丢失。每个短信的信息量限制为160字节。
现在市场上大多数手机均支持GSM07.05规定的AT指令集。该指令集是ETSI(欧洲通信技术委员会)发布的,其中包含了对SMS的控制。利用GSM手机的串行接口,单片机向手机收发一系列的AT命令,就能达到控制GSM模块收发SMS的目的。必须注意的是,用单片机实现时,编程必须注意它发送指令与接收到的响应都是字符的ASCII码。用单片机控制GSM模块收发短信息所涉及以的AT指令如表1所列。
表1AT指令
AT指令
功能描述
AT+OFF关机并重新启动AT+CSDH=0在TEXT模式下在返回值中不显示详细的头信息ATE0关闭回显AT+CMGF=1选择短信格式为TEXT模式AT+CMGS发送短信息AT+CMGR读取短信息AT+CMGD=0删除全部短信息
3软件实现
3.1上位机模块和下位机模块半双工通信协议的实现
3.1.1应答和重发
上位机模块和下位模块的通信双方遵照半双工通信方式进行,即数据传送是双向的。但是,任何时刻只能由其中的一方发送数据,另一方接收数据,因为E2PROM的读出和写入不能同时进行。为了避免一方在发送信息帧时(这里的信息帧指的是下位机模块发送的数据帧和上位机模块发送的命令帧,下同),另一方也会发送数据,必须把信道变成半双工方式。尽管这样效率可能不如全双工方式,但通过此举牺牲效率可以换取模块工作性能的稳定。双方采取的顺序是:发→收到应答后→再发。
按照整个系统的设计思路,上位机模块(即图1中的GSM模块1,下同)发送的帧包括命令帧、确认帧和非确认帧;下位机模块(即图1中的GSM模块2,下同)发送的帧包括数据帧、确认帧和非确认帧。其中确认帧和非确认帧是发送数据后等待对方发送的应答帧,以此作为继续发送下一帧和重新发送上一帧的依据。命令帧和数据帧是信息帧,当一方先发送完信息帧,如果收方接收到对方的信息帧,而又没有信息帧需要发送,那么情况就比较简单,收方将根据信息帧的正确与否决定发送确认帧还是非确认帧,以使对方决定是继续发送还是重新发送;如果此刻收方也有信息帧需要发送,那么收方将不立即发送应答帧,而是立即发送本方的信息帧给对方,并等待对方对此帧的应的应答帧,在收到对方的应答帧后,收方将依据应答帧的内容(即确认帧或者是非确认帧,下同)决定是继续发送下一信息帧,还是重新发送原来的信息帧。如果由于链路本身不可靠等因素造成应答帧的丢失,收方将在一定时间内因为没有收到应答帧而延时重发原来的信息帧。在收到对方的应答帧后,收方将继续发送下一信息帧,并等待对方的应答帧,如此反复,直到收方全部发送完信息帧。在本方收到对方最后一个应答帧后,表明本方全部的信息帧发送完毕。然后收方将发送对方仍然等待的应答帧,通知对方收到的信息帧正确与否。
图2
3.1.2延时重发
在双方通信过程中,有两个时间t1和t2,分别表示重新发送信息帧的最大延时。t1表示一方发 《单片机控制GSM模块实现短信收发的软件设计(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/171588.html
GSM的短信息业务SMS利用信令信道传输,这是GSM通信网所特有的。它不用拨号建立连接,把要发的信息加上目的数据发送到短信息服务中心,经短信服务中心完成存储后再发送给最终的信宿。所以当目的GSM终端没开机时信息不会丢失。每个短信的信息量限制为160字节。
现在市场上大多数手机均支持GSM07.05规定的AT指令集。该指令集是ETSI(欧洲通信技术委员会)发布的,其中包含了对SMS的控制。利用GSM手机的串行接口,单片机向手机收发一系列的AT命令,就能达到控制GSM模块收发SMS的目的。必须注意的是,用单片机实现时,编程必须注意它发送指令与接收到的响应都是字符的ASCII码。用单片机控制GSM模块收发短信息所涉及以的AT指令如表1所列。
表1AT指令
AT指令
功能描述
AT+OFF关机并重新启动AT+CSDH=0在TEXT模式下在返回值中不显示详细的头信息ATE0关闭回显AT+CMGF=1选择短信格式为TEXT模式AT+CMGS发送短信息AT+CMGR读取短信息AT+CMGD=0删除全部短信息
3软件实现
3.1上位机模块和下位机模块半双工通信协议的实现
3.1.1应答和重发
上位机模块和下位模块的通信双方遵照半双工通信方式进行,即数据传送是双向的。但是,任何时刻只能由其中的一方发送数据,另一方接收数据,因为E2PROM的读出和写入不能同时进行。为了避免一方在发送信息帧时(这里的信息帧指的是下位机模块发送的数据帧和上位机模块发送的命令帧,下同),另一方也会发送数据,必须把信道变成半双工方式。尽管这样效率可能不如全双工方式,但通过此举牺牲效率可以换取模块工作性能的稳定。双方采取的顺序是:发→收到应答后→再发。
按照整个系统的设计思路,上位机模块(即图1中的GSM模块1,下同)发送的帧包括命令帧、确认帧和非确认帧;下位机模块(即图1中的GSM模块2,下同)发送的帧包括数据帧、确认帧和非确认帧。其中确认帧和非确认帧是发送数据后等待对方发送的应答帧,以此作为继续发送下一帧和重新发送上一帧的依据。命令帧和数据帧是信息帧,当一方先发送完信息帧,如果收方接收到对方的信息帧,而又没有信息帧需要发送,那么情况就比较简单,收方将根据信息帧的正确与否决定发送确认帧还是非确认帧,以使对方决定是继续发送还是重新发送;如果此刻收方也有信息帧需要发送,那么收方将不立即发送应答帧,而是立即发送本方的信息帧给对方,并等待对方对此帧的应的应答帧,在收到对方的应答帧后,收方将依据应答帧的内容(即确认帧或者是非确认帧,下同)决定是继续发送下一信息帧,还是重新发送原来的信息帧。如果由于链路本身不可靠等因素造成应答帧的丢失,收方将在一定时间内因为没有收到应答帧而延时重发原来的信息帧。在收到对方的应答帧后,收方将继续发送下一信息帧,并等待对方的应答帧,如此反复,直到收方全部发送完信息帧。在本方收到对方最后一个应答帧后,表明本方全部的信息帧发送完毕。然后收方将发送对方仍然等待的应答帧,通知对方收到的信息帧正确与否。
图2
3.1.2延时重发
在双方通信过程中,有两个时间t1和t2,分别表示重新发送信息帧的最大延时。t1表示一方发 《单片机控制GSM模块实现短信收发的软件设计(第2页)》