实验13 GPRS模块的AT指令测试
实验13 GPRS模块的AT指令测试
实验目的
1使用AT指令完成GPRS模块初始化
2使用AT指令实现GPRS模块收发短信
3使用AT指令实现GPRS模块语音通话
4使用AT指令实现GPRS模块数据收发
实验原理
GPRS模块的AT指令类型主要分为三类:基本指令、S寄存器指令、扩展以及厂商定义指令三类。其中,基本指令是以单个字母或“&”字符接单个字母开头;S寄存器指令由字母“S”后接十进制数构成;扩展指令均由“+”开头,厂商定义指令由一个特殊符号(如“^”、“\”或“%”等)开头,后接命令字。
一般地,若指令以=?结尾,是查询可用的参数范围;若指令以?结尾,是查询当前参数值;若以=<参数列表>结尾,则是设置相关的参数。
下发AT指令时,AT指令名称及参数(除短消息、电话本、运营商名称外)中包含的字符大小写兼容,AT指令返回结果中的字符一律采用大写字母(除短消息、电话本、运营商名称外);字符串类型的参数支持加引号和不加引号两种格式,AT指令返回结果中的字符串带引号返回。
实验步骤
1.GPRS模块初始化
将GPRS实验开发板通过串口线与PC机相连,在SIM卡槽安装移动GSM卡,连接好电源,如错误!未找到引用源。所示。
模块的一般初始化流程如下,其中加粗部分为在超级串口输入的AT指令,不加粗部分为相应的应答。由于GPRS模块默认的是带回显功能,因此上述内容为超级串口的接收区的内容。为方便阅读,在指令后添加了相关注释。
A T //确认串口正常,模块出厂默认波特率=115200
OK
AT+CPIN? //读取SIM当前的PIN鉴权状态
+CPIN: READY //表示PIN码已经输入,SIM卡已完成PIN鉴权
OK
AT+CREG=1 //设置模块网络注册提示,当模块从GSM网络中掉线后,会自动上报+CREG: 1,0
AT+COPS? //网络运营商注册查询
+COPS: 0,0,"CHINA MOBILE" //已注册中国移动
OK
AT+CSQ //检查当地网络信号质量,建议该命令空闲时,循环发送,以了解网络信号状态
+CSQ: 20,99 //接收信号强度为20,信道误码率为未知或不可测。
//接收信号强度为0~31,信道误码率为0~7。99代表未知或不可测。
OK
AT+CGREG=1 //设置模块GPRS网络注册提示,当模块从GPRS网络中掉线后,会自动上报+CGREG: 1,0 OK
AT+CGATT=1 //设置GPRS附着
OK
AT+CGMI //查询厂商信息
HUAWEI
OK
AT+CGMM //查询模块型号
GPRS模块
OK
AT+CGMR //查询软件版本序号
11.210.09.00.00
OK
AT+CIMI //查询模块当前的IMSI号
460009*********
OK
模块初始化完成之后,便可进行短信收发、语音通话、网络数据收发等测试。2.GPRS模块收发短信
在初始化完成的基础上,可以进行通过GPRS发送短信通常有两种模式:文本模式和PDU 模式。其中,文本方式只能收发英文字母,PDU模式则中英文均可收发。
硬件连接同上,以文本方式为例,具体实现步骤如下:
1)短信初始化设置
AT+CPMS? //查询SIM卡短信存储器状态
+CPMS: "SM",6,40,"SM",6,40,"SM",6,40 //短信存储状态,6为短信已存数量,40为短信容量。
OK
AT+CMGF=1 //设置短消息格式为文本格式
OK
2)发送英文短信
AT+CMGS=159******** //设置要发送的号码
>jdhdhgjjggEEGEIG_ //在>符号后输入要发送的短信内容:jdhdhgjjggEEGEIG,后加Ctrl+Z结束并发//送短信,转换为0x1A
+CMGS: 114
3)接收英文短信
AT+CNMI=2,1 //将短信存储到ME或SIM卡后,再给出新短信指示
OK
+CMTI: "SM",9 //显示新短信提示
AT+CMGR=9 //读取SIM卡中的第9条短信
+CMGR: "REC UNREAD","+86159********",,"13/08/10,17:26:25+32" //短信内容fgjhcDGHHV //短信内容
OK
AT+CMGD=9 //删除第9条短信
OK
3.GPRS模块语音通话
1)语音通话初始化
AT^SWSPATH? //查询当前语音通道
^SWSPA TH: 0 //返回0表示采用默认通道1
OK
AT^ECHO?//回声抑制功能
^ECHO: 1 //默认为1,打开回声抑制
OK
AT+CLVL=4 //设置扬声器音量,采用默认值4
OK
AT+CMIC=0 //设置麦克增益,采用默认值0
OK
2)模块主叫
ATD159********; //拨打电话159********,号码后一定要加分号^ORIG:1,0 //主动上报呼叫发起指示
OK
^CONF:1 //主动上报呼叫回铃音指示
AT+ATH //主动挂断电话
^CEND:1,0,67,31 //主动上报通话结束指示
OK
NO CARRIER //未接通或对方挂断
3)模块被叫
AT+CLIP=1 //设置来电显示
OK
RING
+CLIP: "159********",161,"",,"LXH",0 //159********为来电号码,LXH为存储电话簿中该号码的姓名
OK
AT+CLIP=0 //关闭来电显示
RING //每4秒一次上报提醒一次
AT+VTS=1 //播放数字1的DTMF音调
OK
AT+CRC=1 //设置来电显示主动上报命令
OK
+CRING:VOICE //VOICE为语音呼叫,GPRS为GPRS网络侧PDP上下文激活请求,REL ASYNC为//异步非透传
ATA //接听电话
OK //语音通话建立
ATH //挂断当前语音通话
OK
4.GPRS模块数据收发测试
实际应用中,一般不会将GPRS模块作为服务端,而是作为客户端,与远程的服务器或数据处理中心进行通信。
1)TCP通讯助手设置
搜索本机公网IP地址为117.132.15.218,在TCP通讯助手中设置IP地址为117.132.15.218,端口为7080(若本机不具有公网IP地址,需在内部局域网上设置一端口映射到本机)。设置完后,点击启动服务,如图7- 1所示。
图7- 1 启动服务器端
2)数据传输初始化
AT+CGDCONT=1,”IP”,”CMNET” //设置GPRS接入网关为移动梦网
OK
AT+CGATT? //读取GPRS附着状态
+CGATT: 1 //GPRS已附着
OK
AT+CGACT=1,1 //命令激活PDP上下文功能
OK //如果返回OK,则PDP上下文激活成功
AT^SICS=0,CONTYPE,GPRS0 //将ID为0的Profile的(0通道的)连接方式设置为GPRS0
OK
AT^SICS=0,APN,CMNET //将0通道的接入点名称设置为cmnet
OK
AT^SISS=0,SRVTYPE,SOCKET //设置0通道服务类型为socket
OK
AT^SISS=0,address,”socktcp://117.132.15.218:7080”//根据服务端的配置,设置服务器的IP和端口号
//其中,117.132.15.218为IP,7080为端口号
OK
AT^SISS=0,CONID,0 //将0通道的Internet链接号设置为0
OK
AT^SISO=0 //打开服务器连接
OK //连接已建立
^SISW:0,1,1360 //数据的主动上报命令,通知上层服务已经建立,准备接收新的用户数据//一次能写入的最大字节数为1360
AT^SICI? //查询移动服务端为其分配的IP地址
^SICI:0,2,1,”10.102.134.31”//分配的IP地址为10.102.134.31
OK
3)发送数据至服务器端
AT^SISW =0,10 //发送10个数据
^SISW:0,5,5
//在超级串口发送端输入5个字符:hello,点击发送
OK
^SISW:0,1 //发送成功
发送成功后,服务器端将接收到所发送的hello,在TCP通讯助手上展示的结果如错误!未找到引用源。所示。
图7- 2 数据接收显示
4)接收服务器发来的数据
在TCP通讯助手的发送区输入数据what,选择最近的连接,点击发送,如图7- 3所示。
图7- 3 数据发送
发送完毕后,在超级串口端收到的消息和数据读取流程如下:
^SISR:0,1 //接收缓冲区自动上报提示,表示接收到数据,0为通道号,1表示数据可读
AT^SISR=0,10 //读取数据,0为通道号,10为向缓冲区请求的数据长度
^SISR:0,4 //收到10个数据
what //收到的内容
OK
5)关闭连接
AT^SISC = 0 //关闭与服务器的连接OK