图一
BLE想要让客户端(也就是central device)搜寻到需要先发送广播帧。图一为BLE广播帧结构。
前导帧不是01010101就是上数取反。 广播接入地址固定为0x8E89BED6,字节低位在前。报头和长度后面详细说,这边不叙述。
我们主要看下数据部分,如下图二
:
图二
数据包含N个AD Structure,每个AD Structure开始为一个长度字节表示AD Structure的数据长度。
Type中 type =0x01
bit 0
|
LE 有限发现模式
|
bit 1
|
LE 普通发现模式
|
bit 2
|
不支持 BR/EDR
|
bit 3
|
对 Same Device Capable(Controller) 同时支持 BLE 和 BR/EDR
|
bit 4
|
对 Same Device Capable(Host) 同时支持 BLE 和 BR/EDR
|
bit 5..7
|
预留
|
- 设备全名: TYPE = 0x08
- 设备简称: TYPE = 0x09
- TYPE = 0xFF,厂商自定义的数据,前两个字节表示厂商 ID
其他的type定义一起放到后面再详细介绍。
所以可以看到图二的RSL10的广播报文为:LE 普通发现模式,不支持 BR/EDR。蓝牙名为ON EE lhj 。 蓝牙厂家为0x0362.
下面介绍下RSL10中的代码:
BDK_BLE_Initialize();//蓝牙初始化
进入函数
BDK_BLE_SetLocalName(BDK_BLE_DEFAULT_LOCAL_NAME); //蓝牙命名
|