• 物联网工程师开发服务平台

BLE AT 透传固件 – AT 指令集

本文介绍:BLE AT 透传固件支持的 AT 指令集使用方法。

这里提供一个集成了BLE_AT指令集的, 使用串口工具软件 格西烽火 中打开的 bsp工程下载:AT_BLE_CMD.bsp

目录

  1. AT指令概述
    1. AT+指令格式
    2. EVENT格式
    3. 错误码
    4. AT指令一览表
      1. 基本管理指令列表
      2. 控制指令列表
      3. 恢复模块出厂设置指令列表
  2. AT指令详述

    1. 基本管理AT指令
    2. 控制AT指令
    3. 恢复模块出厂设置AT指令
  3. 异步事件详述

    1. 连接状态事件
    2. 配置修改事件

AT指令概述

BLE-AT 指令集 是由 MXCHIP 开发的,主要为方便用户使用EMB系列Bluetooth Low Energy模块进行参数配置,功能控制等各项功能。用户可以方便、快速地为其智能设备添加低功耗蓝牙(BLE)功能。大大缩短开发周期,实现快速上市。

目前,已支持BLE-AT指令的模组型号包括:EMB1036EMB1061。AT 指令可以通过超级终端等串口调试工具进行输入,也可以通过其它MCU HOST编程输入。它是MXCHIP为用户提供的一种简单易用的控制模块的一种操作方式。

注意:用户每次发送一条指令都要等待结果返回才能发送下一条指令,否则会发生无法预测的行为。

AT+指令格式

AT+指令采用字符串形式的基于ASCII码的命令行,格式如下:

  • 1、格式说明

    • a) <>:表示指令组成的必须包含部分
    • b) []:表示指令组成的可选部分
  • 2、命令消息格式: AT+<CMD>[op][para-1,para-2,para-3,......]<CR>

    • a) AT+: 命令消息前缀
    • b) CMD: 指令字符串
    • c) [op]: 指令操作符(可选),指定是参数设置或查询。可以是:
      • 1、=: 表示参数设置
      • 2、"无": 表示参数查询
    • d) [para-n]: 参数设置时的输入,查询命令时为"?“,可选
    • e) <CR>: 结束符,回车,ASCII码0x0d

      注意:<CR>, <LF>以及<CRLF>是三个不同的结尾,指令中ASCII值分别为:<CR>=0x0d, <LF>=0x0a, <CRLF>=0x0d 0x0a。请注意区别它们的不同之处。尤其是当使用PC串口工具发送指令,很多这种工具对它们不做区分。所以我们建议:1,要么所有指令都以十六进制发送;2,要么选择一款好的串口工具,以便自由控制发送任何字符(包括字符串结尾)。

  • 3、回应消息格式:+<RSP>=[para-1,para-2,para-3,......]<CR><LF>

    • a) + : 响应消息前缀
    • b) <RSP>: 相应字符串,包括:
      • OK: 表示成功
      • ERR: 表示失败
    • c) [para-n]: 查询时返回的参数,或者出错时的错误码。
    • d) <CR>: ASCII码0x0d
    • e) <LF>: ASCII码0x0a

EVENT格式

EVENT事件描述当前BLE运行时状态,例如:BLE连接成功。

事件消息格式: +EVENT=<TYPE>,[para-1,para-2,para-3,......]<CR><LF>。 其中:

  • a)<TYPE>: 事件类型
  • b)[para-n]: 事件参数
  • c)<CR>: ASCII码 0x0d
  • d)<LF>:ASCII码 0x0a

错误码

错误码 说明
- 1 指令语法错误
- 2 未知指令
- 3 无效的操作(某些参数不知被用户设置,某些参数不支持用户获取)
- 4 无效的参数
- 5 保存参数失败

AT指令一览表

AT指令集包括以下种类:

  1. 基本管理指令
  2. 控制指令
  3. 恢复出厂设置指令

1.基本管理指令列表

序号 命令 描述
1 AT+HELP 帮助指令
2 AT+REBOOT 模块复位重启
3 AT+SAVE 保存配置参数
4 AT+FMVER 查询固件版本
5 AT+BMAC 查询蓝牙设备硬件地址
6 AT+BNAME 查询/设置设备名称

