当前位置:   article > 正文

AT命令使用和简单介绍

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

下图记录了收发过程:

在这里插入图片描述

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

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/286074
推荐阅读
相关标签
  

闽ICP备14008679号