Advertisement

关于SIM800C在PDU模式下发送短信的实践记录.txt

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


简介:
本文档详细记录了使用SIM800C模块在PDU模式下发送短信的实际操作过程与心得,涵盖配置、调试及问题解决等方面。 针对SIM800C通讯模块向10086号码发送短信及PDU编码的详细规则进行了梳理,并形成了相关学习实践笔记。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • SIM800CPDU.txt
    优质
    本文档详细记录了使用SIM800C模块在PDU模式下发送短信的实际操作过程与心得,涵盖配置、调试及问题解决等方面。 针对SIM800C通讯模块向10086号码发送短信及PDU编码的详细规则进行了梳理,并形成了相关学习实践笔记。
  • STM32SIM800C块打电话和程序
    优质
    本项目基于STM32微控制器,利用SIM800C通讯模块实现拨打电话及发送短信功能。通过编程配置,实现了与手机相同的基本通信操作,适用于物联网领域中的远程控制应用。 我只是想获取一些积分以便下载对我很重要的资料。
  • GSM PDU 中文资料
    优质
    本资料深入解析GSM PDU格式在发送和接收中文短信中的应用,涵盖编码规则、结构分析及实际案例,助力开发者与技术爱好者掌握相关知识。 GSM(全球移动通信系统)是世界上最广泛使用的移动通信标准之一,它定义了多种协议和技术,在发送和接收中文短信的过程中,PDU(协议数据单元)模式扮演着重要角色。本压缩包文件提供了关于GSM中文短信的详细资料,主要包括以下几个方面: 1. **GSM03.04**:这是第一阶段和第二阶段短消息服务(SMS)规范的一部分。它详述了SMS的信令流程、协议层次结构以及如何在GSM网络中传输文本信息。该标准规定了PDU模式下短信的编码方式,包括7位的GSM 7-bit Default Alphabet 和16位的UCS-2 编码,用于支持中文字符。 2. **GSM03.38**:此文档定义了 GSM 7-bit Default Alphabet,这是在 GSM 系统中用来编码短信的基本字符集。虽然这个字符集不包含中文字符,在处理中文短信时规定了如何将这些文字转换为16位的Unicode 编码,以便通过PDU模式传输。 3. **MC52i命令手册**:这款GSM模块的操作说明通常详细列出使用AT命令与该设备交互的方法,包括发送和接收 PDU 模式的短信。`AT+CMGS` 命令用于发送 PDU 格式的信息,并且手册中会涉及如何设置编码类型、构建PDU数据以及解析接收到的数据。 4. **MC55用户手册**:这款GSM模块的使用指南可能包含更高级的功能和API,适用于开发短信应用。在处理中文短信时了解如何配置支持Unicode 编码和 PDU 模式至关重要。 5. **SMS PDU模式文档及格式参考手册**:该文件专门解释PDU模式下的短信格式,包括其结构、头部信息、长度字段以及编码类型等细节。通过理解这些内容开发者能够正确地处理非ASCII字符(如中文)的编码和解码过程。 在实际应用中使用PDU模式发送中文短信需要执行以下步骤: 1. 将文本中的汉字转换为UCS-2 编码。 2. 计算数据部分长度,并将其添加到 PDU 的头部信息。 3. 使用适当的AT命令(如 `AT+CMGS`),设置模块的传输格式为PDU模式并发送编码后的PDU 数据包。 4. 接收端解析接收到的数据,将UCS-2 编码还原成汉字。 这些资料对于理解和实现GSM网络中的中文短信服务至关重要。无论是硬件开发、软件编程还是通信分析工作,熟悉这些内容有助于确保在 GSM 环境中正确无误地传递中文信息。
  • Java代码现GSM-PDU编解码
    优质
    本项目提供了一个Java工具包,用于实现GSM短消息PDU编码和解码功能,便于开发者在应用中发送和接收国际标准格式的短信。 在项目开发过程中使用了AT指令中的GSM短消息收发功能。由于网上大多数资源是用C或C++语言编写的代码,而我采用的是Java语言,因此决定自己编写一套基于Java的GSM-PDU模式短信编码与解码工具。 短信传输主要有三种方式:Block(已淘汰)、Text(纯文本模式,适用范围有限,不能支持中文)和PDU(手机默认使用的短信格式,可以使用任何字符集)。在PDU编码中包含两个主要部分:一是发送信息串或接收信息串的整体数据格式;二是根据不同的字符集进行文本部分的编码。PDU模式下包括三种编码方式:7bit编码(GSM系统默认)、8bit编码(通常用于传输如图片和铃声等二进制文件)以及UCS2编码(当短信内容包含中文时使用)。代码实现了在PDU模式下的7bit编码与UCS2编码这两种常用方式的数据编解码,并且能够判断信息中是否含有中文字符。
  • [29]-14 使用51单片机与SIM800C(GSM块).pdf
    优质
    本PDF文档详细介绍了如何使用51单片机和SIM800C GSM模块构建一个可以自动发送短信的系统,适用于电子工程学习及项目开发。 根据提供的文档信息,本段落将详细解析使用51单片机结合SIM800C GSM模块实现短信发送功能的关键技术和步骤。 ### 一、项目概述 本项目的目标是通过结合51单片机与SIM800C GSM模块,实现短信发送功能。这种组合非常适合应用于物联网(IoT)、安防系统、远程监控等领域。51单片机是一种广泛使用的低成本、低功耗微控制器,特别适合嵌入式系统的开发。而SIM800C则是一款支持GSM和GPRS通信的强大模块,它不仅能够发送和接收短信,还具备语音通话等功能。 ### 二、SIM800C模块详解 #### 2.1 SIM800C的特点 - **多通信方式支持**:SIM800C支持GSM、GPRS等多种通信方式,能够实现语音通话、短信收发及数据传输等功能。 - **丰富的接口**:提供了UART、SPI和I2C等多种接口,方便与其他设备通信。 - **低功耗模式**:具备低功耗模式,可有效节省电力消耗。 - **小巧的尺寸**:体积小巧,易于嵌入到各种设备中。 - **宽泛的工作温度范围**:能在较宽的温度范围内稳定工作。 #### 2.2 使用场景 - **物联网应用**:通过GPRS进行数据传输,实现远程监控、控制等功能。 - **安防系统**:用于报警系统,通过短信或语音通知用户有关安全事件的信息。 - **远程控制应用**:实现远程控制设备,如远程开关和门禁系统等。 - **移动支付终端**:与移动支付系统集成,实现移动支付功能。 #### 2.3 AT指令介绍 SIM800C通过AT指令实现通信和控制。以下是一些与短信相关的常用AT指令: - **AT+CMGF**:设置短信格式。例如,`AT+CMGF=1` 表示设置为文本模式。 - **AT+CMGS**:发送短信。需指定接收者的电话号码,并用Ctrl+Z(ASCII码为0x1A)表示短信内容结束。 - **AT+CMGR**:读取短信。可用于读取已存储在模块中的短信。 - **AT+CMGD**:删除短信。可用于删除指定索引的短信。 - **AT+CNMI**:设置新短信通知。配置模块在接收到新短信时给出通知。 ### 三、代码实现 #### 3.1 硬件配置 使用STC89C52单片机作为主控芯片。该芯片具有两个串口(UART0和UART1)、三个定时器(Timer0、Timer1和Timer2)以及32个IO口。具体配置如下: - **串口**:UART0(TXD:P0.0,RXD:P0.1),UART1(TXD:P3.1,RXD:P3.0)。 - **定时器**:可用于产生定时中断、计时等功能。 - **GPIO**:32个IO口,可配置为输入或输出。 #### 3.2 短信发送代码实现 ```c #include // 定义SIM800C的串口引脚 sbit SIM_RX = P3^0; // SIM800C的串口接收引脚 sbit SIM_TX = P3^1; // SIM800C的串口发送引脚 #define BAUDRATE 9600 // 定义发送函数 void sendATCommand(const char* command) { while (*command) { SIM_TX = *command++; while (SIM_TX); } } // 主函数 void main() { // 初始化串口 SCON = 0x50; // 设置为串行通信模式1 TMOD = 0x20; // 设置定时器1为模式2 TH1 = 0xFD; // 设置定时器1初值,9600bps TL1 = 0xFD; TR1 = 1; // 启动定时器1 TI = 1; // 清除发送中断标志位 IE = 0x90; // 开启总中断和串行口中断 sendATCommand(AT+CMGF=1); // 设置为文本模式 sendATCommand(AT+CMGS=); // 发送到指定电话号码 SIM_TX = 0x1A; // 结束符 } ``` 以上代码展示了如何使用51单片机通过SIM800C模块发送短信的基本流程
  • 如何使用AT指令操控MODEM和接收PDU
    优质
    本教程详细介绍如何通过AT命令控制MODEM设备发送与接收PDU编码短信,适合需要远程通信或批量处理短信需求的技术开发者学习。 如何使用AT指令控制MODEM发送和接收PDU格式的短信?
  • Linux使用Mini2440控制GSM
    优质
    本教程详细介绍了如何在Linux环境下配置开发板Mini2440,并通过其与GSM模块连接来实现发送短信的功能。适合电子工程和计算机科学爱好者学习。 实现mini2440通过GSM模块发送短信的基本功能。
  • PDU编码转换
    优质
    PDU编码的短信收发转换介绍了如何利用PDU(协议数据单元)格式进行手机短信的发送与接收,并详细解释了PDU编码的工作原理及其在实际应用中的重要性。 1. 将ASCII码转换为7位PDU格式。 2. 将7位、8位和16位的PDU数据转换成ASCII码。 3. 解析短信消息中的十六进制(PDU)编码。 4. 编码ASCII字符,使其成为可以发送的SMS字符串。
  • AT指令接收PDU解析
    优质
    本简介探讨了在使用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)以及这条短信