蓝牙4.0核心架构分析
核心系统架构
经典蓝牙核心系统
实现蓝牙BR/EDR的最小核心系统涵盖4个底层和蓝牙规范定义的相关协议,以及一个公共服务层协议。
服务发现协议(SDP)和所有必要的配置文件在通用访问配置文件(Generic Access Profile,GAP)中定义。
BR/EDR核心系统包括对AMP的支持以及AMP管理协议(AMP Manager Protocol)和协议适配层(PAL),也支持相应的外部MAC/PHY。
链路管理器、链路控制器和BR/EDR射频物理层组成一个BR/EDR控制器。
AMP协议适配层、AMP媒介访问控制和AMP物理层组成一个AMP控制器。
逻辑链路控制和适配协议(L2CAP)、服务发现协议和通用访问配置文件组成BR/EDR 主机。
低功耗蓝牙核心系统
低功耗蓝牙的体系结构分成三个基本部分:控制器、主机和应用程序。
控制器通常是一个物理设备,它能够发送和接收无线信号,并懂得如何将这些信号翻译成携带信息的数据包。
主机通常是一个软件栈,管理两台或多台设备间如何通信以及如何利用无线电同时提供几种不同的服务。
应用程序则使用软件栈,进而是控制器来实现用户实例。
实现蓝牙LE的最小核心系统覆盖4个底层和蓝牙规范定义的相关协议,以及两个公共服务层协议。
安全管理(Security Manager,SM)、属性协议(Attribute Protocol,ATT)与所有必要的配置文件定义在通用属性配置文件(Generic Attribute Profile,GATT)和通用访问配置文件。
链路管理器、链路控制器和LE射频物理层组成一个LE控制器。
逻辑链路控制和适配协议(L2CAP)、安全管理协议、属性协议、通用访问配置文件和通用属性配置文件组成一个LE主机。
核心架构模块介绍
信道管理器
信道管理器负责创建、管理和结束用于服务协议和应用数据流传输的L2CAP信道。信道管理器通过L2CAP与远程(对等)设备上的信道管理器交互,以创建这些L2CAP信道并将它们的端点连接到对应的实体。信道管理器与本地链路管理器交互来创建新的逻辑链路和配置这些链路,以提供被传输数据类型要求的质量服务。
L2CAP资源管理器
L2CAP 资源管理器负责管理发送至基带的协议数据单元(Protocol Data Unit,PDU)片段的提交顺序以及信道间的相关调度,以确保不会因为Bluetooth控制器资源耗尽而导致带有QoS承诺的L2CAP信道的L2CAP信道对物理信道的访问被拒绝。这是必须的,因为架构模型不会假设Bluetooth控制器拥有无限大缓冲,也不会假设HCI是具有无线点带宽的管道。
L2CAP 资源管理器也可以执行通信量符合性管制功能,以确保这些应用在它们协商好的QoS设置的限制范围内提交L2CAP服务数据单元(Service Data Unit,SDU)。一般的 Bluetooth 数据传输模型会假设每项应用都符合相关要求,而不会定义某项具体实施应如何处理此类问题。
设备管理器
设备管理器是基带的功能块,用于控制启用Bluetooth的设备的一般行为。它负责Bluetooth系统所有与数据传输无直接关系的操作,例如查询附近是否有其他启用Bluetooth的设备,连接到其他启用Bluetooth的设备,或使本地启用 Bluetooth 的设备可被其他设备发现或连接。
设备管理器请求从基带资源控制器访问传输媒体,以执行它的功能。
设备管理器还控制多个HCI命令指示的本地设备行为,例如管理设备本地名称、任何已存储的链路密钥和其他功能。
链路管理器
链路管理器负责创建、修改和释放逻辑链路(以及与这些链路关联的逻辑传输,如有需要),还可以更新与设备之间的物理链路有关的参数。链路管理器通过使用链路管理协议(LMP)与远程Bluetooth设备通信实现此功能。
LMP 可以根据需要在设备之间创建新逻辑链路和逻辑传输,并进行对链路与传输特性的总体控制,例如启用逻辑传输加密、调节物理链路上的传输功率或调整逻辑链路的QoS设置。
基带资源管理器
基带资源管理器负责对无线媒介的所有访问。它主要有两项功能。它的核心功能是一个调度程序,用于将物理信道上的时间授予所有已协商达成访问协定的实体。另一个主要功能是与这些实体协商访问协定。访问协定实际上是一项承诺,提供必要的特定QoS,以为用户应用提供期望的性能。
访问协定和调度功能必须考虑所有需要使用 Bluetooth 无线电的行为。例如,这包括已连接设备之间通过逻辑链路和逻辑传输进行正常数据交换,以及使用无线电媒介实现查询、建立连接、变为可发现或可连接,或者在使用AFH模式过程中从未使用的载波中获取的读数。
在某些情况下,逻辑链路调度会导致从先前使用的物理信道更换为另一物理信道。这可能是因为涉及散射网、定期查询功能或寻呼扫描等。如果物理信道未按时隙对齐,则资源管理器还会考虑原物理信道上的时隙和新物理信道上的时隙之间的重新对齐时间。某些情况会自动对齐时隙,这是因为两个物理信道使用相同的设备时钟作为参考。
链路控制器
链路控制器负责 Bluetooth 数据包与数据净荷及物理信道、逻辑传输和逻辑链路相关参数的编码和解码操作。
链路控制器发出链路控制协议信令(与资源管理器的调度功能紧密结合),用于传达流控制及确认和重传传输请求信号。对这些信号进行翻译是与基带数据包相关联的逻辑传输的特征。链路控制信令的翻译和控制通常与资源管理器的调度程序相关联。
射频
射频块负责在物理信道上传输和接收数据包。基带和射频块之间的控制通道让基带功能块可以控制射频功能块的时间和频率载波。射频块可将物理信道和基带上传输的数据流转换成所需格式。
参考资料
《低功耗蓝牙智能硬件开发实战》第1.4节 《蓝牙4.0核心架构分析》