SMS(Short Message Service)短信息服务是GSM(Global System for Mobile Communication)系统中提供的一种GSM终端(手机)之间,通过服务中心(Service Center)进行文本信息收发的应用服务,其中服务中心完成信息的存储和转发功能。短信息服务作为GSM网络的一种基本业务,已得到越来越多的系统运营商和系统开发商的重视,基于这种业务的各种应用也蓬勃发展起来。以GSM网络作为数据无线传输网络,可以开发出多种前景极其乐观的各类应用,如无线数据的双向传送、无线远程检测和控制等。典型的应用有:变电站、电表、水塔、水库或环保监测点等监测数据的无线传输和无线自动警报;远程无线控制高压线路断电器、加热系统、防洪拦阻系统或其它机电系统的启动和关闭;车队交通管理和控制指挥系统;控制和监测香烟、食品和饮料自动售货机的运行状态和存货水平等等。
由于GSM网络在全国范围内实现了联网和漫游,具有网络能力强的特点,用户无需另外组网,在极大提高网络覆盖范围的同时为客户节省了昂贵建网费用和维护费用。同时,它对用户的数量也没有限制,克服了传统的专网通信系统投资成本大,维护费用高,且网络监控的覆盖范围和用户数量有限的缺陷。比起传统的集群系统在无线网络覆盖上具有无法比拟的优势,加上GSM的SMS本身具备的数据传送功能,都使得这些应用得到迅速的普及。利用GSM短信息系统进行无线通信还具有双向数据传输功能,性能稳定,为远程数据传送和监控设备的通信提供了一个强大的支持平台。
1 SMS短信息的无线数传监视和控制 通常情况,基于SMS短信息服务的无线数传监视和控制系统为一个点到多点的远程无线双向数据通信和控制系统,如图1所示。系统的中心点为数据或监控指挥中心,由计算机网络、数据库、电子地图和GSM通信接口组成。监控中心主要完成各种信息和数据的收发和整理:一方面,接收各个监控点上传的信息和数据,并把它们放入相应的数据库和分发给相应的监控计算机,以实现对各个监控点的监控和管理;另一个方面,监控中心响应监控计算机发出的对各个监控点的控制信息,并且把这些信息下发到相应的监控点上,从而达到对监控点设备进行控制的目的。
2 GSM无线通信控制终端 GSM无线通信控制终端为一个MC3的嵌入式系统,具有如图2所示的测量、数据采集、控制、无线通信功能。GSM无线通信控制终端通过GSM网络和监控中心进行双向的信息传输。它将测量和采集到的数据信息传送到监控中心,同时接收监控中心的控制数据,对设备实施相应的控制。
3 GSM通信接口的硬件实现 GSM无线通信控制终端的通信接口一般采用目前在市场上提供的可供二次开发的标准的GSM模块,如TC35、FALCOM、WISMO3等。这些通信模块都具备GSM无线通信的全部功能,并提供标准的UART串行接口,支持GSM 07.05所定义的AT命令集的指令。因此,MCU能非常方便地通过UART接口与GSM模块连接,并直接使用AT命令就可以方便简洁地实现短信息的收发、查寻和管理。
在我们设计的GSM无线通信控制终端中,采用的GSM通信模块为FALCOM A2D,MCU使用的是Atmel公司的高速8位微控制器ATmage128。
ATMEGA128芯片为64个引脚,内部集成了4K字节的RAM、4K字节的EEPROM、128K字节的Flash以及2个UART串行接口等。由于采用了高性能的MCU,省掉了大量的外围器件,如外扩RAM、ROM存储器等,使硬件结构大大简化,提高了系统的可靠性。系统的硬件框图如图3所示。
4 基于GSM通信的软件接口 市场上提供的可供二次开发的标准的GSM模块都支持GSM 07.05所定义的AT命令集的指令。因此,MCU通过UART串行接口直接向GSM模块下发AT命令,就可以方便简洁地实现基于GSM的短信息SMS的收发、查寻和管理。表1列出了与SMS相关的一些常用的GSM AT指令。
表1 与SMS相关的常用GSM AT命令 AT指令 |
功 能 |
AT+CMGD | 删除一条保存在SIM卡内的短信息 |
AT+CMGF | 选择短信息格式:0为PDU方式:1为文本方式 |
AT+CMGL | 列出SIM卡中的保存短信息 |
AT+CMGR | 读取SIM卡中指定一条短信息的内容 |
AT+CMGS | 发送一条短信息 |
AT+CSCA | 设置短信息服务中心地址 |
根据GSM 07.05的定义,SMS短信息的发送和接收模式共有三种:Block模式、基于AT命令的Text模式和基于AT命令的PDU模式。使用Block模式需要模块生产厂家提供驱动支持;而用于中英文短信息传送应使用PDU模式,只传送英文短信息(纯文本格式)使用Text模式。Text模式的短信息发送和接收比较简单,如不需要传送中文则最好采用Text模式发送和接收短信息。
采用Text模式发送接收短信息的步骤分为初始化GSM模块、发送文本短信息和接收短信息。下面一段简单的程序给出一个示例:
PRINT "AT+CSCA=";Chr(34);"+8613800210500";Chr(34) ‘设置短信息中心号码
PRINT "AT+CMGF=1" ‘设置为Text模式
PRINT "AT+CMGS=";Chr(34);"13500123456";Chr(34) ‘发送一条短信息
PRINT "This is a test SMS";Chr(26)
PRINT "AT+CMGR=1" ‘读取收到的一条
‘短信息
.
.
.
该程序使用BASCOM-AVR高级语言编写,其中PRINT语句的功能是通过URAT串行口发送字符串,Chr(34)代表ASCII字符(“),Chr(26) 代表ASCII字符(Ctrl-Z)。第一行语句设置短信息服务中心号码,即通过串口发送以下字符串: AT+CSCA= "+8613800210500",其中+8613800210500为上海地区中国移动的短信息服务中心号码。第二行语句设置短信息发送格式:AT+CMGF=1,其中1表示采用Text模式。第三和第四行语句发送一条短信息到控制中心,AT命令的格式为:AT+CMGS= "13500123456"<cr>This is a test SMS<^Z>,其中控制中心的号码为13500123456,短信息内容为“This is a test SMS”,确认控制字符为Ctrl-Z。第五行语句为读取一条收到的短信息内容:AT+CMGR=1,其中1表示收到的(在SIM卡中)第一条短信息。该指令发出后,如果GSM模块中有接收到的短信息,则从UART接口返回如下信息(具体AT命令格式请参考GSM 07.05):
+CMGR: "REC UNREAD","+8613508485560",,"02/10/16,15:37:28+32"
xxxxxxxxxxxxxxxxxx (收到短信息的文本内容)
“Design Logic 2001 Contest”中,该产品获得三等奖。
文章评论(0条评论)
登录后参与讨论