从物理层到应用层:蓝牙协议栈分层设计及BLE低功耗演进之路

目录

一、蓝牙协议架构(Bluetooth Protocol Stack)

1.物理层(PHY - Physical Layer)

2.链路层(LL - Link Layer)

3.逻辑链路控制与适配协议(L2CAP - Logical Link Control and Adaptation Protocol)

4.高层协议

4.1 通用访问协议(GAP - Generic Access Profile)

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

4.3 属性协议(ATT - Attribute Protocol)

4.4 安全管理协议(SM - Security Manager)

5.应用层(Application Layer)

二、蓝牙协议架构对比(BLE vs. 经典蓝牙 BR/EDR)

总结

蓝牙协议架构采用 分层结构,从底层的物理通信到上层的应用数据传输,涵盖了多个协议组件。蓝牙协议栈适用于 经典蓝牙(BR/EDR)低功耗蓝牙(BLE - Bluetooth Low Energy),它们的基本架构相似,但 BLE 针对低功耗优化,适用于 IoT 设备、智能家居、可穿戴设备等。

 从物理层到应用层:蓝牙协议栈分层设计及BLE低功耗演进之路_第1张图片


一、蓝牙协议架构(Bluetooth Protocol Stack)

蓝牙协议分为以下 五层(从底层到高层):

1.物理层(PHY - Physical Layer)

  • 负责 无线电波传输,采用 2.4 GHz ISM 频段(工业、科学和医疗用途)。

  • 调制方式

    • 经典蓝牙(BR/EDR):GFSK(1 Mbps)+ π/4 DQPSK、8DPSK(最高 3 Mbps)。

    • 低功耗蓝牙(BLE):GFSK(1 Mbps / 2 Mbps,BLE 5.0 支持长距离模式 Coded PHY)。

  • 信道划分

    • BR/EDR:79 个信道(1 MHz 间隔)。

    • BLE:40 个信道(2 MHz 间隔,其中 3 个用于广播)。


2.链路层(LL - Link Layer)

  • 负责 设备发现、连接建立和维护,控制数据包的传输。

  • BLE 主要通信模式

    • 广播(Advertising):从设备(Peripheral)发送广播包,主设备(Central)可监听和连接。

    • 扫描(Scanning):主设备监听广播包,确定是否连接。

    • 连接(Connection):主设备与从设备建立连接,开始数据交互。

    • 数据传输:采用主从模式,数据按连接间隔传输。

  • BLE 低功耗特性

    • 设备可以进入 睡眠模式,降低功耗。

    • BLE 5.0 以上支持 扩展广播(Extended Advertising)周期性广播(Periodic Advertising),提高吞吐量和稳定性。


3.逻辑链路控制与适配协议(L2CAP - Logical Link Control and Adaptation Protocol)

  • 负责 数据多路复用、分片和重组,将数据从高层协议传输到底层链路层。

  • 功能

    • 协议多路复用(允许多个协议共享蓝牙链路)。

    • 数据分片(如果数据包大于 MTU,会拆分数据)。

    • 信道管理(控制主机之间的数据流)。

  • 在 BLE 中的优化

    • 只支持 LE 信道(固定的 信道 ID)。

    • 信用流控模式(Credit-Based Flow Control),提高吞吐量。


4.高层协议

高层协议包括 GAP、GATT、ATT、SM、RFCOMM、SDP 等,其中 BLE 主要使用 GAP、GATT、ATT、SM

