新闻中心

EEPW首页 > 物联网与传感器 > 设计应用 > 物联网从业者必须要会的AT指令介绍

物联网从业者必须要会的AT指令介绍

作者: 时间:2023-12-15 来源:欧工玩转嵌入式 收藏

 对于大多数从业者来说,有两样东西是避免不了的,一个是单片机,一个是移动模块。现在主流的模块都以4G模组和NB-IOT模组为主(由于运营商正在对2G进行退网,在新产品上继续使用2G模组已经是个不明智的决定了)。无论是曾经的2G模组还是现在主流的4G和NB-IOT模组,都采用了AT指令的方式与外部控制器进行,AT指令因此成为从业者必须要掌握的知识。

本文引用地址://www.cazqn.com/article/202312/453928.htm

4G模组举例

  AT是Attention的缩写,最早是贺氏公司(Hayes)为了控制调制解调器而发明的协议。后来随着网络带宽的升级,速度很低的拨号调制解调器基本退出一般使用市场,但是 AT 命令保留了下来,并且逐渐被标准化。现在的移动通信模组(2G,4G,NB-IOT)皆采用AT指令作为其控制协议,AT 指令已经成为通信模组产品开发中的实际标准。

某4G模块应用示意图

  AT指令只是AT客户端(如)和AT服务器(如移动通信模组)之间的软件接口,硬件上基本都采用串口作为接口。有一点需要注意,很多模块的串口电平采用的是1.8V,而大多数的IO口电平是3.3V或5V,所以在硬件连接上需要依据具体情况考虑进行电平转换。

AT指令工作示意图

  AT指令的大部分使用场景是这样:主动发送AT指令给模组,然后等待模组返回数据,MCU再根据返回的数据做对应操作。每个AT指令都有一个超时时间,如果MCU发送出AT指令后在超时时间内没有收到返回的数据则需要重试。AT指令中还有一种数据被成为URC数据,URC的全称是Unsolicited Result Code,翻译成中文就是“不请自来的结果码”。顾名思义,它不是模块对MCU所发送AT指令的返回,而是模块主动上报的数据。比如模块收到TCP数据包,或者模块的网络状态发生改变,都会通过URC数据主动告知MCU。


  下面介绍下AT指令的格式。AT指令是基于字符串的通信协议,一般 AT 命令由三个部分组成,分别是:前缀、主体和结束符。其中前缀由字符“AT”构成;主体由命令、参数和可能用到的数据组成,结束符一般为 <CR><LF> (即回车换行,对应于ASCII码中的“rn”)。AT指令可以分为以下几种(<x>代表命令):


  上表中省略了结束符,在实际使用中,将<x>替换为要用的命令,并且整个命令需要以<CR><LF>结尾。如何知道模块都支持哪些AT指令呢?关于具体的AT指令,其实不用刻意去记忆,因为每个模块都会有配套的AT指令集手册,要用的时候再去查询手册就行了。

AT指令应用举例(以下指令皆省略了回车换行):

MCU发送:AT
模组返回:OK
命令说明:可以根据是否有OK返回判断模块是否可用。


MCU发送:AT+CGSN
模组返回:<IMEI>
     OK
命令说明:用于查询模组的IMEI。


MCU发送:AT+CGACT=<state>,<cid>
模组返回:OK
命令说明:用于设置模块PDP上下文激活状态。


MCU发送:AT+CGACT?
模组返回:+CGACT: <cid>,<state>
     OK
命令说明:用于查询模块PDP上下文激活状态。




关键词: 物联网 MCU 通信

评论


相关推荐

技术专区

关闭