2012-08-26 | #1 (permalink) |
论坛管理员
注册日期: 2009-06-30
帖子: 861
|
AT命令解释
一、 AT命令解释:
1、常用操作 1.1 AT 命令解释:检测Module与串口是否连通,能否接收AT命令; 命令格式:AT<CR> 命令返回:OK (与串口通信正常)(无返回,与串口通信未连通) 测试结果:AT OK 1.2 AT+CSQ 命令解释:检查网络信号强度和SIM卡情况 命令格式:AT+CSQ<CR> 命令返回:+CSQ: **,## 其中**应在10到31之间,数值越大表明信号质量越好,##应为99。 否则应检查天线或SIM卡是否正确安装 测试结果:AT+CSQ<CR> +CSQ: 31, 99 信号强度值会有少许变化,用手遮住天线,信号强度值会下降(大致在26左右)。 1.3 ATZ 命令解释:恢复原厂设置 命令格式:ATZ<CR> 命令返回:OK 1.4 AT+CGMR 命令解释:查询模块版本; 命令格式:AT+CGMR<CR> 命令返回: <revision > +CMEERROR <err> 测试结果:AT+CGMR<CR> R4A021 CXC1122528 OK 解释:模块版本号为R4A021 1.5 AT+IPR 命令解释:修改串口1波特率; 命令格式:AT+IPR=<value ><CR> 命令返回: ERROR OK 测试结果:AT+IPR=19200<CR> OK 注意:串口波特率修改为19200后要把串口调试工具的波特率设为相应 波特率后模块才会有返回 1.6 AT&W 命令解释:保存模块设置; 命令格式:AT&W<CR> 命令返回: OK ERROR(保存不成功) 测试结果:AT&W <CR> OK 2、通话操作 2.1ATD 命令解释:拨打电话 命令格式:ATD**********;<CR>(****为电话号码) 命令返回:OK NO DIAL TONE(没有拨号音) NO CARRIER(无载波) 测试结果:a. ATD13510090403;<CR> OK 呼叫成功; b. ATD13510090403;<CR> NO DIAL TONE 天线未接好,接触不良; c. ATD13510090403<CR> NO CARRIER 命令错误,缺{;}; 2.2RING 命令解释:有电话呼入 命令格式: 命令返回:无 2.3ATA 命令解释:摘机 命令格式:ATA<CR> 命令返回:OK 测试结果:RING RING ATA<CR> OK 接通电话; 2.4ATH 命令解释:挂机 命令格式:ATH<CR> 命令返回:OK 测试结果:ATH<CR> OK 电话挂断(通话过程中); 2.5AT+CHUP 命令解释:挂机 命令格式:AT+CHUP<CR> 命令返回:OK 测试结果:RING ATH<CR> OK 电话挂断(尚未接通来电); 2.6AT+VTS 命令解释:拨打分机 命令格式:AT+VTS=“分机号码”<CR> 命令返回:OK 测试结果: AT+VTS=“0”<CR> OK 3、短信息操作 短信操作步骤及相关命令: (1) 设置短信格式——AT+CMGF (2) 设置短信存储载体——AT+CPMS (3) 设置短信接收提示方式——AT+CNMI (4) 发送短信——AT+CMGS (5) 显示短信——AT+CMGL 3.1AT+CPMS 命令解释:选择短信存储载体 3.1.1命令格式:AT+CPMS=<mem1>[,<mem2>][,<mem3>] 设置短信存储载体 命令返回:+CPMS:<used1>,<total1>,<used2>,<total2>,<used3>,<total3> OK ERROR 测试结果:a. AT+CPMS=”SM” +CPMS: 8,15,8,15,1,40 OK 设置成功,并显示状态:SM(SIM卡)存储器总容量为15,当前存储量8; ME(模块)存储器总容量为40,当前存储量1;mem1定义为SM; b. AT+CPMS=”SM”,”SM” +CPMS: 8,15,8,15,1,40 OK 设置成功,并显示状态:SM存储器总容量为15,当前存储量8; ME存储器总容量为40,当前存储量1;mem1定义为SM;mem2 定义为SM; c. AT+CPMS=”SM”,”SM”,”SM” +CPMS: 8,15,8,15,8,15 OK 设置成功,并显示状态:SM存储器总容量为15,当前存储量8; ME存储器总容量为40,当前存储量1;mem1定义为SM;mem2 定义为SM;mem3定义为SM; d. AT+CPMS=”ME”,”SM”,”SM” +CPMS: 1,40,8,15,8,15 OK 设置成功,并显示状态:SM存储器总容量为15,当前存储量8; ME存储器总容量为40,当前存储量1;mem1定义为ME;mem2 定义为SM;mem3定义为SM; e. AT+CPMS=”ME”,”SM”,”ME” +CPMS: 1,40,8,15,1,40 OK 设置成功,并显示状态:SM存储器总容量为15,当前存储量8; ME存储器总容量为40,当前存储量1;mem1定义为ME;mem2 定义为SM;mem3定义为ME; f. AT+CPMS=”ME ERROR 命令格式错误,缺少{”}; 3.1.2命令格式:AT+CPMS? 显示当前短信存储载体设置 命令返回:+CPMS:<mem1>,<used1>,<total1>,<mem1>,<used2>,<total2>, <mem1>,<used3>,<total3> OK ERROR 测试结果:a. AT+CPMS? +CPMS: "SM",8,15,"SM",8,15,"ME",1,40 OK 当前短信存储载体设置为:mem1为SM,mem2为SM,mem3 为ME; b. AT+CPMS! ERROR 命令错误; 3.1.3命令格式:AT+CPMS=? 显示本命令支持的参数 命令返回:+CPMS: (list of supported<mem1>s),(list of supported<mem2>s), (list of supported<mem3>s) OK ERROR 测试结果:AT+CPMS=? +CPMS: ("ME","SM",("ME","SM",("ME","SM" OK 3.2AT+CMGF 命令解释:设置短信格式 3.2.1命令格式:AT+CMGF=<mode> 命令返回:OK ERROR 设置短信格式 3.2.2命令格式:AT+CMGF=? 命令返回:OK ERROR 显示本命令支持的参数 3.2.3命令格式:AT+CMGF? 命令返回:OK ERROR 显示当前短信格式 测试结果:AT+CMGF=? +CMGF: (0,1) OK AT+CMGF? +CMGF: 0 OK AT+CMGF=1 OK AT+CMGF? +CMGF: 1 OK 3.3AT+CMGS 命令解释:发送短信 命令格式:AT+CMGS=<da>[,<toda>]<CR> Text is entered<ctrl-z/ESC> 命令返回:+CMGS:<mr>[,<scts>] +CMS ERROR:<err> OK ERROR 测试结果:a. AT+CMGS=13510090403<CR> >ABCD1234.456<ctrl-z> +CMS ERROR:500 命令错误; b. AT+CMGS="13510090403"<CR> > IT IS TEST NOW<ctrl-z> +CMGS: 235 OK 3.4AT+CMGR 命令解释:读短信 命令格式:AT+CMGR=<indes> 命令返回:+CMGS:<stat>,[<alpha>],<length>]<CR><LF><pdu> +CMS ERROR:<err> OK ERROR 测试结果:a. AT+CMGR=5 +CMS ERROR:500 命令错误,5号短信位置为空; b. AT+CMGR=2 +CMGL: 2,"REC READ","+8613682326205","N?R","03/08/28 17:30:35+00" 998B76844F60002E518D5FCD5FCD5427+CMGS: 235 OK 读出2号短信; 3.5AT+CMGW 命令解释:写短信,并保存到存储载体 命令格式:AT+CMGW=<length>[,<stat>]<CR> 命令返回:+CMGS:<index> +CMS ERROR:<err> OK ERROR 测试结果:AT+CMGW="13534139079"<CR> > SHELLEY123456<ctrl-z> +CMGW: 1 OK 把目标地址为13534139079的短信存入存储载体,且被分配的地址 为1号短信; 3.6AT+CMGD 命令解释:删除短信 命令格式:AT+CMGD=<index> 命令返回:+CMS ERROR:<err> OK ERROR 测试结果:AT+CMGD=1 OK 1号短信被删除; 3.7AT+CMGL 命令解释:显示短信清单 命令格式:AT+CMGL=<stat> 命令返回:+CMGL:<index1>,<stat>,<oa/da>,[<alpha>],[<scts>][,<tooa/toda>,<length>] <CR><LF><data>[<CR><LF> 测试结果:见总测试结果; 3.8AT+CMSS 命令解释:发送存储载体中的短信 命令格式:AT+CMSS=<index> 命令返回:+CMSS:<mr> +CMS ERROR:<err> OK ERROR 测试结果:AT+CMSS=2 +CMSS: 204 OK 3.9AT+CNMI 命令解释:新短信提示 3.9.1命令格式:AT+CNMI=[<mode>[,<mt>[,<bm>[,<ds>]]]] 命令返回:OK ERROR 测试结果:AT+CNMI=3,2 OK 3.9.2命令格式:AT+CNMI? 命令返回:+CNMI:<mode>,<mt>,<bm>,<ds> OK ERROR 测试结果:AT+CNMI? +CNMI: 3,2,0,0 OK 3.9.3命令格式:AT+CNMI=? 命令返回:+CNMIlist of supported<mode>s), (list of supported<mt>s), (list of supported<bm>s), (list of supported<ds>s) OK ERROR 测试结果:AT+CNMI=3,2 OK 4、语音部分: 4.1 AT*E2EAMS 命令解释:设定音频工作参数(修改语音通道) 4.1.1 命令格式:AT*E2EAMS=<OP >,<NUM >,<VAL > 命令返回:OK ERROR 测试结果:<OP>为N在1-20之间,表示设置第N个参数 AT*E2EAMS=9,2(把模块的语音MIC通道设定为手柄) OK AT*E2EAMS=10,2(把模块的语音SPK通道设定为手柄) OK <OP >为0表示设置所有参数 AT*E2EAMS=0,2,1,2,0,0,2,5,9,2,2,0,1,0,0,0,1,1,0,0,1 OK <OP >为255表示要保存设置 AT*E2EAMS=255 OK 5、GPS接口: 5.1 AT*EENMEA 命令解释:设定GPS数据使能 命令格式:AT*EENMEA=<val > 命令返回:OK ERROR 测试结果: AT*EENMEA=0 (不接受串口2发来的NMEA数据) OK AT*EENMEA=2 (接受来自串口2的NMEA数据) OK 5.2 AT*E2NMPR 命令解释:设定串口2发送GPS数据的波特率 5.2.1命令格式:AT*E2NMPR=<val > 命令返回:OK ERROR 测试结果:AT+CNMI=5 (设定串口2的波特率为19200) OK 6、TCP/IP部分 TCP/IP简单操作步骤: (1) 获得IP——AT*E2IPA=1,1 (2) 连接服务器端口 AT*E2IPO=0or 1,“IP”,“PORT” 6.1 AT*E2IPA 命令解释:获得IP 命令格式:AT*E2IPA=<Activate>,<cid> 命令返回:OK ERROR *E2IPA: <ErrNum> ERROR 测试结果:AT*E2IPA =1,1 OK 6.2 AT*E2IPI 命令解释:查看IP 命令格式:AT*E2IPI=<InfoType> 命令返回:ERROR *E2IPI: <IPAddr> OK 测试结果: AT*E2IPI=0 *E2IPI: 10.103.81.153 OK 查询模块获得的IP地址 AT*E2IPI=1 *E2IPI: 211.136.20.203 OK 查询第一级DNS服务器的IP地址 6.3 AT*E2IPO 命令解释:打开服务器的端口 命令格式:AT*E2IPO=<IPType>,<IPAddr>,<IPPort> 命令返回:CONNECT ERROR *E2IPO: <ErrNum> ERROR 测试结果: AT*E2IPo=1,"166.111.8.238",23 CONNECT 解释:本命令是在获得IP后,与166.111.8.238的23端口建立一个TCP连接。 注意:部分公司的服务器是采用UDP连接的,此情况下要采用AT*E2IPO=0,“***,***,***,***”,PORT “***,***,***,***”表示服务器的IP地址, “PORT”是连接的端口号。 6.4 AT*E2IPC 命令解释:关闭IP连接 命令格式:AT*E2IPC 命令返回:ERROR OK *E2IPC: <ErrNum> ERROR 测试结果:AT*E2IPC OK 6.5 AT*E2IPRH 命令解释:解析URL 命令格式:AT*E2IPRH=<URL> 命令返回:ERROR *E2IPRH: <IPAddr> OK 测试结果:AT*E2IPRH="www.163.com" *E2IPRH: 202.108.36.167 OK 解析出www.163.com的URL为:202.108.36.167 6.6 AT*E2IPE 命令解释:获得最新的错误信息。 命令格式:AT*E2IPE Or AT*E2IPE? 命令返回:ERROR *E2IPE: <ErrType> 测试结果:AT*E2IPE *E2IPE: 000 OK “000”表示没有错误。 “001”表示没有找到主机。 “252”表示接收IP数据错误。 “253”表示超过了IP数据的最大长度。 “254”表示断开了GPRS连接。 “255”表示通常的错误。 6.7 AT*E2IPS设定网络通信参数 命令解释:获得IP 命令格式:AT*E2IPS=<RetryTm>,<NmRetry>,<WaitTm>,<SendSz> 命令返回:ERROR OK 测试结果:AT*E2IPS=2,10,1,1020 OK 参数说明: 第一个参数表示IP重发IP数据包等待的时间为2秒。 第二个参数表示重发的次数。 第三个参数表示在发送一个IP数据包之前等待数据的时间。 第四个参数表示TCP或者UDP数据块的最大长度。 二、应用举例 1、连接后一般操作 AT OK 测试信号强度: AT+CSQ +CSQ: 29,99 OK 恢复原厂设置: ATZ OK 查询模块版本: T+CGMR R4A021 CXC1122528 OK 修改串口波特率: AT+IPR=115200 OK 保存设置: AT&W OK 2、拨打电话 拨打电话: ATD13510090403; OK 挂机: AT+CHUP OK 有电话呼入: RING RING 摘机: ATA OK 挂机: ATH OK 3、短信息服务: 选择短信存储载体: AT+CPMS? +CPMS: "SM",7,15,"SM",7,15,"ME",0,40 OK AT+CPMS=? +CPMS: ("ME","SM",("ME","SM",("ME","SM" OK AT+CPMS="ME" +CPMS: 0,40,7,15,0,40 OK AT+CPMS=? +CPMS: ("ME","SM",("ME","SM",("ME","SM" OK AT+CPMS/ ERROR AT+CPMS? +CPMS: "ME",0,40,"SM",7,15,"ME",0,40 OK AT+CPMS="SM","SM","SM" +CPMS: 7,15,7,15,7,15 OK AT+CPMS? +CPMS: "SM",7,15,"SM",7,15,"SM",7,15 OK ATZ OK AT+CPMS? +CPMS: "SM",7,15,"SM",7,15,"ME",0,40 OK AT+CPMS="SM","SM","SM" +CPMS: 7,15,7,15,7,15 OK 设置短信息格式: AT+CMGF=? +CMGF: (0,1) OK AT+CMGF? +CMGF: 1 OK AT+CMGF=0 OK AT+CMGF? +CMGF: 0 OK AT+CMGF=1 OK 发送短信息: AT+CMGS="13510090403" > HI IT IS TEST,PLS ANSWER ME. +CMGS: 0 OK 设置新短信提示方式: AT+CNMI? +CNMI: 3,0,0,0,0 OK AT+CNMI=? +CNMI: (3),(0,1,2,3),(0,2),(0,1,2),(0) OK AT+CNMI=3,1,0,0 OK AT+CNMI? +CNMI: 3,1,0,0,0 OK 有新短信:(并显示:短信存储在载体“SM”中的1号位置) +CMTI: "SM",1 读短信: AT+CMGR=1 +CMGR: "REC UNREAD","+8613662626940",,"03/08/29,09:44:02+00" 123456ABC OK 设置新短信提示方式: AT+CNMI=3,2 OK AT+CNMI? +CNMI: 3,2,0,0,0 OK 有新短信: +CMT: "+8613662626940",,"03/08/29,09:47:14+00" 123456ABC333 设置新短信提示方式: AT+CNMI=3,3 OK 有新短信: +CMTI: "SM",6 AT+CMGR=6 +CMGR: "REC UNREAD","+8613662626940",,"03/08/29,09:49:14+00" 123456ABC333 OK 显示短信清单: AT+CMGL="ALL" +CMGL: 1,"REC READ","+8613662626940",,"03/08/29,09:44:02+00" 123456ABC +CMGL: 2,"REC READ","+8613902970800","DAVID","02/05/17,14:19:50+00" 66FE7ECF591A5C116B21FF0C4F6075285AE96ED17684808C80A47D278D348D6488F876846211FF0C 4F608F7B67D47684629A6478548C4E0D89C4521976848FD052A8FF0C7ED962115E26676596359635 5FEB611FFF0C7136540E4F606E106E106D887626FF0C62404EE5621189818BF4FF1A621172314F60 FF0C99997682FF01 OK 删除指定短信: AT+CMGD=2 OK AT+CMGL="ALL" +CMGL: 1,"REC READ","+8613662626940",,"03/08/29,09:44:02+00" 123456ABC OK AT+CMGL=? +CMGL: "REC UNREAD","REC READ","STO UNSENT","STO SENT","ALL" OK 4、GPS接口服务: 开处理NMEA命令功能: AT*EENMEA=2 OK 设定串口2波特率为“19200” AT*E2NMPR=5 OK 串口1获得NMEA命令 $ GPS DATA $ GPS DATA $ GPS DATA 5、TCP/IP操作: 获取IP AT*E2IPA=1,1 OK 查询IP AT*E2IPI=0 *E2IPI: 10.103.3.91 OK 查询第一级DNS的IP地址 AT*E2IPI=1 *E2IPI: 211.136.20.203 OK 连接BBS(水木清华) AT*E2IPO=1,"166.111.8.238",23 CONNECT OK 关闭IP连接 AT*E2IPC OK ATO NO CARRIER 短消息类(class)的概念:根据指定储存的位置,短消息分为class 0 – 3四个类。也可以不指定类(no class),由ME按默认设置进行处理,存储到内存或者SIM卡中。在TPDU的TP-DCS字节中,当bit7-bit4为00x1, 01x1, 1111时,bit1-bit0指出消息所属类: 00– class 0:只显示,不储存 01 – class 1:储存在ME内存中 02 – class 2:储存在SIM卡中 03 – class 3:直接传输到TE GSM Modem一般都支持一条“AT+CNMI”指令,可用于设定当有某类短消息到达时,如何处置它:只储存在指定的内存(易失的/非易失的)中,先储存后通知TE,还是直接转发到TE,等等。 “AT+CNMI”指令语法为 AT+CNMI=[<mode>[,<mt>[,<bm>[,<ds>[,<bfr>]]]]] mode - 通知方式: 0– 不通知TE。 1 – 只在数据线空闲的情况下,通知TE;否则不通知TE。 2 – 通知TE。在数据线被占用的情况下,先缓冲起来,待数据线空闲,再行通知。 3 – 通知TE。在数据线被占用的情况下,通知混合在数据中一起传输。 mt - 消息储存或直接转发到TE: 0– 储存到默认的内存位置(包括class 3) 1 – 储存到默认的内存位置,并且向TE发出通知(包括class 3) 2 – 对于class 2,储存到SIM卡,并且向TE发出通知;对于其它class,直接将消息转发到 TE 3 – 对于class 3,直接将消息转发到 TE;对于其它class,同mt=1 bm, ds, bfr的含义,请参考相关标准文档。一般不需要去关心它们。 在程序中具体实现时,使用mode=2, mt="1",比较简单。对所有类型的短消息,只要在收到ME送来的“+CMTI”通知后,用“AT+CMGR”指令读取消息内容就行了。TE与ME之间的通信过程,举例如下: (初始化) AT+CNMI=? (查看能支持的设置范围) +CNMI: (0-2),(0-3),(0,2,3),(0,1),(0,1) OK AT+CNMI? (查看当前设置) +CNMI: 0,0,0,0,0 OK AT+CNMI=2,1 (设置为mode=2, mt="1") OK AT+CNMI? (再查看当前设置) +CNMI: 2,1,0,0,0 OK (过了一段时间,有一条消息到达) +CMTI “ME”,8 (通知:消息已经存储在ME内存中,序号为8) AT+CMGR=8 (读第8条消息) +CMGR: 8,27 0891683108200505F0240D91683158812764F80000402052110373800741E19058341E01 OK AT+CMGD=8 (删除第8条消息) OK 还有一种方式mode=2, mt="2"也很令人感兴趣。在这种方式下,除了class 2外,消息不存储,直接转发到TE。需要处理消息通知和内容两种情况,复杂一些。但如果发送方也由程序控制,可以只发no class或class 1的消息,这样不存储在接收方ME内存(一般是闪存,非易失性的)中,肯定能延长它的使用寿命。TE与ME之间的通信过程,举例如下: AT+CNMI=2,2 (设置为mode=2, mt="2") OK (过了一段时间,有一条消息到达) +CMT: ,26 0891683108200505F0040D91683158812764F8000840205211639180064F60597D0021
__________________
让世界倾听我们的笛声 |