BLE 协议栈 5.4

Mark Walen大约 3 分钟

简介

BLE 协议栈

顶层架构

BLE 由许多层级和功能模块构成,有些是必要的,有些是可选的。协议栈的这些部分分布在两个主要的架构块中,分别是主机(host)和控制器(controller),标准的逻辑接口定义了这两个组件之间的通信方式。

主机通常类似于操作系统。控制器通常是一款系统芯片。然而,并不一定是这样的情况,蓝牙规范并没有规定实现细节。重要的是主机和控制器在架构中充当独立的逻辑容器,可以以某种方式在物理上实现为独立的组件,其间的通信由标准接口定义。这使得蓝牙系统可以由不同制造商的主机和控制器组件组成。

图 2 展示了 BLE 协议栈,以及它的各层及其在主机和控制器组件之间的分布。

主控制器接口(HCI)表示它们之间的逻辑接口,但本身不是一个物理组件。HCI 可以在底层物理传输方面以多种不同的方式实现,但逻辑或功能接口始终保持不变。

LC3 是低复杂度通信编解码器,是与 BLE Audio 一起使用的默认音频编解码器。它本身不是标准 BLE 协议栈的一部分,但始终可以在 BLE Audio 产品中找到,LC3 组件可以在主机中或如图所示在控制器中实现。

图 3 说明了通信系统的标准 OSI 参考模型。值得注意的是,与许多仅涵盖 OSI 层子集的其他无线系统不同,BLE 堆栈包含了 OSI 参考模型的所有层,如物理层和数据链路层。

ble_stack
ble_stack

蓝牙 mesh 使用具有链路层和物理层的 BLE 控制器,而主机部分包含一组实现蓝牙 mesh 协议和过程的替代层。本资源不再进一步介绍蓝牙 mesh,有兴趣的可以查阅第 16 节的附加资源。

ble_mesh
ble_mesh

BLE 层级简介

层级主要职能
物理层定义了与射频使用相关的蓝牙技术的各个方面,包括信号调制方案、频段、信道的使用收发特征。

定义了几种不同的物理层参数组合,这些组合被称为 PHY。
链路层定义了空中接口数据包格式以及比特流处理过程:错误检测、状态机、控制通信连接控制。

定义了几种不同的使用底层射频进行无连接、面向连接和等时通信的方式,被称为逻辑传输。
同步适配层(ISOAL)允许使用等时通信的设备采用不同的帧持续时间。

对帧式 PDU 进行分段和重组,或对非帧式 PDU 进行分段和重组。
HCI为 Host 和 controller 之间进行双向的命令通信和数据通信而定义的功能接口。
逻辑链路控制适配协议 (L2CAP)作为 host 层的协议复用器,确保由适当的主机组件提供服务的协议

在下层和上层之间执行 PDU/SDU 的分段和重组。
安全管理协议(SMP)在执行诸如配对等安全程序期间使用的协议。
ATTATT 客户端和 ATT 服务端使用的协议。协议允许发现和使用 ATT 服务端的属性表中的数据。
GATT定义了高级数据类型,如服务、特征和描述符,这些数据类型与属性表中的底层属性相关联。

在使用ATT与属性表交互时,定义了更高级别的过程。
GAP定义了非连接状态下可用的操作模式和过程,例如如何使用广播进行无连接通信以及如何执行设备发现。

定义了安全级别和模式。

定义了一些用户接口标准。