通过串口收发短消息(上) Q 用串口连接 GSM 手机发送和接收短消息,在应用程序中如何编程实现? Q 我们打算开发一个基于 GS M 短消息方式的 GP S 系统, 如何利用 SM S 进行数据通信? A 首先,我们要对由 ESTI 制订的 SMS 规范有所了解。与我们讨论的短消息收发有关的规范主要包括 GSM 、 GSM 和 GSM 。前二者着重描述 SMS 的技术实现( 含编码方式) ,后者则规定了 SMS 的 DTE-DCE 接口标准(AT 命令集)。一共有三种方式来发送和接收 SMS 信息: Block Mode, Text Mode 和 PDU Mode 。 Blo ck Mode 已是昔日黄花,目前很少用了。 Text Mode 是纯文本方式,可使用不同的字符集, 从技术上说也可用于发送中文短消息,但国内手机基本上不支持,主要用于欧美地区。 PD U Mode 被所有手机支持,可以使用任何字符集,这也是手机默认的编码方式。 Text Mod e 比较简单, 而且不适合做自定义数据传输, 我们就不讨论了。下面介绍的内容, 是在 PDU Mode 下发送和接收短消息的实现方法。 PDU 串表面上是一串 ASCII 码,由‘0’-‘9’、‘A’-‘F’这些数字和字母组成。它们是 8位字节的十六进制数, 或者 BCD 码十进制数。 PDU 串不仅包含可显示的消息本身, 还包含很多其它信息,如 SMS 服务中心号码、目标号码、回复号码、编码方式和服务时间等。发送和接收的 PDU 串, 结构是不完全相同的。我们先用两个实际的例子说明 PDU 串的结构和编排方式。例1 发送: SMSC 号码是+86********** , 对方号码是 ********** , 消息内容是“ Hello! ”。从手机发出的 PDU 串可以是 08 91 68 31 08 20 05 05 F0 11 00 0D 91 68 31 58 81 27 64 F8 00 00 00 06 C8 32 9B FD 0E 01 对照规范,具体分析: 分段含义说明 08 SMSC 地址信息的长度共8 个八位字节( 包括 91) 91 SMSC 地址格式(TON/NPI) 用国际格式号码( 在前面加‘+’) 68 31 08 20 05 05 F0 SMSC 地址 86********** ,补‘F’凑成偶数个 11 基本参数(TP-MTI/VFP) 发送, TP-VP 用相对格式 00 消息基准值(TP-MR) 0 0D 目标地址数字个数共 13 个十进制数( 不包括 91和‘F’) 91 目标地址格式(TON/NPI) 用国际格式号码( 在前面加‘+’) 68 31 58 81 27 64 F8 目标地址(TP-DA) 86********** ,补‘F’凑成偶数个 00 协议标识(TP-PID) 是普通 GSM 类型,点到点方式 00 用户信息编码方式(TP-DCS) 7-bit 编码 00 有效期(TP-VP) 5 分钟 06 用户信息长度(TP-UDL) 实际长度 6 个字节 C8 32 9B FD 0E 01 用户信息(TP-UD) “ Hello! ”例2 接收: SMSC 号码是+86********** , 对方号码是
通过串口发送短消息 来自淘豆网m.daumloan.com转载请标明出处.