第3章 多连接下的状态迁移规则:每个连接独立状态机、全局调度约束、冲突边界
3.1 边界定义与架构概述
多连接蓝牙系统与单连接系统的本质差异在于:状态迁移的管辖边界从「一个全局状态机」拆分为「N 个独立状态机 + 一个全局调度器 + 一个冲突边界检测器」。这三层构成了多连接状态管理的核心边界:
- 连接独立边界——每个连接拥有完全隔离的状态机实例,状态迁移互不阻塞。
- 调度约束边界——全局调度器在射频时间、内存、带宽上施加统一配额,防止资源过订阅。
- 冲突仲裁边界——当多个连接在时序、频率、参数上产生矛盾时,由冲突边界模块进行检测与修复。
下图展示了这三层边界的协作关系与数据流向:
架构要点:独立状态机保证「连接级故障隔离」;全局调度约束保证「资源级公平分配」;冲突边界保证「链路级稳定共存」。三者缺一不可,构成多连接状态管理的三角基石。
3.2 独立状态机架构:每个连接拥有专属状态副本
在蓝牙 LE 多连接场景中,每个连接实例都维护一份完整且独立的状态机副本。这意味着连接 A 从 CONNECTED 迁移到 DISCONNECTING 时,连接 B 的状态机不受任何影响——状态迁移的「作用域」被严格限定在连接实例内部。
3.2.1 状态机实例化与隔离
- 状态副本独立:每个连接在建立时分配一个 state_machine 实例,包含当前状态、允许迁移列表、连接参数。
- 角色独立:一个连接可作为 Central,另一个可作为 Peripheral,角色绑定在实例内部。
- 参数独立:Connection