使用TC35的AT 命令收发短信息(芯片应用)

本文详细介绍如何使用TC35模块通过AT命令收发短信,包括设置短信模式、发送不同编码类型的短信、接收和解析PDU模式短信、以及短信的删除等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 介绍:
  需要说明的是TC35 具有自动识别串行接口速率的能力,但要求速率范围在1200Bps至115200Bps 之间,并且设置为8Bit 数据,无校验,1 位停止位

二、AT 命令形式及返回形式

1. 在TC35 所支持命令集中根据命令名称可简单分为:
 “ATxx”及少量”AT+xxx”为V.25 标准命令集;
  ”AT+Cxxx”为GSM 标准所扩展的AT 命令;
  “AT^Sxxx”为SIEMENS 定义扩展的AT 命令。另外,
2. 命令形式:
 ”AT+Cxxx=?”为测试命令(Test Command),执行此种命令将返回此命令所支持的参数及参数范围;
 “AT+Cxxx?”为读命令(Read Command),执行此种命令将返回此命令当前的参数值;
  “AT+Cxxx=<…>”为写命令(Write Command),执行此种命令将设置此命令的参数值;
 “AT+Cxxx”为无参数的执行命令(Execution Command)。
3. 命令的返回形式:
<CR><LF>Response<CR><LF>
在本文数据实录中未将<CR><LF>显式地打印出来,但切记TC35 回送时含有这些
字符,这对于编写程序来比对TC35 回送值以确定TC35 工作是否正常非常重要。
在本文中:
<CR> 代表ASCII 中回车字符,值为0x0D;
<LF> 代表ASCII 中换行字符,值为0x0A;
<SP> 代表ASCII 中空格字符,值为0x20;
<CTRL+Z> 代表ASCII 中文件结束字符,值为0x1A;
所有TC35 回送的字符以下画线表示,所有上位机发送给TC35 的字符以正常字符表示。

三、准备工作:
    使用TC35 收发短信息,用户必须准备一张已开通短信息服务SIM 卡,并将其插入MC2002 之TC35 扩展模块SIM 卡座中或TC35T 的SIM 卡座中。
使用PC 配合TC35T 收发短信,用户需开启TC35T 电源,通过串行数据线联接到PC 机,并在PC 端安装串口读写软件,如超级终端,Telix 等。通过终端软件发送AT 命令,察看返回数据。
使用MC2002GSM 模块TC35 时,用户需通过编程选用MODEM 端口,TC35 将自动上电再通过编程发送AT 命令和处理返回数据。MC2002 在关闭TC35 电源前,首先要向其发送AT^SMSO”命令,并确认返回为“OK”或0 (即中断与TC35 网络连接) 后,才可关闭MODEM端口。

四、使用AT 命令实现收发短信

1. 收发短信及相关操作AT 命令
ATZ 软复位;
ATE 本地回线设置;
ATV 设置返回结果码形式;
AT+CMEE 错误报告设置;
AT+CSCA 短消息中心地址;
AT+CMGR 读短消息;
AT+CMGS 发送短消息;
AT+CMGC 发出一条短消息命令;
AT+CMGL 列出SIM 卡中的短消息;
AT+CMGF 选择短消息信息格式:0 PDU,1 文本;
AT+CSCS 设置字符集;
AT+CSMP 设置短消息文本模式参数;
AT+CMGW 向SIM 内存中写入待发的短消息;
AT+CMNI 显示新收到的短消息;
AT+CMGD 删除SIM 卡内存的短消息;
AT+CPBR 读取当前电话本信息;
AT+CSQ 检查信号质量;
AT^SMSO 中断网络连接。

TC35 提供Text 和PDU(Protocol Data Unit)两种模式来处理短信,
在Text 模式下可进行GSM 字符集与8Bit 数据的收﹑发等操作,但不支持中文或UCS2 字符集字符的收发操作;
在PDU 模式下可支持上述所有操作,但需要理解收发PDU 数据格式。在Text 模式与PDU 模式下,上述命令使用方法会有所不同。详细的内容请参阅相关资料。

