大多数的GPRS模块都是采用AT指令进行控制,通信方式往往都是半双工。
因此,以单片机控制为主的话,就是采用串口通信。
AT指令学习:
每一个芯片的AT指令或多或少因为不同的研发公司进行修改,但是绝大多数的AT指令集是兼容的。下面进行一些简单的AT讲解,更详细的参照使用模块的AT指令集。
AT指令格式:AT指令都以“AT”开头,以
每一个AT命令执行后,通常DCE都给状态值,用于判断命令执行的结果。
AT返回状态包括三种情况:OK,ERROR和命令相关的错误原因字符串。此外,返回状态的前后都有一个
如表示AT命令执行成功的:
OK
还有一些的带命令字符的,这类返回状态需要查命令手册。
AT指令基本操作:
1.1AT
命令解释:检测Module与串口是否连通,能否接收AT命令
命令格式:AT
命令返回:OK(与串口通讯正常)(无返回,与串口通讯未连通)
1.2 AT+CSQ
命令解释:检查网络信号强度和SIM卡情况
命令格式:AT+CSQ
命令返回:+CSQ: **,##
其中**应在10到31之间,数值越大表明信号质量越好,##应为99。
否则应检查天线或SIM卡是否正确安装
测试结果:AT+CSQ
+CSQ: 31, 99
信号强度值会有少许变化,用手遮住天线,信号强度值会下降(大致在26左右)。
1.3AT+CPIN?
查询SIM卡的状态
1.4 AT+CGMI
查询制造商
1.5 AT+CGMIM
查询模块型号
1.6 AT+CNUM
查询本机号码
1.7 ATE1
回显模式,即模块收到AT指令完整的返回发送端,默认开启。ATE0关闭回显。
... ...
以上的AT指令是常用的简单指令,如何拨打电话,短信的读取与发送,GPRS的连接这个往往会需要由于不同的制造商AT指令,以及AT指令的返回都会不同,所以需要参考对于的模块指令手册。
拨打电话/接听电话
ATD拨打号码 格式: ATD+号码+; 如发送ATD10086; 末尾“;”要加上
ATA应答电话
ATH挂断电话
AT+COLP用于设置被叫号码显示,AT+COLP=1
AT+CLIP 用于设置来电显示,AT+CLIP=1
模块需要保证连接GSM网络,通过发送 AT+COPS? 结果返回: +COPS:0,0,“ xxx ” (xxx指示卡的注册商,比如CHINA MOBILE 表示中国移动,此外有一些是用数字表示该卡)
短信的读取与发送
AT+CNMI设置新信息指示
AT+CNMI=2,1
+CMTI:“SM”,2,表示收到信息存储在SIM卡的位置2
AT+CMGF 短信信息模式
AT+CSCS 用于设置TE字符集,默认的为GSM 7位缺省字符集,位缺省字符集,在发送纯英文短信的时候,发送:AT+CSCS=“GSM”,设置为缺省字符集即可。在发送中英文短信的时候,需要发送:AT+CSCS=“UCS2”,设置为16位通用8字节倍数编码字符集。也有一些是直接设置数字的如:AT+CMGF=0/1 //设置短信格式,1为text格式读取,0为pud格式读取
AT+CSMP,用于设置短消息文本模式参数,在使用UCS2方式发送中文短信的时候,需要发送:AT+CSMP=17,167,2,25,设置文本模式参数。
AT+CMGR,用于读取短信,比如发送:AT+CMGR=1,则可以读取SIM卡存储在位置1的短信。
AT+CMGS,用于发送短信,在"GSM"字符集下,最大可以发送180个字节的英文字符,在"UCS2"字符集下,最大可以发送70个汉字(包括字符/数字)。
AT+CPMS,用于查询/设置优选消息存储器,通过发送:AT+CPMS?,可以查询当前SIM卡最大支持多少条短信存储,以及当前存储了多少条短信等信息。
如返回:+CPMS: "SM",1,50,"SM",1,50,"SM",1,50,表示当前SIM卡最大存储50条信息,目前已经有1条存储的信息。
GPRS通信,实现和服务器的TCP和UDP数据传输
要实现GPRS通信得,会配置相关的服务器。
注意:
1、服务器IP是公网IP;
2、GPRS要附着网络;
3、设置激活PDP
下面介绍一组简单的配置连接服务器发送数据。
1.查询是否网络注册:AT+CREG?
2.查询信号质量:AT+CSQ
3.附着网络:AT+CGATT=1
4.指定PDP上下文:AT+CGDCONT=1,"IP","CMNET"
5.激活指定PDP上下文:AT+CGACT=1,1
6.连接服务器IP:AT+CIPSTART="TCP","47.106.237.182",8080
这里的IP地址和端口根据自己的实际修改。
7.发送数据
输入指令 :发送指令AT+CIPSEND进入发送模式;
>
输入要发送的数据 以1A 十六进制为开始发送。
以上是简单的连接服务器,更详细的配置参照AT手册,如配置发送多少个字符,透传模式,移动场景设置,发送字符限制等等。