蓝牙嗅探功能设计探讨

BLE(Bluetooth Low Energy)即低功耗蓝牙技术,建立蓝牙通讯,需要拥有“蓝牙主机”和“蓝牙从机”,一般情况下,蓝牙从机以固定时间间隔,使用广播包的形式发送数据,广播包中可包含的参数有物理地址、功率、波特率等等。蓝牙主机扫描发现从机设备广播后发起蓝牙连接,广播设备随即停止广播,并接收连接请求。蓝牙主机通常情况下,扫描周边广播设备,并主动向广播设备发起蓝牙连接。连接建立后,蓝牙主机、从机设备就可以进行数据收发。

蓝牙嗅探功能设计探讨

通常蓝牙设备实现数据交换都是建立在蓝牙连接的状况下,因为蓝牙连接成功后,通讯过程是双向的,即主机可以发送数据到从机,从机可同时发送数据到主机,实现了全双工的通讯,且蓝牙底层能保障数据的有效性和稳定性。但是由于蓝牙连接过程比较复杂、连接时间相对较长,导致系统功耗偏高。尤其是在蓝牙标签等低功耗穿戴设备应用中,功耗影响极其重要,而通常情况下标签通讯只需要实现单向传输,即标签周期发送数据到蓝牙主机,主机不用回复数据,且数据传输量极小,通常10个字节以内。

所以类似蓝牙标签一类的应用场景中,通常系统功耗要求低,数据通讯量小的特点,不适合采用蓝牙连接的方式通讯。而蓝牙从机的广播机制采用了周期广播发送机制,整机功耗可以控制在很低的范围(1秒广播一次,平均功耗约30uA),且广播信息支持最多携带16字节用户数据。作为接收端的主机设备则需要动态抓取“广播数据包”,即广播“嗅探”模式,该模式下主机仅仅实现广播数据监听,并提取其中的有效用户数据,包括MAC地址、信号强度RSSI、用户自定义数据字段等。