2. 发送短信实例
SMS 是由ETSI 所制定的一个规范(GSM 03.40 和 GSM 04.11),规定当使用7Bits编码(GSM 字符集)时最多可以发送160 个字符;当使用8Bit 编码(数据消息,如:铃音、图片) 时最多可以发送140 个字符(通常无法直接通过手机显示);当使用16Bit 编码 (UCS2)时最多可以发送70 个字符,用来显示Unicode 文本信息,可以被大多数的手机所显示。实

例:
(1)发送英文短信
AT+CMGF=1 设置为Text 模式
AT+CSMP=17,167,0,0 设置Text 模式参数。最后一个参数是数据编码类型(DCS—Data Coding Scheme),0 表示默认字符集(GSM).
AT+CSCS=GSM 设置为GSM 字符集
AT+CMGS 输入对方电话号码
><SP>为TC35 提示,”TEST LINE!”短信息内容,<Ctrl+Z>表示结束.

数据实录:

AT<CR>
OK
AT+CMGF=1<CR>
OK
AT+CSMP=17,167,0,0<CR>
OK
AT+CSCS=GSM<CR>
OK
AT+CMGS=13699809470<CR>
><SP>TEST LINE!<CTRL+Z>
+CMGS: 86
OK

(2)发送8Bit 数据
AT+CMGF=1 设置为Text 模式
AT+CSCS=GSM 设置为GSM 字符集
AT+CSMP==17,167,0,4 设置Text 模式参数。最后一个参数是数据编码类型
(DCS—Data Coding Scheme), 4 表示8Bit 数据.
AT+CMGS 输入对方电话号码
><SP>为TC35 提示,”3534454345STD6456576”短信息内容,<Ctrl+Z>表示
结束.

数据实录:
AT<CR>
OK
AT+CMGF=1<CR>
OK
AT+CSCS=GSM<CR>
OK
AT+CSMP=17,167,0,4<CR>
OK
AT+CMGS=13699809470<CR>
><SP>3534454345STD6456576<CTRL+Z>.
+CMGS: 88
OK

(3)发送Unicode 编码字符串
AT+CMGF=0 设置为PDU 模式
AT+CSCS=GSM 设置为GSM 字符集.
AT+CSMP=17,167,0,8 设置模式参数。最后一个参数是数据编码类型
(DCS—Data Coding Scheme),8 表示Unicode 编码。.
AT+CMGS=22 输入 PDU 长度
><SP>为TC35 提示,
“0011000B913196899074F00008AA0862116210529F4E86”为PDU 内容,
<Ctrl+Z>表示结束.其中,“62116210529F4E86”为“我成功了”中文字符
串的Unicode.

数据实录:
AT<CR>
OK
AT+CMGF=0<CR>
OK
AT+CSCS=GSM<CR>
OK
AT+CSMP=17,167,0,8
OK
AT+CMGS=22<CR>
><SP>0011000B913196899074F00008AA0862116210529F4E86<CTRL+Z>
//PDU 内容
+CMGS: 89
OK

3. 接收短信实例

(1) 接收英文短信
AT+CMGF=1 设置为Text 模式
AT+CSCS=GSM 设置为GSM 字符集. .
AT+CMGL=ALL 列出所有短信息
请注意其中第一条及第三条为中文短信,它们在Text 模式下无法显示出正确的内
容,只能列出其中的英文字符; +CMGL 后的数字(如1)表示记录号,"REC
READ"表示已读,(未读为"REC UNREAD"),"+8613699809470"表示发方
号码,"02/05/19,22:17:31+00"表示时间邮截。
AT+CMGL=UNREAD 可以列出所有未读短信息,注意:未读短信一旦列出一次即变
为已读短信

数据实录:
AT<CR>
OK
AT+CMGF=1<CR>
OK
AT+CSCS=GSM<CR>
OK
AT+CMGL=ALL<CR>
+CMGL: 1,"REC READ","+8613699809470",,"02/05/19,22:17:31+00"


+CMGL: 7,"REC READ","+8613902909595",,"02/05/17,16:23:31+00"
1234567890ABC
+CMGL: 10,"REC READ","+8613902909595",,"02/05/17,16:41:19+00"
1234567890ABC
OK
(2) 接收中文短信
AT+CMGF=0<CR> 设置为PDU 模式
AT+CMGL=4<CR> 列出所有短信息
+CMGL 后的首个数字(如7)表示记录号;第二个数字表示短信状态(0—未读短信;
1—已读短信);其后一个数字(如28)表示PDU 长度,最后为该条短信的PDU
数据。

