藍牙基礎(二):藍牙核心系統架構
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連接,如文件或通知)。
Resource Manager
- 從全局角度分配資源:決定哪些連接可以共存、各自的優先級
- 管理協議棧內的共享資源:如內存緩沖區、連接控制塊等
- 做策略級決策:比如為了語音清晰度,優先保障SCO連接,限制ACL帶寬
Baseband Resource Manager
- 負責底層時間調度與頻率控制:在微秒級別分配SCO和ACL的時隙
- 解決時間沖突:協調不同連接在物理層的發送/接收時機,避免碰撞
- 控制基帶硬件資源使用:如跳頻、同步窗口、接收緩沖區等
(4) C-plane 與 U-plane
在藍牙核心規范中,藍牙各層次間的數據分為兩種:
- C-plane(Control Plane)
- U-plane(User Plane)

C-plane: 主要用于處理藍牙協議棧中的控制信息,包括設備管理、鏈路管理、信道控制、流量調度、功率控制、設備發現等。
U-plane: 主要用于數據傳輸,涉及音頻、文件傳輸、串口通信等用戶數據流。
(三) L2CAP 、Link Manager 與 Link Manager
如果要對數據流進一步細分,就可以看到下圖的數據流。白色表示C-plane,紅色表示U-plane。

這就出現了 Link Manager、 Link Controller 與 L2CAP 模塊
(1) 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字節),并負責:
- 發送端將其分片(Segmentation)
- 接收端將其重組(Reassembly)
(c) 協議適配
將高層協議的數據適配到底層連接類型,比如:
- 基于 ACL(Asynchronous Connection-Less)鏈路
- LE(低功耗藍牙)使用的是 LE-U(LE-U Logical Link)
(d) QoS 支持(BR/EDR 模式)
提供服務質量(Quality of Service)參數(在經典藍牙中用得多)
簡而言之:L2CAP 就是藍牙協議棧中的適配器和路由器,幫你分發數據、組包、拆包,還能控制多個協議通道共享一條藍牙連接。
(2) Link Manager(LM,鏈路管理器)
Link Manager 主要負責 藍牙鏈路的建立、維護和管理,它通過 Link Manager Protocol(LMP) 與遠程設備的 Link Manager 進行交互,控制鏈路的狀態和特性。
LM 主要功能及工作原理:
LM 通過 LMP(Link Manager Protocol) 交換控制命令,完成各種藍牙連接管理任務。
(a)連接建立
- 設備 A(主機)向設備 B(從機)發送 LMP_connection_request 請求。
- 設備 B 確認連接,返回 LMP_accepted,然后進入Paging(尋呼)過程完成連接。
- 如果設備之前配對過,還需要進行身份認證(Authentication)。
(b)身份認證與加密
- 設備 A 發送 LMP_authentication_request 進行身份驗證。
- 使用 E1/E3 密鑰生成函數 計算認證密鑰。
- 設備 B 返回認證結果(通過或失敗)。
- 如果啟用了加密,則使用 E0 加密算法 對數據進行加密。
(c)角色切換藍牙網絡支持主從角色切換:
- 主設備(Master)控制通信時序。
- 從設備(Slave)按照主設備分配的時隙接收/發送數據。
設備可以通過 LMP_switch_request 請求角色交換。
(d)功耗控制LM 提供了 3 種低功耗模式:
- Hold Mode:暫停數據傳輸,但保持連接。
- Sniff Mode:設備在特定時間間隔內監聽數據,減少功耗。
- Park Mode:設備釋放活動狀態,但仍然保持同步。
(e)SCO/eSCO 鏈路管理
LM 負責 SCO(同步連接) 的分配,如藍牙語音通話(HFP)。 使用 LMP_setup_synchronous_connection 配置 SCO 連接參數
(3) Link Manager(LM,鏈路管理器)
Link Controller(LC)直接與 基帶(Baseband) 和 物理層(RF) 交互,負責執行 LM 發送的指令,并處理實際的數據包交換。
LC 主要功能及工作原理:
(a)跳頻同步
藍牙采用 FHSS(跳頻擴頻) 技術,每 625μs 進行一次跳頻,避免干擾。
LC 負責計算頻率跳變序列,并確保所有連接設備在相同的頻率上進行通信。
(b)數據傳輸
LC 負責封裝數據包,并通過基帶層發送到 RF。 支持兩種數據鏈路:
- ACL(異步連接鏈路):用于數據傳輸(如文件傳輸)。
- SCO(同步連接鏈路):用于語音數據傳輸(如藍牙通話)。
(c)數據校驗
LC 負責數據包的錯誤檢測與糾正,使用:
- CRC(循環冗余校驗):檢測數據包是否損壞。
- FEC(前向糾錯碼):提高數據可靠性。
- ARQ(自動重傳請求):如果數據包丟失,則請求重傳。
(d)低功耗模式
LC 負責執行 LMP 指令,讓設備進入 Sniff、Hold 或 Park Mode,減少能耗.
(4) LM 與 LC 的區別
- LM 負責高級鏈路管理,如身份驗證、配對、角色切換。
- LC 負責低級數據傳輸,如數據封裝、跳頻、錯誤校驗。
- LM 通過 LMP 協議 進行控制,而 LC 依賴 基帶協議 完成數據交換。
(四) Device Manager 與 GAP

