简介(Introduction)和 AT 消息格式

来自Bouffalo Lab Docs
跳转到导航 跳转到搜索

ATModule 1: 简介(Introduction)和 AT 消息

简介(Introduction)

本文主要介绍 AT 命令集及其使用方法。该命令集包括:基础 AT 命令、Wi-Fi 功能 AT 命令、TCP/IP 工具箱 AT 命令和 BLE 相关 AT 命令。

指令类型(Instruction type)

类型 格式 描述
查询指令 AT+<x>? 该指令用于返回当前参数的值
设置指令 AT+<x>=<···> 该指令用于设置用户定义的参数
执行指令 AT+<x> 该指令用于执行模块内参数不可变的功能

重要说明:

  • 并非每个 AT 命令都具有上述三种类型
  • 目前,AT 命令中作为输入参数仅支持字符串和整数
  • 尖括号 < > 表示不可省略的参数
  • 方括号 [ ] 表示可以省略的可选参数。省略时将使用参数的默认值
  • 如果要省略的参数后面还有参数,必须使用逗号来表示。例如:AT+CWJAP="ssid","password",,1
  • 字符串值需要包含在双引号中,例如:AT+CWSAP="AP-NAME","12345678"
  • 每个 AT 命令的长度不应超过 256 字节
  • AT 命令以换行符(CR-LF)结束,因此串口工具应设置为"换行模式"
注意: AT 命令中的参数存储是通过 EasyFlash 库实现的。

AT 消息(AT Messages)

从 AT 命令端口返回的 AT 消息有两种类型:AT 响应消息和 AT 消息报告。

响应消息(Response Messages)

每个 AT 命令输入都会返回响应消息,以告知发送者 AT 命令的结果。响应的最后一条消息始终是 "OK" 或 "ERROR"。

AT 响应消息 描述
OK AT 命令处理完成并返回 OK
ERROR AT 命令错误或执行过程中发生错误
SEND OK 数据已发送到协议栈
SEND FAIL 向协议栈发送数据时发生错误
+<Command Name>:... 向发送者详细描述 AT 命令处理结果的响应

消息报告(Message Reports)

AT 将报告系统中的重要状态变化或消息。

AT 消息报告 描述
ready AT 固件已就绪
busy p... 忙于处理。系统正在处理上一条命令,因此无法接受新输入
ERR CODE:<0x%08x> 不同命令的错误代码
+CW:CONNECTING Wi-Fi 站点接口正在连接到 AP
+CW:CONNECTED Wi-Fi 站点接口已连接到 AP
+CW:ERROR Wi-Fi 站点接口连接 AP 失败
+CW:GOTIP Wi-Fi 站点接口已获得 IPv4 地址。如果启用 AT+SYSLOG,此消息后将打印额外的网络信息,包括 IP 地址、网关、子网掩码和 DNS 服务器
+CW:DISCONNECTED Wi-Fi 站点接口已与 AP 断开连接
+CW:STA_CONNECTED <sta_mac> 一个站点已连接到 AT 的 Wi-Fi softAP 接口
+CW:STA_DISCONNECTED <sta_mac> 一个站点已与 AT 的 Wi-Fi softAP 接口断开连接
+CW:DIST_STA_IP <sta_mac>,<sta_ip> AT 的 Wi-Fi softAP 接口向站点分配了一个 IP 地址
+CW:SCAN_DONE Wi-Fi 扫描完成事件
+CIP:[<conn_id>,]CONNECTED ID 为 <conn_id> 的网络连接已建立(默认 ID=0)
+CIP:[<conn_id>,]DISCONNECTED ID 为 <conn_id> 的网络连接已结束(默认 ID=0)
+LINK_CONN TCP/UDP/SSL 的详细连接信息
> AT 正在等待接收更多数据
Recv <xxx> bytes AT 已从 AT 命令端口接收到 <xxx> 字节
+IPD 在非透传模式下,AT 已从网络接收到数据。具体的数据格式如下表所示
+MQTT:CONNECTED,<linkid> MQTT 已连接到 Broker
+MQTT:DISCONNECTED,<linkid> MQTT 已与 Broker 断开连接
+MQTT:SUBRECV,<LinkID>,<topic_length>,<data_length>,<"topic">, 当 AT 收到订阅主题的 MQTT 消息时
透传模式下的数据 在透传模式下,已从网络或蓝牙接收到数据
SEND CANCELLED 在 Wi-Fi 正常传输模式下取消发送数据
+BLE:CONNECTED 蓝牙 LE 连接已建立
+BLE:DISCONNECTED 蓝牙 LE 连接已结束
+BLE:CONNPARAM 蓝牙 LE 连接参数更新
+BLE:GATTREAD 来自蓝牙 LE 连接的读取操作
+BLE:GATTWRITE 来自蓝牙 LE 连接的写入操作
+BLE:SRV 发现蓝牙 LE 连接服务
+BLE:SRVCHAR 发现蓝牙 LE 连接特征
+BLE:INDICATION 蓝牙服务指示状态:0:禁用,1:启用,2:确认
+BLE:NOTIFICATION 蓝牙服务通知状态
+BLE:NOTIDATA 蓝牙服务接收通知/指示数据
+BLE:MTUSIZE 蓝牙 MTU 大小更新
+BLE:PAIRINGFAILED 蓝牙配对失败
+BLE:PAIRINGCOMPLETED 蓝牙配对完成
+BLE:PAIRINGCONFIRM 蓝牙配对确认通知
+BLE:PASSKEYENTRY 蓝牙配对密钥通知
+BLE:PASSKEYDISPLAY 蓝牙配对密钥显示通知
+BLE:BASLEVEL 蓝牙 BAS 配置文件级别
+QUITT AT 退出 Wi-Fi 透传模式
注意: 在非透传模式下,AT 从网络接收的数据格式:
  • 如果 AT+CIPMUX=0 且 AT+CIPRECVTYPE=1,打印:+IPD:<length>
  • 如果 AT+CIPMUX=1 且 AT+CIPRECVTYPE=<link_id>,1,打印:+IPD:<link_id>,<length>
  • 如果 AT+CIPMUX=0、AT+CIPRECVTYPE=0 且 AT+CIPDINFO=0,打印:+IPD:<length>,
  • 如果 AT+CIPMUX=1、AT+CIPRECVTYPE=<link_id>,0、AT+CIPDINFO=0,打印:+IPD:<link_id>,<length>,
  • 如果 AT+CIPMUX=0、AT+CIPRECVTYPE=0、AT+CIPDINFO=1,打印:+IPD:<length>,<"remote_ip">,<remote_port>,
  • 如果 AT+CIPMUX=1、AT+CIPRECVTYPE=<link_id>,0、AT+CIPDINFO=1,打印:+IPD:<link_id>,<length>,<"remote_ip">,<remote_port>,
其中,link_id 指连接 ID,length 表示数据长度,remote_ip 表示远程 IP 地址,remote_port 表示远程端口号,data 表示数据。
当是 SSL 连接时,在被动接收模式(AT+CIPRECVTYPE=1)下,AT 命令返回的长度可能与实际可读的 SSL 数据长度不匹配。这是因为 AT 优先返回 SSL 层的可读数据长度。如果 SSL 层的可读数据长度为 0,AT 将返回 socket 层的可读数据长度。

模块 1 结束