蓝牙广播包和响应包

674 阅读3分钟

蓝牙广播包和响应包

一、广播包(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 字节,可跨更多信道传输。

总结 蓝牙广播包与扫描响应包通过主动广播 + 按需响应的机制,平衡了低功耗与信息交互的灵活性。广播包用于基础宣告,扫描响应包补充细节,两者协同实现高效的设备发现与连接。