首页 > 代码库 > 嵌入式设备中使用短信服务

嵌入式设备中使用短信服务

全球移动通信系统GSM是我国范围最广、通信能力最强的移动通信服务,其中的短消息功能以其方便、可靠和价廉得到了广泛应用。如果要在嵌入式设备中使用短信功能,要利用GSM模块实现短信的收发。

短信收发原理

短信服务业务SMS(Short Message Service)是GSM系统提供给用户的一种数字业务,它与语音传输及传真一样,同为GSM通讯网络提供的主要电信业务。系统结构图如下:

技术分享

短消息模块的接入方式支持两种模式:基于AT指令的TEXT模式和基于AT指令的PDU模式。文本模式只支持7-bit编码,可发送纯英文和数字信息。PDU模式支持7bit、8bit和UCS-2编码,除了基本信息外,可以发送中文消息。一般都采用PDU模式。

 

 

以一串PDU短信数据为例子分析,

0891683108100005F011000D91685110906474F90008000A534E6E058FDC89C1FF01

数据可以分为三部分:

-----------------------------------------------------------------------------------------
        “0891683108100005F0 ”                                          中心号码段
        “11000D91685110906474F9000800”                           收信方号码段
        “08_80e16d696167513f”                                          信息段
        -------------------------------------------------------------------------------------------

 

08_91_683108200505F0

040D91683119930093F60008800

15141652123044F60597D

 

0891683108200505F0

040D91683119930093F6000880015141652123044F60597D

 

发送一条短信,需要设置以下几个号码。

1. 中心服务号码,相对于短信服务器的地址。我们的短信是不能直接发送到另一个手机的,必须经过这个短信服务器的中转。中国移动的中心服务号码的编码规则:+861380+开户地区四位长途区号+500。长途区号不足4位的后面补0,如北京的为+861380_0100_500,深圳的为+861380_0755_500

中心服务号码:08__91__683108100005F0

91为国际化的含义,必须要有。

683108100005F0:将奇数位和偶数位翻转可得8613800100500F,PDU编码规定,手机号码为奇数时,需要末尾补F。86为中国区号。

在构成中心号码号码端时,中心服务号码前面加上86,后面加上F,然后奇偶位交换,最后加上91前缀就形成。前面加上08代表的中心号码长度的一半数值就大功告成了。

 

2. 收信方号码

 1100_0D91_685110906474F9_000800

红色部分为收信方号码固定前后缀,0D91这几个字段,表示接收方设备为手机,81表示为小灵通,0D表示接收方手机号码长度,为13位(国家区号+手机号码)。后面的号码就是接收方手机号码,编码方式类似,还原的话,先奇偶交换,去掉前面的国家代码和F后缀,得到接收方电话号码为15010946479.

 

3. 发送内容

08_80e16d696167513f

Technorati 标签: 短信服务

发送内容是以unicode的方式编码的,第一个字节为信息字段长度的一半(五个汉字,二十个字节,长度的一半为10个字节,也就是0A),一个中文由4个字符构成。

 

使用AT命令发送上述短信字段:

1. AT---->OK

2. AT+CMGF=0  ----->OK      //设置为PDU格式

3. AT+CMGS=25                  //设置发送信息长度(为实际发送长度的一半,收信方号码+发送内容)

4.输入全部的短信编码字段,按下Ctrl+Z就可以控制GSM模块发送信息了。

 

标准的AT指令集通讯,常用的如下:

 技术分享

中文短信的实现,需要将GB2312的中文编码转换成代码页为CP936的Unicode编码。发送方的PDU字符串和接收方的PDU字符串不同。

MC35模块支持中文短信,支持GPRS功能。

嵌入式设备中使用短信服务