TC35中文短消息收发格式及AT指令

2011年10月10日16:15:02 评论

由于中文短消息具有内容直观,传送距离远,用户无需建造信号中转站,成本相对低廉,因此在控制领域的应用日益广泛。SIEMENS的TC35型GSM通信模块在国内应用比较广泛,然而很多技术人员在刚开始使用时,有许多不甚清楚的地方,甚至无从下手,因此有必要把有关的基础知识和经验写出来供大家参考。

格式中英文缩写的解释如下:

SCA Service Center Address 短消息服务中心地址,1-12位数字

PDU-type Protocol Data Unit Type 协议数据单元类型,1位数字

MR Message Reference 由手机设置的短消息递交帧的递交数字(0-255),1位数字

OA Originator Address 发送方地址,即发送的手机号码,2-12位数字

DA Destination Address 接收方地址,即接收的手机号码,2-12位数字

PID Protocol Identifier 协议识别符,1位数字

DCS Data Coding Scheme 数据译码方案,1位数字

SCTS Service Center Time Stamp 服务中心收到短消息的时间,7位数字

VP Validity Period 短消息发送的合法期限,0、1或7位数字

UDL User Data Length 用户数据长度,1位数字

UD User Data 用户数据,0-140位数字

RP Reply Path 短消息回复的路径

UDHI User Data Header Indicator 用户数据区包含的报头

SRI Status Report Indication 这个参数指明移动设备是否需要状态报告

SRR Status Report Request 这个参数指明移动站是否需要一个状态报告

VPF Validity Period Format 指示VP区是否存在

MMS More Message to Send 指示是否有更多的消息将被发送

RD Reject Duplicate 拒绝重复

MTI Message Type Indicator 消息类型指示,00-消息接收,01-消息发送

短消息的收发举例

对TC35的操作均采用AT指令。指令内容均为ASCII码,短消息的中文编码方式为UNICODE码。

一、短消息的发送

例如要发送字符“宁波大学”到手机13034603567中,则首先把字符转换成UNICODE代码,转换软件可以采用Chinese 2 Unicode convertor等,可在互联网中下载。经转换,“宁波大学”的Unicode代码是5B81 6CE2 5927 5B66。则TC35的指令是

AT+CMGF=0 设置TC35为PDU格式

AT+CMGS=023 发送短消息指令,023为本短消息发送字符总长度

0011000D91683130643065F7000801085B816CE259275B66 这是发送内容

代码意义解释如下:

00 SCA,以00写入,意味着使用默认的服务中心地址,该服务中心地址用AT+CSCA指令写入
11 PDU类型
00 MR 消息参考
0D LEN 接收方号码长度
91 TYPE 91表示号码是国际代码,81是国内代码
683130643065F7 DA 接收方号码8613034603567,注意号码的每个字节是高低位互换的,末尾号码是半字节的话,另外半字节用F替代。
00 PID 协议识别
08 DCS 数据编码结构
01 VP 短消息有效发送时间,01表示10分钟,具体见参考文献1第11页
08 UDL 用户数据长度
5B816CE259275B66 UD 用户数据,即字符“宁波大学”

如果发送成功,TC35回送以下信息:

+CMGS: X 这里的X是个数字

OK

OK表示发送成功,否则在一段时间的尝试后返回ERROR。

注意:

1、如果发送短消息指令中指明的总长度和实际发送的短消息长度不符的话,TC35将拒绝发送。

2、上述指令的代码是十六进制代码,发送到TC35的短消息代码是ASCII码,因此例如上述发送的代码是0011000D91…. 送到TC35代码应该是30 30 31 31 30 30 30 44 39 31

3、所有传送到TC35的指令必须以ASCII代码0D 0A结尾,表示向TC35传送的一条指令结束。因此在实际发送的操作中应发送的代码如下:

AT+CMGS=023 发送41 54 2B 43 4D 47 53 3D 30 32 33 0D 0A

0011000D91….. 发送30 30 31 31 30 30 30 44 39 31……….0D 0A

同样,发送AT+CMGF=0指令的代码是41 54 2B 43 4D 47 46 3D 30 0D 0A

二、短消息的接收

例如接收到的短消息代码是:

0891683110300705F0840D91683130643065F7000830101311401300026D4B8BD5

我们可这样判读:

08 LEN SCA字节长度(长度值包括代码类别的字节长度)
91 type of Number 号码类型(国内/国际)
68 31 10 30 07 05 F0 SCA 服务中心号码是8613010370500(对末尾的半字节空位以F替代)
84 PDU-type PDU类型
0D Len 发信方地址长度
91 PDU-type协议类别
683130643065F7 OA 发信方号码是8613034603567(对末尾的半字节空位以F替代)
00 PID 协议识别
08 DCS数据译码方案
30101311401300 SCTS 信息中心接收到数据的时间是2003年1月31日11点4分31秒,时间区为00.
04 UDL 数据长度为4个字节
6D4B8BD5 UD 用户数据,Unicode码(字符“测试”)

[download id="89"]