介绍
HCI提供了统一的访问蓝牙能力的方法。HCI Link命令提供Host具有控制其他蓝牙设备链路层链接的能力。这些命令通常涉及Link Manager(LM)层来与远程蓝牙设备交换LMP命令。
HCI Policy命令用来影响本地和远程LM的行为。这些Policy命令提供Host具有影响LM管理微微网(piconet)的方法。Controller和Baseband,Informational和Status命令提供Host访问控制器中各种各样寄存器的方法。
HCI命令可能需求话费不同的时长来完成。因此,命令的结果将以事件的形式汇报给Host。例如,对很多HCI命令,当命令完成时,控制器将产生命令完成事件。这个时间包含完成的HCI命令的返回参数。对于使能HCI检测HCI-Transport层错误,这里需要在Host命令的传输和Controller响应的接收建立一个超时。由于最大响应时间强烈的依赖HCI-Transport层, it is recommended to use a default value of one second for this timer. 这个时长还依赖命令队列中未处理的命令数。
数据和参数格式
- 所有值使用Binary和Hexadecimal小端模式除非特殊说明
- 并且,可有负值的所有参数必须对指定值用2’s补码
- 数组参数指定使用如下符号:ParameterA[i]。如果规定了多于一组数组参数(e.g. ParameterA[i], ParameterB[i]),则参数的顺序如下:ParameterA[0], ParameterB[0], ParameterA[1], ParameterB[1], ParameterA[2], ParameterB[2], ... ParameterA[n], ParameterB[n]
- 除特殊说明,所有参数值使用小端方式收发
- 所有非数组的命令和事件的参数和在数组参数中的元素都有固定的大小。包含在命令或事件的每个非数组参数的参数和大小都指定每个命令或事件。数组参数中的元素数量是不固定的。
- 指定的位串,低序位在右边位的位置,e.g. 0是‘10’位串的低序位。
- 标记为保留的值或参数,发送时将被置0,接收时将被忽略。一个操作不知道如何翻译的参数值或操作码将被忽略,且试图的操作将以正确信号完成。Host或Controller不会停止工作当接收到保留值时。