正文

经纬星航GSM模块编程开发PDU码解析2006-02-17 21:17:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/iamben250/10207.html

分享到:

经纬星航GSM模块编程开发PDU码解析
摘要:介绍计算机上实现短消息收发的模式,描述PDU 模式,包括PDU 模式下的UCS2 编码、解码原理,以及发送与接收PDU 串的编制方式, VB 中的MSCOMM 控件,实现短消息收发的核心程序。
关键字:短消息收发、PDU 模式、UCS2 编解码、UNICODE 码、AT 指令、MSCOMM 控件 GSM模块 短信模块,单片机,PLC,MC51,MC51单片机,430,51单片机,GSM,CDMA,GPRS,短信终端,GSM短信,编程,GSM调制解调器,短信控件,短信编程,源码,下载,GSM短信编程,短信猫,短信猫编程,GSM编程,短消息,模块,终端,设备,短信,短信群发。编程示例,示例代码,示例,代码,VC,VC++,DELPHI,JAVA,PB,VB等
一、短消息收发的实现模式
计算机串口上连接GSM MODEM,用它向手机发送短消息,要求对AT 指令集和串口编程比较熟悉。这种方法收发短消息又分三种模式:BLOCK 模式、TEXT 模式和PDU 模式。BLOCK 模式现在用的很少了; TEXT 模式则只能发送ASCII 码,它不能发送中文的UNICODE码——确切地讲,从技术上来说是可以用于发送中文短消息的,但是国内的手机基本上不支持;而PDU 模式开发起来则较为复杂,它需要编写专门的函数来将文本转换为PDU 格式,但PDU 模式被所有手机支持,可以使用任何字符集,它也是手机默认的编码方式。笔者在开发中正是选用的PDU 模式。
二、PDU 模式
用PDU 模式收发短消息可以使用三种编码: 7-bit 编码、8-bit 编码和UCS2 编码。7-bit
编码用于发送普通的ASCII 字符;8-bit 编码通常用于发送数据消息,如图片或铃声等;UCS2
编码用于发送Unicode 字符。由于笔者在系统中要实现中文短消息的发送,所以选择用UCS2
编码,即中文Unicode 码。
(一)UCS2 编码原理
所谓UCS2 编码,是将单个的字符(1-2 个字节)按ISO/IEC10646 的规定,转变为16 位
的Unicode 宽字符。即将单个的字符转换为由四位的‘0’-‘9’、‘A’-‘F’的数字和字
母组成的字符串。待发送的消息以UCS2 码的形式进行发送。
(二)发送PDU 串的编制分析
通过UCS2 编码我们得到中文Unicode 码,接着就可以进行发送PDU 串的编制了。从表
面上看,PDU 串是ASCII 码串,同样由‘0’-‘9’、‘A’-‘F’这些数字和字母组成。它
们是8 位字节的十六进制数,或者BCD 码十进制数。PDU 串除了包含所发送的消息本身外,还包含很多其它参数信息,如服务中心号码、目标号码和编码方式等。现用一个实例说明发送PDU 串的结构和编排方式。
例:08 91 683108100005F0 31 00 0D 91 683119109991F2 00 08 C2 06 60A8597DFF01
参照规范,具体分析:
分段含义解释说明
08 SMSC 地址信息的长度共8 个八位字节(包括91)
91 SMSC 地址格式(TON/NPI) 用国际格式号码(在前面加‘+’)
68 31 08 10 00 05 F0 SMSC 地址8613800100500,补‘F’凑成偶数个 北京经纬星航科技发展有限公司
北京市上地信息产业基地上地佳园 11 号 1F2
010-62917308 62911282 62969320 62969592 13301045668
WWW.JINGWEIGPS.COM
北京经纬星航科技发展有限公司 www.jingweigps.com
31 基本参数(TP-MTI/VFP) 要求发送回复
00 消息基准值(TP-MR) 0
0D 目标地址数字个数共13 个十进制数
91 目标地址格式(TON/NPI)
A1:国内格式
91:国际格式
81:未知,+86 可带可不带。
683119109991F2 目标地址(TP-DA) 8613910199192,补‘F’凑成偶数个
00 协议标识(TP-PID) 是普通GSM 类型,点到点方式
08
用户信息编码方式
(TP-DCS)
00:表示7-bit 编码, 08:表示UCS2 编码,
04:表示8-bit 编码。
C2 有效期(TP-VP) 5 分钟
06 用户信息长度(TP-UDL) 实际长度6 个字节
60 A8 59 7D FF 01 用户信息(TP-UD) “您好!”
这里需要注意的几点:
①.比较SMSC 地址分段:68 31 08 10 00 05 F0 与真实SMSC 地址8613800100500F(为
了凑足14 位,在末尾补F),不难发现只需将前者奇偶位对调即可得到后者。同样,目标地
址分段683119109991F2 与实际目标地址13910199192F 之间的关系也是如此。
②.若“SMSC 地址信息的长度”分段的值为00,则意味着SMSC 地址字符串的长度为零,
PDU 串的“SMSC 地址格式”段和“SMSC 地址”段将省去。且将使用SIM 卡设置的SMSC 地址。
上例中的PDU 串变为:
00 31 00 0D 91 683119109991F2 00 08 C2 06 60A8597DFF01
③. 对于用户信息长度,可通过VB 中的Len 函数求得,如“您好!”,用Len(“您好!”)
得到是3,那么3*2=6 即为用户信息长度06(这里要转换为16 进制,并且是两位)。
④.用户信息(TP-UD)段最大容量是140 字节,所以在UCS2 编码方式下,可发送短消息
的最大字符数是70 个。
(三)UCS2 解码
在接收消息时,可能不仅收到UCS2 格式编码的PDU 串,也可能是7bit 编码格式
(TP-DCS 为00)或8bit 编码格式(TP-DCS 为04)的PDU 串。对这两种情况,笔者也编了相应的解码算法,且它们的算法要相对简单,由于着重介绍UCS2 解码,7bit 与8bit 解码就不再多介绍了。
(四)接收PDU 串的编制分析
接收PDU 串和发送PDU 串结构是不完全相同的。通过一个实例来分析,假定收到的短消
息其PDU 串为:
08 91 68 31 08 10 00 05 F0 04 0D 91 68 31 19 10 99 91 F2 00 08 40 40 60 31 35 30
23 06 60 A8 59 7D FF 01
参照规范,具体分析: 北京经纬星航科技发展有限公司
北京市上地信息产业基地上地佳园 11 号 1F2
010-62917308 62911282 62969320 62969592 13301045668
WWW.JINGWEIGPS.COM
北京经纬星航科技发展有限公司 www.jingweigps.com
分段含义解释说明
08 SMSC 地址信息的长度共8 个八位字节(包括91)
91 SMSC 地址格式(TON/NPI) 用国际格式号码(在前面加‘+’)
68 31 08 10 00 05 F0 SMSC 地址8613800100500,补‘F’凑成偶数个
84 基本参数(TP-MTI/MMS/RP) 接收,无更多消息,有回复地址
0D 回复地址数字个数共13 个十进制数(不包括91 和‘F’)
91 回复地址格式(TON/NPI) 国际格式
68 31 19 10 99 91 F2 回复地址(TP-RA) 8613910199192,补‘F’凑成偶数个
00 协议标识(TP-PID) 是普通GSM 类型,点到点方式
08 用户信息编码方式(TP-DCS) UCS2 编码
40 90 10 31 35 30 23 服务时间戳(TP-SCTS) 2004-09-01 13:53:03
06 用户信息长度(TP-UDL) 实际长度6 个字节
60 A8 59 7D FF 01 用户信息(TP-UD) “您好!”
通过分析,我们可以获取其中的有用信息。如:短信服务中心号码是+8613800100500,
发送方号码是13910199192,发来的消息内容是“您好!”,以及发送时间是:2004-09-01
13:53:03。
以上资料仅供参考
经纬星航提供GSM短信群发软件(单通道版)
经纬星航提供GSM短信群发软件(20通道版)
经纬星航提供GSM短信群发软件(40通道版)
经纬星航提供GSM短信群发软件(80通道版)
咨询热线:010-62969592 13301045668 北京经纬星航科技发展有限公司
北京市上地信息产业基地上地佳园 11 号 1F2
010-62917308 62911282 62969320 62969592 13301045668
WWW.JINGWEIGPS.COM

阅读(5172) | 评论(2)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册