[硬件相关]PDU编码协议
木易 发表于 2007-2-8 9:04:00
PDU编码规则
目前,发送短消息常用Text和PDU(Protocol Data Unit,协议数据单元)模式。使用Text模式收发短信代码简单,实现起来十分容易,但最大的缺点是不能收发中文短信;而PDU模式不仅支持中文短信,也能发送英文短信。PDU模式收发短信可以使用3种编码:7-bit、8-bit和UCS2编码。7-bit编码用于发送普通的ASCII字符,8-bit编码通常用于发送数据消息,UCS2编码用于发送Unicode字符。一般的PDU编码由A B C D E F G H I J K L M十三项组成。
A:短信息中心地址长度,2位十六进制数(1字节)。
B:短信息中心号码类型,2位十六进制数。
C:短信息中心号码,B+C的长度将由A中的数据决定。
D:文件头字节,2位十六进制数。
E:信息类型,2位十六进制数。
F:被叫号码长度,2位十六进制数。
G:被叫号码类型,2位十六进制数,取值同B。
H:被叫号码,长度由F中的数据决定。
I:协议标识,2位十六进制数。
J:数据编码方案,2位十六进制数。
K:有效期,2位十六进制数。
L:用户数据长度,2位十六进制数。
M:用户数据,其长度由L中的数据决定。J中设定采用UCS2编码,这里是中英文的Unicode字符。
PDU编码协议简单说明
例1 发送:SMSC号码是+8613800250500,对方号码是13693092030,消息内容是“Hello!”。从手机发出的PDU串可以是
08 91 68 31 08 20 05 05 F0 11 00 0D 91 68 31 96 03 29 30 F0 00 00 00 06 C8 32 9B FD 0E 01
对照规范,具体分析:
分段 含义 说明
08 SMSC地址信息的长度 共8个八位字节(包括91)
91 SMSC地址格式(TON/NPI) 用国际格式号码(在前面加‘+’)
68 31 08 20 05 05 F0 SMSC地址 8613800250500,补‘F’凑成偶数个
11 基本参数(TP-MTI/VFP) 发送,TP-VP用相对格式
00 消息基准值(TP-MR) 0
0D 目标地址数字个数 共13个十进制数(不包括91和‘F’)
91 目标地址格式(TON/NPI) 用国际格式号码(在前面加‘+’)
68 31 96 03 29 30 F0 目标地址(TP-DA) 8613693092030,补‘F’凑成偶数个
00 协议标识(TP-PID) 是普通GSM类型,点到点方式
00 用户信息编码方式(TP-DCS) 7-bit编码
00 有效期(TP-VP) 5分钟
06 用户信息长度(TP-UDL) 实际长度6个字节
C8 32 9B FD 0E 01 用户信息(TP-UD) “Hello!”
例2 接收:SMSC号码是+8613800250500,对方号码是13693092030,消息内容是“你好!”。手机接收到的PDU串可以是
08 91 68 31 08 20 05 05 F0 84 0D 91 68 31 96 03 29 30 F0 00 08 30 30 21 80 63 54 80 06 4F 60 59 7D 00 21
对照规范,具体分析:
分段 含义 说明
08 地址信息的长度 个八位字节(包括91)
91 SMSC地址格式(TON/NPI) 用国际格式号码(在前面加‘+’)
68 31 08 20 05 05 F0 SMSC地址 8613800250500,补‘F’凑成偶数个
84 基本参数(TP-MTI/MMS/RP) 接收,无更多消息,有回复地址
0D 回复地址数字个数 共13个十进制数(不包括91和‘F’)
91 回复地址格式(TON/NPI) 用国际格式号码(在前面加‘+’)
68 31 96 03 29 30 F0 回复地址(TP-RA) 8613693092030,补‘F’凑成偶数个
00 协议标识(TP-PID) 是普通GSM类型,点到点方式
08 用户信息编码方式(TP-DCS) UCS2编码
30 30 21 80 63 54 80 时间戳(TP-SCTS) 2003-3-12 08:36:45 +8时区
06 用户信息长度(TP-UDL) 实际长度6个字节
4F 60 59 7D 00 21 用户信息(TP-UD) “你好!”
若基本参数的最高位(TP-RP)为0,则没有回复地址的三个段。从Internet上发出的短消息常常是这种情形。
注意号码和时间的表示方法,不是按正常顺序顺着来的,而且要以‘F’将奇数补成偶数。
在PDU Mode中,可以采用三种编码方式来对发送的内容进行编码,它们是7-bit、8-bit和UCS2编码。7-bit编码用于发送普通的ASCII字符,它将一串7-bit的字符(最高位为0)编码成8-bit的数据,每8个字符可“压缩”成7个;8-bit编码通常用于发送数据消息,比如图片和铃声等;而UCS2编码用于发送Unicode字符。PDU串的用户信息(TP-UD)段最大容量是140字节,所以在这三种编码方式下,可以发送的短消息的最大字符数分别是160、140和70。这里,将一个英文字母、一个汉字和一个数据字节都视为一个字符。
需要注意的是,PDU串的用户信息长度(TP-UDL),在各种编码方式下意义有所不同。7-bit编码时,指原始短消息的字符个数,而不是编码后的字节数。8-bit编码时,就是字节数。UCS2编码时,也是字节数,等于原始短消息的字符数的两倍。如果用户信息(TP-UD)中存在一个头(基本参数的TP-UDHI为1),在所有编码方式下,用户信息长度(TP-UDL)都等于头长度与编码后字节数之和。如果采用GSM 03.42所建议的压缩算法(TP-DCS的高3位为001),则该长度也是压缩编码后字节数或头长度与压缩编码后字节数之和。
分享到:
相关推荐
TC35 PDU编码助手是专为处理TC35系列GSM模块的协议数据单元(PDU)编码而设计的一款工具。在无线通信领域,尤其是GSM网络中,PDU编码是传输数据的关键环节,它涉及到如何将用户数据转换成适合网络传输的格式。这个...
总的来说,PDU编码在Java环境下的短信猫应用是一个涉及通信协议、数据转换和硬件交互的复杂主题。理解并正确处理PDU编码是确保短信服务可靠性和效率的关键。通过学习和实践,开发者可以掌握这项技术,从而在项目中...
在VB(Visual Basic)编程环境下,我们需要理解PDU编码和解码的原理来实现短信的发送和接收。 1. **PDU编码**: PDU编码是一种二进制格式,用于将短信内容转化为适合通过GSM网络传输的格式。它包括了短信的控制...
《GSMA6芯片中文PDU编码解码工具详解》 在移动通信领域,GSM(Global System for Mobile Communications,全球移动通信系统)是最早的数字蜂窝网络标准之一,广泛应用于全球。而在GSM系统中,短信服务(Short ...
标题中的“lxsh.rar_PDU编码_WAP MMS_sms c_sms c++”表明这是一个关于PDU编码、WAP(无线应用协议)、MMS(多媒体消息服务)以及使用C语言和C++实现SMS(短消息服务)的编程资源集合。描述中提到的“SMS与GPRS,MMS...
在IT行业中,PDU(Protocol Data Unit)短信解码与编码是通信协议中的一个重要概念,尤其是在GSM(Global System for Mobile Communications)系统中用于短信服务(Short Message Service, SMS)。PDU模式是短信的一...
在标题和描述中提到的“SMS.rar_CSharp sms_PDU编码_sms_sms 解码_短信 sms”涉及到的是C#编程中通过串口发送和接收短信时使用PDU(Protocol Data Unit,协议数据单元)编码和解码的技术。现在我们将深入探讨这些...
【短信猫开发之短信PDU编码格式】是一个与通信技术相关的主题,主要涉及的是如何使用短信猫设备进行短信通信,并且焦点在于理解短信的PDU(Protocol Data Unit)编码格式。PDU编码是GSM(Global System for Mobile ...
GSM(Global System for Mobile Communications)是全球最广泛使用的移动通信标准之一,它定义了多种通信协议和技术,其中PDU(Protocol Data Unit)模式在发送和接收中文短信时扮演着重要角色。本压缩包文件提供了...
5. **程序开发**:在VB.NET中实现PDU编解码,可能需要创建类或模块,定义方法来处理PDU编码和解码。这可能包括读取短信猫接收到的PDU数据,将其解码为字符串,以及将待发送的字符串编码为PDU格式。 6. **错误处理**...
总的来说,理解和实现短信的PDU编码和解码是开发基于短信的应用的关键步骤,特别是在需要与硬件设备如GSM模块交互时。通过C语言实现7位编码和解码,开发者可以更好地控制和处理短信数据,从而确保有效、准确地传递...
总的来说,这个项目涉及到了嵌入式系统、单片机编程、GSM通信协议和PDU编码,是物联网应用中常见的技术组合,特别是对于那些需要远程监控或控制的设备,例如智能家居、远程数据采集系统等。通过这样的程序,单片机...
本工具的核心功能是通过编程接口(API)与GSM短信猫交互,利用其提供的串行通信能力来发送PDU编码的短信。GSM短信猫是一种硬件设备,通过USB或串口连接到计算机,模拟手机的短信功能,允许开发者通过编程控制短信的...
标题中的"send_pdu_by_serial.zip"表明这是一个关于通过串行通信发送PDU编码的程序包。这个程序包可能包含了使用Python编程语言实现的功能,目的是在理解PDU编码的基础上,通过AT命令与调制解调器(modem)交互,...
总的来说,通过Keil和AT89C52单片机实现PDU短信发送涉及到硬件接口设计、串行通信协议、PDU编码规则以及错误处理等多个方面的知识。这需要开发者具备扎实的单片机编程基础,熟悉GSM模块的操作,以及对PDU格式的理解...
在IT行业中,PDU(Protocol Data Unit)是通信协议中的一个重要概念,特别是在处理短信服务(SMS)时。...这需要开发者具备深厚的通信协议知识,熟练掌握相关编程技术,并能应对低级别硬件层面的挑战。
本资源提供的“短信猫源码(含PDU编解码)”是一个C++开发的项目,它涵盖了短信猫的核心功能,包括短信的发送和接收,以及PDU(Protocol Data Unit)编码和解码。 PDU是GSM通信协议中的一个重要概念,它是SMS消息在...
在PDU模式下,需要提供一个PDU编码的短信内容。 5. **AT+CMGL**:读取短信存储器中的短信,可以按不同的条件筛选。 PDU模式在短信服务中扮演着重要角色。在PDU模式下,短信被编码成二进制数据,包括了短信中心号码...
总之,《手机SMS PDU格式参考手册》是一个深入探讨PDU模式短信通信的实用指南,对于开发与短信服务相关的软件或硬件项目非常有价值。通过学习手册中的内容,读者可以理解短信在底层网络层如何传输,从而更有效地进行...
1. **SMS协议**:包括GSM 03.40(SMS协议规范)和GSM 07.05(SMS-PDU编码规则)。 2. **串口配置**:设置波特率、数据位、停止位、校验位等参数以适应GSM模块的要求。 3. **PDU编码**:学习如何将文本转换为PDU格式...