蓝牙基础(二):蓝牙核心系统架构是什么?

摘要:liwen01 2025.05.01 前言 Bluetooth core system architecture 查看蓝牙核心规范文档,都会看到一个复杂的核心系统架构图,蓝牙核心系统架构图概括了蓝牙的基本工作原理。 对于初学者,初看这图,不
liwen01 2025.05.01 前言 Bluetooth core system architecture 查看蓝牙核心规范文档,都会看到一个复杂的核心系统架构图,蓝牙核心系统架构图概括了蓝牙的基本工作原理。 对于初学者,初看这图,不可避免有点令人望而却步,这未免太过于晦涩? 本文我们将尝试对它进行拆开分解,以便于能更好地理解蓝牙的基本工作原理。 (一) Host、Controller 与 HCI 在《蓝牙基础(一):蓝牙协议栈与硬件架构方案》中我们有介绍单模与双模蓝牙。其实不管是单模还是双模蓝牙,它们的协议栈都是采用了分层架构的设计。 蓝牙分层架构涉及的核心结构是: Host(主机) Controller(控制器) HCI(Host Controller Interface,主机控制器接口) (1) 蓝牙 Host(主机) Host 运行在主处理器上(如 MCU、Linux、Windows 等),主要负责上层协议和应用逻辑。 (2) 蓝牙 Controller(控制器) Controller 通常集成在一个蓝牙芯片中(有时称为 Bluetooth SoC),负责底层无线通信功能。 (3) HCI(Host Controller Interface) HCI 是 Host 和 Controller 之间的标准接口协议,它定义了Host 、Controller 两者之间如何交换命令、事件和数据。 常见的通信方式有:UART、USB、SPI、SDIO 等 (4) Host、Controller、HCI 之间的关系 Host、Controller、HCI 之间的关系、可以简单理解为: Host 是大脑,Controller 是身体,HCI 是它们之间的通信通道。 在蓝牙鼠标中,插入电脑的那个蓝牙USB适配器是Controller,PC机系统是Host,它们通过USB HCI协议进行通信。 (二) Resource Manager 在蓝牙协议栈的层次结构中,HCI 是主机 Host 和控制器 Controller 之间的通信通道。 这里有语音数据(实时性要求高),也有数据传输(文件、通知、控制命令等)。 数据类型主要有:SCO、ACL、C/E 等 HCI Command Packet(Host → Controller) HCI Event Packet(Controller → Host) HCI ACL Data Packet(数据传输) HCI SCO Packet(用于语音) 有这么多数据要进行收发控制,那又是谁来做数据收发的优先级、流量、拥塞控制呢? 这就引入了主机的Resource Manager(资源管理器)与控制器中的Baseband Resource Manager(基带资源管理器)。 (1) Resource Manager (资源管理器) Resource Manager 是蓝牙协议栈中用于整体资源协调与管理的模块,负责在协议栈的不同层之间协调有限的系统资源。 所在层级:主机协议栈层(Host)或控制器接口层 管理对象:高层资源,如连接、内存、协议模块调度 作用范围:跨模块调度、资源分配、策略控制 典型用途:多连接管理、Host Controller接口管理、QoS管理 (2) Baseband Resource Manager (基带资源管理器) Baseband Resource Manager 是蓝牙控制器中专门用于管理基带层资源的模块。基带是蓝牙协议栈的底层部分,直接控制无线链路的建立与维护。 所在层级:控制器内部(Controller) 管理对象:低层资源,如跳频、时间片、基带硬件 作用范围:精细控制蓝牙物理层时序与硬件调度 典型用途:多个基带活动时的时隙调度、链路维持 (3) 应用举例 假设一个蓝牙设备既要进行语音传输(SCO连接,实时性要求高),又在做数据同步(ACL连接,如文件或通知)。
阅读全文