藍牙基礎(chǔ)(二):藍牙核心系統(tǒng)架構(gòu)
掃描二維碼
隨時隨地手機看文章
前言
Bluetooth core system architecture
查看藍牙核心規(guī)范文檔,都會看到一個復雜的核心系統(tǒng)架構(gòu)圖,藍牙核心系統(tǒng)架構(gòu)圖概括了藍牙的基本工作原理。
對于初學者,初看這圖,不可避免有點令人望而卻步,這未免太過于晦澀?
本文我們將嘗試對它進行拆開分解,以便于能更好地理解藍牙的基本工作原理。
(一) Host、Controller 與 HCI
在《藍牙基礎(chǔ)(一):藍牙協(xié)議棧與硬件架構(gòu)方案》中我們有介紹單模與雙模藍牙。其實不管是單模還是雙模藍牙,它們的協(xié)議棧都是采用了分層架構(gòu)的設(shè)計。
藍牙分層架構(gòu)涉及的核心結(jié)構(gòu)是:
- Host(主機)
- Controller(控制器)
- HCI(Host Controller Interface,主機控制器接口)
(1) 藍牙 Host(主機)
Host 運行在主處理器上(如 MCU、Linux、Windows 等),主要負責上層協(xié)議和應用邏輯。
(2) 藍牙 Controller(控制器)
Controller 通常集成在一個藍牙芯片中(有時稱為 Bluetooth SoC),負責底層無線通信功能。
(3) HCI(Host Controller Interface)
HCI 是 Host 和 Controller 之間的 標準接口協(xié)議,它定義了Host 、Controller 兩者之間如何交換命令、事件和數(shù)據(jù)。
常見的通信方式有:UART、USB、SPI、SDIO 等
(4) Host、Controller、HCI 之間的關(guān)系
Host、Controller、HCI 之間的關(guān)系、可以簡單理解為:
Host 是 大腦,Controller 是 身體,HCI 是它們之間的 通信通道。
在藍牙鼠標中,插入電腦的那個藍牙USB適配器是Controller,PC機系統(tǒng)是Host,它們通過USB HCI協(xié)議進行通信。
(二) Resource Manager
在藍牙協(xié)議棧的層次結(jié)構(gòu)中,HCI 是主機 Host 和控制器 Controller 之間的通信通道。
這里有語音數(shù)據(jù)(實時性要求高),也有數(shù)據(jù)傳輸(文件、通知、控制命令等)。
數(shù)據(jù)類型主要有:SCO、ACL、C/E 等
- HCI Command Packet(Host → Controller)
- HCI Event Packet(Controller → Host)
- HCI ACL Data Packet(數(shù)據(jù)傳輸)
- HCI SCO Packet(用于語音)
有這么多數(shù)據(jù)要進行收發(fā)控制,那又是誰來做數(shù)據(jù)收發(fā)的優(yōu)先級、流量、擁塞控制呢?
這就引入了主機的 Resource Manager(資源管理器)與控制器中的Baseband Resource Manager(基帶資源管理器)。
(1) Resource Manager (資源管理器)
Resource Manager 是藍牙協(xié)議棧中用于整體資源協(xié)調(diào)與管理的模塊,負責在協(xié)議棧的不同層之間協(xié)調(diào)有限的系統(tǒng)資源。
- 所在層級:主機協(xié)議棧層(Host)或控制器接口層
- 管理對象:高層資源,如連接、內(nèi)存、協(xié)議模塊調(diào)度
- 作用范圍:跨模塊調(diào)度、資源分配、策略控制
- 典型用途:多連接管理、Host Controller接口管理、QoS管理
(2) Baseband Resource Manager (基帶資源管理器)
Baseband Resource Manager 是藍牙控制器中專門用于管理基帶層資源的模塊?;鶐撬{牙協(xié)議棧的底層部分,直接控制無線鏈路的建立與維護。
- 所在層級:控制器內(nèi)部(Controller)
- 管理對象:低層資源,如跳頻、時間片、基帶硬件
- 作用范圍:精細控制藍牙物理層時序與硬件調(diào)度
- 典型用途:多個基帶活動時的時隙調(diào)度、鏈路維持
(3) 應用舉例
假設(shè)一個藍牙設(shè)備既要進行語音傳輸(SCO連接,實時性要求高),又在做數(shù)據(jù)同步(ACL連接,如文件或通知)。
Resource Manager
- 從全局角度分配資源:決定哪些連接可以共存、各自的優(yōu)先級
- 管理協(xié)議棧內(nèi)的共享資源:如內(nèi)存緩沖區(qū)、連接控制塊等
- 做策略級決策:比如為了語音清晰度,優(yōu)先保障SCO連接,限制ACL帶寬
Baseband Resource Manager
- 負責底層時間調(diào)度與頻率控制:在微秒級別分配SCO和ACL的時隙
- 解決時間沖突:協(xié)調(diào)不同連接在物理層的發(fā)送/接收時機,避免碰撞
- 控制基帶硬件資源使用:如跳頻、同步窗口、接收緩沖區(qū)等
(4) C-plane 與 U-plane
在藍牙核心規(guī)范中,藍牙各層次間的數(shù)據(jù)分為兩種:
- C-plane(Control Plane)
- U-plane(User Plane)
C-plane: 主要用于處理藍牙協(xié)議棧中的控制信息,包括設(shè)備管理、鏈路管理、信道控制、流量調(diào)度、功率控制、設(shè)備發(fā)現(xiàn)等。
U-plane: 主要用于數(shù)據(jù)傳輸,涉及音頻、文件傳輸、串口通信等用戶數(shù)據(jù)流。
(三) L2CAP 、Link Manager 與 Link Manager
如果要對數(shù)據(jù)流進一步細分,就可以看到下圖的數(shù)據(jù)流。白色表示C-plane,紅色表示U-plane。
這就出現(xiàn)了 Link Manager、 Link Controller 與 L2CAP 模塊
(1) L2CAP
L2CAP(Logical Link Control and Adaptation Protocol,邏輯鏈路控制與適配協(xié)議) 主要起到適配和復用的作用。
它工作在 Host 層,用于不同高層協(xié)議(如 ATT、SDP、RFCOMM)與底層控制器之間的數(shù)據(jù)傳輸。
它的主要功能有:
(a) 協(xié)議多路復用
L2CAP 支持多個協(xié)議共用一個物理連接(Logical Link Multiplexing)
比如:ATT 和 SDP 可以在同一連接上傳輸數(shù)據(jù),L2CAP 負責區(qū)分這些數(shù)據(jù)流。
(b) 數(shù)據(jù)分片與重組(Segmentation & Reassembly, SAR)
藍牙底層控制器只能處理較小的數(shù)據(jù)包(如 27字節(jié) MTU)
L2CAP 允許上層發(fā)送大數(shù)據(jù)(如 512字節(jié)),并負責:
- 發(fā)送端將其分片(Segmentation)
- 接收端將其重組(Reassembly)
(c) 協(xié)議適配
將高層協(xié)議的數(shù)據(jù)適配到底層連接類型,比如:
- 基于 ACL(Asynchronous Connection-Less)鏈路
- LE(低功耗藍牙)使用的是 LE-U(LE-U Logical Link)
(d) QoS 支持(BR/EDR 模式)
提供服務質(zhì)量(Quality of Service)參數(shù)(在經(jīng)典藍牙中用得多)
簡而言之:L2CAP 就是藍牙協(xié)議棧中的適配器和路由器,幫你分發(fā)數(shù)據(jù)、組包、拆包,還能控制多個協(xié)議通道共享一條藍牙連接。
(2) Link Manager(LM,鏈路管理器)
Link Manager 主要負責 藍牙鏈路的建立、維護和管理,它通過 Link Manager Protocol(LMP) 與遠程設(shè)備的 Link Manager 進行交互,控制鏈路的狀態(tài)和特性。
LM 主要功能及工作原理:
LM 通過 LMP(Link Manager Protocol) 交換控制命令,完成各種藍牙連接管理任務。
(a)連接建立
- 設(shè)備 A(主機)向設(shè)備 B(從機)發(fā)送 LMP_connection_request 請求。
- 設(shè)備 B 確認連接,返回 LMP_accepted,然后進入Paging(尋呼)過程完成連接。
- 如果設(shè)備之前配對過,還需要進行身份認證(Authentication)。
(b)身份認證與加密
- 設(shè)備 A 發(fā)送 LMP_authentication_request 進行身份驗證。
- 使用 E1/E3 密鑰生成函數(shù) 計算認證密鑰。
- 設(shè)備 B 返回認證結(jié)果(通過或失敗)。
- 如果啟用了加密,則使用 E0 加密算法 對數(shù)據(jù)進行加密。
(c)角色切換藍牙網(wǎng)絡(luò)支持主從角色切換:
- 主設(shè)備(Master)控制通信時序。
- 從設(shè)備(Slave)按照主設(shè)備分配的時隙接收/發(fā)送數(shù)據(jù)。
設(shè)備可以通過 LMP_switch_request 請求角色交換。
(d)功耗控制LM 提供了 3 種低功耗模式:
- Hold Mode:暫停數(shù)據(jù)傳輸,但保持連接。
- Sniff Mode:設(shè)備在特定時間間隔內(nèi)監(jiān)聽數(shù)據(jù),減少功耗。
- Park Mode:設(shè)備釋放活動狀態(tài),但仍然保持同步。
(e)SCO/eSCO 鏈路管理
LM 負責 SCO(同步連接) 的分配,如藍牙語音通話(HFP)。 使用 LMP_setup_synchronous_connection 配置 SCO 連接參數(shù)
(3) Link Manager(LM,鏈路管理器)
Link Controller(LC)直接與 基帶(Baseband) 和 物理層(RF) 交互,負責執(zhí)行 LM 發(fā)送的指令,并處理實際的數(shù)據(jù)包交換。
LC 主要功能及工作原理:
(a)跳頻同步
藍牙采用 FHSS(跳頻擴頻) 技術(shù),每 625μs 進行一次跳頻,避免干擾。
LC 負責計算頻率跳變序列,并確保所有連接設(shè)備在相同的頻率上進行通信。
(b)數(shù)據(jù)傳輸
LC 負責封裝數(shù)據(jù)包,并通過基帶層發(fā)送到 RF。 支持兩種數(shù)據(jù)鏈路:
- ACL(異步連接鏈路):用于數(shù)據(jù)傳輸(如文件傳輸)。
- SCO(同步連接鏈路):用于語音數(shù)據(jù)傳輸(如藍牙通話)。
(c)數(shù)據(jù)校驗
LC 負責數(shù)據(jù)包的錯誤檢測與糾正,使用:
- CRC(循環(huán)冗余校驗):檢測數(shù)據(jù)包是否損壞。
- FEC(前向糾錯碼):提高數(shù)據(jù)可靠性。
- ARQ(自動重傳請求):如果數(shù)據(jù)包丟失,則請求重傳。
(d)低功耗模式
LC 負責執(zhí)行 LMP 指令,讓設(shè)備進入 Sniff、Hold 或 Park Mode,減少能耗.
(4) LM 與 LC 的區(qū)別
- LM 負責高級鏈路管理,如身份驗證、配對、角色切換。
- LC 負責低級數(shù)據(jù)傳輸,如數(shù)據(jù)封裝、跳頻、錯誤校驗。
- LM 通過 LMP 協(xié)議 進行控制,而 LC 依賴 基帶協(xié)議 完成數(shù)據(jù)交換。
(四) Device Manager 與 GAP
(1) Device Manager (設(shè)備管理)
Device Manager 是控制器中的關(guān)鍵控制模塊,負責連接控制、配對協(xié)助、設(shè)備發(fā)現(xiàn)等核心操作,是 HCI 與底層鏈路管理之間的橋梁。
Device Manager 的主要功能(基于 Controller 架構(gòu))
(a) 管理設(shè)備連接(Connection Management)
- 處理來自 Host 的連接請求(Connect、Disconnect)
- 發(fā)起連接或接受連接請求
- 管理多個連接的狀態(tài)(連接、斷開、重新連接)
(b) 執(zhí)行藍牙發(fā)現(xiàn)與名稱獲取流程
- 執(zhí)行 Inquiry(發(fā)現(xiàn))流程,找到周圍的藍牙設(shè)備
- 執(zhí)行 Remote Name Request 獲取設(shè)備名稱
- 把結(jié)果通過 HCI 上報給 Host 層(例如 GAP 模塊)
(c) 配對和認證觸發(fā)控制雖然安全管理(SMP)主要在 Host 層,但 Controller 層的 Device Manager 負責:
- 啟動配對流程(Pin Code Request、IO Capability Request)
- 管理 Link Key(密鑰)緩存、保存與恢復
與 Link Manager 協(xié)作完成加密啟動、身份驗證等過程
(d) Host 層的接口橋梁(HCI)
- 接收 Host 層發(fā)來的 HCI 命令(如創(chuàng)建連接、斷開連接)
- 將 Controller 中的事件上報給 Host(如連接完成事件、配對完成事件)
(2) GAP(Generic Access Profile 通用訪問規(guī)范)
GAP(Generic Access Profile) 是藍牙協(xié)議棧中的一種通用訪問規(guī)范,它不屬于某一個獨立的協(xié)議,而是定義了藍牙設(shè)備之間如何互相看到和連上彼此的通用流程和規(guī)則。
GAP 的主要功能有:
(a) 設(shè)備角色定義
GAP 定義設(shè)備在通信過程中的4種角色:
| 角色 | 用途說明 |
|---|---|
| Broadcaster | 主動廣播數(shù)據(jù),不接受連接(如 iBeacon) |
| Observer | 被動監(jiān)聽廣播,不發(fā)起連接 |
| Peripheral | 可被連接設(shè)備,廣播自身信息 |
| Central | 發(fā)起連接的設(shè)備(如手機、網(wǎng)關(guān)) |
常見工作模式是:Peripheral 與 Central ,比如我們手機與藍牙耳機。
(b) 設(shè)備發(fā)現(xiàn)(Discovery)
- 掃描周圍廣播(advertising)設(shè)備
- 過濾、解析廣播數(shù)據(jù)(如設(shè)備名、UUID、服務)
- 提供掃描結(jié)果給上層應用
GAP 負責調(diào)用控制器執(zhí)行 BLE 掃描命令,然后通過 HCI 返回掃描結(jié)果。
(c) 廣播與掃描(Advertising & Scanning)
GAP 控制以下兩個重要過程:廣播與掃描
Advertising(廣播)
- Peripheral/Broadcaster 發(fā)送廣播包
- GAP 負責配置廣播參數(shù),如:廣播間隔、內(nèi)容、類型
Scanning(掃描)
- Central/Observer 接收廣播
- GAP 負責配置掃描行為,如:掃描窗口、間隔、主動掃描、被動掃描、過濾策略
(d) 連接管理(Connection Establishment)
- Central 向 Peripheral 發(fā)起連接請求(通過 GAP 接口發(fā)出連接命令)
- GAP 維護連接狀態(tài)(連接中、已連接、斷開)
GAP 不執(zhí)行連接過程本身,而是通過 HCI 讓 Controller 中的 Device Manager、Link Manager 去處理。
(e) 配對模式與安全級別設(shè)置
- 決定是否允許配對、是否需要加密
- 設(shè)置 I/O 能力(無輸入、數(shù)字鍵盤、顯示器等)
- 選擇配對模式(Just Works、Passkey、OOB 等)
- GAP 會協(xié)同 Security Manager(SMP)工作來完成配對流程
(f) 本地設(shè)備屬性管理
GAP 還提供接口設(shè)置和讀取本地設(shè)備信息:
- 本地設(shè)備名稱(Device Name)
- 外觀(Appearance)
- 連接參數(shù)(Interval、Latency、Timeout)
- 角色切換、白名單管理等
GAP 是藍牙通信中的“前臺經(jīng)理”,負責發(fā)現(xiàn)設(shè)備、建立連接、定義角色、管理廣播和掃描行為,是最核心的 Host 層模塊之一。
(五) BR/EDR 、BLE 雙模架構(gòu)
在上面介紹的藍牙數(shù)據(jù)流和藍牙協(xié)議棧模塊中,有些屬于經(jīng)典藍牙模塊,有些屬于BLE 。
(1) 物理層(PHY)
| 模塊 | BR/EDR Controller | LE Controller |
|---|---|---|
| PHY 類型 | BR/EDR Radio(79 個 1MHz 信道) | LE Radio(40 個 2MHz 信道) |
| 調(diào)制方式 | GFSK(BR)、π/4-DQPSK(EDR) | GFSK(可選編碼,支持遠距/低速) |
(2)Link Controller 與 Link Manager
| 功能區(qū)域 | BR/EDR | BLE |
|---|---|---|
| Link Controller | 處理同步(SCO/eSCO)與異步(ACL)鏈路 | 處理 LE 連接和廣播/掃描鏈路 |
| Link Manager | 支持多種鏈路管理命令(角色切換、加密等) | 專為低功耗優(yōu)化,簡化鏈路管理操作 |
(3) 數(shù)據(jù)通道的區(qū)別
| 通道類型 | BR/EDR 支持 | BLE 支持 |
|---|---|---|
| ACL | 支持 | 支持 |
| SCO / eSCO | 支持(用于音頻) | 不支持(用 ISO 替代) |
| ISO(ISOC 通道) | 不支持(傳統(tǒng)協(xié)議) | 支持(BLE Audio/LE Audio) |
(4) BLE 中的ISO/AL 模塊
BLE 控制器新增了 ISO/AL(Isochronous Adaptation Layer),是 BLE Audio 所必需的:
- 提供面向音頻的低延遲、可預測傳輸
- 支持廣播音頻(BIS)和連接音頻(CIS)
- 是 5.2 BLE Audio 架構(gòu)中新引入的專用模塊
介紹到這里,再回頭看最開頭提的 Bluetooth core system architecture 就清晰很多了。
結(jié)尾
這里主要介紹了藍牙核心系統(tǒng)架構(gòu)的各層次結(jié)構(gòu)、數(shù)據(jù)流、工作原理。下一章將詳細介紹藍牙控制器部分的工作原理。





