Advertisement

AT指令下长短信接收PDU格式解析

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:PDF


简介:
本简介探讨了在使用AT指令接收并处理长短信时,PDU编码数据包的解析方法与技巧,旨在帮助开发者深入理解并有效应用这一技术。 ### AT指令长短信接收PDU格式分析 #### 一、引言 随着移动通信技术的发展,短信服务已经成为人们日常生活中不可或缺的一部分。为了适应更复杂的通信需求,如发送长短信等,AT指令集提供了相应的功能来处理这些场景。本段落将重点探讨AT指令在接收超长短信时的PDU(Protocol Data Unit)格式分析,这对于实现长短信的有效接收与合并至关重要。 #### 二、基础知识回顾 在深入了解AT指令接收超长短信的具体细节之前,我们首先简要回顾一些基础知识: 1. **AT指令**:AT(Attention)指令是一种用于控制调制解调器或类似设备的标准命令集,广泛应用于移动通信领域。 2. **PDU(Protocol Data Unit)**:PDU是指在网络的不同层次上进行数据交换时所携带的数据单元,包含了特定层协议的所有信息。 3. **长短信**:由于单条短信的长度限制(通常为160字符),当需要发送的信息超过这一限制时,就需要将其分割成多条短信发送,然后在接收端进行合并处理。 #### 三、PDU格式详解 ##### 3.1 第一条短信示例 以示例中的第一条短信为例,我们可以看到其AT指令格式为: ``` AT+CMGL=4+CMGL:1,0,,160 08短息中心号码长度,除08外后面的字节数(即:91683108200705F0) 91SMSC的地址类型,91意味着国际格式的电话号码 683108200705F0服务中心的号码 64FirstOctet 0D原发手机地址长度(不包括91和补充的F) 91发送号码的地址类型,91为国际形 68310617***7F5发送号码 00PID协议标志 08DCS数据编码方法 01506090312423服务中心时间戳 8C用户数据长度 050003020201协议头 ``` ##### 3.2 第一条短信解析 - **短信中心号码**:`91683108200705F0`,其中`91`表示国际格式的电话号码,地址编码方法为先使用低位4比特,再使用高位4比特。如果号码个数为奇数,则最后一个字节的高位4比特设置为`F`。 - **FirstOctet**:`64`(01100100),该字段包含多个位标志,具体解析如下: - `TP-RP`:应答路径,此处为`0`表示未设置应答路径。 - `TP-UDHI`:用户数据头标识,此处为`1`表示用户数据开始部分包含用户头信息。 - `TP-SRI`:请求状态报告,此处为`0`表示需要报告。 - `TP-VPF`:有效期格式,此处为`00`表示不提供有效期。 - `TP-MMS`:更多信息需要发送,此处为`0`表示SMSC中没有更多信息等待MS。 - `TP-MTI`:信息类型提示,此处为`00`表示读出(Deliver)。 - **原发手机地址长度**:`0D`,表示原发手机地址的长度。 - **发送号码**:`9168310617***7F5`,其中`91`表示国际格式的电话号码,地址编码方法与SCA相同。 - **PID协议标志**:`00`,表示普通GSM类型,点到点方式。 - **DCS数据编码方法**:`08`,表示UCS2编码,等级号0。 - **服务中心时间戳**:`01506090312423`,表示短消息到达时间。 - **用户数据长度**:`8C`。 - **协议头**:`050003020201`,其中: - `05`表示剩余协议头的长度。 - `00`表示这是一个分拆短信。 - `03`表示剩下短信标识的长度。 - `02`表示这批短信的唯一标志。 - `02`表示这批短信的数量。 - `01`表示当前短信在这批短信中的位置。 ##### 3.3 第二条及后续短信 第二条及后续短信的结构与第一条相似,主要区别在于协议头中的某些字段会有所不同,例如唯一标志(XX)、这批短信的数量(MM)以及这条短信

全部评论 (0)

