











liwen01 2025.05.01
Bluetooth core system architecture

查看蓝牙核心规范文档,都会看到一个复杂的核心系统架构图,蓝牙核心系统架构图概括了蓝牙的基本工作原理。
对于初学者,初看这图,不可避免有点令人望而却步,这未免太过于晦涩?
本文我们将尝试对它进行拆开分解,以便于能更好地理解蓝牙的基本工作原理。

在《蓝牙基础(一):蓝牙协议栈与硬件架构方案》中我们有介绍单模与双模蓝牙。其实不管是单模还是双模蓝牙,它们的协议栈都是采用了分层架构的设计。
蓝牙分层架构涉及的核心结构是:
Host 运行在主处理器上(如 MCU、Linux、Windows 等),主要负责上层协议和应用逻辑。
Controller 通常集成在一个蓝牙芯片中(有时称为 Bluetooth SoC),负责底层无线通信功能。
HCI 是 Host 和 Controller 之间的 标准接口协议,它定义了Host 、Controller 两者之间如何交换命令、事件和数据。
常见的通信方式有:UART、USB、SPI、SDIO 等

Host、Controller、HCI 之间的关系、可以简单理解为:
Host 是 大脑,Controller 是 身体,HCI 是它们之间的 通信通道。
在蓝牙鼠标中,插入电脑的那个蓝牙USB适配器是Controller,PC机系统是Host,它们通过USB HCI协议进行通信。
在蓝牙协议栈的层次结构中,HCI 是主机 Host 和控制器 Controller 之间的通信通道。
这里有语音数据(实时性要求高),也有数据传输(文件、通知、控制命令等)。
数据类型主要有:SCO、ACL、C/E 等
有这么多数据要进行收发控制,那又是谁来做数据收发的优先级、流量、拥塞控制呢?
这就引入了主机的 Resource Manager(资源管理器)与控制器中的Baseband Resource Manager(基带资源管理器)。

Resource Manager 是蓝牙协议栈中用于整体资源协调与管理的模块,负责在协议栈的不同层之间协调有限的系统资源。
Baseband Resource Manager 是蓝牙控制器中专门用于管理基带层资源的模块。基带是蓝牙协议栈的底层部分,直接控制无线链路的建立与维护。
假设一个蓝牙设备既要进行语音传输(SCO连接,实时性要求高),又在做数据同步(ACL连接,如文件或通知)。
Resource Manager
Baseband Resource Manager
在蓝牙核心规范中,蓝牙各层次间的数据分为两种:

C-plane: 主要用于处理蓝牙协议栈中的控制信息,包括设备管理、链路管理、信道控制、流量调度、功率控制、设备发现等。
U-plane: 主要用于数据传输,涉及音频、文件传输、串口通信等用户数据流。
如果要对数据流进一步细分,就可以看到下图的数据流。白色表示C-plane,红色表示U-plane。

这就出现了 Link Manager、 Link Controller 与 L2CAP 模块
L2CAP(Logical Link Control and Adaptation Protocol,逻辑链路控制与适配协议) 主要起到适配和复用的作用。
它工作在 Host 层,用于不同高层协议(如 ATT、SDP、RFCOMM)与底层控制器之间的数据传输。
它的主要功能有:
(a) 协议多路复用
L2CAP 支持多个协议共用一个物理连接(Logical Link Multiplexing)
比如:ATT 和 SDP 可以在同一连接上传输数据,L2CAP 负责区分这些数据流。
(b) 数据分片与重组(Segmentation & Reassembly, SAR)
蓝牙底层控制器只能处理较小的数据包(如 27字节 MTU)
L2CAP 允许上层发送大数据(如 512字节),并负责:
(c) 协议适配
将高层协议的数据适配到底层连接类型,比如:
(d) QoS 支持(BR/EDR 模式)
提供服务质量(Quality of Service)参数(在经典蓝牙中用得多)
简而言之:L2CAP 就是蓝牙协议栈中的适配器和路由器,帮你分发数据、组包、拆包,还能控制多个协议通道共享一条蓝牙连接。
Link Manager 主要负责 蓝牙链路的建立、维护和管理,它通过 Link Manager Protocol(LMP) 与远程设备的 Link Manager 进行交互,控制链路的状态和特性。
LM 主要功能及工作原理:
LM 通过 LMP(Link Manager Protocol) 交换控制命令,完成各种蓝牙连接管理任务。
(a)连接建立
(b)身份认证与加密
(c)角色切换蓝牙网络支持主从角色切换:
设备可以通过 LMP_switch_request 请求角色交换。
(d)功耗控制LM 提供了 3 种低功耗模式:
(e)SCO/eSCO 链路管理
LM 负责 SCO(同步连接) 的分配,如蓝牙语音通话(HFP)。 使用 LMP_setup_synchronous_connection 配置 SCO 连接参数
Link Controller(LC)直接与 基带(Baseband) 和 物理层(RF) 交互,负责执行 LM 发送的指令,并处理实际的数据包交换。
LC 主要功能及工作原理:
(a)跳频同步
蓝牙采用 FHSS(跳频扩频) 技术,每 625μs 进行一次跳频,避免干扰。
LC 负责计算频率跳变序列,并确保所有连接设备在相同的频率上进行通信。
(b)数据传输
LC 负责封装数据包,并通过基带层发送到 RF。 支持两种数据链路:
(c)数据校验
LC 负责数据包的错误检测与纠正,使用:
(d)低功耗模式
LC 负责执行 LMP 指令,让设备进入 Sniff、Hold 或 Park Mode,减少能耗.

