基于HID協(xié)議的USB人機交互設備的接口設計
目前市場上USB設備的種類繁多,但是這些設備會有一些共同的特性,根據(jù)這些特性可以把USB設備劃分為不同的類,如顯示設備、通信設備、音頻設備、大容量存儲設備、人機接口設備(HID)。這里介紹如何實現(xiàn)HID類設備,以及如何在應用程序中對HID類設備進行訪問。從Windows98操作系統(tǒng)開始,為HID類設備提供了通用的驅動程序,所以只要按照HID設備類的規(guī)范編寫設備的固件程序,就能夠讓Windows系統(tǒng)自動識別設備,省去了復雜的驅動程序編寫過程。
本文引用地址:http://2s4d.com/article/202511.htm1 HID協(xié)議簡介
人機接口設備(HID)主要是指一些人與計算機進行交互的設備,如鍵盤、鼠標、游戲桿等;但是HID設備不一定非要是這些人機交互設備,只要符合HID設備級定義規(guī)范要求的都可以認為是HID設備。HID設備有以下主要特點:
① 交換的數(shù)據(jù)存儲在報告的結構內(nèi),設備必須支持HID報告格式。
② 每筆事務可以攜帶小量或中量的數(shù)據(jù)。低速設備每筆事務最大為8字節(jié),全速設備每筆最大為64字節(jié),高速設備最大為1 024字節(jié);
?、?有最大傳輸速度的限制。低速設備最快10ms一筆事務,最高速度為800 B/s;全速設備最快1 ms一筆事務,最高速度為64 KB/s;高速設備最快125 μs一筆事務,最高速度為24.576 MB/s。
④ 沒有傳輸速度的保證。
當插入USB設備后,主機會向設備請求各種描述符來識別設備。為了把一個設備識別為HID類別,設備在定義描述符的時候必須遵守HID規(guī)范。圖1顯示了HID各種描述符之間的關系。事實上,每個設備可以有多個接口描述符來實現(xiàn)多接口設備,而且每個接口描述符下應該有多個端點描述符。
圖1 HID各種描述符之間的關系
從圖1中可以看出,除了USB標準定義的一些描述符外,HID設備還必須定義HID描述符。另外設備和主機的通信是通過報告的形式來實現(xiàn)的,所以還必須定義報告描述符;而物理描述符不是必需的。還有就是HID描述符是關聯(lián)于接口(而不是端點)的,所以設備不需要為每個端點都提供一個HID描述符。
USB設備有4種傳輸方式與主機進行通信: 控制方式、中斷方式、批量方式和同步方式。每種方式都有它的應用領域。HID只支持控制和中斷傳輸方式。如圖2所示,HID設備必須要有默認的控制管道和一個中斷輸入端點;中斷輸出端點是可選的。
圖2 HID類設備使用控制和中斷傳輸方式
中斷輸出傳輸是USB1.1規(guī)范才有的內(nèi)容,且必須獲得Windows系統(tǒng)的支持。從Windows98 SE版本開始才支持中斷輸出傳輸方式,所以如果需要中斷輸出傳輸方式的設備應該選擇相應的操作系統(tǒng)。表1列出了傳輸類型和相關情況。
表1 HID類設備支持的傳輸方式傳輸
評論