支持HID的藍牙鍵盤是什麽意思?
藍牙技術中的人性化接口設備(HID)應用模式可以使人們無連線煩惱地控制他們的計算機、遊戲操作桿、遠程監控設備等。本文參照SIG最新公布的0.95c版本HID規範,詳細介紹了藍牙HID規範及其應用場景,以及藍牙HID終端設備端與HID主機端的解決方案。 藍牙技術在成功地應用在耳機、免提設備和PC外設後,逐漸得到更廣泛的應用,人們開始期望能夠無連線煩惱地控制他們的計算機、遊戲操作桿、遙控設備等。藍牙SIG組織公布的HID規範正好迎合了這壹需求。 與傳統的只能和相互匹配的設備通信的無線鍵盤不同,藍牙HID鍵盤能夠作為壹個標準鍵盤與任何藍牙HID系統通信。藍牙HID解決方案使得HID終端設備能夠自動地探測和連接到需要的系統,如PDA、PC、機頂盒等。例如,壹個藍牙HID鼠標能夠用來控制PC機,也可用於控制PDA,而不是像傳統的模式中某個外設只能控制與它匹配的某種特定的主機。因此,藍牙HID規範使得不同平臺HID主機的輸入和控制外設實現真正的互用性。 藍牙HID規範</b> a. 藍牙HID規範的軟件結構
藍牙HID規範的軟件結構框圖如圖1所示。HID規範運行在藍牙的L2CAP協議上,並基於GAP規範。 b. HID規範的基本要求有:
1. 在壹個微型網絡中通常被推薦當作從設備(slave),但是也允許作為主設備(master)。
2. 鍵盤必須支持認證和加密:只有當被HID主機要求時才激活工作模式;在認證和加密的基礎上,也可以被其它HID主機選用;通過單鍵創建聯合鍵的方式可以實現使用加密技術的低成本HID方案;強烈推薦藍牙HID鍵盤和輔助鍵盤支持聯合鍵的應用。
3. 推薦使用有限的服務發現模式: 對壹臺HID主機而言,HID終端設備通常都是壹對壹的關系;通過擊鍵或者電源接通來激活HID終端設備。
4. 作為從設備必須始終保持可連接性,例如PC在啟動時尋呼鍵盤,或者鍵盤在有數據傳輸時尋呼PC機。
5. HID主機必須支持QoS。
6. HID主機必須支持低功耗工作模式,壹般的HID終端設備(如鼠標、鍵盤、遊戲桿)的設計目標通常為:在3節標準AAA電池或者2節標準堿性AA電池下,至少工作三個月;HID主機和HID終端設備都必須支持呼吸(sniff)工作模式和休眠(park)工作模式;保持工作模式對HID主機來說是必須的,而對HID終端設備來說是可選的。
7. HID終端設備只需要支持DM1格式的數據。
8. 除了查詢模式和尋呼模式,交互的尋呼掃描模式和查詢掃描模式也是必需的。
9. 對單功能設備而言並不需要支持SCO語音通道。
10. 支持綁定的設備必須有某種形式的固定內存來存放128位的認證碼,使用聯合鍵的HID設備比只使用單鍵的設備需要更多的內存來支持。
11. 為了使設備支持聯合鍵認證,推薦最少為四個主機鍵(host key)留有適當的存儲空間。 c. HID規範的導入模式
HID規範規定基本的鍵盤和指示功能使用固定格式的數據包,在HID主機端不需要HID剖析器(約占70kB)。允許用固定的PSM和輔助的設備類控制FHS數據包作為服務發現協議的定位,以及鍵盤與指示設備的連接。USB導入模式被保留用作最低層的終端應用。為了使得用戶界面更加友好,要求系統遵從以下規定:
1. 能夠自動探測HID終端設備;
2. 必須有硬件添加向導;
3. 鍵盤必須是加密的,且安全;
4. 在PC機導入時,HID終端設備暫時不能使用。 d. HID規範的虛電纜連線概念
像鼠標、鍵盤等HID終端設備都是個人區域設備,它們有以下特征:
1. 通常與HID主機都有壹對壹的關系;
2. 不支持同時與壹個以上的HID主機同時連接;
3. 它們也許有壹個以上的可能建立連接的HID主機。 當藍牙HID終端設備與壹個HID主機建立壹對壹的連接關系時,它就被稱為虛擬電纜連接。這時HID終端設備與HID主機就建立了以下關系:
1. HID終端設備與HID主機捆綁。
2. 如果連接斷開,將會自動重新建立連接。
3. 不會和另壹HID主機相連,除非用戶明確地去掉該虛擬電纜連接。 藍牙HID終端設備的解決方案</b> 如圖2所示,作為HID終端設備端的BlueCode+可以有以下兩種應用模型:
1. 與藍牙核心協議棧壹起集成在藍牙芯片內,以藍牙硬件模塊形式提供。
2. 作為壹個軟件協議棧,BlueCode+也能夠集成在客戶指定的CPU中。 每個藍牙HID終端設備(如鍵盤)都會有它自己的輸入控制處理器,該控制器采集用戶的輸入信號,並轉換成某種特定的代碼傳送給它的HID主機(如PC、PDA等)。由於輸入處理器的資源比較少,因此通常情況下藍牙軟件都需要在某個特定的處理器上運行。在我們的方案中將BlueCode+移植到藍牙芯片中運行,最大程度地實現了資源***享,也使得硬件集成更加簡單,集成度更高。而藍牙芯片與輸入控制器的接口可以是更便於系統集成的TTL電平的串行接口。 例如鍵盤、鼠標和遊戲操縱桿等嵌入式設備,可以通過PS/2、UART、GPIO等標準接口將客戶已有的HID終端設備硬件與內置HID規範的藍牙模塊結合起來。由於BlueCode+HID軟件已經集成進藍牙芯片,因此,用戶只需要將BlueRS+I或藍牙芯片放進他們的硬件中。輸入控制器應按照USB格式通過串行連接發送掃描代碼,當然,針對用戶的特殊格式要求也是可以的。 如果輸入控制器有比較大的資源空間(MIPS、RAM和閃存),藍牙上層協議棧可以移植到輸入控制器中運行,藍牙芯片與輸入控制器也可以以TTL電平串行連接。如果包含HID規範的BlueCode+上層協議棧運行在HID終端設備的輸入處理器上,那麽對系統硬件結構來說,只有壹個帶HCI接口的藍牙芯片需要集成進客戶的硬件。 由於藍牙鼠標的應用非常簡單,這時提供HID的BlueCode+可以和鼠標本身的應用程序壹起集成在含有藍牙核心協議棧的藍牙芯片內。 藍牙HID主機端的解決方案</b> 在HID主機側,BlueCode+有三種提供方式:
1. 提供完全的藍牙HID主機驅動程序,使之成為壹個標準的OEM產品;
2. 以軟件協議棧的形式幫助客戶整合進他們的藍牙PS/2接入點設備;
3. 提供獨立於操作系統的API,客戶可以將它們整合進自己的驅動程序中。 對標準操作系統(如Windows、Linux)來說,已經有包括HID規範的完整的驅動程序可以提供。這時,除了用戶用於表示包括公司及產品的名字、標誌、圖形和其它類似的圖形界面,HID主機端不需要對HID主機的標準驅動作任何改動。這裏的HID主機可以用藍牙USB dongle或PC卡實現,HID主機側的軟件將包括上層堆棧和用戶端應用程序。與HID的應用類似,USB dongle也還可用在類似DUN、FAX、FTP、LAN等應用中。因此,這種應用方式的優點是可以支持多個藍牙規範,其缺點是它們的驅動程序依賴於操作系統。 由於BlueCode+能夠方便地移植到不同的操作系統,因此客戶也可以用HID API開發適合自己的獨特應用。例如,可以做成藍牙HID接入點設備,所有軟件作為固件運行在HID接入點設備上。這時,藍牙HID接入點設備可以是智能化的USB dongle,或者是用戶定義的其它設備。在這種應用方式下,HID主機側不再需要安裝驅動程序。HID接入點設備可被HID主機的操作系統認作標準USB或PS/2設備看待。 這種方案的優點是HID接入點設備與操作系統無關, 可用於支持在PS/2或USB 上的標準 HID的任何平臺,不需在HID主機上安裝任何東西。該方案的缺點是不支持多個藍牙規範,因為所有運行於HID接入點設備的軟件,只是為HID應用設計的。