AT命令最常见的应用场景:
1、智能手机:一般智能手机都是一个主芯片控制一个通信模块,这个通信模块就是一个完整的、简单的手机,包括手机应该有的射频、基带等部分,还有GSM协议栈,完全可以独立打电话、发短信、用GPRS上网等。主芯片实现复杂的应用软件。主芯片和通信模块之间通过AT命令,也就是做主芯片通过AT命令控制通信模块打电话,发短信等。
2、其他通信模块。例如出租车上的车载台,通信模块可以接收控制中心发来的短信,进行车辆调度,或者利用GSM中的位置服务—— 一种补充业务,可以实现大致的定位,控制中心可以对出租车做简单的位置跟踪。
简单的说,无线通讯中有一种产品就是把一个简单的手机做成半成品,这个半成品可以通过AT命令控制来实现发短信,打电话,gprs上网等无线通讯功能,业界把这种产品叫做模块/无线模块。然后这个半成品卖给集成商,集成商在产品中挂载一个这样的无线模块,这个无线模块受主芯片控制。集成商可以用这种方式做出不同应用的产品,例如智能手机。其中AT命令是主芯片和无线模块的协议接口,硬件接口一般使用串口。
用户可以通过AT指令进行呼叫、短信、电话本、数据业务、传真等方面的控制。90年代初,AT指令仅被用于Modem操作。没有控制移动电话文本消息的先例,只开发了一种叫SMS BlockMode的协议,通过终端设备(TE)或电脑来完全控制SMS。
几年后,主要的移动电话生产厂商诺基亚、爱立信、摩托罗拉和HP共同为GSM 研制了一整套AT指令,其中就包括对SMS的控制。AT指令在此基础上演化并被加入GSM 07.05标准以及现在的GSM07.07标准,完全标准化和比较健全的标准。如:对SMS的控制共有3种实现途径:
- 最初的Block Mode;
- 基于AT指令的Text Mode;
- 基于AT指令的PDU Mode。
到现在PDU Mode已经取代BlockMode,后者逐渐淡出。GSM 模块与计算机之间的通信协议是一些AT指令集,AT指令是以AT作首, 字符结束的字符串,AT指令的响应数据包在中。每个指令执行成功与否都有相应的返回。其他的一些非预期的信息(如有人拨号进来、线路无信号等),模块将有对应的一些信息提示,接收端可做相应的处理。
示例:
CDMA modem DTE
AT< CR>
< LF> OK < LF>
ATTEST< CR>
< CR> ERROR < LF>
如果AT指令执行成功,“OK”字符串返回;
如果AT 指令语法错误或AT 指令执行失败,
“ERROR”字符串返回。
AT命令详解版:https://blog.youkuaiyun.com/bytxl/article/details/25614491
AT命令的使用
microcom -s 115200 /dev/ttyUSB2
1.准备测试
检测Module与串口是否连通,能否接收AT命令: AT
查看SIM卡是否到位: AT+CPIN?
测试信号: AT+CSQ
查看运营商: AT+COPS?
获取模块标识: AT+CGMM
获取模块厂商标识: AT+CGMI
查看SIM卡是否到位: AT+CPIN?
网络注册,获得手机的注册状态: AT+CREG?
2.拨打电话
拨打电话: ATD电话号码;
来电显示: AT+CLCC(有电话打过来串口会打印RING提示。)
接电话: ATA
挂电话: ATH
挂电话尚未接通的来电: AT+CHUP
3.发短信
短信的编码方式有两种:text模式,pdu模式。因此短信的AT指令执行格式也有两种,分别对应text模式和pdu模式。
1 . Text模式
纯文本模式,支持不同的字符集,从技术上说也可用于发送中文短消息,但国内手机基本上不支持,主要用于欧美地区。
2 . Pdu模式
这个是手机默认的编码方式,可以使用任何字符集,其包括三种编码方式:7bit编码,8bit编码,UCS2编码。
7bit编码:ASCⅡ码就是7bit编码。
8bit编码:ASCⅡ字符可以使用7位二进制表示,但是由于计算机的基本处理单位是字节(1byte=8bit),所以一般在高位补0,用一个字节表示一个ASCⅡ字符。这就是8bit编码。
UCS2编码:处理Unicode字符,使用2个字节来表示一个字符,可以表示世界上所有的字符。发送中文就是使用此编码方式。
发英文短信
设置信息格式: AT+CMGF=1 (格式有TEXT方式和PDU方式。AT+CMGF=1时是TEXT方式,AT+CMGF=0是PDU方式)
发送短信: AT+CMGS=“电话号码”
下一行出现>后面跟的是发送的内容
(以ctrl+z(0x1A)结束)
例如:
at+cmgs=“152XXXXXXXX”
> ni hao
(ctrl+z)
设置收到短消息提示: AT+CNMI=1,1,2
设置存储区域为SM: AT+CPMS=”SM”
读取短信: AT+CMGR=index(index为读第几条短信)
发中文短信:
设置信息格式: AT+CMGF=0
发中文短信这里暂时也不去了解,发中文短信可以参考:https://blog.youkuaiyun.com/a_tu_/article/details/47808017
AT命令详解:https://blog.youkuaiyun.com/bytxl/article/details/25614491