引 言
随着经济的发展以及国内工农业领域的自动化程度的提高,越来越多的场合需要远程监控和操作的设备。基于GSM网络短信息设备的领域,GSM Modem是必不可少的设备,本文讨论目前应用广泛的基于Wavecom公司Q24PL001模块的GSM Modem嵌入式程序设计,以实现将短信数据通信报文封装进GSM Modem,从而简化上位机软件的工作量。
本文以OpenAT3.12嵌入式开发平台为例,讨论如何将远程控制和数据采集通信报文封装进以Q24PL001模块为主的GSM Modem。
1 OpenAT操作系统介绍
OpenAT是Wavecom公司为GPRS/GSM无线CPU开发的一款实时操作系统,集成了内存分配、Flash管理、数据流管理、GPIO管理、总线管理、定时器管理等多种功能。底层为嵌入式API应用层,它包括程序初始化API、AT指令API、操作系统API、标准API、流控API、总线API等,包含了建立在OpenAT基础之上的应用开发层函数库。应用开发层(简称ADL)函数库为开发人员提供了上层应用接口,简化了嵌入式应用的开发;同时还提供了嵌入式应用程序框架,包括消息解析器和服务声明机制。基于以上原因,OpenAT应用程序开发人员在开发应用程序时,更多的时间用于调用服务处理函数,使系统更专注于程序本身的优化。
2 GSM Modom的硬件结构和应用程序
GSM模块在工业领域中比较重要的一个应用就是用来做GSM Modem,这也是GSM模块一个最简单的应用。如图1所示,一个常规通用GSM Modem的系统结构包括电源、RS232接口、GSM模块、LED指示灯、SIM卡和天线等部分。
GSM Modem核心模块采用Wavecom公司的无线CPU模块Q24PL001。在Q24PL001模块中,OpenAT与应用程序的结构关系如图2所示。Q24PL001集成了ARM7内核的32位CPU,内嵌OpenAT操作系统内核,支持OpenAT嵌入式应用程序设计。
3 基于短信远程控制系统的结构
如图3所示,基于GSM网络的短信远程控制系统通常包括以下几个部分:GSM Modem、上位机监控终端、移动运营商的GSM网络和GSM终端等。
在一般产品设计中,GSM Modem作为发送GSM短信息的工具使用。PC机通过RS232串口与GSM Modem相连,根据通信协议处理短信数据将处理好的短信数据包打包,通过RS232串口发送一系列标准Ar指令控制GSM Modem,由其将短信数据包发送至终端系统。本文重点研究简化上位机软件,将数据处理过程交给GSM Modem嵌入式系统软件处理的方法。
4 GSM短信远程控制系统的通信报文设计
对于GSM远程通信系统,数据通信报文并无统一标准,设计者可以根据具体情况自由设计不同通信终端之间的数据通信报文。由于GSM网络的短信数据通信接收端可以通过普通手机实现短信接收,所以必须在短信数据通信报文设计中进行数据加密设计,以防止非法用户对GSM短信数据通信报文的破解和滥用,保证整个SMS短信控制系统的稳定性。为了便于介绍,在此以非加密的GSM短信数据通信报文为例,介绍GSM短信通信报文的设计。
一个常用GSM短信数据通信报文设计格式如下:
其中,以$S作为短信数据通信报文的帧头字节;6个字符作为接收端的认证密码;S/T代表本报文的发送方为GSMModem(S)或短信终端(T);报文内容受短信数据长度的限制,一般在100字节以下;以#作为报文的结束符。
基于如上报文定义,一条上位机发出的SMS报文示例如下:
$S000000S0000AA100RlY2W3R4Y5G6Y7W5B#