AT命令使用和简单介绍

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命令组成和通讯过程

  1. AT命令由三个部分组成,分别是前缀、主体和结束符。其中前缀由字符 AT 构成;主体由命令、参数和可能用到的数据组成;结束符一般为 <CR><LF> ("\r\n")。

    比如 AT+CWMODE=3\r\n 这条命令,AT就是前缀,中间就是主体部分,\r\n 就是结束符。

  2. AT命令通讯过程的实现,需要AT Client 和 AT Server 两部分共同完成。

  3. AT客户端和AT服务器之间硬件通讯接口,一般最常用的是串口,也有SPI接口等。

  4. AT Client主要作用是主动发送AT命令,然后等待AT Server的响应数据,并对响应数据或者AT Server主动发送的数据(即URC数据)进行解析。

  5. AT Server 返回给 AT Client 的数据有两种。命令响应数据和 URC 数据(unsolicited result code)。

    命令响应数据:AT Client 发送命令后 AT Server 回应的响应状态和信息。

    URC数据:AT Server 主动发送给 AT Client 的数据。比如 AT Server接收到网络的数据后,会主动把这些数据发送给 AT Client ,又或者 WIFI 断开连接等,也会主动发数据告知 AT Client。

2. 基于ESP8266使用AT命令

2.1 ESP8266常用命令

命令功能
AT回复OK。主要用于查询模块是否正常工作
AT+RST复位模块
ATE0/ATE1关闭/打开命令回显功能
AT+CWMODE=1设置WIFI模式为 WIFI station 模式
AT+GMR获取模块版本信息
AT+CIFSR查询模块IP地址
AT+CIPMUX=0/10:单连接。1:开启多连接。这时可以支持多个TCP客户端接入模块(模块作为TCP Server)。当使能了多连接之后,后面的有些指令就要带上连接号了,不然模块会识别为错误的AT指令。
AT+CWJAP=“SSID”,“password”连接WIFI。SSID是WIFI名称,password是WIFI密码。
AT+CIPSTART=“TCP”,“192.168.0.102”,8080ESP8266作为TCP Client连接到TCP服务器。TCP代表协议,192.168.0.102是服务器IP,8080是服务器端口。
AT+CIPSEND=nESP8266模块向TPC Server发送数据,n表示要发送多少个字节。如果这条命令发送成功的话,会回复 OK 然后接着下一行回复 ‘>’ 这个符号。
然后再接着向模块写入n字节数据(超过n字节的话,会丢弃超过的数据),这个时候就相当于发送出去了。如果回复 SEND OK 表示发送成功,回复 SEND FAIL 表示发送失败。
+IPD,n:xxxxxxxxxxx当模块接收到 TCP Server 发送的数据时,会回复这条数据给主芯片(AT Client)。其中n,表示接收到了n字节,: 号后面就是 TCP Server 实际发送过来的数据。
AT+CIPCLOSEESP8266模块断开与 TCP Server 的网络连接。
AT+CWQAPESP8266模块断开 WIFI 连接。

2.2 ESP8266模块AT命令收发实验

ESP8266模块是使用串口对外作为通讯接口的,我们可以通过串口发送各种AT命令配置模块、收发数据等等。

我们使用电脑上运行的串口助手作为 AT Client 发送命令和接收模块的响应数据、URC数据,ESP8266模块作为AT Server。

1、USB转串口连接ESP86266模块

首先,使用USB转串口,接线到ESP8266模块。我们只要连接模块的 VCC、GND、RX、TX,这四个引脚即可。如下图:

在这里插入图片描述

连接好之后,USB转串口插到电脑上。然后使用串口助手发送上面介绍的常用AT命令。

2、PC串口助手发送AT命令

PC段运行串口助手,通过串口助手发送AT命令给ESP8266模块,如下,记录了AT发送命令和命令响应数据。

[13:46:03.634]发→◇AT+GMR
[13:46:03.639]收←◆AT+GMR
AT version:1.2.0.0(Jul  1 2016 20:04:45)
SDK version:1.5.4.1(39cb9a32)
v1.0.0
Mar 11 2018 18:27:31
OK


[13:46:10.170]发→◇AT+CIFSR
[13:46:10.174]收←◆AT+CIFSR
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"4a:55:19:c7:ed:ad"
+CIFSR:STAIP,"192.168.0.100"
+CIFSR:STAMAC,"48:55:19:c7:ed:ad"

OK


[13:46:25.723]发→◇AT+CIPSTART="TCP","192.168.0.103",8080
[13:46:25.729]收←◆AT+CIPSTART="TCP","192.168.0.103",8080

[13:46:25.782]收←◆CONNECT

OK