Device Manager 是控制器中的关键控制模块,负责连接控制、配对协助、设备发现等核心操作,是 HCI 与底层链路管理之间的桥梁。
Device Manager 的主要功能(基于 Controller 架构)
(a) 管理设备连接(Connection Management)
(b) 执行蓝牙发现与名称获取流程
(c) 配对和认证触发控制虽然安全管理(SMP)主要在 Host 层,但 Controller 层的 Device Manager 负责:
与 Link Manager 协作完成加密启动、身份验证等过程
(d) Host 层的接口桥梁(HCI)
GAP(Generic Access Profile) 是蓝牙协议栈中的一种通用访问规范,它不属于某一个独立的协议,而是定义了蓝牙设备之间如何互相看到和连上彼此的通用流程和规则。
GAP 的主要功能有:
(a) 设备角色定义
GAP 定义设备在通信过程中的4种角色:
| 角色 | 用途说明 |
|---|---|
| Broadcaster | 主动广播数据,不接受连接(如 iBeacon) |
| Observer | 被动监听广播,不发起连接 |
| Peripheral | 可被连接设备,广播自身信息 |
| Central | 发起连接的设备(如手机、网关) |
常见工作模式是:Peripheral 与 Central ,比如我们手机与蓝牙耳机。
(b) 设备发现(Discovery)
GAP 负责调用控制器执行 BLE 扫描命令,然后通过 HCI 返回扫描结果。
(c) 广播与扫描(Advertising & Scanning)
GAP 控制以下两个重要过程:广播与扫描
Advertising(广播)
Scanning(扫描)
(d) 连接管理(Connection Establishment)
GAP 不执行连接过程本身,而是通过 HCI 让 Controller 中的 Device Manager、Link Manager 去处理。
(e) 配对模式与安全级别设置
(f) 本地设备属性管理
GAP 还提供接口设置和读取本地设备信息:
GAP 是蓝牙通信中的“前台经理”,负责发现设备、建立连接、定义角色、管理广播和扫描行为,是最核心的 Host 层模块之一。
在上面介绍的蓝牙数据流和蓝牙协议栈模块中,有些属于经典蓝牙模块,有些属于BLE 。

(1) 物理层(PHY)
| 模块 | BR/EDR Controller | LE Controller |
|---|---|---|
| PHY 类型 | BR/EDR Radio(79 个 1MHz 信道) | LE Radio(40 个 2MHz 信道) |
| 调制方式 | GFSK(BR)、π/4-DQPSK(EDR) | GFSK(可选编码,支持远距/低速) |
(2)Link Controller 与 Link Manager
| 功能区域 | BR/EDR | BLE |
|---|---|---|
| Link Controller | 处理同步(SCO/eSCO)与异步(ACL)链路 | 处理 LE 连接和广播/扫描链路 |
| Link Manager | 支持多种链路管理命令(角色切换、加密等) | 专为低功耗优化,简化链路管理操作 |
(3) 数据通道的区别
| 通道类型 | BR/EDR 支持 | BLE 支持 |
|---|---|---|
| ACL | 支持 | 支持 |
| SCO / eSCO | 支持(用于音频) | 不支持(用 ISO 替代) |
| ISO(ISOC 通道) | 不支持(传统协议) | 支持(BLE Audio/LE Audio) |
(4) BLE 中的ISO/AL 模块
BLE 控制器新增了 ISO/AL(Isochronous Adaptation Layer),是 BLE Audio 所必需的:
介绍到这里,再回头看最开头提的 Bluetooth core system architecture 就清晰很多了。

这里主要介绍了蓝牙核心系统架构的各层次结构、数据流、工作原理。下一章将详细介绍蓝牙控制器部分的工作原理。
------------------End------------------如需获取更多内容请关注 liwen01 公众号此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。