1. AT命令基本介绍
1.1 基本介绍
AT 命令(AT Commands)最早是由发明拨号调制解调器(MODEM)的贺氏公司(Hayes)为了控制 MODEM 而发明的控制协议。后来随着网络带宽的升级,速度很低的拨号 MODEM 基本退出一般使用市场,但是 AT 命令保留下来。
在嵌入式开发中,经常是使用AT命令去控制各种通讯模块,比如ESP8266 WIFI模块、4G模块、GPRS模块等等。一般就是主芯片通过硬件接口(比如串口、SPI)发送AT命令给通讯模块,模块接收到数据之后回应响应的数据。
在这个通讯过程中其实就是涉及AT命令客户端和AT命令服务器,AT命令集就是他们互相约定好的协议接口。大概的通讯结构如下:
其中,AT客户端通常是主芯片作为客户端,AT服务器一般就是各种通讯模块。
1.2 AT命令组成和通讯过程
-
AT命令由三个部分组成,分别是前缀、主体和结束符。其中前缀由字符 AT 构成;主体由命令、参数和可能用到的数据组成;结束符一般为
<CR><LF>
("\r\n"
)。比如
AT+CWMODE=3\r\n
这条命令,AT就是前缀,中间就是主体部分,\r\n 就是结束符。 -
AT命令通讯过程的实现,需要AT Client 和 AT Server 两部分共同完成。
-
AT客户端和AT服务器之间硬件通讯接口,一般最常用的是串口,也有SPI接口等。
-
AT Client主要作用是主动发送AT命令,然后等待AT Server的响应数据,并对响应数据或者AT Server主动发送的数据(即URC数据)进行解析。
-
AT Server 返回给 AT Client 的数据有两种。命令响应数据和 URC 数据(unsolicited result code)。
命令响应数据:AT Client 发送命令后 AT Server 回应的响应状态和信息。
URC数据