BLE模块输出有效指示功能详解

数据有效:指示是通过模块一个引脚DATA(数据有效指示引脚,不同型号可能名称不同)的电平变化来实现的,在实际应用中,模块与外部MCU协同工作,外部MCU的一个引脚与模块的DATA相连接即可实现。

数据有效指示和输出延时

01 数据有效指示

数据有效指示是指在透传模式下,蓝牙从机接收到数据后通过串口向外输出透传数据时,从串口开始发送时,数据指示引脚以低电平或者高电平来指示。发送完毕之后,数据指示引脚电平翻转。如以低电平来作为数据有效指示,无输出延时时。
eecf9697cad845c9a3d60a7ec776b64b.jpg

无输出延时时数据有效指示

上图中,DATA引脚作为数据有效指示引脚,在蓝牙接收完一帧数据并串口的TXD发送该数据时,DATA引脚拉低为低电平并保持,指示当前正在发送数据,直到该帧数据发送完毕,DATA引脚翻转为高电平,表示此时串口空闲。

02 输出延时

数据输出延时是指,模块蓝牙接收到数据后,先拉低DATA引脚,10ms后通过串口发送数据。
f7c09f0ef29647c2be846feec5624d76.jpg

开启输出延时时数据有效指示

上图中,在开启数据输出延时时,蓝牙接收完一帧数据后,先拉低DATA引脚并保持10ms,然后串口才开始发送数据,白色柱形为串口正在输出数据。

03 各个蓝牙模块输出延时指令说明

各个蓝牙模块输出延时指令可能不一致,详细描述如下(以下指令参考自最新的用户手册)。

E104-BT02

开启数据输出延时指令:
指令
说明
<APPON>
打开串口10ms的延迟
成功,返回<OK>
关闭数据输出延时指令:

指令
说明
<APPOFF>
关闭串口延迟
成功,返回<OK>

E104-BT51(A)

E104-BT51和E104-BT51A输出延时指令:
指令
应答
参数
查询:AT+DELAYDATA?
+OK=[para]
para:0、1
0:关闭
1:开启
设置:AT+DELAYDATA=[para]
+OK:成功
+ERR=[NUM]:错误
说明:立即生效,掉电保存

E104-50系列

E104-BT5011A和E104-5032A输出延时指令:
指令
应答
查询
AT+DELAY?
+OK=[para]
设置
AT+DELAY=[para]
+OK:成功
+ERR=[NUM]:错误
参数
para(ASCII)
描述
0
关闭
1
开启(默认)
说明
立即生效,掉电保存;
开启数据输出延时,数据包最大不超过244字节;
开启输出延迟,空中包输入过快,会导致整包丢失。

04 蓝牙系列数据有效指示功能汇总

模块名称
数据延时电平
延时时间
数据有效指示电平
可通过指令开启/关闭数据指示
E104-BT02
低电平
固定10ms
低电平
E104-BT51(A)
低电平
固定10ms
高电平
E104-BT5011A
低电平
固定10ms
低电平
E104-BT5005
低电平
固定10ms
低电平
E104-BT5032A
低电平
固定10ms
低电平
E104-BT52
高电平
从上述表格可以看出,开启数据输出延时功能时,延时时,DATA(数据有效指示引脚)为低电平保持且保持时间均为10ms;在串口发送数据过程中,仅E104-BT51(A)为高电平保持;其他型号为低电平保持,数据发送完毕后电平翻转。E104-BT52无输出延时且数据有效指示为高电平。

数据有效指示应用场景

数据有效指示用法由具体应用决定,即外部MCU是否在串口空闲时进入休眠状态以降低功耗。

01 唤醒外部MCU

如果为低功耗应用,DATA(数据有效指示引脚)可用于唤醒外部MCU,串口准备发送数据并启动延时时,DATA引脚从高电平切换为低电平产生一个下降沿,外部MCU引脚可设置为下降中断,在休眠和正常状态之间切换;在输出延时10ms内,外部MCU可从休眠中醒来并初始化相关外设。

02 提示外部MCU接收数据

如果为非低功耗应用,模块将要发送数据时,DATA引脚产生的下降沿也可以提醒外部MCU,可以开启串口接收透传数据了。即外部MCU连接至DATA的引脚可设置为下降沿中断,这样当模块每当要发送数据时,外部MCU可及时整理本地内存,存放即将接收的数据。

03 注意事项

在开启输出延时后,有以下注意事项:

  • 不支持流传输,因为在延时期间,串口处于空闲状态,串口数据流会出现分帧;
  • 若空中数据包接收得过快,会导致数据整包丢失;
因此,输出延时较适用于数据量不大且外部MCU不断地进入休眠状态的应用。

需要注意的是,在开发硬件时,我们已将模块的DATA引脚引出且连接至外部MCU,这个功能为实现更低功耗提供了可能,也便于二次开发省时省力。