当前位置:首页 > 通信技术 > 通信技术
[导读]本文讨论目前应用广泛的基于Wavecom公司Q24PL001模块的GSM Modem嵌入式程序设计,以实现将短信数据通信报文封装进GSM Modem,从而简化上位机软件的工作量。

引  言

随着经济的发展以及国内工农业领域的自动化程度的提高,越来越多的场合需要远程监控和操作的设备。可靠、实时、低成本、低功耗的基于GSM网络的短信远程数据控制与传输系统,在电力抄表、水文监测、防盗、环境监测、车辆跟踪、儿童定位、油田监控等需要远程数据采集和控制领域中的应用越来越广泛。在所有这些基于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#

其中,$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命令接收自上位机软件。

该数据通信协议发送时通过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  数据通信协议的接收处理

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

RES:0001,8,30RX1YX2YX3YX4YX5Y6Y7Y

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

7  GSM Modem AT命令设计

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

adl_atCmdSubscribe("AT+SETDIS",(adl_atCmdHandler_t)SetMode,ADL_CMD_TYPE_PARA∣ADL_CMD_TYPE_READ∣0x0041);

其中,参数"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_PARA∣ADL_CMD_TYPE_READ∣0x0041)}

该命令用于首次设置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通信系统的稳定性。该设计已经应用于南宁及深圳市智能交通诱导系统中,均取得较好的效果。
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2024年4月16日 /美通社/ -- 4月14日,为期四天的第89届中国国际医疗器械博览会(CMEF)盛大收官。澳鹏Appen很荣幸再次作为唯一的人工智能训练数据参展商参与此次"航母级"规模医疗...

关键字: APP 医疗器械 PEN 模型

随着电子技术的飞速发展,串行RapidIO(SRIO)作为一种高效、灵活的通信协议,在嵌入式系统、数据中心和通信网络中得到了广泛应用。SRIO 2.0作为SRIO协议的新一代标准,对阻抗要求有着更为严格的规定。本文详细论...

关键字: 串行RapidIO 通信协议 通信网络

网络通信协议是一种网络通用语言,为连接不同操作系统和不同硬件体系结构的互联网络提供通信支持,是一种网络通用语言。常见的网络通信协议有TCP/IP协议、IPX/SPX协议、NetBEUI协议等。

关键字: 通信协议 TCP/IP

单片机通信协议是指单片机之间进行数据传输时所遵循的规则和标准。常见的单片机通信协议包括UART、SPI、I2C、CAN和Modbus等。这些协议各有特点,适用于不同的应用场景。

关键字: 单片机 通信协议

跳频技术在GSM、无线局域网、室内无线通信、卫星通信、水下通信、雷达、微波等多个领域得到了广泛的应用。跳频技术其实就是收发双方传输信号的载波频率按照预定规律进行离散变化的通信方式。

关键字: 跳频通信 GSM 无线局域网

物联网是一个基于互联网、传统电信网等的信息承载体,它让所有能够被独立寻址的普通物理对象形成互联互通的网络。

关键字: 物联网 通信协议 互联网

GSM模块用于许多基于GSM(全球移动通信系统)技术的通信设备。它用于使用计算机与 GSM 网络进行交互。GSM 模块只理解AT 指令,并能做出相应的响应。

关键字: GSM 通信模块 单片机

船载通信系统是现代船舶中不可或缺的重要组成部分,它为船舶提供了与外界通信和数据传输的渠道。船载通信系统行业设计方案涵盖了多个方面,包括系统架构、硬件设备、软件系统、通信协议等。本文将详细介绍船载通信系统的行业设计方案。

关键字: 船载通信 数据传输 通信协议

SPI,Serial Peripheral Interface,串行外围设备接口,是一种同步通信协议,通常用于芯片间进行数据交互。

关键字: SPI 通信协议 外围设备

RS-485是一种常用的数据通信协议,广泛应用于工业控制系统、楼宇自动化、安防系统等领域。在某些应用中,为了防止电气噪声干扰或电气冲击,需要对RS-485接口进行隔离。

关键字: RS485 通信协议 工业控制
关闭
关闭