资源描述:
《接收和发送的短信的格式》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、短信格式(sms)以及编码总结1.一短信猫操作分为三种模式BlockPdu和Text2.二短信传送有三种编码7位8位UniCode3.三地址编码4.四编码示例5.五接收短消息6.附录关于PDU模式发送短信短信开发指通过串口at命令驱动短信猫进行短信发送和接收操作。 AT命令:AT命令是驱动短信设备的标准工业命令,除了业界的标准之外,每个厂商可能会对其进行扩展,不过一般来说,标准命令应该够用,我在这里用的是西门子MC39i,有专门的AT命令文档。 一、短信猫操作分为三种模式:Block、Pdu和Text1、Block模式基本
2、已经被Pdu模式取代,没有具体研究。2、Text模式比较简单,但是支持的设备不是很全,而且不能实现中文。AT+CGMF=1AT+CGMS=“13612344321”,129>HelloWorld!<^Z> 3、Pdu模式Pdu编码主要包括两个主要的部分,一是pdu串的整体数据格式,分别因为发送信息串和接收信息串而有区别,二是pdu中文本部分的编码,分别因为字符集而不同。我们也可以这样来理解这个pdu编码的格式,sms相当于一个协议栈,最简单的协议栈: 根据gsm03.40规范,sms协议包括以下几层:1、SM
3、-AL:应用层。这个部分就是数据部分。2、SM-TL:传输层。我们可以清楚的看到这里描述了主要的短信内容,包括发送号码,接收号码,信息类型,编码,数据报长度等等,这也是我们编程主要要面对的问题。3、SM-RL:中继层。这个指的是短信在网关之间中继需要的协议。4、SM-LL:链路层。从上述描述中我们可以清楚的看到,我们编程主要集中于传输层。 二、短信传送有三种编码:7位,8位,UniCode 1、英文7位编码这是gsm的默认编码方式由于这样的移位,我们可以看到我们能发的最多英文字符等于:140*8/7=160。2、数据8位
4、编码8-bit编码通常用于发送数据消息,比如图片和铃声等;3、中文pdu编码发送中文时,必须用UCS2(utf-16)进行编码,最多可以发140/2=70个汉字。UniCode编码转换也比较简单,以中文为例,一个中文字符是两个字节,直接对高位字节和低位字节进行十六进制转换就可以了。如“欢迎”,UniCode编码是6B228FCE,这同时也就是转换的结果,如果发送的串中有英文字符,那么在前面补全00,以保证一个字符对应两个字节。 4、PDU串的用户信息(TP-UD)段最大容量是140字节,所以在这三种编码方式下,可以发送的短消
5、息的最大字符数分别是160、140和70。这里,将一个英文字母、一个汉字和一个数据字节都视为一个字符。 三、地址编码短信发送中都会涉及到短信地址的问题,他们的编码规则是一致的,简单来说就是BCD8421码编码。如:08916808501505F0,08:地址长度,(号码类型+号码长度)/2的十六进制表示91:号码类型683108501505F0:号码,实际号码应为:+8613805515500,号码处理方法为,如果为+86开始,将+号去掉,然后判断是否为偶数,不是在末尾补F,然后将奇数位和偶数位互换 四、编码示例1、发送信息
6、的PDU串:用手机写一条短信息,发送手机号码为13605696031,信息内容为“HelloWorld!”。通过执行AT+CMGL=2可以读出此条信息。AT+CMGL=2{读未发短信息}+CMGL:1,2,,24{1表示信息个数,2表示未发信息,24表示信息总容量}0891683108501505F011000B813106656930F10000FF0BE8329BFD06DDDF723619OK下面分析这条信息:08短信息中心地址长度。(短信息中心号码类型+短信息中心号码长度/2的十六进制表示)91短信息中心号码类型,9
7、1是TON/NPI。TON/NPI遵守International/E.164标准,指在号码前需加‘+’号;此外还可有其他数值,但91最常用。683108501505F0短信息中心号码,是所使用的服务中心地址。由于位置上略有处理,实际号码应为:8613805515500(字母F意指长度减1),这是作者所在地GSM短信息中心的号码。(号码处理方法为,如果为+86开始,将+号去掉,然后判断是否为偶数,不是在末尾补F,然后将奇数位和偶数位互换)11文件头字节(headerbyte,是一种bitmask)。这里11指正常地发送短信息。
8、00信息参考号。(TP-MR)0D被叫号码长度。被叫号码长度的十六进制表示。81被叫号码类型。3106656930F1被叫号码,也经过了移位处理,实际号码为13605696031。00协议标识(TP-PID),是普通GSM类型,点到点方式00用户信息编码方式(TP-DCS),7-bit编码