(1) Device Manager (設備管理)
Device Manager 是控制器中的關鍵控制模塊,負責連接控制、配對協助、設備發現等核心操作,是 HCI 與底層鏈路管理之間的橋梁。
Device Manager 的主要功能(基于 Controller 架構)
(a) 管理設備連接(Connection Management)
- 處理來自 Host 的連接請求(Connect、Disconnect)
- 發起連接或接受連接請求
- 管理多個連接的狀態(連接、斷開、重新連接)
(b) 執行藍牙發現與名稱獲取流程
- 執行 Inquiry(發現)流程,找到周圍的藍牙設備
- 執行 Remote Name Request 獲取設備名稱
- 把結果通過 HCI 上報給 Host 層(例如 GAP 模塊)
(c) 配對和認證觸發控制雖然安全管理(SMP)主要在 Host 層,但 Controller 層的 Device Manager 負責:
- 啟動配對流程(Pin Code Request、IO Capability Request)
- 管理 Link Key(密鑰)緩存、保存與恢復
與 Link Manager 協作完成加密啟動、身份驗證等過程
(d) Host 層的接口橋梁(HCI)
- 接收 Host 層發來的 HCI 命令(如創建連接、斷開連接)
- 將 Controller 中的事件上報給 Host(如連接完成事件、配對完成事件)
(2) GAP(Generic Access Profile 通用訪問規范)
GAP(Generic Access Profile) 是藍牙協議棧中的一種通用訪問規范,它不屬于某一個獨立的協議,而是定義了藍牙設備之間如何互相看到和連上彼此的通用流程和規則。
GAP 的主要功能有:
(a) 設備角色定義
GAP 定義設備在通信過程中的4種角色:
| 角色 | 用途說明 |
|---|---|
| Broadcaster | 主動廣播數據,不接受連接(如 iBeacon) |
| Observer | 被動監聽廣播,不發起連接 |
| Peripheral | 可被連接設備,廣播自身信息 |
| Central | 發起連接的設備(如手機、網關) |
常見工作模式是:Peripheral 與 Central ,比如我們手機與藍牙耳機。
(b) 設備發現(Discovery)
- 掃描周圍廣播(advertising)設備
- 過濾、解析廣播數據(如設備名、UUID、服務)
- 提供掃描結果給上層應用
GAP 負責調用控制器執行 BLE 掃描命令,然后通過 HCI 返回掃描結果。
(c) 廣播與掃描(Advertising & Scanning)
GAP 控制以下兩個重要過程:廣播與掃描
Advertising(廣播)
- Peripheral/Broadcaster 發送廣播包
- GAP 負責配置廣播參數,如:廣播間隔、內容、類型
Scanning(掃描)
- Central/Observer 接收廣播
- GAP 負責配置掃描行為,如:掃描窗口、間隔、主動掃描、被動掃描、過濾策略
(d) 連接管理(Connection Establishment)
- Central 向 Peripheral 發起連接請求(通過 GAP 接口發出連接命令)
- GAP 維護連接狀態(連接中、已連接、斷開)
GAP 不執行連接過程本身,而是通過 HCI 讓 Controller 中的 Device Manager、Link Manager 去處理。
(e) 配對模式與安全級別設置
- 決定是否允許配對、是否需要加密
- 設置 I/O 能力(無輸入、數字鍵盤、顯示器等)
- 選擇配對模式(Just Works、Passkey、OOB 等)
- GAP 會協同 Security Manager(SMP)工作來完成配對流程
(f) 本地設備屬性管理
GAP 還提供接口設置和讀取本地設備信息:
- 本地設備名稱(Device Name)
- 外觀(Appearance)
- 連接參數(Interval、Latency、Timeout)
- 角色切換、白名單管理等
GAP 是藍牙通信中的“前臺經理”,負責發現設備、建立連接、定義角色、管理廣播和掃描行為,是最核心的 Host 層模塊之一。
(五) BR/EDR 、BLE 雙模架構
在上面介紹的藍牙數據流和藍牙協議棧模塊中,有些屬于經典藍牙模塊,有些屬于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 所必需的:
- 提供面向音頻的低延遲、可預測傳輸
- 支持廣播音頻(BIS)和連接音頻(CIS)
- 是 5.2 BLE Audio 架構中新引入的專用模塊
介紹到這里,再回頭看最開頭提的 Bluetooth core system architecture 就清晰很多了。

結尾
這里主要介紹了藍牙核心系統架構的各層次結構、數據流、工作原理。下一章將詳細介紹藍牙控制器部分的工作原理。

浙公網安備 33010602011771號