主控制器接口 (HCI)
概述
HCI 为基带控制器和链路管理器提供了命令接口,并可以访问配置参数。此接口提供了访问蓝牙基带功能的统一方法。
蓝牙软件堆栈的较低层
 左图提供了较低的软件层概述。HCI 固件通过访问基带命令、链路管理器命令、硬件状态寄存器、控制寄存器和事件寄存器,为蓝牙硬件实施了 HCI 命令。
多个层可以出现在主机系统上的 HCI 驱动程序与蓝牙硬件中的 HCI 固件之间。这些中间层:主控制器传输层无需熟悉数据知识便可传输数据。
主机上的 HCI 驱动程序利用蓝牙硬件上的 HCI 固件交换数据和命令。主控制器传输层(如物理总线)为 HCI 层提供了相互交换信息的能力。
不管是否使用了主控制器传输层,主机都将收到 HCI 事件的异步通知。一旦发生什么,HCI 事件用于通知主机。一旦主机发现事件已发生,它将对接收的事件包进行分析以确定发生了哪一事件。
主控制器传输层
主机驱动程序堆栈在主控制器驱动程序与主机之间具有传输层。此传输层的主要功能在于透明。主机控制器驱动程序(与控制器相连)不以基本传输技术的变化而变化。传输也不需要可以看到主控制器驱动程序传输至控制器的数据。在不影响传输层的情况下,允许升级接口 (HCI) 或控制器。
OHCI 命令与事件的概述
通用事件 |
由于多个命令或事件可以随时发生,因此通用事件也可以发生。 |
设备设置 |
设备设置命令用于将控制器设置为已知状态。 |
控制器流控制 |
控制器流控制命令与事件用于控制从主机到控制器的数据流。 |
控制器信息 |
控制器信息命令允许主机探究有关设备的当地信息。 |
控制器配置 |
控制器配置命令与事件允许设置全球配置参数。 |
设备发现 |
设备发现命令与事件允许一台设备在周边区域发现其它设备。 |
连接设置 |
连接设置命令与事件允许一台设备与其它设备生成连接。 |
远程信息 |
远程信息命令与事件允许探究有关远程设备配置的信息。 |
同步连接 |
同步连接命令与事件允许创建同步连接。 |
连接状态 |
连接状态命令与事件允许配置链路,尤其当实施低功耗操作时。 |
微微网结构 |
微微网结构命令与事件允许进行微微网的发掘与重设。 |
服务质量 |
服务质量命令与事件允许指定服务质量。 |
物理链路 |
物理链路命令与事件允许配置物理链路。 |
主机流控制 |
主机流控制命令与事件允许面向主机使用流控制。 |
链路信息 |
链路信息命令与事件允许查阅有关链路的信息。 |
验证和加密 |
验证和加密命令与事件允许验证远程设备,然后对链路进行加密。 |
测试 |
测试命令与事件允许设备被置于测试模式中。 |
HCI 流控制
主机到控制器数据流控制
借助不响应的远程设备(使用连接句柄)的 ACL 数据,流控制被用在从主机到控制器的方向中,避免溢出控制器数据缓存区。主机管理控制器的数据缓冲区。
控制器到主机数据流控制
在部分实施中,从控制器到主机的方向中还可能需要流控制。设置主控制器到主机流控制命令可用于在该方向中打开或关闭流控制。
|