<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于HID協(xié)議的USB人機(jī)交互設(shè)備的接口設(shè)計

          基于HID協(xié)議的USB人機(jī)交互設(shè)備的接口設(shè)計

          作者: 時間:2010-09-15 來源:網(wǎng)絡(luò) 收藏

            定義了11種請求命令,通過這些請求來獲得設(shè)備的信息及對設(shè)備進(jìn)行設(shè)置。類設(shè)備除了要支持這11種標(biāo)準(zhǔn)的請求外,還要實現(xiàn)以下6種特定請求:

          本文引用地址:http://www.ex-cimer.com/article/202511.htm

            ① Get_Report——主機(jī)用控制傳輸從設(shè)備接收數(shù)據(jù),所有類設(shè)備都要支持這個請求;

            ② Set_Report——設(shè)備用控制傳輸接收主機(jī)的數(shù)據(jù),設(shè)備可以不支持此請求;

            ③ Get_Idle——主機(jī)讀取設(shè)備當(dāng)前的空閑速率,設(shè)備可以不支持此請求;

            ④ Set_Idle——設(shè)置閑置狀態(tài),設(shè)備可不支持此請求;

            ⑤ Get_Protocol——主機(jī)獲得設(shè)備的當(dāng)前活動是引導(dǎo)還是報告;

           ?、?Set_Protocol——在引導(dǎo)協(xié)議和報告協(xié)議間切換,設(shè)備如果支持系統(tǒng)引導(dǎo)(如鍵盤和鼠標(biāo)),就必須支持Get_Protocol和Set_Protocol請求。

            2 接口固件設(shè)計與實現(xiàn)

            該設(shè)備采用C8051F120微控制器和PDID12芯片來實現(xiàn),如圖3所示。


          圖3 HID系統(tǒng)結(jié)構(gòu)框圖

            因為PDID12的主端點(Endpoint2)具有64字節(jié)的雙緩沖,能夠提供比較高的速度,所以在端點描述符里把它配置為中斷傳輸方式,而Endpoint1沒有使用。PDIUSBD12通過中斷觸發(fā)CPU來響應(yīng)主機(jī)的各種請求。

            此系統(tǒng)采用的USB協(xié)議版本是1.1,所以能夠支持中斷輸出傳輸。為了讓主機(jī)把設(shè)備識別為HID類別,定義設(shè)備接口描述符時類別這一字段的值必須設(shè)置為0x03(HID類別),這樣主機(jī)就會繼續(xù)請求獲得設(shè)備的HID描述符和報告描述符。在主機(jī)Get_Descriptor請求中,當(dāng)值字段的高位字節(jié)為0x21時,表示主機(jī)要求獲得HID描述符;當(dāng)值字段高字節(jié)為0x22時,就是主機(jī)要求獲得報告描述符。對于報告描述符,可以參考HID Usage Tables規(guī)范。HID Descriptor Tool工具可以幫助建立和測試編寫的報告描述符。這里定義了一個輸入和輸出64字節(jié)數(shù)據(jù)的報告描述符。

            code unsigned char szReport[] = {

            0x06,0xA0,0xFF,//用法頁(FFA0h, vendor defined)

            0x09, 0x01,//用法(vendor defined)

            0xA1, 0x01,//集合(ApplicaTION)

            0x09, 0x02 ,//用法(vendor defined)

            0xA1, 0x00,//集合(Physical)

            0x06,0xA1,0xFF,//用法頁(vendor defined)

            //輸入報告

            0x09, 0x03 ,//用法(vendor defined)

            0x09, 0x04,//用法(vendor defined)

            0x15, 0x80,//邏輯最小值(0x80 or -128)

            0x25, 0x7F,//邏輯最大值(0x7F or 127)

            0x35, 0x00,//物理最小值(0)

            0x45,0xFF,//物理最大值(255)

            0x75, 0x08,//報告長度Report size (8位)

            0x95, 0x40,//報告數(shù)值(64 fields)

            0x81, 0x02,//輸入(data, variable, absolute)

            //輸出報告



          關(guān)鍵詞: HID USB 協(xié)議 人機(jī)交互

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();