首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
GSM模块收发中文短消息的关键技术
来源:本站整理  作者:佚名  2008-09-16 15:15:00



引 言
    手机短消息服务SMS(Short Message Service)是全球移动通信系统GSM(Global System for Mobile Communi-cation)的一项基本业务,它利用信令信道传输,不用拨号建立连接,直接把要发的信息加上目的地址发送到短消息服务中心(service center),由短消息服务中心再发给最终的信宿,是目前应用最广泛的一种通信方案。目前,随着手机的广泛使用,SMS服务以其传递信息方便快捷、价格低廉而越来越受人们的关注,已经广泛地应用于监控定位系统、无线报警、远程维护及数据信息查询等各个领域。
    本文针对单片机通过串口发送AT指令控制GSM无线收发模块,实现在不支持中文编码的Text(文本)模式下接收中文短消息的软硬件设计进行了研究,并利用数控模拟开关CD4052实现了单片机多个串口的扩展。


1 短消息基本原理介绍
1.1 GSM模块介绍
   
目前,市场上GSM模块种类很多,但功能、用法基本相同。本文中使用了Siemens公司生产的TC35i模块。该模块与GSM2/2兼容,提供 双频(GSM900/GSM1800)和RS232数据接口,外部提供9针串口及话柄接口(支持语音),如图1所示;通过AT命令来传输数据、语音和短消息等,方便用户开发和设计。
1.2 短消息AT指令
   
AT指令用于由终端设备(TE)或数据终端设备(DTE),发送到终端适配器(TA)或数据电路终接设备(DCE)。设备通过发送AT命令来控制移动台,并与GSM网络业务进行交互。通过AT命令可进行呼叫、短信、电话本、数据业务、补充业务等方面的控制。本文中由单片机发送AT指令来控制GSM模块接收和发送手机短消息。
    常用短消息相关AT指令及说明如表1所列。

1.3 收发短消息的模式
    目前,接收和发送SMS信息常用的模式主要有两种:Text(文本)模式和PDU(Protocol Data Unit,协议数据单元)模式。
    (1)Text模式
    Text 模式是纯文本方式,可使用不同的字符集。该模式下信息传送和接收的编码比较简单,但国内手机Text模式下不支持收发中文汉字字符的手机短消息。本文通过编码转换实现了GSM模块在Text模式下收发中文短信息。
    (2)PDU模式
   
PDU模式被所有手机支持,可发送中英文短信。PDU模式下可采用3种编码方式,分别是7位、8位和UCS2编码,分别用于发送普通的ASC Ⅱ字符、数据消息和Unicode字符。按照GSM07.05协议规定,手机短信息中的汉字编码均采用Unicode码。
    如表2所列,PDU模式中画横线部分依次为短信息中心号码、发送短信方手机号码以及发送短信的日期和时间。其代码表示为将实际数据两两颠倒,例如实际短信息中心号码应为“8613800311500”。短信内容“你好!”均为Unicode字符“4F60597D0021”。其他各项的具体说明见参考文献。

    经研究比较发现,所要提取的短信信息包括手机号码、时间和短信内容。在Text模式下时间和日期均为ASCII码,可直接读取,只需将内容中汉字部分的Unicode码转换成国标码;而在PDU模式下除汉字编码转换外,还需将号码、时间部分编码进行两两颠倒的转换,才能得到所需的正确信息。故在系统设计中将GSM模块设为Text模式,更能简化程序设计。


2 Unicode码到GB2312码的转换
   
由于Unicode编码和GB2312编码之间没有一一对应的线性转换关系,用单片机控制代码转换只能采用查表方法实现,因此,需要建立Unicode码和GB码之间转换的对照。中文简体汉字有7 464个,一个汉字占2个字节,因此对照表需要29 856(7 464×4)的存储空间。本设计中选择P89V51RD型单片机,该芯片提供的1 KB RAM可以满足存储多条短信的要求。
    单片机通过串口与模块连接后,发送读取第一条新短消息指令:“AT+CMGR=1”。提取模块接收的短消息后,先判断其内容是否为ASCII码。若为ASCII码,则无需转换直接读取;否则,通过查表法查找其对应的汉字GB码,实现不同编码间的转换。转换流程如图2所示。

    提取信息内容的部分程序如下:


    采用二分查找法,其最坏查找次数为lg2(n+1),对照表的长度n为7 464,故最坏查找次数约为13次。也就是说,一个中文编码转换最多经过13次比较查找即可完成,单片机控制能够实时完成。


3 单片机多串口的实现
   
51系列单片机一般只有一个串行通路,通过串口与GSM模块连接后,则不能再连接其他串口设备;而一些串口扩展芯片成本较高,连接也较麻烦。本方法利用数控模拟开关CD4052来做多串口扩展器,成本低廉而且接线简单。其引脚排列如图3所示。

    CD4052具有4个独立的通道数据选择器,有A、B两个输入端和一个禁止输入INH,通过A、B的4种二进制组合状态来选择4对通道中的一对。
    本设计中,A、B分别占用P2.0和P2.1口,P2=0x01则选通模块串口,P2=0x02则接通其他串口设备。当INH为1时,所有通道均关闭。X、Y分别连接单片机的RXD和TXD,则可将一个串口扩展为4个,具体接线方法如图4所示。

    CD4052实际上是2个一分四的数据分配器,所扩展的串口均是全双工异步工作模式,具有很高的工作速度,方便地实现了一片单片机多个串口的扩展能力。以Siemens公司的TC35i GSM模块为编程对象,通过P89 V51单片机进行控制,构建了实际系统,实现了编程过程以及系统串口扩展等,有效地接收并完成中文短消息代码的转换,验证了上述构建思路的可行性和正确性。


结 语
   
单片机控制GSM模块在Text模式下接收手机中文短信息,其编码转换格式较为简单,并有较高的转换速率。对于终端接收中英文信息的项目,采用本文所研究的单片机控制GSM模块收发短消息技术,实现简单,成本较低,可直接嵌套使用。另外,经扩展后单片机可同时与其他串行设备相连,例如与串行打印机相连,即可直接打印出手机信息内容。在车辆监控系统、仓库监控系统及仪器数据远传等方面,也能很好地结合本技术。

关键词:

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

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:131,265.60000 毫秒