蓝牙广播包和响应包
一、广播包(Advertising Packet)
1、核心作用
广播包是 BLE 设备主动向外发送的周期性数据包,用于宣告自身存在及基础信息,例如设备名称、UUID、是否可连接等。
2、技术细节
- 信道与频率:BLE 广播仅在37、38、39 三个信道发送(2.402-2.480 GHz 频段)。
- 数据格式:
每个广播包由多个AD Structure组成,每个结构包含:
- Length(1字节):后续数据长度。
- AD Type(1字节):标识数据类型(如设备标志、服务 UUID、名称等)。
- AD Data(可变长度):具体数据内容。
示例广播包结构:
[Length=0x02][AD Type=0x01 (Flags)][AD Data=0x06] → 表示仅支持 BLE、可被发现。
- 最大长度:广播包最大为37字节(含6字节设备地址)。
关键字段示例
- AD Type=0x01 (Flags):必填字段,定义设备特性(如是否支持传统蓝牙、是否可连接)。
- AD Type=0x09 (设备名称)::广播设备在手机中显示的名称。
- AD Type=0xFF (厂商自定义数据)::用于传输私有协议或扩展信息。
二、扫描响应包(Scan Response Packet)
1、核心作用
当主设备(如手机)扫描到广播包后,可发送扫描请求,从设备通过扫描响应包返回额外信息(如完整服务列表、详细配置等)。
2、技术细节
- 触发条件:仅在主设备主动发起扫描请求时发送(非周期性)。
- 数据格式:与广播包结构相同,但内容更灵活,可包含更多 AD Structure。
- 典型应用:
- 广播包中仅包含设备标识,扫描响应包补充完整的服务 UUID 或厂商数据。
- 节省广播信道资源,按需提供详细信息。
三、广播包与扫描响应包的协同
1、工作流程
- 从设备周期性发送广播包 → 主设备接收并解析 → 主设备发送扫描请求 → 从设备回复扫描响应包。
- 两者结合可减少广播信道的冗余数据,同时满足灵活的信息交互需求。
2、设计策略
- 广播包:优先包含关键信息(如设备类型、是否可连接)。
- 扫描响应包:补充次要信息(如详细服务列表、设备版本等)。
- 示例场景:
- 智能手环广播包仅包含设备名称和电量,扫描响应包返回心率监测服务 UUID。
四、高级机制与优化
广播间隔
- 广播事件间隔由固定间隔(20ms-10.24s) + 随机延时(0-10ms) 组成,降低信道冲突概率。
- 短间隔(如 100ms)适合快速发现设备,长间隔(如 1s)适合低功耗场。
广播类型
- 可连接广播(Connectable):允许主设备发起连接。
- 不可连接广播(Non-Connectable):仅用于广播数据(如 Beacon)。
BLE 5.0 扩展
- 支持扩展广播(Extended Advertising):广播包长度增至 254 字节,可跨更多信道传输。
总结 蓝牙广播包与扫描响应包通过主动广播 + 按需响应的机制,平衡了低功耗与信息交互的灵活性。广播包用于基础宣告,扫描响应包补充细节,两者协同实现高效的设备发现与连接。