GPRS/GPS模块组学习——软件篇之AT指令

大多数的GPRS模块都是采用AT指令进行控制,通信方式往往都是半双工。

因此,以单片机控制为主的话,就是采用串口通信。

AT指令学习:

每一个芯片的AT指令或多或少因为不同的研发公司进行修改,但是绝大多数的AT指令集是兼容的。下面进行一些简单的AT讲解,更详细的参照使用模块的AT指令集。

AT指令格式:AT指令都以“AT”开头,以(即\r,回车符)结束。有一些命令后面可以加额外的信息,如电话号码,操作命令等。

每一个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手册,如配置发送多少个字符,透传模式,移动场景设置,发送字符限制等等。

 

 

 

 

你可能感兴趣的:(程序)