目录
摘要
1 引言
2 连接模型分类与方案架构
2.1 独立连接型
2.2 中继转发型
2.3 动态身份型
2.4 周期性广播型(PAwR)
3 关键配置与实现要点
3.1 最大连接数配置
3.2 角色共存配置
3.3 连接资源回收
3.4 PAwR 实现概要
4 讨论
5 结论
摘要
蓝牙低功耗(BLE)一对多连接是物联网、音频与传感网络中的核心组网需求。本文系统梳理了基于 nRF Connect SDK(NCS)的蓝牙一对多连接方案,将其归纳为独立连接型、中继转发型、动态身份型与周期性广播型四类架构。文章分析了各类方案的连接模型、资源消耗与适用场景,并给出了基于 NCS/Zephyr 的关键配置参数与实现路径。研究表明,方案选择需在连接数、功耗、延迟与实现复杂度之间进行权衡,nRF5340 等平台在合理配置下可支持多达 20 条并发链路。
关键词:蓝牙低功耗;一对多连接;nRF Connect SDK;多连接管理;周期性广播
1 引言
蓝牙低功耗自 4.1 版本起允许外围设备(Peripheral)同时连接多个中央设备(Central),突破了此前一对一连接的拓扑限制。这一能力的引入使得单个蓝牙节点可以作为网关聚合多个传感器、或作为从设备被多个控制终端同时访问。
然而,一对多连接在实现层面面临若干工程挑战:连接资源的分配与回收、角色切换(同时充当 Central 与 Peripheral)、广播身份的区分以及低功耗与吞吐量的平衡。nRF Connect SDK 作为 Nordic 官方开发框架,提供了 SoftDevice Controller 与 Zephyr 蓝牙协议栈的完整支持,为上述问题提供了系统化的解决方案。
本文旨在对 NCS 平台下一对多连接的主流方案进行分类阐述,并给出关键的配置参数与实现指引。
2 连接模型分类与方案架构
根据连接发起方与数据流向的差异,NCS 平台上的蓝牙一对多连接可归纳为四类方案。表 1 对比了各方案的核心特征。
表 1 蓝牙一对多连接方案对比
| 方案类型 | 连接模型 | 手机可见设备数 | 同步复杂度 | 典型场景 |
|---|---|---|---|---|
| 独立连接型 | 中央同时连接多个外设 | 多设备分别可见 | 低(各自独立) | 多传感器采集 |
| 中继转发型 | 节点同时充当 Central 与 Peripheral | 单设备可见 | 高(中继同步) | TWS 耳机中继 |
| 动态身份型 | 外设通过多 Identity 依次接受连接 | 单设备名(多身份) | 中(身份轮换) | 单节点多主机 |
| 周期性广播型 | 广播者以 PAwR 组网,Tag 同步响应 | 不适用 | 极高(子事件调度) | ESL、大规模标签 |
2.1 独立连接型
该方案中,一个 Central 设备(如手机或网关)直接与多个 Peripheral 建立独立的 BLE 连接。每个 Peripheral 以独立地址和名称进行广播,Central 分别扫描并连接。Nordic 官方建议从scanning_while_connecting示例入手,该示例展示了在 nRF5340 上管理多达 20 条并发连接的能力。
此方案的优势在于实现简洁:每个 Peripheral 运行相同的固件,Central 端维护连接对象数组即可。其局限在于手机端需同时管理多条链路,连接稳定性受中央设备蓝牙协议栈能力制约。
2.2 中继转发型
该方案中,一个设备同时承担 Central 与 Peripheral 双重角色。作为 Central,它连接远端 Peripheral 并采集数据;作为 Peripheral,它向手机暴露单一连接,将汇聚的数据转发至手机。NCS 提供了central_and_peripheral_hr示例作为参考实现。
该架构的显著优势在于手机端仅需管理一条连接,同步逻辑由中继节点集中处理。代价是中继节点需同时维护两条链路,资源开销与功耗相应增加,且中继转发引入额外延迟。
2.3 动态身份型
Zephyr 提供的peripheral_identity示例展示了基于多 Identity 的连接方案。设备以不同 Identity Address 依次广播,每个 Central 连接后创建新身份并重启广播,从而允许后续 Central 在独立身份上建立连接。
该方案适用于需要以“单一设备名”被多个主机发现的场景,但身份轮换机制要求 Central 端配合处理,否则可能因地址解析不一致导致连接失败。
2.4 周期性广播型(PAwR)
Bluetooth 5.4 引入的带响应周期性广播(PAwR)为一对多提供了全新的非连接式架构。网关作为周期性广播者,在数据信道发送同步子事件序列;标签(Tag)同步至特定子事件,在指定响应时隙内回传数据。
PAwR 的优势在于可寻址数千个标签(ESL 场景下最大 255×128),标签功耗极低(仅监听短暂时隙),且支持双向通信。其代价是接入点实现复杂度高,且需依赖支持 Bluetooth 5.4 的控制器(nRF52/nRF53 系列均可运行)。
3 关键配置与实现要点
3.1 最大连接数配置
NCS 中最大并发连接数由CONFIG_BT_MAX_CONN控制。SoftDevice Controller 理论上支持最多 20 条链路。实际可配置值受以下因素制约:
内存与缓冲区。每条连接需消耗 ACL 缓冲区与协议栈内存。Nordic 官方 Matter Bridge 配置以 20 条连接为目标,将CONFIG_BT_BUF_ACL_RX_SIZE与CONFIG_BT_BUF_ACL_TX_SIZE设为 84 字节,L2CAP MTU 设为 80 字节,以单缓冲容纳数据包避免分片。
控制器资源计数。若设备同时承担广播或扫描角色,需确保控制器活动资源充足。可参考CONFIG_BT_CTLR_SDC_PERIPHERAL_COUNT或类似的角色计数配置。
3.2 角色共存配置
对于中继转发型方案,需同时启用 Central 与 Peripheral 角色:
CONFIG_BT_CENTRAL=y CONFIG_BT_PERIPHERAL=y CONFIG_BT_OBSERVER=y CONFIG_BT_MAX_CONN=3在 nRF5340 等双核架构中,网络核心(Network Core)的控制器配置同样需要匹配。CONFIG_BT_CTLR_SDC_PERIPHERAL_COUNT应设置为预期同时维持的外围连接数。
3.3 连接资源回收
多连接场景中,连接断开后资源未及时释放是常见问题。Nordic DevZone 讨论指出,仅调用bt_conn_disconnect()与bt_conn_unref()可能不足以完全释放控制器侧资源,尤其在中央设备异常复位导致超时未及时上报时。
建议在 Central 端检测到断连后延迟一个监督超时周期再发起重连,以避免 Peripheral 将新连接视为对同一设备的重复连接。同时应确保CONFIG_BT_MAX_PAIRED与CONFIG_BT_MAX_CONN匹配,避免配对信息占用连接槽位。
3.4 PAwR 实现概要
PAwR 的实现涉及周期性广播同步与响应时隙调度。网关端需:
配置
CONFIG_BT_PER_ADV=y与CONFIG_BT_CTLR_ADV_EXT=y;创建周期广播集并定义子事件序列;
在响应时隙内监听 Tag 的上行数据。
Tag 端需同步至网关的周期广播,并在分配的响应时隙内发送数据。具体 API 调用可参考 Zephyr 的bt_le_per_adv_sync相关接口。详细的时序参数(广播间隔、子事件数量、响应槽数量)需根据设备数量与功耗目标进行权衡。
4 讨论
方案选择的核心权衡维度包括:
连接数与功耗。独立连接型中,每个 Peripheral 仅维护一条链路,功耗最低;中继节点同时维护两条,功耗显著增加。PAwR 方案中 Tag 仅在子事件窗口内唤醒,理论功耗最低,但网关需持续广播,适合有稳定供电的接入点场景。
同步复杂度。独立连接型与 PAwR 的同步责任分散至各节点或由协议层处理;中继转发型要求中继节点在两条链路间协调数据;动态身份型则需要 Central 端配合身份轮换。
手机兼容性。若目标控制端为手机,中继转发型与动态身份型对手机协议栈要求较低(仅需管理一条连接或处理多身份广播),而独立连接型要求手机端同时维护多条 GATT 链路,部分低端设备可能受限。
版本依赖。PAwR 仅适用于 Bluetooth 5.4 及以上控制器,且需 nRF Connect SDK 的 SoftDevice Controller 支持。其余三种方案在 Bluetooth 4.2 及以上即可运行。
5 结论
本文对 NCS 平台下蓝牙一对多连接的实现方案进行了系统梳理。独立连接型以简洁性见长,适合多传感器聚合;中继转发型通过角色共存实现单一手机连接,适合 TWS 类应用;动态身份型以身份轮换策略支持多主机接入;PAwR 则为大规模低功耗标签网络提供了标准化的非连接式方案。实际部署中,应依据连接规模、功耗预算、延迟要求与控制端能力进行综合选型。nRF5340 在合理配置下可支撑多达 20 条并发链路,为多数一对多场景提供了充分的硬件基础。