基于GSM模块实现中文短信息发送2.doc_第1页
基于GSM模块实现中文短信息发送2.doc_第2页
基于GSM模块实现中文短信息发送2.doc_第3页
基于GSM模块实现中文短信息发送2.doc_第4页
基于GSM模块实现中文短信息发送2.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要短信的发送需要GSM模块和处理器协作完成,GSM模块与ARM处理器通过串口连接,处理器向串口发送接收AT命令与GSM模块形成通信回路。中文短信的发送采用PDU模式,根据PDU模式标准形成PDU发送包,实现短信发送。本文根据无线电话项目的短信发送模块的实现开发流程编写。 关键词GSM;SMS;AT命令;PDU 1 引言 2007年全国手机短信发送量达到5921亿条,日均发送量超过16亿条。短信的应用也扩展到各个领域,本文介绍了多媒体电话短消息发送模块的实现原理和具体的实现方法。由短消息发送流程可以了解短信息发送过程的每一个环节,对短信息安全,屏蔽垃圾短信有一定的作用。2 GSM模块及GSM模块的短信功能 GSM(Global System for Mobile communication)系统是目前基于时分多址技术的移动通讯体制中比较成熟、完善、应用最广泛的一种系统。目前已建成的覆盖全国的GSM数字蜂窝移动通信网,是我国公众移动通信网的主要方式,主要提供话音、短信息、数据等多种业务。基于GSM短消息功能可以做成传输各种检测、监控数据信号和控制命令的数据通信系统,能广泛用于远程监控、定位导航、个人通信终端等。由于公众GSM网络在全球范围内实现了联网和漫游,建立上述系统不需再组建专用通信网络,所以具有实时传输数据功能的短消息应用将得到迅速普及。 SMS是由Etsi所制定的一个规范(GSM 03.40 和 GSM 03.38)。它可以发送最多160个字符,当使用7-bits编码的时候,8-bit编码(最多140个字符)通常无法直接通过手机显示,通常被用来作为数据消息。16-bit信息(最多70个字符)被用来显示Unicode(UCS2)文本信息,可以被大多数的手机所显示。一个以class 0 开头的16-bit的文本信息将在某些手机上作为Flash SMS显示。3 实现中文短信发送 GSM模块支持两种方式来发送和接收SMS短信息,文本模式和PDU(Protocol Description Unit)模式,文本模式只能发送普通的Ascill字符,要发送图片,铃声,其它编码的字符(如中文)就必须采用PDU模式。 PDU模式中,可以采用三种编码方式来编码要发送的内容,分别是7bit编码,8bit编码,16bit编码,7bit编码用于发送普通的Ascill字符,8bit编码通常用于发送数据信息,如图片和铃声,而16bit编码用于发送Unicode字符。三种编码可以发送的最大字符分别是160,140,70。发送中文短信要采用PDU模式的Unicode编码方式,具体步骤描述 (1)GB2321编码到Unicode编码的转换。 操作系统提供函数(有些系统不提供,如deltaos)。 手动查表。 (2)Unicode编码到16bit编码的转换。 得到的Unicode编码后,还需要转换成PDU的16bit编码才可以正确的发送。 这个转换过程中Unicode编码最开始的0xffff标志要去掉,在0xffff之后的内容才是真正的Unicode字符。 Unicode是双字节,根据系统如果是小端字节序(littleendian),也就是说,存储的时候,先存低位再存高位,例如:“中”的Unicode编码是0x4E2D,储存的时候是2D4E,在转换到16bit编码的时候要转换顺序,如果是大端字节序(bigendian)如本系统,就不需要转换了。 正确计算16bit编码的消息体长度,PDU规范中,包括消息体本身。 正确设置TYPE,TPMR,TPPID,TPVP,在下文PDU格式中,依次设置为:11,00,00,08,01(以上都为16进制数)。 (3)形成标准的发送包。3.1短信发送过程分析 处理器通过向串口发送接收AT命令与GSM模块形成通信回路,通过AT命令实现对GSM模块的基本操作,用于发送短信的AT命令如表1所示。 发送短信可用文本模式和协议数据单元模式(PDU,protocol data unit)。大多手机不支持文本模式,只支持PDU模式。PDU模式是把短信正文经十六进制编码后被传送,其编码总体上分为三个部分:服务中心号、接收方手机号、短信内容,如“你好”短信PDU编码是这样的(其中xyz是手机号具体数字): 0011000B8131258698yxFz000801044F60597D,其意义如表2所示。表1发送短信使用的AT命令AT命令功能例子AT+CMGF设置短信的格式,0=PDU模式(默认),1=文本模式AT+CMGF=0AT+CSCA获取服务中心的号码AT+CSCA?AT+CMGS发送AT+CMGS= YYY ;其中 YYY 为TPDU的十进制长度AT+CMGS=19接收到“”响应后发送短信内容表2发送数据分析接收号部分短信内容部分00 11 00 0B 8131208698yxFz000801 04 4F60597000:SCA以00写入,应用默认的服务中心地址,该服务中心地址用AT+CSCA指令写入11:PDU类型00:TPMR表示MR 消息参考0B:接收号字符数81:表示是国内代码31258698yxFz:接收号 编码时长度为奇数末尾追加“F”每两个字节进行位置交换,即13526889xyz00:TPPID协议标示 08:TPDCS数据编码方式 01:TPVP有效期 04:UDL用户数据长度,用十六制表示4F60597D:短信内容的UNICODE编码 如果发送成功,串口返回以下结果: +CMGS: X这里的X是个数字3.2发送短信程序流程及主要函数 1)接口函数_SendMessage() 当调用接口函数_SentMessage(unsigned char *message, unsigned char *telephone, unsigned char telephonetype)时,程序开始进入短信发送模块,流程如图1所示。图1SendMessage()函数流程图 2)发送短信主体函数Send_SMS() 完成 _SMS_appUnit结构填写以后,短信发送的内容及所需信息提取到结构_SMS_appUnit中,为下面对数据的处理提供了原始数据,接下来就调用Send_SMS函数,程序流程如图2所示。图2 Send_SMS()函数流程图 3)数据处理函数MakeSSP() 函数MakeSSP是短信发送部分重要函数,把struct _SMS _appUnit结构中的数据转换成struct _SM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论