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