BR:Basic Rate是正宗的蓝牙技术,可以包罗可选(optional)的EDR(Enhanced Data Rate)技术,以及交替利用的(Alternate)的MAC(Media Access Control)层和PHY层扩展(简称AMP(Alternate MAC and PHY layer extension))。
BLE PHY:BLE的物理层
PHY层用来指定BLE所用的无线频段,调制解调方式和方法等。PHY层做得好不好,直接决定整个BLE芯片的功耗,敏捷度以及selectivity等射频指标。
BLE LL:BLE的链路层
LL层是整个BLE协议栈的核心,也是BLE协议栈的难点和重点。像Nordic的BLE协议栈能同时支持20个link(连接),就是LL层的功劳。LL层要做的事情非常多,好比具体选择哪个射频通道进行通信,怎么识别空中数据包,具体在哪个时间点把数据包发送出去,怎么保证数据的完整性,ACK如何吸取,如何进行重传,以及如何对链路进行管理和控制等等。LL层只负责把数据发出去大概收回来,对数据进行怎样的解析则交给上面的GAP大概ATT。
L2CAP(Logical Link Control and Adaptation Protocol):逻辑链路控制与适配协议,将ACL数据分组,对高层应用的数据进行分组,并提供协议复用和服务质量互换等功能。通过协议多路复用、分段重组操作和组概念,向高层提供面向连接的和无连接的数据服务。
L2CAP对LL进行了一次简朴封装,LL只关心传输的数据自己,L2CAP就要区分是加密通道还是普通通道,同时还要对连接间隔进行管理。
就是在1)的根本上,通过特定的interface(UART居多),发送自定义的command来到达想要的功能,好比发送0x01代表搜刮周围设备,当然在产品中肯定不会定义这么简朴的command,一般要加上command id + command len + command para data + command check sum来实现功能。
架构如下:
BlueZ 是官方 Linux Bluetooth 栈,由主机控制接口(Host Control Interface ,HCI)层、Bluetooth 协议核心、逻辑链路控制和适配协议(Logical Link Control and Adaptation Protocol,L2CAP)、SCO 音频层、其他 Bluetooth 服务、用户空间后台历程以及设置工具构成。
BlueZ 的架构主要分为以下几个组件:
HCI(Host Controller Interface)层:这是 BlueZ 与蓝牙硬件之间的接口层。它负责与蓝牙控制器进行通信,发送和吸取命令、事件和数据包。HCI 层通常由 Linux 内核提供的驱动步调来实现。
L2CAP(Logical Link Control and Adaptation Protocol)层:L2CAP 是蓝牙协议栈中的一个紧张组件,提供了对称的、面向连接的数据通佩服务。它在底层的物理链路之上创建逻辑连接,并负责分配信道和数据包的传输。