新闻中心

EEPW首页>手机与无线通信>设计应用> OpenAT平台的GSM Modem通信协议报文设计

OpenAT平台的GSM Modem通信协议报文设计

作者: 时间:2010-06-28 来源:网络 收藏


该数据发送时通过嵌入式API函数adl_smsSend()函数发送。adl_smsSend函数定义如下:

adl smsSend(ptk SmsHandler,Telephone,Message,ADL_SMS_MODE_TEXT)

其中,ptk_SmsHandler为6.2节中短信声明返回句柄;Telephone参数为目标的SIM卡号码;Message为封装好的SMS短信数据;ADL_SMS_MODE_TEXT表明采用TEXT格式的短信传输。

6.4 数据的接收处理

对于接收到的短信数据的处理,相当于发送短信数据的解包过程,主要过程在GetSmsDataPackage()函数中实现。处理后数据发送至上位机软件格式为:

RES:0001,8,30RX1YX2YX3YX4YX5Y6Y7Y

返回数据通过串口发送至上位机,上位机软件直接接收该字符串,即完成短信数据的接收过程。

7AT命令

利用操作系统自定义AT命令接口,定义对上位机的数据通信接口。AT命令声明函数如下:

adl_atCmdSubscribe(AT+SETDIS,(adl_atCmdHandler_t)SetMode,ADL_CMD_TYPE_PARAOADL_CMD_TYPE_READO0x0041);

其中,参数AT+SETDIS为自定义的AT命令接口;SetMode为该AT命令的返回函数;第3个参数为当前AT命令的类型,ADL_CMD_TYPE_PARA为键入参数型,ADL―CMD―TYPE―READ为读参数型,0x0041为AT命令类型值,根据函数规定设置。

在SETDIS命令中,以“AT+SEDDIS=X,Y”类型为自定义命令的访问接口。在返回函数中,第1个参数X作为SMS通信的命令字参数,第2个参数Y作为SMS通信协议的数据报文内容参数。SMS数据报文目标接收终端SIM卡号码由“AT+SETTEL”命令预设,该命令定义如下:

adl_atCmdSubscribe(AT+SETTEL,(adl_atCmdHandler_t)SetTel,ADL_CMD_TYPE_PARAOADL_CMD_TYPE_READO0x0041)}

该命令用于首次设置GSM Modem,将所有接收终端SIM卡号存入Q24PL001内部Flash内,以ID号标识。

上位机通过串口键人“AT+SETDlS=0,0R1Y2W3R4 Y5G6Y7W”,则GSM Modem立即向相应ID为0的终端发出数据包为$S000000S0000AA100R1Y2W3R4Y5G6Y7W5B#完整数据。

8 上位机软件的操作实现

相对于复杂的数据报文运算,以及复杂的AT命令发送GSM短信数据包的上位机软件系统来说,将短信数据报文封装进GSM Modem后,对GSM Modem的控制操作变得简单,只需要一条简单的AT命令,即可实现非常复杂的短信数据包的传输。同样对于接收到的数据,GSMModem完成数据包解包后,立即通过RS232串口输出简洁的响应字符串,大大简化了上位机软件的处理。经过对GSM Modem进行短信协议报文封装后的上位机软件处理流程如图5所示。



结 语

在系统稳定性和实时性要求较高的通信领域中,相比在上位机软件中进行协议处理,将GSM Modem进行嵌入式报文封装处理简单而又高效。另外,在很多无人值守的服务端,只要保持GSM Modem开机,数据包数据处理即可以直接由GSM Modem完成,而无需上位机电脑开机,既方便了用户操作,又保证了SMS通信系统的稳定性。该已经应用于南宁及深圳市智能交通诱导系统中,均取得较好的效果。

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