还没有任何评论哟~
客服
客服
  • ATPDU
    优质
    本简介探讨了在使用AT指令接收并处理长短信时,PDU编码数据包的解析方法与技巧,旨在帮助开发者深入理解并有效应用这一技术。 ### AT指令长短信接收PDU格式分析 #### 一、引言 随着移动通信技术的发展,短信服务已经成为人们日常生活中不可或缺的一部分。为了适应更复杂的通信需求,如发送长短信等,AT指令集提供了相应的功能来处理这些场景。本段落将重点探讨AT指令在接收超长短信时的PDU(Protocol Data Unit)格式分析,这对于实现长短信的有效接收与合并至关重要。 #### 二、基础知识回顾 在深入了解AT指令接收超长短信的具体细节之前,我们首先简要回顾一些基础知识: 1. **AT指令**:AT(Attention)指令是一种用于控制调制解调器或类似设备的标准命令集,广泛应用于移动通信领域。 2. **PDU(Protocol Data Unit)**:PDU是指在网络的不同层次上进行数据交换时所携带的数据单元,包含了特定层协议的所有信息。 3. **长短信**:由于单条短信的长度限制(通常为160字符),当需要发送的信息超过这一限制时,就需要将其分割成多条短信发送,然后在接收端进行合并处理。 #### 三、PDU格式详解 ##### 3.1 第一条短信示例 以示例中的第一条短信为例,我们可以看到其AT指令格式为: ``` AT+CMGL=4+CMGL:1,0,,160 08短息中心号码长度,除08外后面的字节数(即:91683108200705F0) 91SMSC的地址类型,91意味着国际格式的电话号码 683108200705F0服务中心的号码 64FirstOctet 0D原发手机地址长度(不包括91和补充的F) 91发送号码的地址类型,91为国际形 68310617***7F5发送号码 00PID协议标志 08DCS数据编码方法 01506090312423服务中心时间戳 8C用户数据长度 050003020201协议头 ``` ##### 3.2 第一条短信解析 - **短信中心号码**:`91683108200705F0`,其中`91`表示国际格式的电话号码,地址编码方法为先使用低位4比特,再使用高位4比特。如果号码个数为奇数,则最后一个字节的高位4比特设置为`F`。 - **FirstOctet**:`64`(01100100),该字段包含多个位标志,具体解析如下: - `TP-RP`:应答路径,此处为`0`表示未设置应答路径。 - `TP-UDHI`:用户数据头标识,此处为`1`表示用户数据开始部分包含用户头信息。 - `TP-SRI`:请求状态报告,此处为`0`表示需要报告。 - `TP-VPF`:有效期格式,此处为`00`表示不提供有效期。 - `TP-MMS`:更多信息需要发送,此处为`0`表示SMSC中没有更多信息等待MS。 - `TP-MTI`:信息类型提示,此处为`00`表示读出(Deliver)。 - **原发手机地址长度**:`0D`,表示原发手机地址的长度。 - **发送号码**:`9168310617***7F5`,其中`91`表示国际格式的电话号码,地址编码方法与SCA相同。 - **PID协议标志**:`00`,表示普通GSM类型,点到点方式。 - **DCS数据编码方法**:`08`,表示UCS2编码,等级号0。 - **服务中心时间戳**:`01506090312423`,表示短消息到达时间。 - **用户数据长度**:`8C`。 - **协议头**:`050003020201`,其中: - `05`表示剩余协议头的长度。 - `00`表示这是一个分拆短信。 - `03`表示剩下短信标识的长度。 - `02`表示这批短信的唯一标志。 - `02`表示这批短信的数量。 - `01`表示当前短信在这批短信中的位置。 ##### 3.3 第二条及后续短信 第二条及后续短信的结构与第一条相似,主要区别在于协议头中的某些字段会有所不同,例如唯一标志(XX)、这批短信的数量(MM)以及这条短信
  • 如何使用AT操控MODEM发送和PDU
    优质
    本教程详细介绍如何通过AT命令控制MODEM设备发送与接收PDU编码短信,适合需要远程通信或批量处理短信需求的技术开发者学习。 如何使用AT指令控制MODEM发送和接收PDU格式的短信?
  • AT发送
    优质
    本文章详细介绍了通过使用AT指令来发送短信的过程和方法,帮助读者理解并掌握相关技术。 AT指令发送短信详解:详细介绍如何使用AT指令来发送短信。
  • AT发测试工具
    优质
    AT指令短信收发测试工具是一款专为通讯开发人员设计的应用程序,通过模拟手机功能,使用AT命令轻松实现短信的发送与接收,适用于各种通信模块和设备的调试。 为GPRS模块短信信道测试,支持Text、PDU7和PDu8格式。
  • 用C语言实现PDU正常的编
    优质
    本项目使用C语言编写,专注于实现PDU(协议数据单元)格式的短消息编码与解码功能,涵盖常规短信及长短信。通过精确解析与构建PDU字符串,提供高效准确的短信处理方案。 用C语言设计PDU格式的正常短信以及长短信的编码解码方法。
  • 使用AT控制GSM猫发送和
    优质
    本教程介绍如何利用AT指令通过GSM短信模块实现自动化发送与接收短消息,适用于远程监控与数据传输等应用场景。 AT命令操作GSM短信猫收发短信,支持长短信的发送与接收,并能自动将多条短消息合并为一条完整的长短信。
  • AT
    优质
    《电信AT指令集解析》一书深入浅出地介绍了电信行业常用的AT命令及其应用,帮助读者掌握移动通信设备配置与调试技巧。 ### 电信AT指令集详解 #### 一、概述 AT指令集是用于与调制解调器或移动通信终端进行通信的一种标准指令集。中国电信针对其CDMA数据终端制定了详细的客户端软件AT命令接口规范,这份文档详细介绍了适用于中国电信CDMA数据终端的各种AT指令及其用法。这些指令涵盖了设备的基本配置、状态查询、网络连接、分组域业务处理等多个方面,为开发者提供了全面的操作指南。 #### 二、重要性及应用场景 在电信行业中,AT指令非常重要,并被广泛应用于移动通信终端如手机和数据卡等产品的开发与维护中。对于中国电信的CDMA终端而言,这些指令不仅帮助用户更好地了解和配置设备,还能协助技术人员进行故障排查和设备调试。此外,在物联网(IoT)领域,通过使用AT指令可以实现对远程设备的状态监控及控制。 #### 三、主要内容解读 该文档主要包含以下几个部分: 1. **适用范围**:定义了该文档的应用场景与目标对象。 2. **参考资料**:列出了制定文档时参考的相关标准和技术文件。 3. **缩略语**:解释文中出现的专业术语缩写。 4. **数据卡客户端软件接口概述**:描述AT指令接口的设计原则和改动准则。 5. **基本命令**:详细介绍常用的AT指令及其语法结构、接口描述及取值说明。 接下来,我们将重点解析几个重要的AT指令。 #### 四、具体AT指令解析 ##### 5.1 回显命令E - **语法结构**:`ATE[]` - **接口描述**:用于设置AT命令的回显模式。 - **取值说明**: - ``:0表示关闭回显;1表示开启回显。 - **举例说明**: - `ATE0`:关闭AT命令的回显。 - `ATE1`:开启AT命令的回显。 ##### 5.2 命令行结束符S3 - **语法结构**:`AT+S3=` - **接口描述**:用于设置AT命令的结束符。 - **取值说明**: - ``:可设为回车符或其他字符,默认为`r`(即回车)。 - **举例说明**: - `AT+S3=10`:将命令结束符设定为换行符`n`。 ##### 5.3 响应格式字符S4 - **语法结构**:`AT+S4=` - **接口描述**:用于设置ME响应的格式字符。 - **取值说明**: - ``:可设为数字、文本或其他特殊字符,如0表示默认设定。 - **举例说明**: - `AT+S4=0`:保留默认响应格式。 - `AT+S4=1`:使用特定字符作为响应格式。 ##### 5.4 退格字符S56 - **语法结构**:`AT+S56=` - **接口描述**:用于设置退格键的字符定义。 - **取值说明**: - ``:可设为默认的退格符或其他特殊符号,默认为`b`(即标准退格)。 - **举例说明**: - `AT+S56=8`:保持默认设定。 - `AT+S56=127`:将退格字符设置为删除键。 ##### 5.5 ME响应格式命令V - **语法结构**:`AT+V=` - **接口描述**:用于设置ME的响应模式。 - **取值说明**: - ``:可设为文本、数字或其他,如0表示默认设定。 - **举例说明**: - `AT+V=0`:使用默认格式进行响应。 - `AT+V=1`:采用特定字符作为ME的响应模式。 ##### 5.6 查询MS的所有ID信息I - **语法结构**:`ATI` - **接口描述**:用于查询移动设备(MS)的所有识别码信息。 - **取值说明**: - 执行此命令后,会返回IMEI、IMSI等数据。 ##### 5.7 查询支持的传输能力域+GCAP - **语法结构**:`AT+GCAP` - **接口描述**:用于查询设备当前支持的功能范围。 - **取值说明**: - 执行此命令后,会显示GSM、GPRS等网络功能的支持情况。 ##### 5.8 厂商信息查询命令+CGMI - **语法结构**:`AT+CGMI` - **接口描述**:用于获取设备的制造商名称。 - **取值说明**: - 执行此指令后,会
  • AT源码
    优质
    本项目专注于AT命令处理机制的核心代码分析,详细探讨了从接收到解析整个流程的技术细节和实现方法。 AT命令在多种场合下被广泛应用,并且是最为通用的指令之一。与通信协议特定的数据帧格式不同,解析AT命令需要逐个字符进行匹配。通常情况下,AT命令有三种状态:查询、执行和设置。本段落将介绍一种简易的方法来解析这些状态下的AT命令。
  • C# 使用串口AT进行
    优质
    本项目介绍如何使用C#编程语言通过串行端口发送AT命令,实现设备间的短信接收与发送功能。 使用C#通过串口发送AT指令可以实现短信的发送与读取等功能。首先需要连接短信模块并输入短信中心号码,然后设定通信端口及波特率。完成这些设置后就可以利用AT指令来操作了。基本的操作包括查询中心号、SIM卡号、设置新的中心号、测量信号强度以及清除显示区域等。运行环境为Visual Studio 2010。
  • AT发送及C++代码实现
    优质
    本文章详细解析了利用AT指令通过串口向手机发送短信的方法,并提供了基于C++语言的具体实现代码。 ### AT指令发送短信详解与C++程序实现 #### 引言 随着科技的进步,短信作为一项基础通信服务,在各个领域被广泛使用。然而,传统的手机发送短信方式在效率上存在局限性。为此,将手机或短信模块与PC相连,通过AT指令进行短信的发送和接收成为提高通讯效率的有效手段。本段落旨在详细介绍AT指令发送短信的原理、过程及C++程序实现方法,以帮助开发者快速掌握这一技能。 #### AT指令概述 AT指令是一种用于调制解调器或移动终端(如GSM模块)的标准命令集。在短信场景中,这些指令主要用于设置设备参数、建立连接以及进行收发操作。TC35模块作为常见的GSM/GPRS模块之一,支持通过AT指令实现二次开发。 #### 设备初始化与配置 使用AT指令前需要对设备进行初始化,并选择合适的串口通信工具包。尽管MSComm控件因其简单易用而被广泛采用,但其缺乏异步接收功能,限制了在特定场景中的应用。相比之下,串口API提供了更为灵活的控制选项,适合复杂通信需求。 #### 发送短信的两种模式:TEXT与PDU 短信发送可以通过TEXT或PDU两种模式实现。TEXT模式适用于纯英文文本的发送,操作简便;而PDU(Protocol Data Unit)模式则支持包括中文在内的各种字符编码,适用于需要传输复杂信息的情况。 - **TEXT模式**:将设备设置为TEXT模式需执行`AT+CMGF=1`指令,并等待“OK”响应。随后通过输入`AT+CMGS=电话号码`发起短信发送,之后在控制台上键入消息内容并以ASCII字符加控制符 `CTRL+Z`(ASCII码26) 结束。 - **PDU模式**:此模式下,短信文本需转换成十六进制字符串形式。设置为PDU模式的指令是`AT+CMGF=0`,之后发送流程涉及对PDU格式编码与解码操作。 #### C++程序实现 C++中针对TEXT模式短信发送可参考以下代码片段: ```cpp #include #include using namespace std; void sendTextSMS(string destAddr, string message) { string sCommand; // 设置为TEXT模式 sCommand = AT+CMGF=1; ExecCmd(sCommand); sleep(200); // 等待设备响应 // 发送短信指令 sCommand = AT+CMGS= + destAddr; ExecCmd(sCommand); cout << message << char(26); // ASCII码26表示消息结束 } int main() { string destAddr = 8613802637519; // 目标电话号码 string message = Hello, this is a test message.; // 短信内容 sendTextSMS(destAddr, message); return 0; } ``` 上述示例展示了如何使用C++实现基于TEXT模式的短信发送。需要注意的是,`ExecCmd`函数用于向设备发送AT指令,而`sleep`函数确保了设备有足够的时间处理指令并返回结果。 #### 结语 通过AT指令发送短信是实现自动化通讯的重要手段。无论是简单的TEXT模式还是支持复杂字符编码的PDU模式都能根据实际需求选择合适的方案。对于开发者而言,熟练掌握AT指令及其在C++中的应用不仅能提升工作效率还能拓展通信应用范围。