【GSM】GTM900C的应用——短信

前言

GSM因其低廉的价格,非常适合一些需要小数据上网传输和短信等功能的应用场合。本文使用的华为GTM900C模块。

GTM900C发送短信,支持两种模式,TXT和PDU。TXT模式指令简单,操作方便,但不支持中文,如果发送短信内容仅是数字和字母,可以使用TXT模式。PDU模式最通用,因为能发送所有的世界上所有国家的字符,但操作稍微有些复杂。

本文介绍了成功发送一条短信需要的步骤,步骤详解,附录是function的源码。

参考

网友博客

注意

1、AT指令均以回车换行结尾。所以发送AT指令时,后面必须加\r\n,接收到的应答指令末端\r\n。

2、模块反应有延时,需要等待应答。

成功发送一条短信需要以下步骤

  1. 初始化模块:上电、测试串口关闭回显测试SIM卡测试信号质量
  2. 短信编码:倒序目标手机号码、倒序源手机号码、倒序短信中心号码、转换短信内容、统计短信内容长度、封装短信数组
  3. 发送指令:设置模式、发送短信长度、发送PDU数据

以上步骤可以增删改,但建议使用以上推荐,保证稳定性。

实现方法

1、初始化模块

步骤1:上电

说明:模块上电后,自我初始化成功,会通过串口输出AT-Command Interpreter ready

步骤2:测试串口

说明:串口通信不成功,主控模块应做处理(例如:声光报警)。

发送指令:AT

应答指令:AT

     OK

步骤3:关闭回显

说明:回显,表示上位机发一条指令,模块原路返回此指令。上一步串口通信成功后,因为指令不管正常或异常,模块都有应答,就不再需要回显。

发送指令:ATE

应答指令:OK

 

步骤4:测试SIM卡

说明:SIM不存在,应做处理(例如:声光报警)

发送指令:AT%TSIM

应答指令:%TSIM 1

  OK

 

步骤5:测试信号质量 

说明:质量太差,应做处理(例如:声光报警)。

发送指令:AT+CSQ

应答指令:+CSQ:20,99

     OK

2、短信编码

短信编码就是按照固定的协议,把用户短消息内容加上各种协议内的配置参数,封装成一条可以传输、解析的数据流。具体编码函数可以拿来主义,验证下即可,不要重复造轮子。

举个例子:一条完整的PDU编码后的短信如下:

0891683108200505F011000D91683196032930F000000006C8329BFD0E01

08,91,68 31 08 20 05 05 F0,11 00 0D ,91 ,68 31 96 03 29 30 F0 ,00 00 00 06 C8 32 9B FD 0E 01  //(加逗号间隔开,方便查看)

其中,此PDU编码结构如下:

08:短信中心号码长度(+8613800250500转换成91683108200505F0,一共8个字节)。

91:国际格式(号码前的符号“+”)。

682108200505F0:短信中心号码(8613800250500,规律:末尾补F,每两位内翻转)

11:固定,基本参数。

00:固定,消息基准值。

0D:目标号码数字个数(不包含“+”和“F”),有可能此值为0B(目标号码格式就不带86)。

91:国际格式(号码前的符号“+”),81是小灵通。很奇怪的事,使用81能成功发送短信,也能正确接收,但使用91能成功发送,但接收不到。

683196032930F0:目的手机号码(8613693092030)

00:固定,协议标识。

00:编码模式,00-7bit,04-8bit,08-USC2。

00:00-有效时长5分钟。

06:用户信息长度,不同编码下,用户数据长度(字节)不同。

C8329BFD0E01:用户信息内容。

3、发送

步骤1:设置PDU模式

发送指令:AT+CMGF=0

应答指令:OK

步骤2:发送PDU编码长度

说明:PDU编码长度是源手机号码之后的字节数。

发送指令:AT+CMGS=16

 

接收指令:>

步骤3:发送1A

说明:发送1A(Hex)后,有应答,此时才发送成功。

发送指令:1A

应答指令:+CMGS: 35

 

              OK

 -------------------------------------------------

附录

 

/*
名称:ChrToHex
功能:转换字符
形参:源数据首地址,源数据长度
返回值:数据长度
作者:wangshiquan
日期:2017-11-28
*/
int ChrToHex(*Str,unsigned int Len)
{

}
View Code

 

posted @ 2017-01-03 18:02  Isha  阅读(554)  评论(0编辑  收藏  举报