蓝牙ble协议是什么(蓝牙协议栈详解)
导语:BLE蓝牙协议栈简介
蓝牙标志图
BLE蓝牙协议栈是一段代码,用来实现低功耗蓝牙协议的具体功能。
一般来说,要实现一个具体的BLE应用,需要具备三个条件:一个可以实现BLE射频的芯片,一个与该芯片配套的BLE协议栈,以及在该协议栈上开发的用户应用代码。因此在实现BLE应用时,BLE协议栈起着非常关键的作用。
BLE蓝牙协议栈包括很多层,可以在各个层对要传输的数据进行封包处理。
BLE蓝牙协议栈一般包括以下8层:
1)PHY层:英文为Physical layer,也就是物理层。PHY层用来设定BLE使用的无线频段,调制解调方式等内容。PHY层会影响BLE芯片的功耗,灵敏度等性能指标。
2)LL层:英文为Link layer,即链路层。LL层主要负责数据的发送和接收。但不对数据进行解析。那是其它层,如GAP或ATT层的事情。
3)HCI层:英文为Host controller interface,即主机控制器接口层。HCI层是可选的,只在BLE协议栈是用两个芯片实现时才会用,主要明确了两个芯片的通信协议。
4)GAP层:英文为Generic access profile。GAP层主要完成广播,扫描,发起连接等操作。GAP层是对LL层的有效数据包(payload)进行解析的一种方式。相对ATT层是比较简单的一种方式。
5)L2CAP层:英文是Logic link control and adaptation protocol。L2CAP层对LL层进行一次简单的封装。在L2CAP层确定是使用加密通道还是普通通道,同时L2CAP层也会对连接间隔进行管理。
6)SMP层:英文是Secure manager protocol。SMP层会管理加密操作,对连接是否安全负责。
7)ATT层:英文是Attribute protocol。ATT层主要定义用户命令和命令操作的数据,以及该数据可以使用的ATT命令。
8)GATT层:英文是Generic attribute profile。GATT层对attribute中的数据内容进行了规范。attribute用来描述一条一条的数据。GATT层对attribute进行分类管理。
本文内容由小媛整理编辑!