生活随笔
收集整理的這篇文章主要介紹了
HID设备描述符
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
HID 設(shè)備除了支持 USB 設(shè)備的 5 種標(biāo)準(zhǔn)描述符之外,還支持 HID 設(shè)備特有的 3 種描 述符。這些描述符是:USB 標(biāo)準(zhǔn)描述符:設(shè)備、配置、接口、端點(diǎn)和字符串描述符。 HID 特有的描述符:HID、報(bào)表(Report)和實(shí)體(Physical)描述符。(基本不用,至少我沒遇到需要描述實(shí)體描述符的)
從描述符的關(guān)聯(lián)關(guān)系看,HID 描述符是關(guān)聯(lián)于接口。所以如果一個(gè) HID 設(shè)備有 2 個(gè)端點(diǎn),設(shè)備不需要每個(gè)端點(diǎn)有一個(gè) HID 描述符。
從前面的 USB 描述符可以看出一個(gè)規(guī)律,描述符的第一、二字節(jié)分別是描述符的長度和類型,描述符的類型字段(bDescriptorType)表明描述符的種類,下表列出了不同描述符的類型字段數(shù)值。
對于一個(gè) HID 設(shè)備,設(shè)備描述符與配置描述符沒有 HID 特定的信息。其設(shè)備描述符的bDeviceClass 和 bDeviceSubClass 字段的值為 0,接口描述符的 bInterfaceClass 字段值為 03 ,表示設(shè)備的該接口是 HID 類別。在接口描述符中其他包含 HID 特定信息的字段還有子類別碼(blnterfaceSubClass)與協(xié)議碼(blnterfaceProtocol 字段)。 在接口描述符中子類別碼字段等于 1 表示此設(shè)備支持啟動(dòng)接口(Boot Interface)。 如果設(shè)備有啟動(dòng)接口,即便主機(jī)的 HID 沒有加載驅(qū)動(dòng)程序,設(shè)備也可以使用。這種情形可能發(fā)生在計(jì)算機(jī)是由 DOS 直接啟動(dòng),在啟動(dòng)時(shí)觀看系統(tǒng)設(shè)置畫面或使用 Windows 的安全模式時(shí)。含有啟動(dòng)接口的鍵盤或鼠標(biāo)可以使用 BIOS 或許多主機(jī)支持的默認(rèn)簡單協(xié)議。HID 規(guī)范定義了鍵盤與鼠標(biāo)的啟動(dòng)接口協(xié)議。 如果設(shè)備沒有啟動(dòng)接口,并且接口描述符中協(xié)議碼字段是 1,表示設(shè)備支持鍵盤接口,協(xié)議碼字段是 2,表示支持鼠標(biāo)接口。接口描述符中協(xié)議碼字段是 0,表示設(shè)備不支持啟動(dòng)協(xié)議。 在 HID Usage Tables 規(guī)范中定義了鍵盤與鼠標(biāo)的啟動(dòng)描述符(Boot Descriptor)。BIOS 不需要從設(shè)備中讀取描述符,因?yàn)樗绬?dòng)協(xié)議,并且假設(shè)設(shè)備支持啟動(dòng)協(xié)議。所以要啟動(dòng)的設(shè)備不需要在固件內(nèi)包含啟動(dòng)接口描述符,它只要在主機(jī)尚未要求在報(bào)表描述符中的定義協(xié)議時(shí)支持啟動(dòng)協(xié)議即可。在操作系統(tǒng)加載 HlD 驅(qū)動(dòng)程序后會(huì)使用Set_Protocol 請求,將設(shè)備由啟動(dòng)協(xié)議轉(zhuǎn)換成報(bào)表協(xié)議。
總結(jié)
以上是生活随笔 為你收集整理的HID设备描述符 的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔 推薦給好友。