GSM模块短信应用指导和实践分析(PDU格式)
2017-04-24 09:48
387 查看
第一部分PDU 格式
0891683108200105F011000B813119169083F80000A806C9363C3CA603
以上是一个SUBMIT-PDU 发出例子分析内容如下
收到的DELIVER-PDU
一、SCA服务中心号码
长度08即SCA区去除08外后面的字节数单位是字节如上91683108200105F0共8字节但是当长度值为00时后面SCA区将只有00后面的号码类型和地址都不存在发送短消息时从SIM卡读出SCA号码此号码要用at+csca=xxxxx设定
Tosca服务中心号发类型91为国际型81为未知类型号码A1为国内型一般为国际型
Address地址每个字节先用低位4bit后用4-7bit如果号码个数为奇数个最后一个字节的4-7bit全部设置为1即FxH如号码1234567,变化好以后就是21 43 65 F7”;
二、FO信息第一字节
收到的PDU,典型为04H
发送的PDU,典型为11H
MTI 2bit消息类型00收01发其余值参考SMS with the M20文档P.22
MMS 1bit短消息服务中心是否有更多短消息等待移动台1有0无默认为1
SRI 1bit状态报告标示0不需要状态返回到移动设备1需要默认为0
UDHI 1bit用户数据头标示0用户数据没有头信息1有一般为0
RP 1bit是否有回复路径的标示1有0没有一般为0
VPF 2bit有效期限格式00 VP不存在10 VP区存在用一个字节表示是相对值01 保留11 存在半个字节表示绝对值
RD 1bit重复信元丢弃0通知服务中心碰到同源同目的地同样的MR短消息序号的短消息接受1抛弃此时将在短消息提交报告中返回一个适当的FCS值
SRR 1bit状态报告要求.
三、MR短消息参考
1个字节表示移动台向短消息服务中心提交的短消息序号从0到255一般移动模块会自动改动所以默认为00
四、OA短消息原发手机地址
Length为地址的数字个数
Toda地址类型91为国际型81为国内型
Address地址编码方法与SCA同一个字节先用低4bit奇数个号码最后一位高四位设为F.
五、DA目的手机地址
短消息目的地址参考OA
六、PID协议标志
是短消息传输层作为高层协议参考或者是远程设备协同工作的标示需要服务商支持但是00H是所有服务商都支持的建议采用00H即可
七、DCS数据编码方法
表示数据编码方法和消息类别一般为00H默认7位编码等级号0。04为8位编码。
UCS2编码0等级为08H可以传输中文。
具体如下:
其余情况暂不讨论
Class0短消息直接显示到用户终端
Class1短消息存储在SIM卡上
Class2短消息必须存储在SIM卡上禁止直接传输到中断
Class3短消息存贮在用户设备上
八、SCTS服务中心时间戳
告诉目标用户短消息到达时间为7个字节表示
表示01年4月23号12点49分38秒时区表示本地时间和格林尼治标准时间差。
九、VP 合法时间
标示短消息服务中心在接到短消息后在没有发到目标机前可以保证短消息存在的时间其格式在FO中的VPF中设定一般是相对值10B这时时间如下:
如果是绝对时间即VPF=11B则VP区和SCTS同.
十、UDL用户数据长度
1 如果用户用默认7位编码
1>没有用户数据头此数字标示7bit的字符个数
2>有用户数据头此数字表示包括用户数据头包含补丁在内在内的7bit个数
2 如果用户用8位编码
表示用户数据区的字节数有数据头信息包括在内
3 如果为UCS2编码则是用户数据区的字节数
十一、UD用户数据
1 如果是7bit编码则从前向后每个字节从低到高位使用最后不足的一个字节的各位全部用0补全最多可以有160个字符例子如下
设一个字母为x,它的编码的17bit分别为x1x7,如8个字母分别为ABCDEFGH,则编码如下
2 如果是8bit编码很简单最多140个字符
3 如果是UCS2编码则最多是70个字符也比较简单
更加详细的内容请参考《Quectel_GSM模块短消息应用指导_V1.1.pdf》
接收短信实践性分析:
1.没有短信中心号码
2.发送的号码为18194080973
3.发送时间为2017.04.24.08.38.36
4.7bit字符编码
5.短信内容为12345678
[align=left]00000B818191040879F30000714042808363000831D98C56B3DD70
[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]1. 00:没有短信中心号码[/align]
[align=left]2. 00: FO:第一个8位字节[/align]
[align=left]3. 0B :未知格式[/align]
[align=left]818191040879F3:发送的号码
[/align]
[align=left]编码格式:[/align]
[align=left]
[/align]
[align=left]4.00 PID[/align]
5.00 DCS
6.71404280836300
SCTS时间戳
7.发送的数据长度:08 UDL
8.UL:用户数据 31D98C56B3DD70
编码格式如下:
发送短信实践性分析:
示例:
发送“Hello” 到
+8618194080973
0891683108200105F011000B813119169083F80000A806C9363C3CA603
以上是一个SUBMIT-PDU 发出例子分析内容如下
[align=center]08[/align] | [align=center]91[/align] | [align=center]68 31 08[/align] [align=center]20 01 05[/align] [align=center]F0[/align] | [align=center]11[/align] | [align=center]00[/align] | [align=center]0B[/align] | [align=center]81[/align] | [align=center]31 19 16[/align] [align=center]90 83 F8[/align] | [align=center]00[/align] | [align=center]00[/align] | [align=center]A8[/align] | [align=center]06[/align] | [align=center]C9363C3CA603[/align] |
[align=center]Length[/align] | [align=center]Tosca[/align] | [align=center]Address[/align] | [align=center]FO(PDU第一个字节)[/align] | [align=center]MR(消息参考号码)[/align] | [align=center]Length[/align] | [align=center]Toda[/align] | [align=center]address[/align] | [align=center]PID[/align] | [align=center]DSC[/align] | [align=center]VP[/align] | [align=center]UDL[/align] | [align=center]UD[/align] |
[align=center]SCA(服务中心号码)[/align] | [align=center]DA(目标地址)[/align] | [align=center]协议标示[/align] | [align=center]数据编码标准[/align] | [align=center]允许时间[/align] | [align=center]用户数据长度[/align] | [align=center]用户数据[/align] | ||||||
[align=center]1-12个字节[/align] | [align=center]1字节[/align] | [align=center]1字节[/align] | [align=center]2-12个字节[/align] | [align=center]1字节[/align] | [align=center]1字节[/align] | [align=center]1字节[/align] | [align=center]1字节[/align] | [align=center]0-140字节[/align] |
收到的DELIVER-PDU
[align=center]SCA[/align] | [align=center]FO[/align] | [align=center]OA[/align] | [align=center]PID[/align] | [align=center]DCS[/align] | [align=center]SCTS[/align] | [align=center]UDL[/align] | [align=center]UD[/align] |
[align=center]服务中心号码[/align] | [align=center]第一字节[/align] | [align=center]原地址[/align] | [align=center]协议表示[/align] | [align=center]编码标准[/align] | [align=center]服务中心时间戳[/align] | [align=center]用户数据长度[/align] | [align=center]用户数据[/align] |
一、SCA服务中心号码
[align=center]08[/align] | [align=center]91[/align] | [align=center]68 31 08 20 01 05 F0[/align] |
[align=center]Length(长度)[/align] | [align=center]Tosca(服务中心号码类型)[/align] | [align=center]Address(地址)[/align] |
[align=center]SCA服务中心号码[/align] |
长度08即SCA区去除08外后面的字节数单位是字节如上91683108200105F0共8字节但是当长度值为00时后面SCA区将只有00后面的号码类型和地址都不存在发送短消息时从SIM卡读出SCA号码此号码要用at+csca=xxxxx设定
Tosca服务中心号发类型91为国际型81为未知类型号码A1为国内型一般为国际型
Address地址每个字节先用低位4bit后用4-7bit如果号码个数为奇数个最后一个字节的4-7bit全部设置为1即FxH如号码1234567,变化好以后就是21 43 65 F7”;
二、FO信息第一字节
收到的PDU,典型为04H
[align=center]BIT[/align] | [align=center]7[/align] | [align=center]6[/align] | [align=center]5[/align] | [align=center]4[/align] | [align=center]3[/align] | [align=center]2[/align] | [align=center]1[/align] | [align=center]0[/align] |
[align=center]参数[/align] | [align=center]RP[/align] | [align=center]UDHI[/align] | [align=center]SRI[/align] | [align=center]-[/align] | [align=center]-[/align] | [align=center]MMS[/align] | [align=center]MTI[/align] | [align=center]MTI[/align] |
发送的PDU,典型为11H
[align=center]BIT[/align] | [align=center]7[/align] | [align=center]6[/align] | [align=center]5[/align] | [align=center]4[/align] | [align=center]3[/align] | [align=center]2[/align] | [align=center]1[/align] | [align=center]0[/align] |
[align=center]参数[/align] | [align=center]RP[/align] | [align=center]UDHI[/align] | [align=center]SRR[/align] | [align=center]VPF[/align] | [align=center]VPF[/align] | [align=center]RD[/align] | [align=center]MTI[/align] | [align=center]MTI[/align] |
MTI 2bit消息类型00收01发其余值参考SMS with the M20文档P.22
MMS 1bit短消息服务中心是否有更多短消息等待移动台1有0无默认为1
SRI 1bit状态报告标示0不需要状态返回到移动设备1需要默认为0
UDHI 1bit用户数据头标示0用户数据没有头信息1有一般为0
RP 1bit是否有回复路径的标示1有0没有一般为0
VPF 2bit有效期限格式00 VP不存在10 VP区存在用一个字节表示是相对值01 保留11 存在半个字节表示绝对值
RD 1bit重复信元丢弃0通知服务中心碰到同源同目的地同样的MR短消息序号的短消息接受1抛弃此时将在短消息提交报告中返回一个适当的FCS值
SRR 1bit状态报告要求.
三、MR短消息参考
1个字节表示移动台向短消息服务中心提交的短消息序号从0到255一般移动模块会自动改动所以默认为00
四、OA短消息原发手机地址
[align=center]OB[/align] | [align=center]81[/align] | [align=center]31 19 16 90 83 F8[/align] |
[align=center]Length(长度)[/align] | [align=center]Toda(地址类型)[/align] | [align=center]Address(地址)[/align] |
[align=center]DA(目标地址)[/align] | ||
[align=center]2-12字节[/align] |
Toda地址类型91为国际型81为国内型
Address地址编码方法与SCA同一个字节先用低4bit奇数个号码最后一位高四位设为F.
五、DA目的手机地址
短消息目的地址参考OA
六、PID协议标志
是短消息传输层作为高层协议参考或者是远程设备协同工作的标示需要服务商支持但是00H是所有服务商都支持的建议采用00H即可
七、DCS数据编码方法
表示数据编码方法和消息类别一般为00H默认7位编码等级号0。04为8位编码。
UCS2编码0等级为08H可以传输中文。
[align=center]7[/align] | [align=center]6[/align] | [align=center]5[/align] | [align=center]4[/align] | [align=center]3[/align] | [align=center]2[/align] | [align=center]1[/align] | [align=center]0[/align] |
[align=center]编码组[/align] | [align=center]保留[/align] | [align=center]X[/align] | [align=center]X[/align] | [align=center]X[/align] |
编码组bit7-4 | Bit3-0 |
[align=center]OOXX[/align] | [align=left]BIT5:0文本未压缩1用GSM标准压缩[/align] Bit4:0表示bit1,0是保留没有消息类别1表示有 [align=left]Bit1 Bit0 消息类别[/align] [align=left]0 0 Class0[/align] [align=left]0 1 Class1[/align] [align=left]1 0 Class2[/align] [align=left]1 1 Class3[/align] [align=left]Bit3 Bit2 字母表[/align] [align=left]0 0 默认字母表[/align] [align=left]0 1 8bit数据[/align] [align=left]1 0 UCS2编码[/align] 1 1 保留 |
Class0短消息直接显示到用户终端
Class1短消息存储在SIM卡上
Class2短消息必须存储在SIM卡上禁止直接传输到中断
Class3短消息存贮在用户设备上
八、SCTS服务中心时间戳
告诉目标用户短消息到达时间为7个字节表示
Year | Month | Day | Hour | Minute | Second | Time Zone |
10 | 40 | 32 | 21 | 94 | 83 | 00 |
九、VP 合法时间
标示短消息服务中心在接到短消息后在没有发到目标机前可以保证短消息存在的时间其格式在FO中的VPF中设定一般是相对值10B这时时间如下:
[align=center]VP值,16进制[/align] | [align=center]相对合法时间[/align] |
[align=center]00-8F[/align] | [align=center](VP+1)*5分[/align] |
[align=center]90-A7[/align] | [align=center]12小时+(VP-143)*30分钟[/align] |
[align=center]A8-C4[/align] | [align=center](VP-166)*1天[/align] |
[align=center]C5-FF[/align] | [align=center](VP-192)*1周[/align] |
十、UDL用户数据长度
1 如果用户用默认7位编码
1>没有用户数据头此数字标示7bit的字符个数
2>有用户数据头此数字表示包括用户数据头包含补丁在内在内的7bit个数
2 如果用户用8位编码
表示用户数据区的字节数有数据头信息包括在内
3 如果为UCS2编码则是用户数据区的字节数
十一、UD用户数据
1 如果是7bit编码则从前向后每个字节从低到高位使用最后不足的一个字节的各位全部用0补全最多可以有160个字符例子如下
设一个字母为x,它的编码的17bit分别为x1x7,如8个字母分别为ABCDEFGH,则编码如下
[align=center]B1[/align] | [align=center]A7[/align] | [align=center]A6[/align] | [align=center]A5[/align] | [align=center]A4[/align] | [align=center]A3[/align] | [align=center]A2[/align] | [align=center]A1[/align] |
[align=center]C2[/align] | [align=center]C1[/align] | [align=center]B7[/align] | [align=center]B6[/align] | [align=center]B5[/align] | [align=center]B4[/align] | [align=center]B3[/align] | [align=center]B2[/align] |
[align=center]D3[/align] | [align=center]D2[/align] | [align=center]D1[/align] | [align=center]C7[/align] | [align=center]C6[/align] | [align=center]C5[/align] | [align=center]C4[/align] | [align=center]C3[/align] |
[align=center]E4[/align] | [align=center]E3[/align] | [align=center]E2[/align] | [align=center]E1[/align] | [align=center]D7[/align] | [align=center]D6[/align] | [align=center]D5[/align] | [align=center]D4[/align] |
[align=center]F5[/align] | [align=center]F4[/align] | [align=center]F3[/align] | [align=center]F2[/align] | [align=center]F1[/align] | [align=center]E7[/align] | [align=center]E6[/align] | [align=center]E5[/align] |
[align=center]G6[/align] | [align=center]G5[/align] | [align=center]G4[/align] | [align=center]G3[/align] | [align=center]G2[/align] | [align=center]G1[/align] | [align=center]F7[/align] | [align=center]F6[/align] |
[align=center]H7[/align] | [align=center]H6[/align] | [align=center]H5[/align] | [align=center]H4[/align] | [align=center]H3[/align] | [align=center]H2[/align] | [align=center]H1[/align] | [align=center]G7[/align] |
2 如果是8bit编码很简单最多140个字符
3 如果是UCS2编码则最多是70个字符也比较简单
更加详细的内容请参考《Quectel_GSM模块短消息应用指导_V1.1.pdf》
接收短信实践性分析:
1.没有短信中心号码
2.发送的号码为18194080973
3.发送时间为2017.04.24.08.38.36
4.7bit字符编码
5.短信内容为12345678
[align=left]00000B818191040879F30000714042808363000831D98C56B3DD70
[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]1. 00:没有短信中心号码[/align]
[align=left]2. 00: FO:第一个8位字节[/align]
[align=left]3. 0B :未知格式[/align]
[align=left]818191040879F3:发送的号码
[/align]
[align=left]编码格式:[/align]
[align=left]
[/align]
[align=left]4.00 PID[/align]
5.00 DCS
6.71404280836300
SCTS时间戳
7.发送的数据长度:08 UDL
8.UL:用户数据 31D98C56B3DD70
编码格式如下:
0011000D91683197453038F400000105C8329 BFD06 |
示例:
发送“Hello” 到
+8618194080973
发送端: +8613651979176 | 接收端: +8618194080973 |
//步骤 1:核对短消息服务中心号 AT+CSCS=“GSM” //设置 TE 字符集为 “GSM” OK AT+CSCA? //查询短消息中心号。对上海的中国 移动, 短消息中心号为 "+8613800210500"。如果这个号码 错误, 短消息可能发送失败,那么 用命令AT+CSCA=<sca> 设置正确 的短消息中心号,并用AT+CSAS保 存设置。 +CSCA: "+8613800210500",145 OK | //步骤 1:核对短消息服务中心号 AT+CSCS="GSM" OK AT+CSCA? +CSCA: "+8613800210500",145 OK |
//步骤 2:设置 PDU 模式 AT+CMGF=0 //设置PDU模式 OK | //步骤 2: 设置 PDU 模式和接收短消息的参 数 AT+CMGF=0 //设置PDU模式 OK AT+CNMI=2,1,0,0,0 //设置新短消息到达时的提示参 数。第二个参数设成1,获取+CMTI 提示。 OK AT+CPMS? //核对短消息存储空间是否已满, 如果已满,用+CMGD或+QMGDA 删除短消息。 +CPMS: "SM",1,50,"SM",1,50,"SM",1,50 OK |
//步骤 3:发送短消息 AT+CMGS=20 > 0011000D91688191040879F300000105C8329BFD06 BFD06 <Ctrl+Z> |
相关文章推荐
- GSM模块发PDU格式短信目标手机接收不到,怎么回事?
- PDU短信发送与接收格式分析
- SMS,EMS PDU Code Decoder 短信PDU格式解码器
- PDU(短信)收发格式对比
- 母函数应用的实践(分析算法的时间复杂度)
- Quest JProbe最佳实践指南--------分析Weblogic J2EE应用性能
- 短信猫软件的实现(C#)<四>PDU格式编码C#实现(转)
- SMS,EMS PDU Code Decoder 短信PDU格式解码器
- C#:PDU格式短信编解码(三)编码部分
- 短信猫软件的实现(C#)<五>PDU格式解码C#实现
- 短信猫软件的实现(C#)<四>PDU格式编码C#实现
- C#:PDU格式短信编解码(一)解码部分
- PDU格式中文短信的发送与接收
- PDU格式发送短信(简单有效)
- 三维GIS分析与操作功能的应用实践
- 短信编码PDU格式解析
- PDU数据格式分析
- .net平台手机管理软件开发(9)—— 短信部分之PDU简介及其格式
- 转 用solr搭建中文搜索应用(使用了MMAnalyzer, 指导实践不错的文章)
- 彩信的通知短信PDU数据分析