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

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

一、 介绍:
  需要说明的是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 >>

【SCI复现】含可再生能源与储能的区域微电网最优运行:应对不确定性的解鲁棒性与非预见性研究(Matlab代码实现)内容概要:本文围绕含可再生能源与储能的区域微电网最优运行展开研究,重点探讨应对不确定性的解鲁棒性与非预见性策略,通过Matlab代码实现SCI论文复现。研究涵盖多阶段鲁棒调度模型、机会约束规划、需求响应机制及储能系统优化配置,结合风电、光伏等可再生能源出力的不确定性建模,提出兼顾系统经济性与鲁棒性的优化运行方案。文中详细展示了模型构建、算法设计(如C&CG算法、大M法)及仿真验证全过程,适用于微电网能量管理、电力系统优化调度等领域的科研与工程实践。; 适合人群:具备一定电力系统、优化理论和Matlab编程基础的研究生、科研人员及从事微电网、能源管理相关工作的工程技术人员。; 使用场景及目标:①复现SCI级微电网鲁棒优化研究成果,掌握应对风光负荷不确定性的建模与求解方法;②深入理解两阶段鲁棒优化、分布鲁棒优化、机会约束规划等先进优化方法在能源系统中的实际应用;③为撰写高水平学术论文或开展相关课题研究提供代码参考和技术支持。; 阅读建议:建议读者结合文档提供的Matlab代码逐模块学习,重点关注不确定性建模、鲁棒优化模型构建与求解流程,并尝试在不同场景下调试与扩展代码,以深化对微电网优化运行机制的理解。
个人防护装备实例分割数据集 一、基础信息 数据集名称:个人防护装备实例分割数据集 图片数量: 训练集:4,524张图片 分类类别: - Gloves(手套):工作人员佩戴的手部防护装备。 - Helmet(安全帽):头部防护装备。 - No-Gloves(未戴手套):未佩戴手部防护的状态。 - No-Helmet(未戴安全帽):未佩戴头部防护的状态。 - No-Shoes(未穿安全鞋):未佩戴足部防护的状态。 - No-Vest(未穿安全背心):未佩戴身体防护的状态。 - Shoes(安全鞋):足部防护装备。 - Vest(安全背心):身体防护装备。 标注格式:YOLO格式,包含实例分割的多边形坐标和类别标签,适用于实例分割任务。 数据格式:来源于实际场景图像,适用于计算机视觉模型训练。 二、适用场景 工作场所安全监控系统开发:数据集支持实例分割任务,帮助构建能够自动识别工作人员个人防护装备穿戴状态的AI模型,提升工作环境安全性。 建筑与工业安全检查:集成至监控系统,实时检测PPE穿戴情况,预防安全事故,确保合规性。 学术研究与创新:支持计算机视觉在职业安全领域的应用研究,促进AI与安全工程的结合。 培训与教育:可用于安全培训课程,演示PPE识别技术,增强员工安全意识。 三、数据集优势 精准标注与多样性:每个实例均用多边形精确标注,确保分割边界准确;覆盖多种PPE物品及未穿戴状态,增加模型鲁棒性。 场景丰富:数据来源于多样环境,提升模型在不同场景下的泛化能力。 任务适配性强:标注兼容主流深度学习框架(如YOLO),可直接用于实例分割模型开发,支持目标检测和分割任务。 实用价值高:专注于工作场所安全,为自动化的PPE检测提供可靠数据支撑,有助于减少工伤事故。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值