基于hid類的usb人機接口設(shè)計

基于hid類的usb人機接口設(shè)計

ID:16318256

大?。?11.00 KB

頁數(shù):10頁

時間:2018-08-09

基于hid類的usb人機接口設(shè)計_第1頁
基于hid類的usb人機接口設(shè)計_第2頁
基于hid類的usb人機接口設(shè)計_第3頁
基于hid類的usb人機接口設(shè)計_第4頁
基于hid類的usb人機接口設(shè)計_第5頁
資源描述:

《基于hid類的usb人機接口設(shè)計》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、基于HID類的USB人機接口設(shè)計技術(shù)分類:通信?微處理器與DSP?

2、2007-12-05來源:單片機與嵌入式系統(tǒng)應(yīng)用

3、作者:北京交通大學(xué)涂曉強周洪利   目前市場上USB設(shè)備的種類繁多,但是這些設(shè)備會有一些共同的特性,根據(jù)這些特性可以把USB設(shè)備劃分為不同的類,如顯示設(shè)備、通信設(shè)備、音頻設(shè)備、大容量存儲設(shè)備、人機接口設(shè)備(HID)。這里介紹如何實現(xiàn)HID類設(shè)備,以及如何在應(yīng)用程序中對HID類設(shè)備進行訪問。從Windows98操作系統(tǒng)開始,為HID類設(shè)備提供了通用的驅(qū)動程序,所以只要按照HID設(shè)備類的規(guī)范編寫設(shè)備的固件程序,就能夠讓W(xué)in

4、dows系統(tǒng)自動識別設(shè)備,省去了復(fù)雜的驅(qū)動程序編寫過程?! ? HID協(xié)議簡介  人機接口設(shè)備(HID)主要是指一些人與計算機進行交互的設(shè)備,如鍵盤、鼠標(biāo)、游戲桿等;但是HID設(shè)備不一定非要是這些人機交互設(shè)備,只要符合HID設(shè)備級定義規(guī)范要求的都可以認(rèn)為是HID設(shè)備。HID設(shè)備有以下主要特點: ?、佟〗粨Q的數(shù)據(jù)存儲在報告的結(jié)構(gòu)內(nèi),設(shè)備必須支持HID報告格式?! 、凇∶抗P事務(wù)可以攜帶小量或中量的數(shù)據(jù)。低速設(shè)備每筆事務(wù)最大為8字節(jié),全速設(shè)備每筆最大為64字節(jié),高速設(shè)備最大為1024字節(jié); ?、邸∮凶畲髠鬏斔俣鹊南拗啤5退僭O(shè)備最快10ms一筆

5、事務(wù),最高速度為800B/s;全速設(shè)備最快1ms一筆事務(wù),最高速度為64KB/s;高速設(shè)備最快125μs一筆事務(wù),最高速度為24.576MB/s。 ?、堋]有傳輸速度的保證?! ‘?dāng)插入USB設(shè)備后,主機會向設(shè)備請求各種描述符來識別設(shè)備。為了把一個設(shè)備識別為HID類別,設(shè)備在定義描述符的時候必須遵守HID規(guī)范。圖1顯示了HID各種描述符之間的關(guān)系。事實上,每個設(shè)備可以有多個接口描述符來實現(xiàn)多接口設(shè)備,而且每個接口描述符下應(yīng)該有多個端點描述符。圖1 HID各種描述符之間的關(guān)系  從圖1中可以看出,除了USB標(biāo)準(zhǔn)定義的一些描述符外,HID設(shè)備

6、還必須定義HID描述符。另外設(shè)備和主機的通信是通過報告的形式來實現(xiàn)的,所以還必須定義報告描述符;而物理描述符不是必需的。還有就是HID描述符是關(guān)聯(lián)于接口(而不是端點)的,所以設(shè)備不需要為每個端點都提供一個HID描述符。  USB設(shè)備有4種傳輸方式與主機進行通信:控制方式、中斷方式、批量方式和同步方式。每種方式都有它的應(yīng)用領(lǐng)域。HID只支持控制和中斷傳輸方式。如圖2所示,HID設(shè)備必須要有默認(rèn)的控制管道和一個中斷輸入端點;中斷輸出端點是可選的?! D2 HID類設(shè)備使用控制和中斷傳輸方式  中斷輸出傳輸是USB1.1規(guī)范才有的內(nèi)容,且必須

7、獲得Windows系統(tǒng)的支持。從Windows98SE版本開始才支持中斷輸出傳輸方式,所以如果需要中斷輸出傳輸方式的設(shè)備應(yīng)該選擇相應(yīng)的操作系統(tǒng)。表1列出了傳輸類型和相關(guān)情況。  表1 HID類設(shè)備支持的傳輸方式傳輸  USB協(xié)議定義了11種請求命令,通過這些請求來獲得設(shè)備的信息及對設(shè)備進行設(shè)置。HID類設(shè)備除了要支持這11種標(biāo)準(zhǔn)的請求外,還要實現(xiàn)以下6種特定請求: ?、佟et_Report——主機用控制傳輸從設(shè)備接收數(shù)據(jù),所有HID類設(shè)備都要支持這個請求; ?、凇et_Report——設(shè)備用控制傳輸接收主機的數(shù)據(jù),設(shè)備可以不支持此請

8、求;③ Get_Idle——主機讀取設(shè)備當(dāng)前的空閑速率,設(shè)備可以不支持此請求; ?、堋et_Idle——設(shè)置閑置狀態(tài),設(shè)備可不支持此請求;  ⑤ Get_Protocol——主機獲得設(shè)備的當(dāng)前活動是引導(dǎo)協(xié)議還是報告協(xié)議;  ⑥ Set_Protocol——在引導(dǎo)協(xié)議和報告協(xié)議間切換,設(shè)備如果支持系統(tǒng)引導(dǎo)(如鍵盤和鼠標(biāo)),就必須支持Get_Protocol和Set_Protocol請求?! ? HID接口固件設(shè)計與實現(xiàn)  該設(shè)備采用C8051F120微控制器和PDIUSBD12芯片來實現(xiàn),如圖3所示。  圖3 HID系統(tǒng)結(jié)構(gòu)框圖  因為

9、PDIUSBD12的主端點(Endpoint2)具有64字節(jié)的雙緩沖,能夠提供比較高的速度,所以在端點描述符里把它配置為中斷傳輸方式,而Endpoint1沒有使用。PDIUSBD12通過中斷觸發(fā)CPU來響應(yīng)主機的各種請求。此系統(tǒng)采用的USB協(xié)議版本是1.1,所以能夠支持中斷輸出傳輸。為了讓主機把設(shè)備識別為HID類別,定義設(shè)備接口描述符時類別這一字段的值必須設(shè)置為0x03(HID類別),這樣主機就會繼續(xù)請求獲得設(shè)備的HID描述符和報告描述符。在主機Get_Descriptor請求中,當(dāng)值字段的高位字節(jié)為0x21時,表示主機要求獲得HID描

10、述符;當(dāng)值字段高字節(jié)為0x22時,就是主機要求獲得報告描述符。對于報告描述符,可以參考HIDUsageTables規(guī)范。HIDDescriptorTool工具可以幫助建立和測試編寫的報告描述符。這里定義了一

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。