实验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

相关文档
最新文档