蓝牙基础(二):蓝牙核心系统架构是什么?
摘要: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连接,如文件或通知)。
