简介
本文介绍了我司蓝牙模块系列的数据 “有效指示功能”及相关用法。
数据有效指示是通过模块一个引脚DATA(数据有效指示引脚,不同型号可能名称不同)的电平变化来实现的,在实际应用中,模块与外部MCU协同工作,外部MCU的一个引脚与模块的DATA相连接即可实现数据有效指示等功能。
数据有效指示和输出延时
数据有效指示
数据有效指示是指在透传模式下,蓝牙从机接收到数据后通过串口向外输出透传数据时,从串口开始发送时,数据指示引脚以低电平或者高电平来指示。发送完毕之后,数据指示引脚电平翻转。如以低电平来作为数据有效指示,无输出延时时,如图表 2 1所示。
图表 2 1 无输出延时时数据有效指示
上图中,DATA引脚作为数据有效指示引脚,在蓝牙接收完一帧数据并串口的TXD发送该数据时,DATA引脚拉低为低电平并保持,指示当前正在发送数据,直到该帧数据发送完毕,DATA引脚翻转为高电平,表示此时串口空闲。
输出延时
数据输出延时是指,模块蓝牙接收到数据后,先拉低DATA引脚,10ms后通过串口发送数据。如图表 2 2所示。
图表 2 2 开启输出延时时数据有效指示
上图中,在开启数据输出延时时,蓝牙接收完一帧数据后,先拉低DATA引脚并保持10ms,然后串口才开始发送数据,白色柱形为串口正在输出数据。
各个蓝牙模块输出延时指令说明
各个蓝牙模块输出延时指令可能不一致,详细描述如下(以下指令参考自最新的用户手册)。
E104-BT02
开启数据输出延时指令如表格 2 1所示。
表格 2 1 开启数据输出延时指令
关闭数据输出延时指令如表格 2 2所示。
表格 2 2 关闭数据输出指令
E104-BT51(A)
E104-BT51和E104-BT51A输出延时指令如表格 2 3所示。
表格 2 3 E104-BT51和E104-BT51A输出延时指令
E104-50无线蓝牙模块系列
E104-BT5011A和E104-5032A输出延时指令如表格 2 5所示。
表格 2 5 E104-BT5011A和E104-5032A输出延时指令
蓝牙系列数据有效指示功能汇总
蓝牙系列部分模块的数据有效指示功能如表格 2 6所示。
表格 2 6 蓝牙系列模块数据有效指示功能汇总
从上述表格可以看出,开启数据输出延时功能时,延时时,DATA(数据有效指示引脚)为低电平保持且保持时间均为10ms;在串口发送数据过程中,仅E104-BT51(A)为高电平保持;其他型号为低电平保持,数据发送完毕后电平翻转。E104-BT52无输出延时且数据有效指示为高电平。
数据有效指示应用场景
数据有效指示用法由具体应用决定,即外部MCU是否在串口空闲时进入休眠状态以降低功耗。
唤醒外部MCU
如果为低功耗应用,DATA(数据有效指示引脚)可用于唤醒外部MCU,串口准备发送数据并启动延时时,DATA引脚从高电平切换为低电平产生一个下降沿,外部MCU引脚可设置为下降中断,在休眠和正常状态之间切换;在输出延时10ms内,外部MCU可从休眠中醒来并初始化相关外设。
提示外部MCU接收数据
如果为非低功耗应用,模块将要发送数据时,DATA引脚产生的下降沿也可以提醒外部MCU,可以开启串口接收透传数据了。 即外部MCU连接至DATA的引脚可设置为下降沿中断,这样当模块每当要发送数据时,外部MCU可及时整理本地内存,存放即将接收的数据。
注意事项
在开启输出延时后,有以下注意事项:
不支持流传输,因为在延时期间,串口处于空闲状态,串口数据流会出现分帧;
若空中数据包接收得过快,会导致数据整包丢失;
因此,输出延时较适用于数据量不大且外部MCU不断地进入休眠状态的应用。
总结
我司大部分蓝牙模块均支持数据有效指示功能,可根据实际情况启用该功能,但需要注意的是,在开发硬件时,已将DATA引脚引出且连接至外部MCU。数据有效指示功能为实现更低功耗提供了可能,也便于二次开发省时省力。