发表于:2004-03-07 16:29:00
48楼
都怪可恶的“网络天空“,我发给大家的邮件
都被拦了回来。不好意思,大家需要我就把文章贴出来。
GSM短消息收发设计文档
1、初始化
l 短消息设定为PDU格式
1) AT+CMGF=0
2) AT+CPBS="SM"
3) ATE0
l 串口直接接收短消息
1) AT+CNMI=2,2,0,0,0
2) AT+CSMP=17,167,0,"DCS"
2、短消息发送
发送短消息指令:AT+CMGS=回车 (注:length-----为TPDU的长度,<=140(8bit),ASCII码)
应答返回:> (返回大于号和空格,然后根据长度编辑PDU数据包,最后按Ctrl-Z发送PDU数据包)
应答返回:+CMGS: 6 ( 6-----发送的短消息的序列号)
(OD OA)
OK (4F 4B 0D 0A 表示发送成功)
(OD OA)
怎样编辑PDU短消息?
首先发送用PDU短消息由两大部份组成,SMS控制中心地址和TPDU数据包;SMS控制中心地址由中心地址长度、地址类型及中心地址组成。TPDU数据包由8部分组成:⑴8bit首字节 ⑵消息参考(MR) ⑶信息目的地地址(DA) ⑷协议标识符(PID) ⑸数据码的结构(DCS) ⑹有效时期编码(VP) ⑺用户数据长度(UDL) ⑻用户数据(UD)。例如:PDU短消息
0891683108100005F011030B813107112557F63204A70161
0891683108100005F0------SMS控制中心地址,其中08为SMS中心地址长度,91为地址类型,683108100005F0为中心地址值。
11030B813107112557F63204A70161--------TPDU数据包,其中:
11-------8bit首字节
03-------消息参考(MR)
0B813107112557F6-------信息目的地地址
32-------协议标识符(PID)
04-------数据码的结构(DCS),04表示8bit数据
A7------有效时期编码(VP)
01------用户数据长度(UDL<=140)(字节)
61------用户数据(UD)
3、短消息接收
+CMT: XXX 0891683108100005F0040D91683107112557F63200208051017532230141
解释:
PDU解包:PDU数据包由两大部份组成“SMS中心地址”和“TPDU数据包”。
SMS中心地址(CSCA):由中心地址长度、地址类型及中心地址组成。例如:
0891683108100005F0其中08为SMS中心地址长度,91为地址类型。
TPDU数据包:由7部分组成,⑴8bit首字节 ⑵信息源地址 ⑶协议标识符 ⑷数据码的结构 ⑸服务中心实时时间 ⑹用户数据长度 ⑺用户数据。例如:040D91683107112557F63200208051017532230141
04-------8bit首字节,04表示服务中心没有了短消息
0D91683107112557F6-------信息源地址
32-------协议标识符
00-------数据码的结构(用户数据区)
20805101753223--------服务中心实时时间
01-------用户数据长度
41------用户数据
4、大连的CSCA可能是
8613800411500 格式转换后:683108401105F0