BLE是什么?
BLE是蓝牙低功耗技术的缩写,全称是Bluetooth Low Energy。它是一种无线传输小数据的超低功耗蓝牙技术¹。BLE模块和芯片组成本低,与其他类似技术相比,BLE通过尽可能保持射频关闭并以低传输速度发送少量数据来实现优化和低功耗²。BLE的主要特点是低功耗,让那些在功耗方面有比较高要求的可穿戴设备能够长时间保持在电状态³。---回答源自newbing搜索。
知识补充:BLE源自蓝牙4.0协议,与BT配合使用,传输速度最大为2Mbps,传输距离一般为10左右,连接速度大约在几毫秒。
BLE蓝牙一共有四十个信道,从2402开始到2480MHz每隔2MHz有一个信道,其中有三个信道是用于广播数据分别是37(2402MHz)、38(2426MHz)、39(2480MHz)。单个广播数据包最长37个字节,MAC地址为前6个字节,剩下的为数据。在数据段又会分为若干个AD Structure,每个结构体中又分为三个部分,第一个字节跟着的是这个结构体的长度,第二个字节跟的是结构体的类型,后面跟着的就是结构体的内容。由MAC地址与若干个结构体组成一个蓝牙广播包,共37个字节,其中数据不足的会自动补0;目前常用的数据类型有
蓝牙广播的数据长度最长只有37字节,如果超出了37个字节的话,还可以通过使用扫描响应数据来将超出长度的数据广播出去。
动手实操:将会以esp32s3芯片为例子,烧录例程后进行分析。
将例程中的ancs工程编译后烧录到板子上,等待板子重新上电运行后,打开手机的nrf connect软件,查看当前的BLE广播,发现一个蓝牙名为ESP_BLE_ANCS的设备,正好对应的就是代码里的EXAMPLE_DEVICE_NAME,可以选择工具里的RAW按钮,查看广播的源数据。
此设备的广播原始数据如下对比上面的解析方法,第一个结构体以0x02开头,表示有两个字节的长度,类型为0x01,代表的是此结构体为设备标识结构体,紧跟着的一个字节数据为0x06,对照下面的设备标识定义图片,可以知道此设备为LE普通可发现模式,并且不支持经典蓝牙;第二个结构体的长度为3,类型为16bit的UUID;第三个结构体长度为5个字节,类型为128Bit的UUID。最后一个结构体,长度为0x0D ,表示长度为13个字节,后一个字节为0x09标识这个结构体为完整设备名称,紧接着的12个字节为名字,通过转化可以知道该名称为ESP_BLE_ANCS。