数据实录:
AT<CR>
OK
AT+CMGF=0<CR>
OK
AT+CMGL=4<CR>
+CMGL: 1,1,,28
0891683108705505F0040D91683196899074F0000820509122711300085
3D17ED981EA5DF1
+CMGL: 7,1,,32
0891683108705505F0240D91683109929095F50000205071613213000D3
1D98C56B3DD703958503804
+CMGL: 10,1,,50
0891683108705505F0240D91683109929095F50008205071611491001E0
0310032003300340035003600370038003900300041004200438FD84E2A
OK
4. 删除短信实例
接收的SMS 存储在SIM 卡中,如不及时删除则在SIM 卡存储满后无法接收新的短信,建议用户将短信列出/读回并转存储在上位机(MC2002 或PC)后,及时将TC35 中内容删除。删除的命令为:AT+CMGD=<index> .其中,index 为记录号.要说明的是即使在index
处无记录,此命令也会返回OK.

数据实录:
AT<CR>
OK
AT+CMGD=1
OK


五、收发PDU 的数据格式

PDU 串不仅仅 包含了短消息内容,而且还包含其它信息,如:发送者的信息﹑短信中心址﹑时间标志等等。这些都是以8 位字节的16 进制数或者半8 位字节的十进制数下的字符。

1. 收PDU 的数据格式
在这里给出一个例子:接收到源地址为“13677328099”发来的内容为“Hi”的PDU,其数据为:08 91 683108701305F0 00 0D 91 683109929095F5 00 002050716132130002 C834

下面进行详细分析:
(1)08—短信息中心地址字节长度。
指(91)+(683108701305F0)的长度,两个数字计为一个字节长度;
(2)91— 短信息中心号码类型(Type of Number) 。
91 是TON/NPI 遵守International/E.164 标准,指在号码前需加‘+’号.此______外还有其它数值,但91 最常用;
(3)683108701305F0—短信息中心号码,
注意其每两位是位置颠倒的。实际号码应为:8613800731500.由于电话号码位奇数(11), 因此加入F 来保证8 位;(1)、(2)、(3)通称短消息中心地址(Address of the SMSC)。
(4)00—SMS_DELIVER 的第一个8 位;
(5)0D—发送方号码长度;
(6)91—发送方号码类型(同2);
(7)683109929095F5— 发送方号码,
经过了位移处理, 实际号码为“8613902909595”;
(6)、(7)、(8)通称目的地址(TP-Destination-Address);
(8)00—协议标识TP-PID(TP-Protocol-Identifier);
(9)00—数据编码方案TP-DCS(TP-Data-Coding-Scheme)
Bit No.7 与Bit No.6 :一般设置为00;
Bit No.5:0—文本未压缩,1—文本用GSM 标准压缩算法压缩;
Bit No.4:0—表示Bit No.1、Bit No.0 为保留位,不含信息类型信息,
表示Bit No.1、Bit No.0 含有信息类型信息;
Bit No.3 与Bit No.2:00—默认的字母表,01—8bit,10—USC2(16bit)
11—预留;
Bit No.1 与Bit No.0:00—Class 0,01—Class 1,10—Class 2(SIM
卡特定信息),11—Class 3;
(10)20507161321300-时间邮戳
TP-SCTS(TP-Service_Centre-Time-Stamp);
(11)02—用户数据长度TP-UDL(TP-User-Data-Length);
(12)C834—用户数据TP-UD(TP-User-Data)“Hi”;

