1. 引言
全球移动通信系统GSM是我国范围最广、通信能力最强的移动通信业务,而其中的短消息功能由于其使用方便、价格低廉、可靠性高而得到广泛应用。嵌入式Linux也是目前得到广泛应用的技术,功能强大和资源丰富是其最大的优势。本文在嵌入式Linux系统中利用GSM模块实现短信的收发,对不方便架设通信线的偏远地区,提供了数据采集的新手段。同时嵌入式系统体积小巧,Linux操作系统资源开放,所以本系统经过二次开发,可方便地构成移动数据采集系统,用于远程数据采集、监控。
2. 短信收发原理
短信服务业务SMS(Short Message Service)是GSM系统提供给用户的一种数字业务。它与话音传输及传真一样同为GSM数字蜂窝移动通信网络提供的主要电信业务。涉及SMS管理的协议如图1所示。
图1 SMS管理的协议
图中SME为短信实体, SMSC为短信服务中心,SMCGWMS为SMS网关,HLR是归属位置寄存器,用于永久储存管理用户和服务记录的数据库,MSC为移动交换中心,VLR为访问位置寄存器,含有用户临时信息的数据库,交换中心服务访问用户时需要这些信息。
短消息模块的接入方式支持两种模式:基于AT指令的TEXT模式和基于AT指令的PDU模式,它指的是短信息数据的编码格式,文本模式只支持7-bit编码,只能发送纯英文和数字信息,而PDU模式支持7-bit编码、8-bit编码和UCS-2编码,其中后者可进行Unicode编码,如中文,所以本系统采用PDU模式。
GSM模块采用标准AT指令集通信,其中本系统用到的AT指令如表1所示。
3. GSM短信数据格式分析
3.1 发送短信PDU字符串
由于短信模式选择的是PDU格式,因此对PDU的编码和转码就变得很重要。中文短信息的实现需要将GB2312的中文编码转换为代码页为CP936的Unicode编码,PDU发送字符串数据格式中主要由短信中心地址、文件头字节、信息类型、目的地址、协议标识、数据编码方案、有效期、用户数据长度和用户数据组成。例如:设置PDU格式的编码为08 91 68 31 08 20 01 05 F0 11 00 0D 91 68 31 21 43 65 87 F9 00 08 00 04 4F 60 59 7DH,这组代码的含义如下所示:
08H:短信服务中心地址信息的长度,共8个八位字节(包括91) ;
91H:短信服务中心地址格式,用国际格式号码,在前面加‘+’ ;
68 31 08 20 01 05 F0H:短信服务中心地址,8613800210500,补‘F’凑成偶数个;
11H:基本参数,协议数据单元类型,表示发送,TP-VP用相对格式;
00H :信息参考,00H表示参考本身号码 ;
0DH :对方手机号数字个数,共13个十进制数 ;
91H :对方手机号,用国际格式号码,在前面加‘+’ ;
68 31 21 43 65 87 F9H:对方手机号(TP-DA),8613123456789,补‘F’凑成偶数个;
00H:协议标识(TP-PID), 是普通GSM类型,点到点方式;
08H:用户信息编码方式(TP-DCS),主要用其1个字节的第2和第3位表示编码方式,08H表示为UCS-2编码,最多发140个字符;04H为8-bit编码,最多发140个字符;00H为7-bit编码,最多发160个字符;
00H:有效期(TP-VP),5分钟;
04H:短信长度(TP-UDL),实际长度4个字节;
4F 60 59 7DH:用户信息(TP-UD),“你好”的Unicode编码 。
3.2 短信接收PDU字符串
接收方PDU字符串的含义和发送方不同,同样以“你好”为例,接收方的PDU字符串为:08 91 68 31 08 20 01 05 F0 24 0D 91 68 31 67 24 47 63 F0 00 08 70 50 91 31 21 25 23 04 4F 60 59 7DH,其含义如下:
08 91 68 31 08 20 01 05 F0H:短信服务中心,分析同发送相同;
24H:协议数据单元类型基本参数(TP-MTI/VFP) ,发送,TP-VP用相对格式;
0DH:对方手机号数字个数;
91H:对方手机号(TON/NPI),用国际格式号码(在前面加‘+’);
68 31 67 24 47 63 F0H :对方手机号(TP-DA),8613764274360,补‘F’凑成偶数个;
00H:协议标识(TP-PID) ,是普通GSM类型,点到点方式;
08H:用户信息编码方式(TP-DCS) ,分析同发送方;
70 50 91 31 21 25H:短信息发送时间(SCTS),07年05月19日13时12分52秒;
23H:发送时间对应的时区;
04H:短信长度(TP-UDL),实际长度4个字节;
4F 60 59 7DH:用户信息(TP-UD) ,“你好”的Unicode编码。
技术专区
- Alexa语音服务软件扩展STM32Cube
- 结合DNN API驱动未来神经网络应用的解决方案
- 针对于高端移动通信和汽车市场的四集群设计
- 一款基于帧捕捉的开源图形调试器应用设计
- 即将成为标准配置的最新安全技术:后视摄像系统