2.控制指令列表

序号 命令 描述
1 AT+UARTCFG 查询/设置 用户串口配置参数
2 AT+ADVCFG 查询/设置 蓝牙广播配置参数
3 AT+TXPOWER 查询/设置 蓝牙发射功率
4 AT+SERVUUID 查询/设置 透传服务UUID
5 AT+RXUUID 查询/设置 透传服务中RXD Port特性的UUID
6 AT+TXUUID 查询/设置 透传服务中TXD Port特性的UUID
7 AT+RXLENUUID 查询/设置 透传服务中RxLength特性的UUID
8 AT+TXLENUUID 查询/设置 透传服务中TxLength特性的UUID
9 AT+CONNCFG 查询/设置 连接参数
10 AT+EVENT 查询/设置 异步事件可见状态

3.恢复出厂设置指令列表

序号 命令 描述
1 AT+FACTORY 恢复模块出厂设置指令

异步事件一览表

从ATV1.6开始,BLE模组将支持异步事件通知功能。

本文中描述的异步事件是模组异步通知给用户关于模组内部相关状态的一种手段,具体的方式就是当模组内部的运行时状态发生改变并且此状态对用户层可见,那么模组将通过串口发送一定固定格式的字符串。

目前,模组的异步事件包括一下种类:

  1. 连接状态事件
  2. 配置修改事件

1.连接状态事件

序号 命令 描述
1 +EVENT=CONN,<addr><CR><LF> 当模组与其它BLE设备连接建立成功时
2 +EVENT=DISCONN<CR><LF> 当模组没有与任何其它BLE设备存在连接时

2.配置修改事件

序号 命令 描述
1 +EVENT=CONFIG 当模组的某些参数被当前连接的BLE设备通过GATT Service修改时

AT 指令详述

1.基本管理AT指令

AT+HELP

功能:查询 AT 帮助指令

格式: AT+HELP<CR>
响应: +OK=[command list]<CR><LF>
参数: command list:命令列表,每一个命令之间使用<LF>隔开

AT+FMVER

功能:查询 固件版本

格式: AT+FMVERT=[revision]<CR>
响应: +OK<CR><LF>
参数: revision:固件版本

AT+SAVE

功能:查询 固件版本

格式: AT+SAVE<CR>
响应: +OK<CR><LF>
参数:
说明: 建议此命令只在调用AT+REBOOT命令之前调用一次,多次冗余调用会多次对Flash读写,这样会降低Flash使用寿命。
如果下文中配置参数类指令之后没有AT+SAVE指令(没必要紧接着调用)而是直接调用AT+REBOOT,那么此配置信息将丢失。

AT+BMAC

功能:查询 蓝牙设备地址

格式: AT+BMAC<CR>
响应: +OK=[Bluetooth mac address]<CR><LF>
参数:
说明: 某些模块可能也支持设置蓝牙地址,但是EMB1036不做支持。
地址格式类似于:XX:XX:XX:XX:XX:XX

AT+REBOOT

功能:重启模块

格式: AT+REBOOT<CR>
响应: +OK<CR><LF>
参数:
说明: 最近一次AT+SAVEAT+REBOOT(或者reset)直间的配置数据将丢失。

AT+BNAME

功能:查询/设置 模块设备名称

查询格式: AT+BNAME<CR>
响应: +OK=[device name]<CR><LF>
参数: device name:设备名,长度不超过16字节
设置格式: AT+BNAME=[device name]<CR>
响应: +OK<CR><LF>+ERR=[errorcode]<CR><LF>
参数: deivce name:设备名称。 长度不超过16个字节
error code错误码
说明: 需要输入保存指令AT+SAVE来保存配置
重启模块有效

2.控制AT指令

AT+UARTCFG

功能:查询/设置 串口参数

