BLE定向广播与非定向广播原理、差异
一、概述
广播(Advertising)是BLE链路层最基础的能力,设备在3个广播信道(37/38/39)发送广播PDU,供扫描设备发现、发起连接。按照是否指定目标接收地址,分为非定向广播(Undirected Advertising) 和定向广播(Directed Advertising) 两大类,对应核心PDU:
- 非定向可连接广播:ADV_IND(最常用)
- 定向可连接广播:ADV_DIRECT_IND(经典定向广播)
重要前提:定向广播≠BR/EDR的定向;本文全部针对BLE Legacy传统广播,扩展广播、周期广播不在本范围。
二、非定向广播(Undirected Advertising)
定义
广播包中不携带目标设备地址TargetA,无指定接收对象;任何开启扫描的BLE主机,只要在射频覆盖范围内,都能收到这个广播包、识别设备、发起扫描请求或连接请求,属于一对多的广播模式。
代表PDU:
- ADV_IND:可连接、可扫描、非定向(遥控器首次配对、新设备发现)
- ADV_SCAN_IND:可扫描、不可连接(仅对外暴露信息,不允许建连)
- ADV_NONCONN_IND:不可扫描、不可连接(Beacon、标签单向发数据)
包结构特点
- 只有广播者地址AdvA(广播端地址+地址类型TxAdd)
- 携带AD广播数据:设备名、Service UUID、厂商数据、外观类型等,最大31字节;支持SCAN_REQ扫描请求,广播者回复SCAN_RSP扫描响应包,额外补充数据
- 广播间隔由应用配置,范围很大(20ms~10.24s),功耗可控
核心特性
✅ 开放发现:任意扫描主机都能搜到设备,适合首次配对 ✅ 灵活配置:广播间隔可调,可长间隔省电、短间隔提升发现概率 ✅ 支持扫描响应,承载更多信息 ❌ 所有附近主机都能收到,隐私差、容易被误扫、扫描列表刷屏 ❌ 回连速度慢,主机需要持续扫描、匹配设备
典型工程场景
- 遥控器、手环、传感器出厂首次配对:上电进入ADV_IND,TV/手机扫描列表出现设备,用户点击配对
- Beacon、室内定位标签、门禁近场感应:ADV_NONCONN_IND单向广播,不需要建立连接
- 智能门锁、温湿度传感器:常态对外广播服务,多台手机都可以发现并选择连接
三、定向广播(Directed Advertising)
定义
广播包明确携带目标主机地址TargetA,广播者只希望这一台已知地址的主机接收并连接;其他所有扫描设备收到PDU后,链路层直接丢弃、不上报给上层,不会出现在扫描列表里,是一对一的快速重连机制。
经典定向广播 ADV_DIRECT_IND:仅可连接、不可扫描,不支持SCAN_REQ扫描请求,没有自定义AD数据域。
包结构特点
- 同时携带两个地址:广播者地址AdvA+ 目标对端地址TargetA,配套TxAdd、RxAdd标记地址类型(公共地址/随机私有地址RPA)
- 无AD数据载荷,不能放设备名称、UUID等自定义数据,这是和ADV_IND最大区别
- 协议强制时序约束:广播事件周期固定3.75ms,定向广播最长只能持续1.28s,超时后链路层自动停止定向广播,应用层必须切回非定向广播,避免功耗爆炸
核心特性
✅ 只给指定设备:别的主机看不见,减少扫描干扰、提升隐私 ✅ 连接速度极快:3.75ms高速发包,绑定设备回连时延远低于普通ADV_IND ✅ 无扫描响应,链路开销小 ❌ 不能用于首次配对:必须预先知道对端蓝牙地址(绑定/Bond之后才能用) ❌ 持续时间上限1.28s,不能长期跑定向广播 ❌ 没有广播数据,无法对外展示设备信息
四、定向广播 vs 非定向广播 对比表
| 对比项 | 非定向广播 ADV_IND | 定向广播 ADV_DIRECT_IND |
|---|---|---|
| 目标地址 | 无TargetA,所有人可接收 | 携带TargetA,仅指定地址接收 |
| 是否可扫描 | ✅ 支持SCAN_REQ、SCAN_RSP | ❌ 不支持扫描请求 |
| 广播数据域 | ✅ 支持31字节AD数据(名称、UUID) | ❌ 无AD载荷,不能携带自定义数据 |
| 广播间隔 | 应用自由配置(20ms~10.24s) | 固定3.75ms |
| 最大广播时长 | 理论可长期持续广播 | 最长1.28s,超时自动停 |
| 使用时机 | 未配对、新设备发现、通用广播 | 已Bond绑定,已知对端地址,快速重连 |
| 隐私性 | 低,附近所有扫描主机均可发现 | 高,其他设备链路层过滤丢弃 |
| 功耗表现 | 间隔可调,容易做低功耗 | 发包极密,功耗很高,只能短时使用 |
| 能不能用于首次配对 | ✅ 可以 | ❌ 不可以 |
六、常见误区澄清
- ❌ 误区:定向广播就是“信号定向、天线波束指向” ✅ 纠正:BLE定向广播是协议层地址过滤,不是射频波束定向;射频还是全向广播,只是包里面写了目标地址,其他设备收到直接丢弃。
- ❌ 误区:定向广播可以一直开着省电 ✅ 纠正:3.75ms高频发包,电流很大,协议强制限制1.28s上限,长时间跑定向会快速耗光电池。
- ❌ 误区:定向广播也可以带上设备名称 ✅ 纠正:ADV_DIRECT_IND协议PDU定义里没有AD数据字段,无法携带设备名、服务UUID;如果需要同时对外展示信息,只能用非定向广播。
- ❌ 误区:定向广播是SMP配对流程里的包 ✅ 纠正:定向广播属于GAP广播链路层能力,SMP是配对加密,二者独立;定向广播只是用来加速已绑定设备重连,不负责密钥协商。
七、小结
非定向广播是BLE的“发现入口”,面向未知设备,开放扫描,用于首次配对、Beacon信息广播;定向广播是BLE的“快速回连通道”,面向已经绑定、地址已知的设备,靠TargetA地址过滤,牺牲功耗换取毫秒级快速建连,同时保护隐私。 在TV遥控器这类BLE产品开发中,二者组合是行业标准方案:绑定后优先定向回连,定向超时切非定向;解绑后永久禁用定向广播,规避解绑后静默回连、扫描列表反复上报等一系列bug。
更多推荐
所有评论(0)