`
huiqinbo
  • 浏览: 344766 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

电信项目常用到的PDU格式[回钦波祥谈]

阅读更多

PDU格式

 

 

发表者

帖子   

   

 

 

 

 

简单介绍
SMS
是由Etsi所制定的一个规范(GSM 03.40 GSM 03.38)。它可以发送最多160个字符,当使用7-bits编码的时候。8-bit编码(最多140个字符)通常无法直接通过手机显示;通常被用来作为数据消息,例如:smart messaging中的图片和铃声)和OTA WAP设置。16-bit信息(最多70个字符)被用来显示Unicode(UCS2)文本信息,可以被大多数的手机所显示。一个以class 0 开头的16-bit的文本信息将在某些手机上作为Flash SMS显示(闪烁的SMS和警告SMS)。
有两种方式来发送和接收SMS信息:使用文本模式或者使用PDU(protocol description unit) 模式。文本模式(可能某些手机不支持)实际上也是一种PDU编码的一种表现形式。在显示SMS信息,可能使用不同的字符集和不同的编码方式。最常见的选择是"PCCP437", "PCDN", "8859-1", "IRA" "GSM". 这些都通过读取应用程序的at-command中的AT+CSCS指定。如果你想阅读手机上的信息,手机会为你选择一种合适的编码。那么一个可以阅读SMS消息的应用要么使用test模式,要么是PDU模式。如果使用text模式,那么应用将绑定(或限制在)一些可能的编码选择中。在某些情况下是不够的,如果使用PDU模式,那么就可以使用任何编码方式。


--------------------------------------------------------------------------------

接收
PDU
串不仅仅 包含了消息,而且还有很多发送者的元信息,他的SMS服务中心,时间标志等等。这些都是以8位字节的16进制数,或者半8位字节的十进制数。以下的字符书我从Nokia 6110 收到的信息,当从www.mtn.co.za发送的串是"hellohello"的时候。
07 917238010010F5 040BC87238880900F100009930925161958003C16010


这个八位串包含了三个部分:第一个8位表示SMSC信息的长度("07")SMSC的信息 ("917238010010F5"),SMS_DELIVER部分(GSM 03.40中指定)

注意: 有些手机(例如:Ericssson 888?)头三个部分(被着色)在PDU模式下被省略。
8
描述
07 SMSC
信息的长度。(在这个例子里是7个八位)
91 SMSC
的地址类型 (91意味着国际格式的电话号码)
72 38 01 00 10 F5
服务中心号码(半八位的十进制数)电话号码是一个奇数(11),因此加入F来保证8位。这个服务中心的号码是"+27381000015"
04 SMS_DELIVER
的第一个8位。
0B
地址长度。发送号码的长度(0B hex = 11 dec)
C8
发送号码的地址类型
72 38 88 09 00 F1
发送号码(半八位的十进制数),有一个F结尾。
00 TP-PID.
协议标识
00 TP-DCS
编码方式
99 30 92 51 61 95 80 TP-SCTS.
时间邮戳(8)
0A TP-UDL.
用户数据长度,信息的长度。TP-DCS域表明是7-bit格式的数据。因此长度在这里是一个107-bits。如果TP-DCS被设置成8-bit或者Unicode,那么长度就应该是9个八位长度。
E8329BFD4697D9EC37 TP-UD. 7-bit
编码的信息。


所有的8位都是16进制编码,除了服务中心号码,发送号码和时间邮戳;他们都是十进制的半8位编码。在PDU串的结尾部分包含了一些16进制的8-bits数据,但他们实际7-bits数据。
十进制的半8位只需要将高位和地位交换就可以得到实际的数值。例如:"72 38 88 09 00 F1" "27 83 88 90 00 1F"。因为电话号码是一个奇数,没有办法组成8位编码,所以使用F来补齐。在解析时间邮戳的时候("99 03 29 15 16 59 08"),前6位代表日期,后6位代表时间,最后2位是时区。


--------------------------------------------------------------------------------

Flash SMS
在某些手机上(所有的Nokias,某些Siemens, Ericsson, Motorola 等等..)class 0信息将被显示为一种flash SMS信息。这些信息只要一到达,将立即显示在屏幕上,而不需要按任何按钮。如果数据的编码方式是设置成16-bit unicode (ucs2), 而且信息以"0001"开头,那么它将作为一个闪烁的flash message显示。

Octet Value Description
TP-DCS 18 16 bits (UCS2), message class 0
TP-VP AA Validity period
TP-UDL 0C User Data Length, 12 octets
TP-UD 00 01 00 41 00 6C 00 65 00 72 00 74 User Data, message "Alert"


这个表显示了Flash SMS中的相关信息。
第一个unicode字符("00 01")使能闪烁。这样的消息最长就是69unicode字符。


--------------------------------------------------------------------------------

Nokia ICON
这是一个OTA (On The Air) bitmap.
这个文件是从Nokia论坛下载而来。在"Smart Messaging"连接中。

  PDU
type 44
RP:0 (no reply path)
UDHI:1 (UD begins with a header)
SRI:0 (no status report will be returned)
MMS:1 (no more messages)
MTI:00 (SMS-deliver)
OA 0B
91
6302752852F1
length:11 digit
type: international,E.164/E.163
number: 36 20 5782251
PID 00
PDU content: short message
DCS F5
data coding: 8 bit
message class: 1
SCTS 991012
114343
40
date: 99/01/21
time: 11:34:34
timezone: GMT+1
UDL 89
137 octets
UD UDH 06
05
04
1583
1583
length of header: 6 octets
information element type: NBS port addressing
information element length: 4 octets
destination port: CLI icon
source port: CLI icon
O
T
A

b
i
t
m
a
p h
d
r 00

48
0E
01
infofield: last octet, no compression,
no palette, 8 bit, 0 animated icons
width: 72 pixel
height: 14 pixel
depth: 1 ?
i
m
a
g
e

d
a
t
a
3FF00110005B0001E8
7FF802A801A500021C
3FF80C470101000408
7FF808010081001C04
3FF008150081001304
7E10183F0058803A84
7DF030490064802C9C
7E501855002D80473C
3AD0082A8058404218
39B005010060C04930
105005BE0042203220
1A1007620046600C40
09E001BB003B900840
042000960001080EA0




--------------------------------------------------------------------------------

7Bit
编码
"hellohello"
包含了10个字符,他们必须一个个将用7-bits来代表。
h e l l o h e l l o
104 101 108 108 111 104 101 108 108 111
1101000 1100101 1101100 1101100 1101111 1101000 1100101 1101100 1101100 1101111
1101000
110010 1
11011 00
1101 100
110 1111
11 01000
1 100101
1101100
1101100
110111 1



首先将字符转换为7位的二进制,然后,将后面字符的位调用到前面,补齐前面的差别。例如:h翻译成1101000e翻译成1100101,显然h的二进制编码不足八位,那么就将e的最后一位补足到h的前面。那么就成了11101000E8)。剩余地编码看下表:

1 1101000
00 110010
100 11011
1111 1101
01000 110
100101 11
1101100 1

1 1101100
110111
E8 32 9B FD 46 97 D9
EC 37


那么就变成了9个八进制数 E8 32 9B FD 46 97 D9 EC 37


--------------------------------------------------------------------------------

错误信息
错误编码 意义
0-127 GSM 04.11 Annex E-2 values
128-255 GSM 03.40 section 9.2.3.22 values
300 Phone failure
301 SMS service of phone reserved
302 Operation not allowed
303 Operation not supported
304 Invalid PDU mode parameter
305 Invalid text mode parameter
310 SIM not inserted
311 SIM PIN necessary
312 PH-SIM PIN necessary
313 SIM failure
314 SIM busy
315 SIM wrong
320 Memory failure
321 Invalid memory index
322 Memory full
330 SMSC (message service center) address unknown
331 No network service
332 Network timeout
500 Unknown error
512 Manufacturer specific

 

分享到:
评论

相关推荐

    网页版PDU格式编码_解码

    该工具还具有将接收到的PDU数据转换回可读的短信文字的功能,这在解析和理解通过PDU格式传输的短信时非常有用。相较于某些可能在处理PDU解码时出现崩溃的问题,此工具提供了稳定且高效的解决方案。 在线PDU格式编码...

    PDU 格式参考手册

    ### PDU格式参考手册知识点详解 #### 一、绪论 **PDU格式**是用于在GSM(Global System for Mobile communications,全球移动通信系统)移动站台(MS)与短消息实体(SME)之间通过服务中心(SC)进行短消息传递的一种...

    手机 sms pdu 格式参考手册

    **手机SMS PDU格式详解** 手机短信(Short Message Service, SMS)是移动通信系统中的一种基本服务,它允许用户在移动设备之间发送和接收文本消息。在早期的2G网络中,SMS信息采用PDU(Protocol Data Unit)格式...

    AT指令发送PDU短信详解

    短信格式的编码主要是有两种一个是 text 格式的,明文不用解码一看就懂, 一个是 PDU 格式的, 国内的都是的 PDU 格式的。 以下分析的都是 PDU 格式数据包。 2.PDU 格式的数据包,发送的数据包和...

    PDU格式发送短信

    完美实现GSM模块发送中文PDU格式短信,包含常用字库

    PDU格式短消息转换源代码.rar_PDU 格式_PDU 格式 C++_PDU转换_pdu 转换_sms pdu在线转换

    PDU(Protocol Data Unit,协议数据单元)是GSM(全球系统移动通信)网络中用于短信服务(SMS)的一种编码格式。它是一种低级的数据表示方式,主要用于在短信中心(SMSC)和手机之间传输短信内容。在本文中,我们将...

    pdu格式短信编码

    PDU 格式短信编码,解码,根据需要的内容进行解码,通过MG323来进行收发信息

    PDU 编解码工具

    标题中的“PDU 编解码工具”是指用于处理PDU(Protocol Data Unit)格式的软件,这种格式常用于SMS(Short Message Service)短信服务。PDU是GSM(Global System for Mobile Communications)网络中短信数据传输的...

    短信pdu编码解码_短信_短信PDU编码_pdu_

    短信PDU解码则是上述过程的逆操作,将接收到的PDU格式的短信恢复成人类可读的文本格式。解码过程包括识别和解析PDU中的各个字段,如电话号码、短信类型、短信内容等。此外,还需要正确处理字符集和校验和,以确保...

    PDU转换工具(SMS)

    PDU模式是短信中心(SMSC)与手机之间交换短信的一种编码格式。"PDU转换工具(SMS)"是一个专门用于处理这种编码的软件应用,它使得用户能够更方便地发送和接收PDU格式的短信。 标题"‘PDU转换工具(SMS)’"表明这...

    短消息编码PDU格式解析

    这种方法收发短消息又分三种模式:BLOCK 模式、TEXT 模式和...而PDU 模式开发起来则较为复杂,它需要编写专门的函数来将文本转换为PDU 格式,但PDU 模式被所有手机支持,可以使用任何字符集,它也是手机默认的编码方式。

    PDU格式发送短信息

    PDU模式是短信服务中的原始格式,它包含了一系列二进制数据,能够被GSM网络理解并传输。在PDU模式下,短信的发送过程分为几个步骤: 1. **设置短信模式**:首先,通过AT命令`AT+CMGF=0`将短信模式设置为PDU模式。这...

    PDU格式短信生成

    中文短信需要PDU格式的进行发送,此工具为PDU短信开发工具,可生成需要的PDU代码。

    PDU短信格式及说明

    根据提供的文档信息,本文将对PDU短信格式及其在西门子模块中的应用进行详细的解析。主要内容包括:PDU的基本概念、短信格式介绍、西门子模块中的AT指令集使用方法以及具体的示例。 ### PDU基本概念 PDU全称...

    短信编码PDU生产解析工具

    在IT行业中,尤其是在移动通信和嵌入式系统领域,短信编码和PDU(Protocol Data Unit,协议数据单元)是至关重要的概念。对于初学者来说,理解这些知识点是开发GSM(Global System for Mobile Communications,全球...

    PDU短信编解码demo,c语言

    - `pdu_decode.c`:负责将接收到的PDU数据解码回文本格式。 - `pdu_utils.c`:可能包含一些辅助函数,如二进制与16进制之间的转换,以及对PDU部分的处理。 - `main.c`:主程序,提供命令行接口,允许用户输入文本...

    短信pdu 生成(源码)

    这些函数可能包括将普通文本转换为PDU编码,处理分段,以及将接收到的PDU解码回可读的文本。这些操作通常涉及对二进制数据的操作,例如位移、位掩码和位填充。 5. **API接口**:在实际开发中,开发者可能会使用如AT...

    PDU短信解析-生成工具.zip

    总的来说,PDU短信解析和生成工具是电信领域中不可或缺的辅助工具,它们简化了对PDU格式短信的处理,使得开发者和分析人员能够更方便地理解和操作短信数据。在实际工作中,这样的工具可以提高效率,减少手动解码和...

    gsm-PDU.zip_gsm pdu_pdu_pdu.c_pdu短信格式_单片机pdu短信

    在本文中,我们将深入探讨如何基于单片机控制GSM模块来发送PDU(Protocol Data Unit)格式的短信。PDU格式是GSM通信系统中用于短信服务(SMS)的一种低级编码方式,它允许数据在不同的网络节点之间传输。在单片机...

Global site tag (gtag.js) - Google Analytics