嵌入式设备中使用短信服务
2014-12-31 17:26
232 查看
全球移动通信系统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功能。
短信收发原理
短信服务业务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功能。
相关文章推荐
- 使用SmsManager服务群发短信
- 短信API服务文档及简易使用教程注意事项
- 免费使用QQ邮箱“邮件短信通知”服务
- 短信服务:将阿里大鱼整合到ThinkPHP3.2,并使用
- java使用阿里大于发送短信(现在已经更名为云通讯下的短信服务)
- CI使用阿里云短信服务
- 使用策略模式实现报警服务示例详解(短信报警)
- iOS使用系统服务-短信与邮件
- php使用aws的sns服务初探(主要是短信服务)
- 腾讯云短信服务使用记录与.NET Core C#代码分享
- 使用阿里云消息服务mns发送短信
- thinkphp5 中使用阿里云的短信服务
- 使用SmsManager服务群发短信
- laravel5.4使用Laravel Sms和阿里云短信服务实现短信验证码功能
- 腾讯云短信服务使用记录与.NET Core C#代码分享
- 使用VBS获取当前计算机上开启的服务
- 目录数据巧维护 —— Windows Server 2003目录服务修复工具的使用
- MattPowell介绍了如何在服务器端使用异步Web方法,来创建高性能的 Microsoft ASP.NET Web 服务
- 使用J2EE设计面向服务的体系结构框架
- 在网络中安装、配置和使用SUS服务