商务合作加Q:411239339

GSM模块使用文档

浏览:280次阅读
没有评论

共计 2579 个字符,预计需要花费 7 分钟才能阅读完成。

1.概述

AT命令:
GSM模块与计算机之间的通信协议是一些 AT 指令集,详见(AT_v8.6.pdf)。每个指令以 AT+ 开头,以回车结尾。每个命令执行成功与否都有相应的返回。其他一些非预期的信息(如有人拨号进来、线路无信号等),模块将有对应的一些信息提示,接收端可做相应的处理。
控制符:
结束符(<CR>)十六进制的0x0D
发送符(<Ctrl/Z>)十六进制的0x1A
2.常用命令(其他一些相关命令参见附带文档)

21开机

首先,要插入 SIM 卡(插卡时要断开电源),接好天线和电源,等信号指示灯开始闪动时表示模块已经开机,并且注册 GSM 网络成功。此时模块处于待机状态,当有用户拨号进来时,串口将有相应的提示信息。
要测试模块在此地的信号强度,可发送命令:AT+CSQ+<CR>(返回若含 99 则表示无信号)
22设置

1. 设置发送短信息的模式:AT+CMGF=0+<CR>
0代表 PDU 模式;1代表 Text 模式。
2. 设置短信息接收模式
· 直接串口接收:AT+CNMI=2,2,0,0,0+<CR>
有短信息来时,不经过 SIM 卡,直接写串口(如果此时端口没打开,则该短信息有可能丢失)。
· 通过 SIM 卡接收:AT+CNMI=2,1,0,0,0+<CR>
这是缺省设置,主动去读 SIM 卡中的短信息 ( 建议使用该参数 )。详细信息参见(AT_v8.6.pdf 96)
3. 保存当前模块的参数设置:AT&W+<CR>
详细参数设置参见 AT_v8.6.pdf 107
23发送短信息CMGS

231Text 模式发送短信息

格式 ( 只能发送 160 个英文字符)
at+cmgf=1<CR> //发送模式设置,设为文本模式
OK
AT+CMGS=13988888888<CR>Send Message by Text-Mode<Ctrl/Z>
// 目的手机号码 | 结束符 | 内容 |发送符|
+CMGS: 199 //发送返回

OK
参考 AT_v8.6.pdf 102
232PDU 发送短信息格式(参考SMS_PDU-mode

at+cmgf=0<CR> //发送模式设置,设为 PDU 模式
OK
 

AT+CMGS=<PDU包的字节数(ddd:三位十进制格式)>//不包含 SMSC 的长度
<CR>

00 //SMSC长度,此处省略SMSC
11 //FO
00 //TP-MR
0D //号码长度
91 //Type of Address
68 //中国的国际区号

<手机号码编码>

00 //PID
08 //编码模式:08Unicode 编码,00Bit7 编码,15Bit8 编码
A7 //有效期

<短信息内容编码后的字节数(ff:两位的十六进制)>
<短信息内容编码 > //UnicodeBit7Bit8
<Ctrl/Z>


TPDU的组成的几点说明
1. DA 目的地址
2. ASCII 编码
3. 中文编码
DA 目的地址(参考 SMS_PDU-mode 3.1)

例子:0D91683106318834F9 ; 8613601388439
0D(13) Address Length 目的电话长度
91 Type of Address
683106318834F9 8613601388439采用Semi-octet representation(参考 SMS_PDU-mode 4.5)

Bit7编码
用户数据如果为非中文,可采用7-bits characters 7 位编码法
此时将dcs=00
(参考 SMS_PDU-mode 4.6)

中文编码
用户数据如果为中文,可采用UCS2 编码法
此时将dcs=08
将中文直接转换成 UniCode。采用 WinAPI:MultiByteToWideChar 来实现。

Bit8 编码
发送任何二进制数据(0x00~0xFF),可采用 Bit8 编码法
此时 dcs=15
每个字节按 Hex 格式发送,如 0x86 的 Hex 格式为:“86,实际发送 “86”
接收方须与发送方协调一致

发送举例
先发送 AT+CMGS= YYY [CR] ; 其中 YYY TPDU的十进制长度,不包括 SMSC 的长度

发英文用 Bit7 编码 dcs=00, 编码前用户数据最大长度为 160 字节
发中文用 UCS2 编码 dcs=08,编码前用户数据最大长度为70
发送二进制数据用 Bit8 编码 dcs=15,编码前用户数据最大长度为140 字节

1. 用 Bit7 编码发送英文信息
以下例子 发送到13606809135
报文是1234
Bit7 译码为
0431D98C06
04 长度
数据 31D98C06 1234Bit7编码

具体 AT 命令
AT+CMGF=0[CR] 设为 PDU 格式

AT+CMGS=019[CR]
0011000D91683106869031F50000A70431D98C06[Ctrl/Z][CR]

2. 用 UCS2 编码发送中文信息

以下例子 发送到 13603021052
报文是 你好
UCS2 译码为
044F60597D
04 长度
数据 4f60597d 汉字 UniCode
具体 AT 命令
AT+CMGF=0[CR] 设为 PDU 格式

AT+CMGS=019[CR]
0011000D91683106031250F20008A7044F60597D[Ctrl/Z][CR]

3用 Bit8 编码发送二进制数据

以下例子 发送到 13857162075
报文是0x86 0x40
Bit8 译码为
8640
02长度
具体 AT 命令
AT+CMGF=0[CR] 设为 PDU 格式

AT+CMGS=017[CR]
0011000D91683158172670F50015A7028640[Ctrl/Z][CR]

24接收短信息CMGR

如果是通过 SIM 卡接收短信息,则应该先得到新的短信息到的通知信息(即监视串口的 +CMTI< 新短信息的索引号>)。
如果是不通过 SIM 卡接收短信息,则要实时处理串口的 +CMT< 短消息包结构>
用 Text 模式接收短信息格式

AT+CMGR=1<CR>
Text 模式分解返回包
用 PDU 接收短信息格式

AT+CMGR=0<CR>
PDU 模式分解返回包
25删除短信息CMGD

AT+CMGD=<短信息索引号><CR>

26列出 SIM 卡中短信息CMGL

利用该命令可以读出 SIM 卡中未读的短信息。
AT+CMGL=ALL<CR> //文本模式下读未读短信息
AT+CMGL=0<CR> //PDU模式下读未读短信息
3.注意事项

使用好模块的关键的两个问题:
1. 处理好发送的命令与它的返回同步;
2. 及时处理好一些非预期的事件,将没有用的信息扔掉。

正文完
扫码赞助
post-qrcode
 0
果子
版权声明:本站原创文章,由 果子 于2014-06-10发表,共计2579字。
转载说明:除特殊说明外本站文章皆由果较瘦原创发布,转载请注明出处。
评论(没有评论)