20221216-AT指令介绍

AT 指令最初是用来指导modem 工作的,

虽然在PC 端,手机上已经没有了AT 的使用,但其却在嵌入式行业里各类联网模块中发挥着重要的作用,而且不仅仅只应用在蜂窝模块,还应用到了wifi ble 等模块中

相关标准

随着技术的发展,目前 AT 指令发展过程中形成两个重要标准

V.250:该标准于 1995 年建立,1998 年重命名为 V.250
ETSI GSM 07.07(3GPP TS 27.007):用于控制 GSM modem 的 AT 指令集
GSM 07.07 是基于 V.250 标准的。是目前最新的 AT 标准。

当下AT 指令的应用

目前 的AT 指令着重应用在蜂窝模块 wifi 模块,ble 模块,目的是为了简化嵌入式设备联网的复杂度

AT 标准定义了At 命令的格式本身,比如命令以 AT 为前缀,以 或者 结尾,这被现有的AT 模块所延用

但是,由于每个厂家的模块不一样,实现的功能不一样,导致每个 AT 模块厂家有自己的一套私有的 AT 命令集,每一个 AT 模块厂家实现的 AT 指令集解析器也不一样(解析器实现的 AT 标准功能也参差不齐)。像上图所示的 AT 命令使用方式不被大多数模块厂家所实现。

AT模块的应用框图

既然是指令集,那么必然会有指令集的解析处理,通常,我们把AT 模块端的解析处理程序称为AT Server,而将控制AT 模块的处理器端的解析处理程序称为AT client 由AT client 发起命令请求,AT Server 通过URC 来主动给AT client 发送数据

一些约定

AT 命令的常用格式

1
AT+CMD=<xxx>[,<xxx>,<xxx>]

AT命令以AT 开始,以 \r 或者 \r\n 结尾,参数之间使用 , 隔开,字符串参数使用双引号 “” 包裹,整形参数不适用双引号。

:回车符
:换行符

尖括号中的名称 xxx 在 AT 里是一个语法元素,要求必须指定。尖括号本身不会出现在命令行里。
[xxx]
中括号中的名称 xxx 在 AT 里是一个语法元素,表示可选择指定。中括号本身不出现在命令行里。

四类AT 命令

Test 命令:AT+=?
测试指令类似于命令行里的 help 指令,用于提供该命令的使用信息,以及命令参数的取值范围。
Read 命令:AT+?
用于查询该指令对应功能的当前值。
Set 命令:AT+=<…>
设置用户指定的参数到对应的功能里。
Execute 命令:AT+
执行相关操作。

响应结果字符串

AT 标准定义了标准的响应结果字符串:

\r\nOK\r\n
如果 AT 指令被 AT Server 识别,并正确执行,则返回该结果。
“ 标准中的 V1 模式下响应结果代码的方式。V0 模式下返回 0\r。

\r\nERROR\r\n
“ 标准中的 V1 模式下响应结果代码的方式。V0 模式下返回 4\r。

数据模式与指令模式

在收到 +++,并且接下来 1s 内未收到其他数据的话,将从数据模式切换到指令模式。

数据模式,可以透传数据,client 发什么,server 就原封不动发出去。指令模式时,AT Server 需要解析 AT 指令,并作出响应。

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2015-2024 TeX_baitu
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~