(HCI)主机/控制器接口之逻辑接口

1.HCI信道(channel)

一旦控制器与其他设备建立了连接,控制器的底层HCI接口就创建一个HCI信道。

我们使用一个连接句柄(connection handle)来标识这个HCI信道。

无论何时,只要主机尝试创建一个连接,控制器就为主机提供一个连接句柄,直到结束连接句柄才会失效。

2.命令数据包(主机->控制器)

主机通过向控制器发送命令数据包来执行命令。

这些命令通常用于配置控制器的状态或者请求控制器完成操作。

(HCI)主机/控制器接口之逻辑接口

3.事件数据包(控制器->主机)

控制器发往主机的事件数据包主要用于发送信息和反馈之前输入的命令。

(HCI)主机/控制器接口之逻辑接口

低功耗蓝牙主要有下列三种基本事件类型:

①通用命令完成事件

②通用命令状态事件

③特定命令完成事件

4.数据包(主机<->控制器<->对端设备)

数据包是指主机和控制器之间传输的应用数据。

接收器接收来自主机的数据包,将其传给对端设备。对端设备收到数据之后,将其从控制器发往主机。

(HCI)主机/控制器接口之逻辑接口

从主机发送给控制器的数据包,标记00表示开始包,标记01表示延续包。

从控制器发送给主机的数据包,标记10表示开始包,标记01表示延续包。

5.命令流控

控制器使用命令流控同时处理多个HCI命令。

6.数据流控

主机到控制器的数据流控是必须的,控制器拥有一定数量的缓冲区,每个缓冲区存放一个数据包。

每次控制器都从一个缓冲区提取数据包来发送给对端设备,一旦数据包发送成功,控制器释放该缓冲区。