查询格式: AT+UARTCFG<CR>
响应: +OK=[baud_rate,data_bits,parity,stop_bit,flow_control]<CR><LF>
参数: 请参考设置指令参数。
设置格式: AT+UARTCFG=[baud_rate,data_bits,parity,stop_bit,flow_control]<CR>
响应: +OK<CR><LF>+ERR=[errorcode]<CR><LF>
参数: band_rate:波特率,可以是 9600, 115200
data_bits:数据位,可以是 8,9
parity:校验位,可以是 NONE:表示无校验; ODD:表示奇校验; EVEN:表示偶校验
stop_bit:停止位,可以是 1, 2
flow_control:流控,可以是 NONE:表示无流控; CTSRTS:使能CTSRTS流控
说明: 此UART修改将涉及到所有模式中UART的配置。Boot,测试模式,指令控制模式以及透传模式的串口设置都改变
注意对于EMB1036目前此命令只支持波特率以及流控的更改,其他设置均不支持,设置时请设为0。
未来其它模块可能支持其它参数的设置
需要输入保存指令AT+SAVE来保存配置
重启模块有效

AT+ADVCFG

功能:查询/设置 蓝牙广播参数

查询格式: AT+ADVCFG=[mode]<CR>
响应: +OK=[interval,duration]<CR><LF>
参数: 请参考设置指令参数。
设置格式: AT+ADVCFG=[interval,duration,mode]<CR>
响应: +OK<CR><LF>
参数: interval:广播包间隔,单位ms。 例如设置为30,则实际广播时间间隔为30ms。
duration:广播持续时间,单位second
mode:可发现模式。 1:有限可发现模式; 2:一般可发现模式
说明: 需要输入保存指令 AT+SAVE来保存配置
如果设置为有限可发现模式,那么interval建议设置为250ms~650ms,duration最大不超过30s
如果设置为一般可发现模式,那么interval建议设置为1.28s~2.56s,duration不做限制
重启模块有效

AT+CONNCFG

功能:查询/设置 蓝牙广播参数

查询格式: AT+CONNCFG<CR>
响应: +OK=[minInterval,maxInterval,latency,supertimeout]<CR><LF>
参数: 请参考设置指令参数。
设置格式: AT+CONNCFG=[minInterval,maxInterval,latency,supertimeout]<CR>
响应: +OK<CR><LF>
参数: maxInterval:最大连接事件间隔,单位ms。可以是7.5ms~4s之间的任意值,但必须是1.25ms的整数倍。例如设置为50,则实际连接事件的间隔最大为50ms。
minInterval:最小连接事件间隔, 同maxInterval
latency:从设备在必须侦听之前可以忽略多少个连接事件。 如果在没有彻底弄清楚此参数的意义之前,建议设置为0。
supertimeout:监控超时时间,单位ms。 如果没有彻底弄清楚此参数的意义,或者latencyinterval之间的关系,建议设置为0。此时,固件会依据interval计算一个合适的值以便设置。
说明: 需要输入保存指令AT+SAVE来保存配置
后两者的值不能随意设置,它们之间有一定的最大或者最小的限制以及计算关系,具体详细信息请阅读蓝牙核心规范。
如果无法或者不确定后两者的值,建议设置为0。但是maxIntervalminInterval的值必须设置,并且必须符合上文中指定的范围以及限制。
重启模块有效

AT+TXPOWER

功能:查询/设置 蓝牙最大发射功率

查询格式: AT+TXPOWER<CR>
响应: +OK=[advTxPower]<CR><LF>
参数: 请参考设置指令参数。
设置格式: AT+TXPOWER=[advTxPower]<CR>
响应: +OK<CR><LF>
参数: advTxPower:最大发射功率,单位为dbm。取值范围: -20dbm~+4dbm,step为2dbm
说明: 默认发射功率为0dbm需要输入保存指令AT+SAVE来保存配置
重启模块有效

AT+EVENT

功能:查询/设置 异步事件可见状态

查询格式: AT+EVENT<CR>
响应: +OK=[0/1]<CR><LF>
参数: 请参考设置指令参数。
设置格式: AT+EVENT=[on/off]<CR>
响应: +OK<CR><LF>
参数: on/off:异步事件是否对用户可见。取值范围: 1 或者 0。
说明: 1. 如果设置为1,那么当异步事件发生时用户串口将收到类似+EVENT=<XXX>事件。
否则,无法收到相关事件。
2. 默认所有异步事件对用户可见,如果用户不需要,可以通过此指令禁止发送异步事件。
3. 需要输入保存指令AT+SAVE来保存配置,重启模块有效

