基于GSM模块实现中文短信息发送2

上传人:飞*** 文档编号:40641013 上传时间:2018-05-26 格式:DOC 页数:5 大小:36KB
返回 下载 相关 举报
基于GSM模块实现中文短信息发送2_第1页
第1页 / 共5页
基于GSM模块实现中文短信息发送2_第2页
第2页 / 共5页
基于GSM模块实现中文短信息发送2_第3页
第3页 / 共5页
基于GSM模块实现中文短信息发送2_第4页
第4页 / 共5页
基于GSM模块实现中文短信息发送2_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于GSM模块实现中文短信息发送2》由会员分享,可在线阅读,更多相关《基于GSM模块实现中文短信息发送2(5页珍藏版)》请在金锄头文库上搜索。

1、摘摘 要要 短信的发送需要 GSM 模块和处理器协作完成,GSM 模块与 ARM 处理器通过串口连接,处理器向串口发送接收 AT 命令与 GSM 模块形成通信回路。中文短信的发送采用 PDU 模式,根据 PDU 模式标准形成 PDU 发送包,实现短信发送。本文根据无线电话项目的短信发送模块的实现开发流程编写。 关键词关键词 GSM;SMS;AT 命令;PDU 1 引言 2007 年全国手机短信发送量达到 5921 亿条,日均发送量超过 16 亿条。短信的应用也扩展到各个领域,本文介绍了多媒体电话短消息发送模块的实现原理和具体的实现方法。由短消息发送流程可以了解短信息发送过程的每一个环节,对短信

2、息安全,屏蔽垃圾短信有一定的作用。2 GSM 模块及 GSM 模块的短信功能 GSM(Global System for Mobile communication)系统是目前基于时分多址技术的移动通讯体制中比较成熟、完善、应用最广泛的一种系统。目前已建成的覆盖全国的 GSM 数字蜂窝移动通信网,是我国公众移动通信网的主要方式,主要提供话音、短信息、数据等多种业务。基于 GSM 短消息功能可以做成传输各种检测、监控数据信号和控制命令的数据通信系统,能广泛用于远程监控、定位导航、个人通信终端等。由于公众 GSM 网络在全球范围内实现了联网和漫游,建立上述系统不需再组建专用通信网络,所以具有实时传输

3、数据功能的短消息应用将得到迅速普及。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(Prot

4、ocol Description Unit)模式,文本模式只能发送普通的 Ascill字符,要发送图片,铃声,其它编码的字符(如中文)就必须采用 PDU 模式。PDU 模式中,可以采用三种编码方式来编码要发送的内容,分别是 7bit 编码,8bit 编码,16bit 编码,7bit 编码用于发送普通的 Ascill字符,8bit 编码通常用于发送数据信息,如图片和铃声,而 16bit 编码用于发送 Unicode 字符。三种编码可以发送的最大字符分别是 160,140,70。发送中文短信要采用 PDU 模式的 Unicode 编码方式,具体步骤描述(1)GB2321 编码到 Unicode 编

5、码的转换。 操作系统提供函数(有些系统不提供,如 deltaos)。 手动查表。(2)Unicode 编码到 16bit 编码的转换。 得到的 Unicode 编码后,还需要转换成 PDU 的 16bit 编码才可以正确的发送。这个转换过程中 Unicode 编码最开始的 0xffff 标志要去掉,在 0xffff 之后的内容才是真正的 Unicode 字符。 Unicode 是双字节,根据系统如果是小端字节序(littleendian),也就是说,存储的时候,先存低位再存高位,例如:“中”的 Unicode 编码是 0x4E2D,储存的时候是 2D4E,在转换到 16bit 编码的时候要转换

6、顺序,如果是大端字节序(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)。大多手机不支持文

7、本模式,只支持 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+CMG

8、S=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 用户数据长度,用十六制表示4F60

9、597D:短信内容的 UNICODE 编码如果发送成功,串口返回以下结果: +CMGS: X 这里的 X 是个数字 3.2 发送短信程序流程及主要函数1)接口函数_SendMessage()当调用接口函数_SentMessage(unsigned char *message, unsigned char *telephone, unsigned char telephonetype)时,程序开始进入短信发送模块,流程如图 1 所示。图 1 SendMessage()函数流程图2)发送短信主体函数 Send_SMS()完成 _SMS_appUnit 结构填写以后,短信发送的内容及所需信息提取到结

10、构_SMS_appUnit 中,为下面对数据的处理提供了原始数据,接下来就调用 Send_SMS 函数,程序流程如图 2 所示。图 2 Send_SMS()函数流程图3)数据处理函数 MakeSSP()函数 MakeSSP 是短信发送部分重要函数,把 struct _SMS _appUnit 结构中的数据转换成 struct _SMS_SUBMIT_PDU 结构,形成发送包。4 总结 以上详述了短信发送模块实现的步骤,本文内容通过测试。可以实现短信的发送,响应时间等参数符合要求。但如果要连续发送短信,或短信发送量要求比较高的情况还需要设计数据库实现数据的管理。对于短信发送的信息安全问题,将是下一个阶段的研究重点。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 其它考试类文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号