一、概述

广播(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:

  1. ADV_IND:可连接、可扫描、非定向(遥控器首次配对、新设备发现)
  2. ADV_SCAN_IND:可扫描、不可连接(仅对外暴露信息,不允许建连)
  3. ADV_NONCONN_IND:不可扫描、不可连接(Beacon、标签单向发数据)

包结构特点

  • 只有广播者地址AdvA(广播端地址+地址类型TxAdd)
  • 携带AD广播数据:设备名、Service UUID、厂商数据、外观类型等,最大31字节;支持SCAN_REQ扫描请求,广播者回复SCAN_RSP扫描响应包,额外补充数据
  • 广播间隔由应用配置,范围很大(20ms~10.24s),功耗可控

核心特性

✅ 开放发现:任意扫描主机都能搜到设备,适合首次配对 ✅ 灵活配置:广播间隔可调,可长间隔省电、短间隔提升发现概率 ✅ 支持扫描响应,承载更多信息 ❌ 所有附近主机都能收到,隐私差、容易被误扫、扫描列表刷屏 ❌ 回连速度慢,主机需要持续扫描、匹配设备

典型工程场景

  1. 遥控器、手环、传感器出厂首次配对:上电进入ADV_IND,TV/手机扫描列表出现设备,用户点击配对
  2. Beacon、室内定位标签、门禁近场感应:ADV_NONCONN_IND单向广播,不需要建立连接
  3. 智能门锁、温湿度传感器:常态对外广播服务,多台手机都可以发现并选择连接

三、定向广播(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绑定,已知对端地址,快速重连
隐私性低,附近所有扫描主机均可发现高,其他设备链路层过滤丢弃
功耗表现间隔可调,容易做低功耗发包极密,功耗很高,只能短时使用
能不能用于首次配对✅ 可以❌ 不可以

六、常见误区澄清

  1. ❌ 误区:定向广播就是“信号定向、天线波束指向” ✅ 纠正:BLE定向广播是协议层地址过滤,不是射频波束定向;射频还是全向广播,只是包里面写了目标地址,其他设备收到直接丢弃。
  2. ❌ 误区:定向广播可以一直开着省电 ✅ 纠正:3.75ms高频发包,电流很大,协议强制限制1.28s上限,长时间跑定向会快速耗光电池。
  3. ❌ 误区:定向广播也可以带上设备名称 ✅ 纠正:ADV_DIRECT_IND协议PDU定义里没有AD数据字段,无法携带设备名、服务UUID;如果需要同时对外展示信息,只能用非定向广播。
  4. ❌ 误区:定向广播是SMP配对流程里的包 ✅ 纠正:定向广播属于GAP广播链路层能力,SMP是配对加密,二者独立;定向广播只是用来加速已绑定设备重连,不负责密钥协商。

七、小结

非定向广播是BLE的“发现入口”,面向未知设备,开放扫描,用于首次配对、Beacon信息广播;定向广播是BLE的“快速回连通道”,面向已经绑定、地址已知的设备,靠TargetA地址过滤,牺牲功耗换取毫秒级快速建连,同时保护隐私。 在TV遥控器这类BLE产品开发中,二者组合是行业标准方案:绑定后优先定向回连,定向超时切非定向;解绑后永久禁用定向广播,规避解绑后静默回连、扫描列表反复上报等一系列bug。

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