加入收藏 设为首页 联系站长
网站首页 | 社区论坛 | 技术文章 | 供求招聘 | 资料下载 | 电子电路 | 视频教程 | 购物平台 | 电子博客 | 电子E群 | 我要投稿 | 软件游戏 | 内容搜索 | 友情链接
>首页 -> 文章频道 -> 单片机类文章

TOP

GSM短信息接口软硬件的设计
[ 转载者:dzwlt | 时间:2008-08-04 16:00:33 | 作者: | 来源:未知 | 浏览:34次 ]
由于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 (收到短信息的文本内容)
5 基于PDU模式的中文短信息接收
  发送和接收中文或中/英文混合的短信息必须采用PDU模式。根据GSM 07.05的定义,只要控制器通过UART接口向GSM模块下发AT命令,就可以直接读取收到的PDU模式的短信息:
  PRINT "AT+CMGF=0" ‘设置为PDU模式
  PRINT "AT+CMGR=1"‘读取接收的一条短信

‘息

在PDU模式下,GSM通信模块的回答格式为:

+CMGR: <stat>,,<length><CR><LF><pdu>
  其中: stat表示该条短信息的状态,通常为0(未读过,新的短信息)或1(已读过);
Length为十进制数,表示pdu数据长度减去短信息服务中心地址长度,单位为字节;

<CR><LF>为回车换行;

pdu为PDU模式的数据包。
  然后,要分析PDU数据包,根据PDU的数据格式将收到的中文信息和其它相关信息解析出来。

5.1 PDU数据包格式
  PDU数据包由两部分构成,短信息服务中心地址(SMSC address)和TPDU,表2为PDU数据包的格式,其中一个数据单元为一个字节。
  其
<< < 1 2 > >> 1/2
[上一篇]编写高质量程序的方法 [下一篇]linux中select()函数的详细分析

评论

称  呼:
内  容:

相关栏目

最新文章

热门文章

推荐文章

广告位