首先,我们要对由ESTI制订的SMS规范有所了解。与我们讨论的短消息收发有关的规范主要包括GSM 03.38、GSM 03.40 和GSM 07.05。前二者着重描述SMS的技术实现(含编码方式),后者则规定了SMS的DTE-DCE接口标准(AT命令 集)。 一共有三种方式来发送和接收 SMS 信息:Block Mode, Text Mode 和 PDU Mode。Block Mode 已是昔日黄花,目前很 少用了。Text Mode 是纯文本方式,可使用不同的字符集,主要用于欧美地区。从技术上说也可用于发送中文短消息, 但国内手机基本上不支持。PDU Mode 被所有手机支持,可以使用任何字符集,这也是手机默认的编码方式。Text Mode 比较简单,而且不适合做自定义数据传输,我们就不讨论了。 在深入讨论通过串口使用AT指令发送短消息之前,我们需要先了解SMS(Short Message Service,短信服务)的相关规范。ESTI(欧洲电信标准化协会)制定的规范主要包括GSM 03.38、GSM 03.40和GSM 07.05。GSM 03.38和GSM 03.40规范着重描述了SMS的技术实现细节,如编码方式;而GSM 07.05规范则规定了SMS的DTE-DCE(数据终端设备-数据电路终止设备)接口标准,包含AT(Attention)命令集。 要通过串口发送和接收短信,我们有三种主要的模式:Block Mode(块模式)、Text Mode(文本模式)和PDU Mode(协议数据单元模式)。Block Mode已经较为过时,使用较少。Text Mode适用于欧美地区,主要以纯文本方式发送,能够使用不同的字符集,但在中国的手机中支持度不高,同时它也不适合发送中文短消息。PDU Mode则被所有手机支持,可以使用任何字符集,是手机默认的编码方式。 PDU模式下,我们可以通过AT指令实现短消息的收发。这里的PDU实际上是一串ASCII码,由数字和字母组成。PDU串包含的消息内容以及其他信息,比如短信服务中心号码、目标手机号码、回复手机号码、编码方式和服务时间等。 举个发送短消息的例子,假设SMSC号码是+***,目标号码是***,想要发送的消息内容是"Hello!"。发送的PDU串是***F011000D***F***C8329BFD0E01。我们参照规范来分析:***F0这部分对应SMSC地址***,补‘F’是为了凑成偶数个字节长度。SMSC地址信息长度为8个八位字节(包含91)。SMSC地址格式使用国际格式号码(前面加‘+’),基本参数表示这是一个发送操作。TP-VP表示使用相对格式消息基准值,TP-MR为0表示消息基准值为0。目标地址数字个数共13个十进制数(不包括91和‘F’),目标地址格式同样是国际格式号码。协议标识(TP-PID)是普通GSM类型,点到点方式。用户信息编码方式(TP-DCS)使用的是7-bit编码,有效期(TP-VP)为5分钟。用户信息长度(TP-UDL)实际长度为6个字节。C8329BFD0E01这部分是用户信息,即消息内容“Hello!”。 接收短消息时,也会接收到类似结构的PDU串。以另一个例子说明,SMSC号码依然是+***,目标号码是***,消息内容变为“你好!”。接收的PDU串是***F0840D***F***F60597D0021。这部分的结构和发送的PDU串是相似的,但需要注意的是号码和时间的表示方法,它们不是按照常规顺序来的,而且为了保持字节的偶数长度,要补‘F’。 在PDU模式中,可以采用三种编码方式对发送的内容进行编码,分别是7-bit、8-bit和UCS2编码。7-bit编码适合发送普通的ASCII字符,它将7-bit的字符编码成8-bit的数据,每8个字符可压缩成7个。8-bit编码通常用于发送数据消息,例如图片和铃声等。UCS2编码则用于发送Unicode字符。在7-bit编码下,PDU串的用户信息(TP-UD)段最大容量是160个字符(7-bit编码字符);8-bit编码下,最大容量是140个字节;UCS2编码下,最大容量是70个Unicode字符(16-bit编码字符)。 在编程实现通过串口连接GSM模块发送和接收短消息时,我们需要用AT指令集中的相关指令。例如,发送短消息的AT指令格式通常是: AT+CMGF=0(选择PDU模式) AT+CMGS=(目标手机号码) 然后输入PDU串并以十六进制的“1A”字符(Ctrl+Z)结束输入。 接收短消息的处理则需要监听串口,并解析返回的PDU串,根据上述结构提取相应的消息内容。 对于基于GSM短消息方式的GPS系统的数据通信,可以通过解析和构造PDU来实现位置数据的发送和接收。系统可以定时或在位置改变时发送包含当前位置的短消息,并根据需要解析接收到的包含指令或其他数据的短消息。 在实施过程中,开发者需要对AT指令集有深入理解,并能够处理各种编码方式和PDU格式的细节,确保短消息能够准确无误地发送和接收。同时,要确保GSM模块的兼容性和稳定性,以便有效地集成到GPS系统中。
剩余18页未读,继续阅读
- 粉丝: 15
- 资源: 66
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Java答题期末考试必须考
- 组播报文转发原理的及图解实例
- 青龙燕铁衣-数据集.zip
- 指针扫描和内存遍历二合一工具
- 基于JavaScript的在线考试系统(编号:65965158)(1).zip
- 五相电机双闭环矢量控制模型-采用邻近四矢量SVPWM-MATLAB-Simulink仿真模型包括: (1)原理说明文档(重要):包括扇区判断、矢量作用时间计算、矢量作用顺序及切时间计算、PWM波的生成
- Linux下的cursor安装包
- springboot-教务管理系统(编号:62528147).zip
- 3dmmods_倾城系列月白_by_白嫖萌新.zip
- SVPWM+死区补偿(基于电流极性)+高频注入法辨识PMSM的dq轴电感(离线辨识)-simulink