BLE(Bluetooth Low Energy)广播数据类型在BLE通信中扮演着重要角色,它们用于在广播包中携带各种设备信息和服务信息。
一、广播数据类型概述
BLE广播数据通常包含在一个或多个广播数据单元(AD Structure)中,每个AD Structure由长度值(Len)、类型值(AD Type)和数据部分(AD Data)组成。其中,AD Type决定了AD Data的数据类型和解析方式。
二、主要广播数据类型
Flags(类型=0x01)
功能:标识设备的LE物理连接功能。
数据:0到多个字节的Flag值,每个bit用0或1表示功能是否支持。
重要bit位:
bit 0: LE有限发现模式
bit 1: LE普通发现模式
bit 2: 不支持BR/EDR
bit 3: 控制器同时支持BLE和BR/EDR
bit 4: 主机同时支持BLE和BR/EDR
Service UUIDs(类型=0x02, 0x03, 0x04, 0x05, 0x06, 0x07)
功能:广播设备支持的GATT服务。
类型细分:
0x02: 非完整的16bit UUID列表
0x03: 完整的16bit UUID列表
0x04: 非完整的32bit UUID列表
0x05: 完整的32bit UUID列表
0x06: 非完整的128bit UUID列表
0x07: 完整的128bit UUID列表
Local Name(类型=0x08, 0x09)
功能:广播设备的名称。
类型细分:
0x08: 设备全名
0x09: 设备简称(必须是全名前面的若干字符)
Tx Power Level(类型=0x0A)
功能:表示设备发送广播包的信号强度。
数据:一个字节,表示-127到+127dBm。
Security Manager Out of Band(类型=0x11)
功能:带外安全管理,用于指示是否支持带外数据交换。
数据:Flag值,每个bit表示一个功能。
Slave Connection Interval Range(类型=0x12)
功能:定义从设备(Slave)的最大和最小连接间隔。
数据:4个字节,前2字节定义最小连接间隔,后2字节定义最大连接间隔。
Service Data(类型=0x16, 0x20, 0x21等)
功能:广播特定服务的数据。
类型细分:根据UUID的长度(16bit, 32bit, 128bit)和数据类型(完整/非完整)有不同的类型值。
Public Target Address(类型=0x17)
功能:表示广播包应被具有特定公开地址的目标设备处理。
数据:目标地址列表,每个地址6字节。
Random Target Address(类型=0x18)
功能:与Public Target Address类似,但使用随机地址。
Appearance(类型=0x19)
功能:表示设备的外观,如键盘、鼠标等。
数据:2字节,表示设备的外观编码。
Manufacturer Specific Data(类型=0xFF)
功能:厂商自定义数据。
数据:前两个字节表示厂商ID,剩余部分由厂商自定义。
三、ble mesh特有广播类型
Service UUIDs(类型=0x1f)
32bit UUID列表
Service Data (类型=0x20 0x21)
0x20: 32bit UUID 服务数据
0x21: 128bit UUID 服务数据
URI(类型=0x24)
Mesh Provisioning PDU (0x29)
ble mesh配网消息
Mesh Networking PDU (0x2a)
ble mesh网络消息
Mesh Beacon (0x2b)
ble mesh 安全beacon
四、广播数据单元结构
每个AD Structure遵循以下结构:
长度值(Len):1字节,表示接下来的Len个字节是数据部分。
类型值(AD Type):1字节,标识数据部分的类型。
数据部分(AD Data):Len-1字节,根据AD Type确定的具体数据。