一、概念
SIG主機(jī)控制器接口協(xié)議(HCI,Host Controller Interface)是藍(lán)牙主機(jī)-主機(jī)控制器應(yīng)用模式中藍(lán)牙模塊和主機(jī)間的軟硬件接口,它提供了控制基帶與鏈路控制器、鏈路管理器、狀態(tài)寄存器等硬件功能的指令分組格式以及進(jìn)行數(shù)據(jù)通信的數(shù)據(jù)分組格式。SIG主機(jī)控制器接口協(xié)議屬于藍(lán)牙無線技術(shù)的底層協(xié)議,其位置如下圖1所示。他的實(shí)現(xiàn)包括軟件、固件(firmware)和硬件。
圖1:藍(lán)牙技術(shù)底層軟件層的概貌
藍(lán)牙技術(shù)集成到各種數(shù)字設(shè)備中的方式分為單微控制器方式和雙微控制器方式,兩種方式的特點(diǎn)詳見下表1。
表1:藍(lán)牙技術(shù)集成到各種數(shù)字設(shè)備中的方式及特點(diǎn)
在藍(lán)牙技術(shù)標(biāo)準(zhǔn)中幾乎所有的地址碼和各類代碼是用16進(jìn)制表示的,為了區(qū)別10進(jìn)制,采用“0x”為16進(jìn)制數(shù)前綴,請通信人注意。
欲更多了解藍(lán)牙技術(shù)介紹的請進(jìn)入。
二、HCI的分組
SIG HCI分組分為指令分組、事件分組和數(shù)據(jù)分組三大類,各大類又有其詳細(xì)的種類,詳見下表2-0-1。三大類分組格式詳見下表2-0-2,其中數(shù)據(jù)分組格式分為異步無連接(ACL)分組和同步面向連接(SCO)分組。對于數(shù)據(jù)分組中各字段的含義詳見下表2-0-3。
表2-0-1:SIG HCI分組分類及特點(diǎn)
表2-0-2:SIG HCI分組格式
表2-0-3:SIG HCI數(shù)據(jù)分組中各字段的含義
1、指令分組
SIG HCI的6種指令分組的指令簡表(指令名稱、指令代碼及含義)分別詳見下表2-1-1至表2-1-6。
表2-1-1:SIG HCI鏈路控制指令簡表
表2-1-2:SIG HCI鏈路策略指令簡表
表2-1-3:SIG HCI主機(jī)控制器與基帶指令簡表
表2-1-4:SIG HCI信息參數(shù)指令簡表
表2-1-5:SIG HCI狀態(tài)參數(shù)指令簡表
表2-1-6:SIG HCI測試指令簡表
2、事件分組
其事件分組中的事件名稱、代碼及含義詳見下表2-2。
表2-2:SIG HCI事件列表
3、HCI錯誤代碼
當(dāng)某一指令操作失敗時,將返回指令錯誤代碼,長度為一個字節(jié),其代碼及含義詳見下表2-3。
表2-3:SIG HCI錯誤代碼表
三、HCI傳輸層的物理接口
SIG HCI傳輸層的物理接口(主機(jī)與主機(jī)控制器之間的)目前采用了4種接口,它們是通用串行總線(USB)、RS-232串行端口、通用異步收發(fā)器(UART)和個人計(jì)算機(jī)存儲卡國際協(xié)會(PCMCIA)推薦的PC卡。
1、USB接口
藍(lán)牙模塊的USB固件由兩個接口組成,接口0為固定設(shè)置,接口1提供可擴(kuò)展的同步帶寬占用方式共有4種設(shè)置(缺省為空),以使設(shè)備能夠支持非同步帶寬占用方式,其藍(lán)牙USB接口端點(diǎn)的配置情況詳見下表3-1-1。藍(lán)牙USB設(shè)備設(shè)置了設(shè)備類別碼,用于區(qū)分不同類型的藍(lán)牙USB設(shè)備,這樣就允許調(diào)用合適的驅(qū)動程序,以及通過控制端點(diǎn)來區(qū)分HCI指令和USB指令,其藍(lán)牙USB設(shè)備的類別碼的名稱和含義詳見下表3-1-2。從表3-1-1可知,藍(lán)牙USB可以區(qū)分HCI分組類型以不同的端點(diǎn)傳輸,而藍(lán)牙RS232的所有數(shù)據(jù)都是經(jīng)過RX和TX傳輸?shù)模虼嗽?/span>HCI分組前一個指示器加以區(qū)分,其相應(yīng)的分組數(shù)據(jù)緊后傳輸。
表3-1-1:藍(lán)牙USB接口端點(diǎn)配置表
表3-1-2:藍(lán)牙USB設(shè)備的類別碼
2、RS-232接口
藍(lán)牙RS232分組指示器代碼詳見下表3-2-1;藍(lán)牙RS232分組中的錯誤信息代碼詳見下表3-2-2。
表3-2-1:藍(lán)牙RS232分組知識器代碼表
表3-2-2:藍(lán)牙RS232分組中的錯誤信息代碼
欲進(jìn)一步了解RS232接口技術(shù)特性的請進(jìn)入。
3、UART接口
藍(lán)牙UART與RS232都采用串行通信方式區(qū)別在于應(yīng)用環(huán)境,RS232支持的是藍(lán)牙芯片和位于不同實(shí)體中的主機(jī)進(jìn)行通信的情況,而藍(lán)牙UART支持的是藍(lán)牙芯片和主機(jī)在同一塊印刷電路板上,線路誤碼相對較小,因此沒有了錯誤信息分組和協(xié)商分組,故藍(lán)牙UART其它分組指示器代碼與藍(lán)牙RS232 相同,詳見表3-2-1。
4、PC卡
藍(lán)牙PC卡沒有在藍(lán)牙協(xié)議中規(guī)范,是在“藍(lán)牙PC卡傳輸層”白皮書中做了描述。
欲進(jìn)一步了解藍(lán)牙技術(shù)物理層技術(shù)特性的請進(jìn)入。