蓝牙协议的实现叫做蓝牙协议栈
蓝牙协议栈有以下内容组成
- 应用层
- 主协议层
- 控制层
控制层
PHY
物理层,主要负责指定BLE的无线频段,调制解调方式和方法等。直接决定了BLE芯片的功耗灵敏度。
LL
链路层(协议栈核心),主要负责选择射频通道,如何识别空中数据包,发送数据的时间控制,数据完整性的保证,ack应答实现,重传机制实现,控制管理链路。
HCI
主机控制接口(可选),规范两颗芯片之间的通信协议和通信命令。
主协议层
GAP
通用访问配置文件,对LL层有效数据进行简单解析,主要对LL有效数据包进行规范和定义。GAP主要用于广播,扫描和连接。
L2CAP
逻辑链路控制和适应协议,对LL进行封装,LL层至区分传输数据本身,L2CAP关心是否是加密通道或是普通通道,管理连接间隔。
SMP
安全管理协议,管理BLE加密和安全。
ATT
属性协议,定义用户命令和命令操作的数据变量。ATT用来描述一条条的数据。
GATT
通用属性协议,规范ATT中的数据内容,应用分组概念对ATT中数据进行管理。
应用层
包括SIG蓝牙协议小组定义的公有任务和用户自定义的私有任务。