[13:51:50.705]发→◇AT+CIPSEND=4
[13:51:50.710]收←◆AT+CIPSEND=4

OK
> 
[13:51:56.161]发→◇abcd
[13:51:56.166]收←◆
busy s...

Recv 4 bytes

[13:51:56.222]收←◆
SEND OK

[13:52:01.535]收←◆
+IPD,10:1234567890

下图记录了收发过程:

在这里插入图片描述

如果要连接TCP Server,那么还有在电脑上开启一个TCP Server,这样ESP8266要连接TCP Server是才能连接成功。下面就开启了一个TCP服务器。

在这里插入图片描述

### 回答1: at命令是一种在计算机命令行中使用的指令,用于与操作系统或其他应用程序进行交互。at命令接收和解析源码涉及两个方面:命令的接收和命令的解析。 首先,at命令的接收是指计算机操作系统或应用程序能够接收到输入的at命令。在计算机接收到用户输入的at命令后,会将该命令传递给相应的处理程序进行解析和执行。这一过程涉及到命令的输入、输入设备的驱动程序读取和传递到操作系统等。 其次,命令的解析是指计算机系统对接收到的at命令进行解析和理解的过程。在解析过程中,计算机会根据定义好的语法和规则对输入的at命令进行分析,并提取出命令的关键信息和参数。这一过程涉及到对命令的语法和语义进行验证、参数的提取和解析、错误处理等。 at命令通常具有特定的语法和格式,如at命令后跟的是指定的命令关键字和参数,且多个关键字和参数之间可以通过空格或其他分隔符进行分隔。因此,在解析源码时,计算机需要对命令进行逐个字符的扫描和分析,并根据事先定义好的语法规则和语义规则对其进行解析。 通过at命令的接收和解析,计算机可以根据用户的输入执行相应的操作,如打开程序、运行脚本、设置定时任务等。同时,计算机也会根据解析到的命令参数和关键信息做出对应的响应和返回结果,使用户能够获得所需的信息或操作结果。这一过程是计算机与用户进行交互和通信的重要环节,为用户提供了方便和高效的操作方式。 ### 回答2: at命令是一个用于交互式操作和管理计算机的命令行工具。它接收和解析源码的过程可以分为以下几个步骤: 1. 接收源码:当用户输入at命令时,操作系统首先会将这个命令传递给shell解释器。Shell解释器负责解析用户输入的命令,并将其传递给at命令的执行程序。 2. 解析源码:at命令的执行程序会对接收到的源码进行解析。它会按照一定的规则和语法进行解析,识别命令中的各个部分,如命令名称、参数、选项等。通过解析源码,at命令能够确定要执行的操作。 3. 执行操作:一旦at命令解析源码成功,它就可以开始执行具体的操作了。根据源码中的命令名称和参数,at命令可以执行各种不同的操作,如运行程序、调度任务、修改系统设置等。 4. 错误处理:在执行操作的过程中,at命令还会进行错误处理。如果在解析源码或执行操作的过程中发生了错误,at命令会向用户报告错误信息,并采取相应的措施,如终止执行或尝试恢复。 总体而言,at命令接收和解析源码的过程是一个多阶段的过程,涉及到命令传递、解析语法、执行操作和错误处理等环节。通过这个过程,at命令能够根据用户的需求来管理和操作计算机系统。 ### 回答3: at 命令接收和解析源码是指对于 at 命令接收到的用户输入进行解析和执行相关操作的过程。at 命令是一种用于在指定时间执行一次性任务或周期性任务的命令。下面以 Linux 系统为例,简单介绍 at 命令的工作原理。 在用户输入 at 命令时,通过命令行输入需要执行的任务及时间等参数。at 命令首先会接收用户输入的参数,并对其进行解析。解析过程主要包括解析时间参数、指定执行的命令、任务的执行频率等。 在解析时间参数时,at 命令会根据用户输入的时间格式进行解析,将时间参数转换为时间戳格式,以便进行后续的任务调度。 接下来,at 命令会解析用户输入的执行命令。这里的执行命令可以是任意的 Shell 命令,包括可执行程序、脚本或者其他的系统命令等。at 命令会将用户输入的执行命令进行存储,以便在指定时间准备执行。 最后,at 命令会根据解析的时间参数和执行命令,将任务提交给系统的调度器。调度器会在指定的时间点执行相应的任务。当执行时间到达时,调度器会根据 at 命令接收到的解析结果,执行用户指定的命令。 总的来说,at 命令的接收和解析源码主要涉及时间参数的解析、任务命令的解析和调度器的任务提交等过程。通过这些过程,at 命令能够按照用户的要求,在指定时间点执行相应的任务。这为用户提供了一种便捷的任务调度方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值