HCI层为主机和控制器之间的通信提供了一种标准化的接口,其主要完成两个任务:发送命令给控制器和接收来自控制器的事件;发送和接收来自对端设备的数据 。
在低功耗蓝牙规范中定义了4种物理接口方式:
●UART异步通信接口提供最简单方式;
●3线UART接口提供可靠的通信方式; -
●USB通用的高速传输方式;
●用于消费电子设备的SDIO安全数字输入输出。
1.UART异步通信接口
●RS232设置数据位:8;效验位:无;停止位:1;流控制:RTS/CTS;
●波特率:由制造商制定;
●流控制响应时间:由制造商制定;
●配置为零调制解调器。
每个HCI数据包分别有不同的类型,包的编码将是以下类型中的一种:
命令(Command)=0x01,
数据(Data)=0x02,
事件(Event)=0x04。
该接口不适合在低电压的情况下进行数据的收发。
2. 3线UART接口
●增加帧以检测UART位错误;
●允许在产品上使用较长的UART线;
●当UART电缆受干扰时仍可理想的使用;
●支持自动波特率检测;
●支持低功耗;
●具备软件流控制。
3. USB接口
低功耗蓝牙规范也提供了USB方式的HCI接口,为ACL数据包定义了一个端点:端点(out) 0x02/(in)0x82,建议的数据包长度是32或64。命令使用控制端点,事件使用中断端点(in)0x81,间隔为1 ms。
4. SDIO接口
SDIO是一种高速传输接口,主机可以通过SDIO卡的类型A接口与控制器通信。使用与UART相同的数据包编码。
命令(Command)=0x01,
数据(Data)=0x02,
事件(Event)=0x04。
5.通过软件API来实现
在SOC单芯片的低功耗蓝牙芯片中,可以由通过软件API库的方式来实现 。