吕国策
DOI:10.16661/j.cnki.1672-3791.2017.25.009
摘 要:当前,无线通信技术快速发展,特别是随着各类移动网络的全面覆盖,GSM通信技术已经涉及我们生活的各个方面,无论是移动电话、智能家居,或者是车载设备上都有广泛的应用。本文以SIM300C通信模块为例,介绍该模块的硬件电路及收发短信的控制方式。
关键词:GSM SIM卡 短信 PDU
中图分类号:TP391 文献标识码:A 文章编号:1672-3791(2017)09(a)-0009-02
1 硬件电路设计
SIM300C是SIMCOM公司生产的一款GSM移动通信模块,其硬件电路如图1所示。电路中模块的17脚为PWRKEY,是模块的启动管脚,通过控制该管脚的电平变化来控制模块的启动。模块的15脚VDD_EXT为输出电压管脚,通过检测该管脚的电压状态判断是否启动成功。25脚为SIM卡的供电电源,27、29、31脚是与SIM卡进行通信的管脚。41、43脚是模块的串口,通过该串口传送AT指令,实现各种控制。
2 收发短信息的控制方式
2.1 AT指令简介
AT指令集是控制GSM模块的实现各种功能的基本指令。本文列举出常用的处理短信息的AT指令集。AT+CPMS:选择短消息存储区;AT+CMGF:选择消息格式;AT+CMGR:读取短消息;AT+CMGS:发送短消息;AT+CMGW:向内存写入消息;AT+CMSS:发送存储区内的消息;AT+CMGD:删除短消息。
2.2 发送短信息
GSM模块发送短信息一般有两种格式,分别为TEXT和PDU。文本模式相对来说比较简单,主要适用于仅仅传输字符的应用,比如在国外,发送的基本都是26个字母,用此方式就非常方便。但是在国内,如果发送汉字大多采用PDU模式,该方式需要进行编码转换,相对复杂。本文重点讲述PDU格式的短信息发送。
假设我们要发送以下信息:
接收号码:+861556881ABCD;
发送短息内容:设置成功;
短信中心号码:+8613010431500。
该模式下需要将发送的信息以Unicode码的方式发出,通过查找Unicode汉字编码表,找到“设置成功”的Unicode码为8BBE7E6F6210529F。
(1)短信中心号的转换,先将短信中心号码去掉+号,在结尾加上F,从左往右两个数字一组相互交换位置并重新排序,变为683110401305F0,在再开头加上0891,最终变为0891683110401305F0。
(2)现将手机号去掉+号,在结尾加上F,从左往右两个数字一组相互交换位置并重新排序,变为68516588A1CBFD。
(3)通过查表已知“设置成功”的Unicode码为8BBE7E6F6210529F。
(4)将手机号和短息内容整合。在电话号前添加0011000D91字符串,001100时一组特定的代码,0D是电话码的长度,91代表发送到手机,整合为0011000D9168516588A1CBFD。手机号码后加固定代码000800,再加上短信息内容,整合为0011000D9168516588A1CBFD0008008BBE7E6F6210529F。
(5)发送数据,通过串口发送“AT+CMGF=0”到GSM模块,完成设置短信息格式为PDU格式,模块回复OK,表示设置成功。再发送“AT+CMGS=25”,表示即将要发送的数据长度为25位,模快回复“>”,此时将上面整合的数据发送至模块,>0891683110401305F00011000D9168516588A1CBFD0008008BBE7E6F6210529F,至此完成短信息的发送。
2.3 读取及删除短信息
通过串口发送“AT+CNMI”指令设置短信息到达时,采用哪种处理方式。
“AT+CNMI”指令语法:“AT+CNMI=mode,mt”,其中mode和mt的數值不同,表示其处理的方式不同,下面分别加以说明:mode的含义是有短信息时是否通知模块,当mode为0时,有短信息到达时不通知模块;当mode为1时,只有在模块的数据线空闲时通知模块,否则不通知;当mode为2时,通知模块,如果此时数据线忙,就连同数据线上的数一同发送。mt的含义是短信息的处理,当mt为0时,存储至内存单元;当mt为1时,存储至内存单元同时通知模块;mt为2时;存储至SIM卡并通知模块;mt为3时,直接发送至模块。
本文设置为“AT+CNMI=2,1”,以便及时读取到短信息。如果接收到短信息,数据线会提示:“+CMTI”“ME”,“6”,表示短信息现已存储在ME内存中,编号为6,单片机发送“AT+CMGR=6”,读取第6条消息,模块返回:
+CMGR: 6,25
0891683110401305F00011000D9168516588A1CBFD0008008BBE7E6F6210529F
OK
表示读取成功。
若要删除信息,则发送“AT+CMGD”可以相应位置上的短信息,例如发送“AT+CMGD=8”,表示删除第8条消息。模块返回OK,表示删除成功。
3 结语
通过上述分析,可以看出,SIM300C模块的硬件电路并不复杂,也容易理解。但要实现短信息的收发功能,尤其是处理汉字信息,相应操作比较繁琐,还应根据实际情况反复调试。
参考文献
[1] 韩斌杰,杜新颜,张建斌.GSM原理及其网络优[M].北京:机械工业出版社,2009.
[2] 张永栋,林宏武.基于GSM网络汽车中控门锁与防盗系统设计[J].机电工程技术,2015(7):42-44.
[3] 亓浩名,王利,武毅,等.基于单片机的GSM短信收发模块设计[J].电子测试,2012(3):63-67.endprint