Modem的AT指令简介
AT指令为所有调制解调器制造商所使用的一个调制解调器命令语言。只要用连接线把串口和Modem连接起来,使得可以通过串口向Modem进行输入,就可以让Modem与Modem之间通过使用AT指令经PSTN进行通信的。这是由于Modem有两种工作模式:指令模式与数据传输模式。
Modem通讯模块
Modem通讯模块是嵌入式系统部分的主体,它负责与外界(其它的Modem)进行通讯。由于Modem之间的传输是连续的字节流,因此必须要定义一些建立在数据链路层上的帧,才能够把实际要传输的每个数据包从连续的字节流中区分出来。如表1所示,DLE STX和DLE ETX都是自定义的常量,数值是十六进制数的10 02和10 03,分别代表着一个帧的开始与结束。如果一个帧的内容中有这两个常量,那么可以在发送此帧时插入一个DLE,如10 02插入DLE后变为10 10 02,接收此帧时,遇到连续的10 10就检查是否紧跟着02,如果是就删除中间的10,这样就既可以接收到正确的数据,又避免了从字节流中不能正确地截取帧。类型字段有两种可能值:一种是DATA,即数据帧,代表此帧传输的是数据;一种是ACK,即确认帧,代表此帧是对已收到某一数据帧的确认。帧序号是标志该帧的唯一标志,发送过程中不断递增,达到最大值后可以循环使用。由于手机短信息的英文长度可以长达160个字节(中文为140个字节),所以内容字段规定为160个字节。对于数据帧,内容字段存放短信息的内容;对于确认帧,内容字段存放它所指明的已收到数据帧的帧序号。
当Modem通讯模块接收到从MS发来的短信息时,只是简单地发送确认帧。当Modem通讯模块发送短信息到MS时,它把一个数据帧发送到目的端Modem,然后等待对此数据帧的确认帧的返回,如果超过一定的时间还没有收到返回,Modem通讯模块将会重发此数据帧,重发超过一定的次数就放弃发送此数据帧。如果在等待确认帧的返回时,有新的数据帧需要发送,那么将会允许发送一定数量的数据帧,超过这个数量以后就不再发送,直到有对之前发送帧的确认帧返回。