HCI(主機控制接口(Host Controller Interface))

HCI,即主機控制接口,屬於藍牙協定棧的一部分。

基本介紹

  • 中文名:主機控制接口
  • 外文名:Host Controller Interface
  • 簡稱:HCI
概念,命令數據,事件數據,

概念

主機控制接口屬於藍牙協定棧的一部分。
藍牙規範包含了一個符合標準的接口定義(主機控制器接口),它適用於藍牙通訊模組的硬體部分。此定義描述了位於HCI驅動程式(主機的一部分,也即藍牙通訊模組的使用者)和主機控制器固件(藍牙通訊模組本身的一部分)之間的接口。

命令數據

命令(command)由HCI驅動程式發至主機控制器:
數據包指示符(對UART接口而言)為1
操作碼(Op-code)(16比特):對命令進行識別:
組域(OGF)(最高有效位6比特)
命令域(OCF)(最低有效位10比特)
參數長度(8比特):所有參數的總長度(以位元組為單位)
命令參數:參數的個數及其長度是與具體命令相關的
HCI數據包用於ACL數據時:
數據包指示符(對UART接口而言)為2
控制信息(16比特):
廣播標識(最高有效位2比特) 00 = 點對點數據包(非廣播)
01 = 活動從設備廣播
10 = 休眠(Parked)從設備廣播
數據包邊界標識(2比特): 01 = 更高層信息數據包的後繼部分
10 = 更高層信息數據包的初始部分
連線句柄(最低有效位12比特)
數據長度(16比特):數據的總長度(以位元組為單位) HCI數據包用於SCO數據時:
數據包指示符(對UART接口而言)為3
連線句柄(12比特)
未使用(4比特)
數據長度(8比特):數據的總長度(以位元組為單位)

事件數據

主機控制器以事件(event)通知HCI驅動程式:
數據包指示符(對UART接口而言)為4
事件碼(Event code)(8比特):對事件進行識別
參數長度(8比特):所有參數的總長度(以位元組為單位)
事件參數:參數的個數及其長度是與具體命令相關的
命令是異步處理的,所以介由一個“命令完成(Command Complete)”的事件來通告命令處理完畢。命令也可以並行處理,所以後面的命令可能比前面的命令先結束。
藍牙規範也定義了數個標準機制,通過一個主機控制器傳輸層(Host Controller Transport Layer),在HCI驅動程式和主機控制器之間進行HCI數據包的傳輸,這些傳輸層包括:
RS232(標準串口),帶錯誤檢測及恢復
通用UART,假設無傳輸錯誤
上面所涉及的縮寫的含義:
HCI : Host Controller Interface
OGF : Op-code Group Field
OCF : Op-code Command Field
USB : Universal Serial Bus
UART : Universal Asynchronous Receiver Transmitter
ACL : Asynchronous Connection Less

相關詞條

熱門詞條

聯絡我們