4.1 通用访问协议(GAP - Generic Access Profile)

  • 定义设备 角色、连接模式和发现方式

  • BLE 设备角色

    • 主设备(Central):负责扫描和连接 BLE 从设备(如智能锁、传感器)。

    • 从设备(Peripheral):发送广播包,等待连接(如 BLE 传感器)。

    • 广播设备(Broadcaster):仅发送广播数据,不接受连接(如 BLE 信标)。

    • 观察者(Observer):仅扫描广播数据,不主动连接(如 BLE 监控设备)。

  • GAP 主要功能

    • 设备发现(Scanning & Advertising)。

    • 连接建立和终止。

    • 设备配对(Pairing)和加密(Security)。

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

  • BLE 核心数据交互协议,基于 ATT(Attribute Protocol) 进行数据传输。

  • 采用客户端-服务器架构

    • 服务器(Server):存储数据,例如智能锁的状态信息。

    • 客户端(Client):读取或写入数据,例如手机 App 读取智能锁状态。

  • GATT 结构

    • 服务(Service):包含多个特征值(如“电池服务”)。

    • 特征值(Characteristic):具体的数据项(如“电池电量”)。

    • 属性(Attribute):存储 UUID、权限等信息。

    • 主要操作

      • Read(读取):客户端请求读取服务器数据。

      • Write(写入):客户端向服务器发送数据。

      • Notify(通知):服务器主动推送数据,无需客户端确认。

      • Indicate(指示):类似 Notify,但需要客户端确认。

4.3 属性协议(ATT - Attribute Protocol)

  • 定义 GATT 数据结构,规定数据存储方式和访问方式。

  • 每个 BLE 设备的 GATT 服务器都由多个 ATT 组成

    • 每个 ATT 由 UUID(唯一标识符)标识

    • 允许数据进行读、写、通知(Notify)、指示(Indicate)

4.4 安全管理协议(SM - Security Manager)

  • 负责 设备配对、加密和密钥交换,确保数据安全性。

  • 主要安全机制

    • 设备配对(Pairing)

      • Just Works(无认证,易受攻击)。

      • Passkey(输入 6 位 PIN 码)。

      • Out of Band(OOB,使用 NFC 交换密钥)。

      • LE Secure Connections(蓝牙 4.2+,使用 AES-CCM 加密)。

    • 数据加密

      • 使用 AES-CCM 加密传输数据,防止窃听。

      • 配对后存储密钥(Bonding),下次自动连接。


5.应用层(Application Layer)

  • 具体应用程序实现

    • BLE 智能锁:GATT 服务用于开锁/关锁。

    • BLE 传感器:定期发送温湿度数据。

    • BLE Mesh 网络:用于智能家居,实现多设备通信。


二、蓝牙协议架构对比(BLE vs. 经典蓝牙 BR/EDR)

层级 BLE(低功耗蓝牙) 经典蓝牙(BR/EDR)
物理层 GFSK 调制,1 Mbps / 2 Mbps GFSK,最大 3 Mbps
链路层 设备广播、低功耗连接 高速流数据传输
L2CAP 仅支持 LE 信道 支持 LE 和 BR/EDR 信道
GAP 低功耗连接、主从架构 点对点、主从/多点
GATT 适用于传感器、控制设备 仅限 BR/EDR,不适用
数据速率 最大 2 Mbps(BLE 5.0) 最大 3 Mbps
功耗 低,适用于电池供电设备 高,适用于持续传输
应用 智能锁、IoT 设备、健康设备 蓝牙音箱、鼠标、耳机

总结

  • 蓝牙协议架构分层清晰,低功耗蓝牙(BLE)更适用于物联网(IoT)和智能设备。

  • BLE 设备的基本架构包括 硬件层、协议栈层、应用层。

  • 协议栈层主要包含 PHY、LL、L2CAP、GAP、GATT、SM 等。

  • GATT 和 ATT 负责 BLE 设备的数据传输,采用 UUID 标识服务和特征值。

  • BLE 设备通信基于主从模式,Central 设备控制 Peripheral 设备。

  • BLE 设备通信主要基于 GATT 交互,支持读、写、通知、指示。

扩展阅读:

从物理层到应用层:蓝牙协议栈分层设计及BLE低功耗演进之路 https://blog.csdn.net/moton2017/article/details/146873128
BLE设备完整工作流程详解:从初始化到数据交互的核心步骤与代码示例 https://blog.csdn.net/moton2017/article/details/146873377

你可能感兴趣的:(物联网,蓝牙,ble,蓝牙协议架构,经典蓝牙,Ble)