AT+SERVUUID

功能:查询/设置 透传主服务UUID

查询格式: AT+SERVUUID<CR>
响应: +OK=[uuid]<CR><LF>
参数: 请参考设置指令参数。
设置格式: AT+SERVUUID=[uuid]<CR>
响应: +OK<CR><LF>
参数: uuid:UUID值,形式如:1B7E8251-2877-41C3-B46E-CF057C562023
说明: UUID保证其独一性并保证其正确的格式,下文相同。
需要输入保存指令AT+SAVE来保存配置
重启模块有效

AT+RXUUID

功能:查询/设置 透传主服务中RX Port特性的UUID

查询格式: AT+RXUUID<CR>
响应: +OK=[uuid]<CR><LF>
参数: 请参考设置指令参数。
设置格式: AT+RXUUID=[uuid]<CR>
响应: +OK<CR><LF>
参数: uuid:UUID值,形式如:1B7E8251-2877-41C3-B46E-CF057C562023
说明: 需要输入保存指令AT+SAVE来保存配置
重启模块有效

AT+TXUUID

功能:查询/设置 透传主服务中TX Port特性的UUID

查询格式: AT+TXUUID<CR>
响应: +OK=[uuid]<CR><LF>
参数: 请参考设置指令参数。
设置格式: AT+TXUUID=[uuid]<CR>
响应: +OK<CR><LF>
参数: uuid:UUID值,形式如:1B7E8251-2877-41C3-B46E-CF057C562023
说明: 需要输入保存指令AT+SAVE来保存配置
重启模块有效

AT+RXLENUUID

功能:查询/设置 透传主服务的Rx Length特性的UUID

查询格式: AT+RXLENUUID<CR>
响应: +OK=[uuid]<CR><LF>
参数: 请参考设置指令参数。
设置格式: AT+RXLENUUID=[uuid]<CR>
响应: +OK<CR><LF>
参数: uuid:UUID值,形式如:1B7E8251-2877-41C3-B46E-CF057C562023
说明: 需要输入保存指令AT+SAVE来保存配置

AT+TXLENUUID

功能:查询/设置透传主服务的Tx Length特性的UUID

查询格式: AT+TXLENUUID<CR>
响应: +OK=[uuid]<CR><LF>
参数: 请参考设置指令参数
设置格式: AT+TXLENUUID=[uuid]<CR>
响应: +OK<CR><LF>
参数: uuid:UUID值,形式如:1B7E8251-2877-41C3-B46E-CF057C562023
说明: 需要输入保存指令AT+SAVE来保存配置

3.恢复模块出厂设置AT指令

AT+FACTORY

功能:恢复模块出厂设置指令

格式: AT+FACTORY<CR>
响应: +OK=[uuid]<CR><LF>
参数: 无参数。此命令会导致设备重启并重置所有参数为模块出厂设置

异步事件详述

1.连接状态事件

连接建立

功能:指示当前模组的连接状态

格式: +EVENT=CONN,<addr><CR><LF>
参数: addr: 目标BLE设备的蓝牙地址
条件: 当模组与其它BLE设备建立连接成功后并且模组事件对用户可见,那么模组将发送此异步事件
示例: +EVENT=CONN,11:22:33:44:55:66<CR><LF>

连接断开

功能:指示当前模组的连接状态

格式: +EVENT=DISCONN<CR><LF>
参数:
条件: 当模组与其它BLE设备连接断开后并且模组事件对用户可见,那么模组将发送此异步事件

2.配置修改事件

配置修改

功能:指示当前模组的某些参数被修改和修改后的值

格式: +EVENT=CONFIG,<para1>,<para2><CR><LF>
参数: para1:目前仅支持如下两种类型:NAMETXPOWER
para2:此参数取值依赖于para1,如下:
para1取值为NAME时,那么此时para2为完整的设备名称字符串
para1取值为TXPOWER时,那么此时para2为发射功率level
条件: 当模组被当前连接的BLE设备通过Configuration Service修改时并且异步事件对用户可见,
那么模组将发送此异步事件
示例: +EVENT=CONFIG,NAME,hello<CR><LF>
+EVENT=CONFIG,TXPOWER,8<CR><LF>
文本导读目录