注:本系列所有文章基于蓝牙6.0协议栈核心规范文档,由SIG规定,原文档可点此进入查看,架构中每一个层的详细介绍请滑到文章最后跳转
目录
蓝牙BLE协议
之所以叫蓝牙BLE协议是因为蓝牙分为两兄弟,一个是经典蓝牙,一个是低功耗蓝牙,BLE全称是Bluetooth Low Energy,以下是简单介绍下这两兄弟的差别:
经典蓝牙
经典蓝牙诞生于1999年(蓝牙1.0),历经多个版本升级,目前主流版本为蓝牙3.0及以下(如EDR增强速率技术)。其设计初衷是替代有线连接,支持高带宽、持续性的数据传输,典型应用包括音频传输(如耳机、音箱)和文件共享。
低功耗蓝牙(BLE)
BLE是蓝牙4.0(2010年)引入的独立协议,专为低功耗设备优化。其设计目标是以极低能耗实现短时、间歇性的数据传输,适用于传感器、可穿戴设备等电池受限的场景。
蓝牙协议栈架构
每个层代表的意思:
-
PHY (物理层)
-
LL (链路层)
-
HCI (主机控制器接口层)
-
L2CAP (Logical link Control and adaptation protocol specificaion,逻辑链路与适配协议规范)
-
ATT (Attribute protocol, 属性层)
-
GATT (Generic Attribute Profile, 通用属性规范)
-
SMP (Security Manager Specification, 安全管理器规程)
-
GAP (Generic Access Profile, 通用访问规范)
主要分成三个部分:应用层、主机、控制器
应用层
应用层就是用户自己开发,大家都懂
主机
主机是蓝牙协议栈中处理高层协议逻辑的部分,主要负责应用程序与底层硬件的交互。
主机的设计采用控制器-主机分离架构,目的是将协议栈的底层硬件操作(如射频控制)与高层逻辑解耦,便于跨平台移植和协议升级。例如,主机可通过HCI接口向控制器发送指令,无需直接操作物理层硬件
主机&控制器接口(可选)
主机控制器接口(HCI)是主机与控制器之间的标准化接口,保证不同厂商的硬件和协议栈兼容。蓝牙能够一颗只跑射频,协议栈在另外一颗芯片跑就是由此实现的
分两部分:
-
上层HCI:位于主机侧,提供命令接口供应用程序调用(如创建连接、发送数据)。
-
下层HCI:位于控制器侧,解析并执行主机下发的指令,同时向主机上报事件(如连接完成、数据接收)
控制器
-
控制器是协议栈的底层,管理硬件资源(如射频模块),硬件抽象层就在这里