2. 发PDU 的数据格式
在这里同样给出一个例子:向目的号码为“ 46708251358”的终端发送内容为“hellohello”PDU 数据。PDU 内容为:00 11 00 0B 91 6407281553F8 00 00 AA 0A E8329BFD4697D9EC37
下面进行详细分析:
(1)00-短信息中心地址长度。在这里为0,表示使用存储在SIM 卡中的短信息中心地址;
(2)11-SMS_SUBMIT 的第一个8 位;
(3)00-发送方地址信息。在这里为0,表示使用本机号码;
(4)0B-接收方号码长度;
(5)91-接收方号码类型(Type of Number);
(6)6407281553F8-接收方号码.实际号码为6708251358;
(7)00-协议标识TP-PID(TP-Protocol-Identifier);
(8)00-数据编码方案TP-DCS(TP-Data-Coding-Scheme)
Bit No.7 与Bit No.6 :一般设置为00;
Bit No.5:0—文本未压缩,1—文本用GSM 标准压缩算法压缩;
Bit No.4:0—表示Bit No.1、Bit No.0 为保留位,不含信息类型信息,1—表示
Bit No.1、Bit No.0 含有信息类型信息;
Bit No.3 与Bit No.2:00—默认的字母表,01—8bit,10—USC2(16bit),11—
预留;
Bit No.1 与Bit No.0:00—Class 0,01—Class 1,10—Class 2(SIM 卡特定信
息),11—Class 3;
(9)AA-有效期TP-VP(TP-Valid-Period);
(10)0A-用户数据长度TP-UDL(TP-User-Data-Length).若发送7Bit 编码数据,
则TP-UDL 为实际字符个数;若为8Bit 数据或16Bit 编码的Unicode,则
TP-UDL 为数据字节(8 位)的个数。
(11) E8329BFD4697D9EC37-用户数据TP-UD(TP-User-Data)“hellohello”;


3. PDU 模式发送7Bit 数据编码过程
在PDU 模式下发送7Bit 编码数据前首先要将数据编码为8Bit,在进行发送。还是以
发送“hellohello”为例来分析编码过程:
"hellohello"包含了10 个字符,他们必须一个个将用7-bits 来代表

 

上表中首行为7BIT 数据的ASCII 表示,次行为ASCII 值,第三行为ASCII 值的二
进制表示,第四行中有下画线的二进制数字表示将要在编码时移到前一字节。
首先将字符转换为7 位的二进制,然后,将后面字符的位调用到前面,补齐前面的差别。
例如:h 翻译成1101000,e 翻译成1100101,显然h 的二进制编码不足八位,那么就将e的最后一位补足到h 的前面。那么就成了11101000(E8)。剩余地编码看下表(表中有下画线的部分表示其为编码时移来的数据,第八字节时为空表示编码后节省出一个字节地址):

六、参考资料


(1) <<Technical Product Information TC35>>;
(2) <<AT Command Set -– Siemens Cellular Engines >>
(3) <<GSM Technical Specification – GSM07.05 >>
(4) <<GSM Technical Specification – GSM07.07 >>

内容概要:本文详细探讨了基于MATLAB/SIMULINK的多载波无线通信系统仿真及性能分析,重点研究了以OFDM为代表的多载波技术。文章首先介绍了OFDM的基本原理和系统组成,随后通过仿真平台分析了不同调制方式的抗干扰性能、信道估计算法对系统性能的影响以及同步技术的实现与分析。文中提供了详细的MATLAB代码实现,涵盖OFDM系统的基本仿真、信道估计算法比较、同步算法实现和不同调制方式的性能比较。此外,还讨论了信道特征、OFDM关键技术、信道估计、同步技术和系统级仿真架构,并提出了未来的改进方向,如深度学习增强、混合波形设计和硬件加速方案。; 适合人群:具备无线通信基础知识,尤其是对OFDM技术有一定了解的研究人员和技术人员;从事无线通信系统设计与开发的工程师;高校通信工程专业的高年级本科生和研究生。; 使用场景及目标:①理解OFDM系统的工作原理及其在多径信道环境下的性能表现;②掌握MATLAB/SIMULINK在无线通信系统仿真中的应用;③评估不同调制方式、信道估计算法和同步算法的优劣;④为实际OFDM系统的设计和优化提供理论依据和技术支持。; 其他说明:本文不仅提供了详细的理论分析,还附带了大量的MATLAB代码示例,便于读者动手实践。建议读者在学习过程中结合代码进行调试和实验,以加深对OFDM技术的理解。此外,文中还涉及了一些最新的研究方向和技术趋势,如AI增强和毫米波通信,为读者提供了更广阔的视野。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值