新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 基于OpenAT3.12平台的通信报文封装进GSM Modem的方法

基于OpenAT3.12平台的通信报文封装进GSM Modem的方法

作者:时间:2012-09-02来源:网络收藏

6.3 SMS协议发送实现

对示例$S000000S0000AA100R1Y2W3R4Y5G6Y7W5B#来说,的头和尾以及S服务器标志为固定字节;000000为终端访问密码,从Q24PL001模块内部Flash中调用;服务器ID码0000及终端SIM卡号码,同样从内部Flash中通过OpenAT嵌入式API函数adl_flhRead函数调用;命令字AA为固定命令字节;内容通过AT命令接收自上位机软件。

该数据协议发送时通过OpenAT嵌入式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

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

7 AT命令设计

利用OpenAT操作系统自定义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通信系统的稳定性。该设计已经应用于南宁及深圳市智能交通诱导系统中,均取得较好的效果。

本文引用地址:http://www.eepw.com.cn/article/154025.htm
上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