蓝牙的架构(Bluetooth Architecture)是一个分层、模块化的设计体系,旨在实现设备间的无线、低功耗、安全、互操作通信。它由**硬件组件、协议栈(Protocol Stack)和配置文件(Profiles)**共同构成,适用于经典蓝牙(BR/EDR)和低功耗蓝牙(BLE),两者在架构上既有共性也有差异。
一、整体架构概览
蓝牙系统架构可分为三个主要部分:
| 层级 | 组成 | 功能 |
|---|---|---|
| 1. 硬件层 | 蓝牙芯片(SoC/模块)、天线、射频电路 | 提供物理无线收发能力 |
| 2. 协议栈层 | 分为Controller(控制器)和Host(主机) | 实现连接、数据传输、安全、服务发现等 |
| 3. 应用层 | 配置文件(Profiles)、应用程序 API | 定义具体用途(如音频、心率监测) |
💡关键接口:HCI(Host Controller Interface)是 Host 与 Controller 之间的标准通信桥梁。
二、蓝牙协议栈详细分层(自下而上)
(A)Controller(控制器)—— 通常由蓝牙芯片固件实现
| 层 | 名称 | 功能说明 |
|---|---|---|
| PHY | 物理层 | 工作在 2.4 GHz ISM 频段,使用 GFSK 调制;BLE 支持 1 Mbps / 2 Mbps / Coded PHY(长距离) |
| LL | Link Layer(链路层) | BLE 核心: • 管理广播、扫描、连接 • 处理跳频、加密、重传 • 定义设备角色(Advertiser, Scanner, Master/Slave) (经典蓝牙对应的是Baseband + LM(链路管理器)) |
Controller 通常集成在蓝牙 SoC(如 Nordic nRF52、TI CC2640、ESP32)中。
(B)Host(主机)—— 通常由操作系统或应用处理器运行
| 层 | 名称 | 功能说明 |
|---|---|---|
| HCI | Host Controller Interface | 标准化命令/事件/数据通道,连接 Host 与 Controller(可通过 UART/USB/SPI 传输) |
| L2CAP | Logical Link Control and Adaptation Protocol | • 多路复用(不同上层协议走不同 Channel ID) • 分段重组 • 支持可靠/流式传输 • BLE 中固定信道:CID=4(ATT)、CID=5(LE Data)、CID=6(SMP) |
| SMP | Security Manager Protocol | BLE 安全配对、密钥生成、加密(基于 AES-CCM),支持 Secure Connections(ECDH) |
| ATT | Attribute Protocol | BLE 数据传输基础协议,基于“属性”(Handle + UUID + Value)模型 |
| GATT | Generic Attribute Profile | 基于 ATT 的服务框架: • Service → Characteristic → Descriptor • 所有 BLE 应用(温度、电池、心率)都通过 GATT 暴露数据 |
| SDP | Service Discovery Protocol | 仅经典蓝牙使用,用于查询远程设备支持的服务(如 A2DP、HFP) |
⚠️ BLE不使用 SDP,而是通过GATT 服务发现实现类似功能。
(C)高层协议与配置文件(Profiles)
经典蓝牙特有高层协议:
| 协议 | 用途 |
|---|---|
| RFCOMM | 模拟串口(用于 SPP 串口透传) |
| BNEP | 蓝牙网络封装协议(用于 PAN 网络共享) |
| AVDTP / AVCTP | 音视频分发与控制(A2DP 播放、AVRCP 控制) |
| OBEX | 对象交换(用于文件传输 FTP、电话簿同步 PBAP) |
常见配置文件(Profiles)——定义应用场景
| Profile | 类型 | 用途 |
|---|---|---|
| A2DP | 经典 | 高质量立体声音频传输(耳机/音箱) |
| HFP/HSP | 经典 | 免提通话(车载、耳机麦克风) |
| SPP | 经典 | 串口透传(替代 RS232) |
| HID | 双模 | 键盘、鼠标(BLE HID 也支持) |
| Battery Service | BLE | 通过 GATT 报告电量 |
| Heart Rate Profile | BLE | 心率监测设备标准 |
📌Profile = 协议栈 + 使用规则,确保不同厂商设备互操作。
三、BLE 与经典蓝牙架构对比
| 特性 | BLE(Bluetooth Low Energy) | 经典蓝牙(BR/EDR) |
|---|---|---|
| 目标 | 低功耗、间歇性小数据 | 高速率、持续数据流 |
| 核心协议 | ATT/GATT + SMP | RFCOMM + SDP + AVDTP |
| 服务发现 | GATT | SDP |
| 连接建立 | 快(<10 ms) | 慢(100+ ms) |
| 功耗 | 极低(纽扣电池可用数年) | 较高 |
| 典型应用 | 传感器、信标、智能家居 | 音频、文件传输、拨号 |
🔁双模蓝牙(Dual Mode):如手机,同时支持 BLE 和经典蓝牙,共享同一 2.4 GHz 射频,但协议栈独立运行。
四、典型设备中的蓝牙架构示例
1.BLE 传感器(如温度计)
[Application] ← GATT (读取温度) ↑ [ATT] ↑ [L2CAP] ←→ [SMP](可选配对) ↑ [HCI] ←(若外挂 Controller) ↑ [Link Layer + PHY](集成在 nRF52 芯片中)2.智能手机(Central 设备)
[App: nRF Connect] ↑ [OS Bluetooth API: CoreBluetooth / BluetoothLeScanner] ↑ [GATT Client → ATT → L2CAP → SMP] ↑ [HCI Driver] ↑ [Bluetooth Controller (SoC 内集成)]五、关键设计思想
- 分层解耦:Controller 与 Host 可分离(如 PC 用 USB 蓝牙适配器)。
- 互操作性:通过 SIG 认证和标准 Profile 保证跨品牌兼容。
- 低功耗优化(BLE):
- 广播/连接间隔可调
- 快速连接/断开
- 睡眠占空比高
- 安全性内建:从配对到加密全程标准化(SMP + AES-CCM)。
总结图(文字版)
┌───────────────────────┐ │ Application │ ← 使用 Profiles / GATT Services ├───────────────────────┤ │ Profiles │ ← A2DP, HFP, Battery, Heart Rate... ├───────────────────────┤ │ GATT / RFCOMM / ... │ ← 应用数据组织 ├───────────────────────┤ │ ATT / SDP / OBEX │ ← 数据传输与发现 ├───────────────────────┤ │ L2CAP │ ← 多路复用、分段 ├───────────────────────┤ │ SMP / HCI (Host) │ ← 安全 + 控制器接口 ├───────────────────────┤ ← HCI Boundary(可跨芯片) │ LL / Baseband │ ← 链路管理、跳频 ├───────────────────────┤ │ PHY │ ← 2.4 GHz 射频 └───────────────────────┘