Skip to content

1. 蓝牙的整体结构

蓝牙协议栈通常分为 物理层、链路层、协议层、应用层 四个主要部分

  1. 物理层(PHY, Physical Layer)
    • 负责信号的无线传输和接收。
    • 使用 2.4GHz ISM 频段,支持 经典蓝牙(BR/EDR)低功耗蓝牙(BLE)
  2. 链路层(LL, Link Layer)
    • 负责蓝牙设备的连接、数据交换、安全加密等。
    • 在 BLE 中负责 广播(Advertising)和扫描(Scanning) 过程。
  3. L2CAP 层(逻辑链路控制与适配协议)
    • 处理数据的 分片(Fragmentation)和重组(Reassembly)
    • 负责 多通道管理(Multiplexing),允许多个协议在同一蓝牙连接上传输。
  4. 协议层
    • **GATT(通用属性协议)**用于 BLE 设备的数据交互,如智能手环与手机通信。
    • **SMP(安全管理协议)**负责蓝牙设备之间的身份认证和加密。
  5. 应用层
    • 包括 A2DP(音频协议)、HID(键盘鼠标协议)、BLE Profile(智能设备协议) 等。
    • 负责与最终用户交互,比如蓝牙耳机、键盘、鼠标、智能手环等。

2. 详细解析各个部分

(1)物理层(PHY, Physical Layer)

功能

  • 负责 蓝牙无线信号的发送和接收

  • 采用 跳频扩频(FHSS, Frequency Hopping Spread Spectrum) 技术,减少干扰,提高通信质量。

  • 工作频段2.402 GHz ~ 2.480 GHz(2.4 GHz ISM 频段)。

  • 信道数

    • **经典蓝牙(BR/EDR)**79 个信道(1MHz 间隔)。
  • **低功耗蓝牙(BLE)**40 个信道(2MHz 间隔),其中 3 个信道用于广播。

调制方式

  • **BR(基本速率)**GFSK(高斯频移键控),1 Mbps。
  • **EDR(增强速率)**π/4-DQPSK 或 8DPSK,最高 3 Mbps。
  • **BLE(低功耗蓝牙)**GFSK,1Mbps 或 2Mbps。

功能

  • 管理广播(Advertising)和连接事件,定义设备角色(广播者/扫描者/主/从),负责数据包的收发和时序控制。

  • 连接建立和维护

    • **经典蓝牙(BR/EDR)**主从架构,一个主设备最多能连接 7 个从设备
    • BLE支持点对点和广播模式。
  • 数据传输

    • **ACL(异步连接链路)**主要用于数据通信(如文件传输)。
    • **SCO(同步连接链路)**用于实时音频传输(如蓝牙通话)。
  • 信道跳频(Adaptive Frequency Hopping, AFH)

    • 经典蓝牙每秒 1600 次跳频,BLE 主要用于减少干扰。

(3)L2CAP 层(逻辑链路控制和适配协议)

功能

  • 多通道管理(Multiplexing)

    • 允许不同的应用协议(如音频、HID 设备)同时在蓝牙连接上运行。
  • 数据分片(Fragmentation)和重组(Reassembly)

    • 由于蓝牙的 最大数据包大小有限(如 BLE 为 251 字节),L2CAP 负责拆分和合并数据包。

支持的协议

  • **SDP(服务发现协议)**允许设备查询对方的功能(如蓝牙耳机的音频协议)。
  • RFCOMM(串行端口仿真)用于虚拟串口连接(如蓝牙 GPS)。
  • **AVDTP(音频/视频分发协议)**用于 A2DP 蓝牙音频传输。
  • **ATT(属性协议)**BLE 设备使用 ATT 进行数据交互。

(4)协议层

协议层包含 GATT、SMP、HID、A2DP、HFP 等,负责数据通信和安全。

GATT(通用属性协议,Generic Attribute Profile)

  • 基于 ATT(Attribute Protocol),用于 BLE 设备的数据交互,定义服务(Services)、特征(Characteristics)和描述符(Descriptors)的层级结构。。

  • 设备扮演 GATT Server(服务器)GATT Client(客户端)

  • 常见 BLE Profile

    • **心率监测(Heart Rate Profile)**智能手环向手机发送心率数据。
  • **电池电量(Battery Service)**BLE 设备报告电量信息。

SMP(安全管理协议,Security Manager Protocol)

  • BLE 的安全机制,用于设备配对和加密。

  • 配对模式

    • Just Works(无密码)
    • Passkey Entry(输入密码)
    • OOB(Out of Band,使用 NFC 交换密钥)
  • 加密方式

    • 采用 AES-CCM 加密,保证数据安全。

通用访问协议(GAP)

  • 功能管理BLE设备角色(外设/中心设备)、广播参数和连接建立流程。

  • GAP(Generic Access Profile) 是蓝牙协议栈中的一个关键部分,主要用于管理蓝牙设备的 访问控制、连接管理设备发现

  • GAP 是蓝牙设备间通信的基础,它规定了设备如何在无线电环境中互相发现、连接、认证和设置通信参数。

    GAP 不是一个单独的数据传输协议,而是 蓝牙设备间通信的高层协议,它为设备如何进行连接、如何广播以及如何相互交互提供了框架。它是 BLE(低功耗蓝牙)和经典蓝牙(BR/EDR)共同的一个协议层。


(5)应用层

应用层提供 用户可以直接使用的蓝牙功能,包括 音频、文件传输、键盘鼠标等

经典蓝牙应用

应用协议功能
音频传输A2DP高品质立体声传输(如蓝牙耳机、音箱)
音量控制AVRCP控制音乐播放、音量调节
蓝牙通话HFP免提电话(如车载蓝牙)
键盘鼠标HID适用于无线键盘、鼠标、游戏手柄
文件传输OBEX蓝牙传输文件(如手机间发送照片)

BLE 低功耗蓝牙应用

应用设备示例
健康设备心率监测仪、血压计
智能家居蓝牙灯泡、智能门锁
位置跟踪iBeacon、蓝牙防丢器

Released under the GPL License.