首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 电子技术 > 通信与网络
OpenAT平台的GSM Modem通信协议报文设计
来源:本站整理  作者:佚名  2010-07-09 08:54:19





一个常用GSM短信数据通信报文设计格式如下:



其中,以$S作为短信数据通信报文的帧头字节;6个字符作为接收端的认证密码;S/T代表本报文的发送方为GSMModem(S)或短信终端(T);报文内容受短信数据长度的限制,一般在100字节以下;以#作为报文的结束符。

基于如上报文定义,一条上位机发出的SMS报文示例如下:

$S000000S0000AA100RlY2W3R4Y5G6Y7W5B#

其中,$S为数据帧头;000000为SMS终端默认的认证密码;S表明本数据来自GSM Modem;0000为服务器设备ID编号;AA表示当前数据命令;10为十六进制数据0x10,表示当前数据内容长度字节;0R1G2W3R4G5G6Y7W为报文内容;5B为校验码;#为结束符。

同理,短信终端返回至GSM Modem的SMS报文示例为:

$S888888T0055CC1930RX1YX2YX3YX4YX5Y6Y7YXEF#

其中,$S为数据帧头;888888为SMS上位机服务器端默认的认证密码;T表明数据来自短信终端;0055为终端设备ID编号;CC表示当前返回数据命令;19为十六进制数据0x19,表明当前返回数据内容长度字节;30RX1YX2YX3YX4YX5Y6Y7YX为返回数据内容;EF为校验码;#为结束符。

5 GSM Modem短信数据通信报文处理流程

采用常规的上位机软件来进行设计,将数据通信报文整理好后再根据一系列的AT命令组合发送至GSM Modem,同时还需要解析来自若干个SMS终端的数据通信报文。常规上位机服务器端软件处理短信数据的流程如图4所示。



上位机软件数据处理过程中,需要不停地对GSMModem进行操作,响应GSM Modem接收到的数据,处理发送数据包。在整个过程中,GSM Modem只作为数据传输工具,不参与任何的数据处理;而一般的SMS远程监控通信系统的通信报文多达几十乃至上百条,会导致上位机软件工作量非常大。为了便于上位机程序简化开发,结合Q24PL001模块自身支持OpenAT嵌入式软件的特点,将短信数据通信报文的发送处理和接收解析流程嵌入GSMModem内,只保留一些简单的AT命令接口给上位机软件控制,大大减小了上位机软件的工作量。

6  基于OpenAT的通信协议报文封装

OpenAT嵌入式操作系统是为广泛的基于GSM/GPRS的模块系统应用而设计的,用于实现嵌入式的短信数据通信协议报文封装,可以大大提高GSM Modem硬件系统的资源利用率。基于OpenAT的程序设计流程分为SIM卡服务声明、短信服务声明、发送数据包处理和接收数据包数据解析等部分。

6.1  SlM卡初始化程序

在OpenAT嵌入式程序中,启动SIM卡初始化的声明函数为adl_simSubscribe(bpt_SimInitHandler," ")。其中,bpt_SimInitHandler为SIM卡

声明返回函数:



其中,事件ADL_SIM_EVENT_FULL_INIT表明SIM的初始化完成。

6.2  短信服务初始化程序

在OpenAT嵌入式程序设计中,当返回函数返回状态为ADL_SIM_EVENT_FULL_INIT时,表明系统SIM卡初始化过程成功完成,系统可以进入短信声明流程。短信功能声明函数为:

ptk_SmsHandler=adl_smsSubscribe((adl_smsHdlr_f)bpt_SmsDataHandler,\(adl_smsCtrlHdlr_f)bpt_SmsCtrlHandler,ADL_SMS_MODE_TEXT);

其中,ptk_SmsHandler为短信声明函数返回句柄;bpt_SmsDataHandler为短信数据处理返回函数;bpt_SmsCtrlHandler为短信发送状态事件返回函数;ADL_SMS_MODE_TEXT参数表示采用TEXT模式进行短信数据传输。bpt_SmsDataHandler短信数据返回函数定义如下:



在该函数中,smsTel为接收到的短信电话号码,smsTimeLength为TEXT模式下的短信时间戳,smsText为接收到的短信数据内容。

SmsCtrlHandler短信发送事件返回状态定义如下:



其中,ADL_SMS_EVENT_SENDING_OK事件表明短信发送成功。

6.3  SMS通信协议发送实现

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

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:161,351.60000 毫秒