日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

HID报表描述符(目前最全的解析,也是USB最复杂的描述符)

發(fā)布時(shí)間:2024/4/13 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HID报表描述符(目前最全的解析,也是USB最复杂的描述符) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 說(shuō)一下為什么寫(xiě)這篇文章,主要是最近在做關(guān)于USB-HID設(shè)備的描述符,看到關(guān)于HID報(bào)表描述符的解析有點(diǎn)少,自己看了下,后續(xù)還會(huì)發(fā)布還有關(guān)于USB的各種解析,有興趣可以看看,可以讓你更加明白USB工作機(jī)制。

  • 傳送門(mén):HID鍵盤(pán)描述符范例

  • 你的HID設(shè)備 怎么識(shí)別 鼠標(biāo) 鍵盤(pán) VR 醫(yī)療設(shè)備 網(wǎng)絡(luò)通信設(shè)備等等等,都是用這個(gè)報(bào)表來(lái)實(shí)現(xiàn),這個(gè)報(bào)表是USB最靈活也是最復(fù)雜的報(bào)表。
  • 可以描述上千種設(shè)備,一點(diǎn)也不夸張!
  • 報(bào)表描述符定義了執(zhí)行設(shè)備功能的數(shù)據(jù)格式和使用方法。
  • 報(bào)表描述符和 USB 的其他描述符是不一樣的,它不是一個(gè)簡(jiǎn)單的表格,報(bào)表描述符是 USB 所有描述符中最復(fù)雜的。報(bào)表描述符非常復(fù)雜而有彈性,因?yàn)樗枰幚砀鞣N用途的設(shè)備報(bào)表的數(shù)據(jù)必須以簡(jiǎn)潔的格式來(lái)儲(chǔ)存,這樣才不會(huì)浪費(fèi)設(shè)備內(nèi)的儲(chǔ)存空間以及數(shù)據(jù)傳輸時(shí)的總線(xiàn)時(shí)間。實(shí)際上可以這樣理解,報(bào)表內(nèi)容的簡(jiǎn)潔,是通過(guò)報(bào)表描述符全面的、復(fù)雜的數(shù)據(jù)描述實(shí)現(xiàn)的。
  • 報(bào)表描述符必須先描述數(shù)據(jù)的大小與內(nèi)容。報(bào)表描述符的內(nèi)容與大小因設(shè)備的不同而不同,在進(jìn)行報(bào)表傳輸之前,主機(jī)必須先請(qǐng)求設(shè)備的報(bào)表描述符,只有得到了報(bào)表描述符才可正確解析報(bào)表的數(shù)據(jù)。
  • 報(bào)表描述符是報(bào)表描述項(xiàng)目(Item)的集合,每一個(gè)描述項(xiàng)目都有相對(duì)統(tǒng)一的數(shù)據(jù)結(jié)構(gòu),項(xiàng)目很多,通過(guò)編碼實(shí)現(xiàn)。
  • 項(xiàng)目

  • 報(bào)表描述符由描述 HID 設(shè)備的數(shù)據(jù)項(xiàng)目(Item)組成,項(xiàng)目的第一個(gè)字節(jié)(項(xiàng)目前綴)由三部分構(gòu)成,即項(xiàng)目類(lèi)型(item type)、項(xiàng)目標(biāo)簽(item tag)和項(xiàng)目長(zhǎng)度(item size)。其中項(xiàng)目類(lèi)型說(shuō)明項(xiàng)目的數(shù)據(jù)類(lèi)型,項(xiàng)目標(biāo)簽說(shuō)明項(xiàng)目的功能,項(xiàng)目長(zhǎng)度說(shuō)明項(xiàng)目的數(shù)據(jù)部分的長(zhǎng)度。
  • HID 的項(xiàng)目有短項(xiàng)目和長(zhǎng)項(xiàng)目?jī)煞N,其中短項(xiàng)目的格式如下圖:
    短項(xiàng)目的數(shù)據(jù)字節(jié)數(shù)
    由 bSize 的值定義,bSize 為 0、1、2、3 時(shí) Data 部分的字節(jié)數(shù)分別為 0、1、2、4 個(gè)字節(jié)。
    短項(xiàng)目的項(xiàng)目類(lèi)型由 bType 定義,
    bType 為 0、1、2 時(shí)分別為 Main、Global 和 Local 類(lèi)型。
  • 長(zhǎng)項(xiàng)目可以攜帶較多的數(shù)據(jù),其格式如下圖: HID 報(bào)表長(zhǎng)項(xiàng)目格式 目中的第一個(gè)字節(jié)為上圖中的特定值時(shí)表明該項(xiàng)目是一個(gè)長(zhǎng)項(xiàng)目。
    長(zhǎng)項(xiàng)目中的bDataSize 說(shuō)明 Data 部分的字節(jié)數(shù),
    bLongItemTag 在 HID 規(guī)范中沒(méi)有定義。
  • 下面是通過(guò)匯編實(shí)現(xiàn)的一個(gè)簡(jiǎn)單的報(bào)表描述符,描述符的每一行是一個(gè)項(xiàng)目,該描述符描述了一個(gè)從設(shè)備接收 2 個(gè)字節(jié)的輸入報(bào)表和發(fā)送 2 個(gè)字節(jié)到設(shè)備的輸出報(bào)表。 HID_Report_desc_table: db 06h, A0h, FFh ; Usage Page(Vendor defined) 定義設(shè)備功能 db 09h, A5h ; Usage(Vendor Defined) 定義用法 db A1h, 01h ; Collection(Application) 開(kāi)一個(gè)集合 db 09H, A6h ; Usage(Vendor defined) 定義用法 ; 輸入報(bào)表 db 09h, A7h ; Usgae(Vendor defined) 定義用法 db 15h, 80h ; Logical Minimum 定義輸入最小值=-128 db 25h, 7Fh ; Logical Maximum 定義輸入最大值=+127 db 75h, 08h ; Report Size 定義報(bào)表數(shù)據(jù)項(xiàng)大小=8 db 95h, 02h ; Report Count 定義報(bào)表數(shù)據(jù)向個(gè)數(shù)=2 db 81h, 02h ; Input(Data,Variable,Absolute) 輸入項(xiàng)目 ; 輸出報(bào)表 db 09h, A9h ; Usgae(Vendor defined) 定義用法 db 15h, 80h ; Logical Minimum 定義輸入最小值=-128 db 25h, 7Fh ; Logical Maximum 定義輸入最大值=+127 db 75h, 08h ; Report Size 定義報(bào)表數(shù)據(jù)項(xiàng)大小=8 db 95h, 02h ; Report Count 定義報(bào)表數(shù)據(jù)向個(gè)數(shù)=2 db 91h, 02h ; Output(Data,Variable,Absolute) 輸出項(xiàng)目 db C0h ; End Collection 關(guān)閉集合
  • 項(xiàng)目的分類(lèi)

  • 報(bào)表的項(xiàng)目有 Main、Global 和 Local 三大類(lèi),每一類(lèi)都有多個(gè)不同的項(xiàng)目,實(shí)現(xiàn)不同的描述。 Main 類(lèi)項(xiàng)目用于定義報(bào)表描述符中的數(shù)據(jù)項(xiàng)。也可以組合其中的若干數(shù)據(jù)項(xiàng)成為一個(gè) 集合。Main 項(xiàng)目可以分為帶數(shù)據(jù)的 Main 項(xiàng)目和不帶數(shù)據(jù)的 Main 項(xiàng)目。帶數(shù)據(jù)項(xiàng)的 Main 用于生成報(bào)表中的數(shù)據(jù)項(xiàng),包括 Input、Output 和 Feature 項(xiàng)目。不帶數(shù)據(jù)的 Main 項(xiàng)目不 生成報(bào)表中的數(shù)據(jù)項(xiàng),包括 Collection 和 End Collection 項(xiàng)目。 Global 類(lèi)項(xiàng)目實(shí)現(xiàn)對(duì)數(shù)據(jù)的描述,用來(lái)識(shí)別報(bào)表并且描述報(bào)表內(nèi)的數(shù)據(jù),包括數(shù)據(jù)的 功能、最大與最小允許值以及數(shù)據(jù)項(xiàng)的大小與數(shù)目等。改變由 Main 類(lèi)項(xiàng)目生成的項(xiàng)目狀 態(tài)表。Global 類(lèi)項(xiàng)目描述對(duì)后續(xù)的所有項(xiàng)目有效,除非遇到有新的 Global 類(lèi)項(xiàng)目。 Local 類(lèi)項(xiàng)目定義控制的特征,這一類(lèi)項(xiàng)目的作用域不超過(guò)下一個(gè) Main 項(xiàng)目,所以在 每一 Main 項(xiàng)目之前可能有多個(gè) Local 項(xiàng)目。Local 項(xiàng)目用于描述后面的 Input、Output 和 Feature 項(xiàng)目
  • 下表列出的是全部的項(xiàng)目的前綴字和簡(jiǎn)要功能說(shuō)明 HID項(xiàng)目列表
  • 如上圖所示:在這些項(xiàng)目中,Usage Page 用來(lái)指定設(shè)備的功能,而 Usage 項(xiàng)目用來(lái)指定個(gè)別報(bào)表的功能。Usage Page 項(xiàng)目相當(dāng)于是 HID 的子集合,Usage 相當(dāng)于是 Usage Page 的子集合。
  • 下面來(lái)解析 下項(xiàng)目列表的用法:這書(shū)上沒(méi)有提及我給大家解釋一下,舉兩個(gè)特例大家應(yīng)該就明白了,如下圖

  • 再進(jìn)一步解析項(xiàng)目之間的分類(lèi)如下圖所示(舉例為短項(xiàng)目,長(zhǎng)項(xiàng)目我覺(jué)得應(yīng)該是類(lèi)似的,認(rèn)真看看就明白了,這個(gè)看明白了 我覺(jué)得USB描述符不在話(huà)下):
  • 報(bào)表描述符的項(xiàng)目

  • Input、Outpot 和 Feature 項(xiàng)目
  • 這 3 個(gè)項(xiàng)目用來(lái)定義報(bào)表中的數(shù)據(jù)字段。
  • Input 項(xiàng)目可以應(yīng)用到任何控制、計(jì)數(shù)器讀數(shù)或其他設(shè)備傳給主機(jī)的信息。一個(gè)輸入報(bào) 表包含一個(gè)或多個(gè) Input 項(xiàng)目,主機(jī)使用中斷輸入傳輸來(lái)請(qǐng)求輸入報(bào)表。 Ouput 項(xiàng)目用來(lái)定義主機(jī)傳送給設(shè)備的信息。一個(gè)輸出報(bào)表包含一個(gè)或多個(gè) Output 項(xiàng)目。輸出報(bào)表包含控制狀態(tài)的數(shù)據(jù)。如果有中斷輸出管道,HID1.1 兼容主機(jī)使用中斷輸 出傳輸來(lái)傳送輸出報(bào)表,否則使用 Set_Report 控制請(qǐng)求。 Feature 項(xiàng)目應(yīng)用到主機(jī)傳送給設(shè)備的信息,或是主機(jī)從設(shè)備讀取 Feature 項(xiàng)目。一 個(gè)特征報(bào)表包含一個(gè)或多個(gè) Feature 項(xiàng)目,Feature 項(xiàng)目通常是包合影響設(shè)備與其組件整 體行為的配置。特征報(bào)表通常是控制可以使用實(shí)際的控制面板調(diào)整的設(shè)置,例如主機(jī)可以 使用虛擬控制面板來(lái)讓用戶(hù)選擇控制特征。主機(jī)使用 Set_Report 與 Get_Report 請(qǐng)求來(lái)傳 送與接收特征報(bào)表。
  • 在每一個(gè) Input、Output 和 Feature 項(xiàng)目的前綴字之后是 32 位描述數(shù)據(jù),目前最多定義了 9 個(gè)位,余的位則是保留。位 0~8 的定義中只有位 7 不能應(yīng)用于 Input 項(xiàng)目,除此之外其他的位定義都適應(yīng)于 Input、Output 和 Feature 項(xiàng)目。下圖是關(guān)于這三個(gè)項(xiàng)目的數(shù)據(jù)定義:

    ? Input、Output 和 Feature 項(xiàng)目的數(shù)據(jù)項(xiàng)說(shuō)明標(biāo)題
  • 下面就來(lái)解析下 Input,后面兩項(xiàng)大家以此類(lèi)推就好啦 請(qǐng)看下圖:
    ?

  • Collection 和End Collection 項(xiàng)目

  • 所有的報(bào)表類(lèi)型都可以使用 Collection 與 End Collection 項(xiàng)目來(lái)將相關(guān)的 Main 類(lèi)型項(xiàng)目組成群組。這兩個(gè)項(xiàng)目分別用于打開(kāi)和關(guān)閉集合。所有在 Collection 與 End Collection項(xiàng)目之間的 Main 類(lèi)型項(xiàng)目都是 Collection 的一部分。
  • Collection 有 3 種類(lèi)型:Application、Physical 與 Logical,其項(xiàng)目的數(shù)據(jù)項(xiàng)的值分別為 1、0 和 2。廠(chǎng)商也可以自己定義 Collection 類(lèi)型,數(shù)據(jù)項(xiàng)的值為 80h~FFh 保留給廠(chǎng)商定義。End Collection 項(xiàng)目無(wú)數(shù)據(jù)項(xiàng)。
  • Application Collection 包含有共同用途的項(xiàng)目或執(zhí)行單一功能的項(xiàng)目。例如鍵盤(pán)的開(kāi)機(jī)描述符將鍵盤(pán)的按鍵與 LED 指示燈數(shù)據(jù)集合成一個(gè) Application Collection。所有的報(bào)表必須在一個(gè) Application Collection 內(nèi)。
  • Physical Collection 包含在一個(gè)單一幾何點(diǎn)上的數(shù)據(jù)項(xiàng)目,可以將每個(gè)位置的數(shù)據(jù)集合成一個(gè) Physical Collection。在設(shè)備報(bào)告多個(gè)傳感器的位置的時(shí)候,使用 PhysicalCollection 指明不同的數(shù)據(jù)來(lái)自不同的傳感器。
  • Logical Collection 形成一個(gè)數(shù)據(jù)結(jié)構(gòu),包含由 Collection 所連結(jié)的不同類(lèi)型的項(xiàng)目。例如數(shù)據(jù)緩沖區(qū)的內(nèi)容以及緩沖區(qū)內(nèi)字節(jié)數(shù)目的計(jì)數(shù)。
  • Usage Page 和Usage 項(xiàng)目

  • Usage page 項(xiàng)目的數(shù)據(jù)部分為 1~2 個(gè)字節(jié),目前的定義全部都是一個(gè)字節(jié)。UsagePage 定義了常用的設(shè)備功能,關(guān)于 Usage Page(以及其他項(xiàng)目)的具體定義內(nèi)容,可以查閱 HID Usage tables(http://www.usb.org/developers/hidpage/#Class_Definition),下表是來(lái)自 HID Usage tables 的 Usage Page 定義。如下圖


    ?

    Usage Page定義
  • 關(guān)于Usage Page的每一個(gè)有效定義項(xiàng),都有一個(gè)相應(yīng)的下一級(jí)定義。如Usage Page的數(shù)據(jù)項(xiàng)數(shù)值為1,則設(shè)備定義為Generic Desktop Controls,關(guān)于該類(lèi)設(shè)備的具體功能可以在HID Usage Tables中查到具體的定義。下表是HID Usage Tables中對(duì)GenericDesktop Controls設(shè)備的功能定義。比如 Usage Page = 1 (Generic Desktop Controls) 如上圖的 PageID= 01 然后這個(gè)集合里面又可以分下面那么多種設(shè)備 如下圖:
    ?


    ?

    Generic Desktop Controls 用法定義
  • 因此? HID報(bào)表描述符功能真的很強(qiáng)大,很靈活。

  • 用法(Usage)定義了各種各樣設(shè)備特性,對(duì)于 Usage Page 的每一項(xiàng)都定義了常用的各種用法。

  • 上表中的用法類(lèi)型(Usage Type)描述了應(yīng)用程序如何處理由 Main 類(lèi)型項(xiàng)目生成的數(shù)據(jù),具體的定義和詳細(xì)說(shuō)明請(qǐng)參閱 HID Usage Tables。

  • Report ID 項(xiàng)目

  • Report ID 放在信息包中報(bào)表數(shù)據(jù)之前,設(shè)備可以支持多個(gè)相同類(lèi)型的報(bào)表,每一個(gè)報(bào)表包含不同的數(shù)據(jù)與其特有的 ID。
  • 在報(bào)表描述符中,Report ID 項(xiàng)目作用于其后續(xù)所有的項(xiàng)目,直到遇到下一個(gè) Report ID為止。如果報(bào)表描述符中沒(méi)有 Report ID 項(xiàng)目,默認(rèn)的 ID 值是 0,描述符不能定義一個(gè)為0 的 Report ID(以我的理解額 報(bào)告ID為0 就不要定義,定義報(bào)告ID的話(huà)就不要為0)。輸入報(bào)表、輸出報(bào)表與特征報(bào)表可以分享同一個(gè) Report ID。
  • 在 Set_Report 和 Get_Report 請(qǐng)求傳輸中,主機(jī)在設(shè)置事務(wù)的 wValue 字段的低字節(jié)中指定一個(gè) Report ID。在中斷傳輸中如果接口支持一個(gè)以上的 Report ID,Report ID 必須是傳送報(bào)表中的第一個(gè)字節(jié)。如果接口只支持?jǐn)?shù)值為 0 的默認(rèn) Report ID,此 Report ID不應(yīng)該在中斷傳輸中隨著報(bào)表一起傳送。
  • Logical Minimum 和 Logical Maximum 項(xiàng)目

  • Logical Minimum 與 Logical Maximum 項(xiàng)目定義報(bào)表的變量(Variable)或陣 列(Array)數(shù)據(jù)的限制范圍,此限制范圍以邏輯單位來(lái)表示。例如設(shè)備報(bào)表的一個(gè)電流值讀數(shù)是500mA,而一個(gè)單位是 2mA,則 Logical Maximum 值等于 250。(其實(shí)是用來(lái)描述一個(gè)字節(jié)的上下限)
  • 負(fù)數(shù)值以 2 的補(bǔ)碼來(lái)表示。如果 Logical Minimum 與 Logical Maximum 都是正數(shù),就不需要有正負(fù)號(hào)位。不管 Logical Minimum 與 Logical Maximum 是以有正負(fù)號(hào)或是無(wú)正負(fù)號(hào)的數(shù)值來(lái)表示,設(shè)備都可以正確地傳輸數(shù)據(jù)。數(shù)據(jù)的接收者必須知道數(shù)據(jù)是否可以是負(fù)值
  • Physical Minimum 和 Physical Maximum 項(xiàng)目

  • Physical Minimum 和 Physical Maximum 項(xiàng)目定義數(shù)值的限制范圍,該限制范圍使用Unit 項(xiàng)目定義的單位來(lái)表示。上例中設(shè)備報(bào)表的一個(gè)電流值讀數(shù)是 500mA,單位是 2mA,Logical Maximum 值等于 250,而 Physical Maximum 值是 500。
  • Logical Minimum 與 Logical Maximum 值說(shuō)明了設(shè)備返回?cái)?shù)值的邊界,可以根據(jù)Physical Minimum 和 Physical Maximum 值對(duì)數(shù)據(jù)進(jìn)行偏移和比例變換。
  • Unit 項(xiàng)目

  • Unit 項(xiàng)目指定報(bào)表數(shù)據(jù)在使用 Physical 與 Unit Exponent 項(xiàng)目轉(zhuǎn)換后使用什么度量單位,以及單位的冪指數(shù)值。Unit 的數(shù)值部分可以長(zhǎng)達(dá) 4 字節(jié),按照 4 位為一段分段,可以分為 8 個(gè)半字節(jié)段,由高到低分別為半字節(jié) 7、半字節(jié) 6、…、半字節(jié) 0。每一個(gè)半字節(jié)對(duì)應(yīng)不同的基本單位,其數(shù)值表示單位的指數(shù)值,采用 4 位 2 的補(bǔ)碼表示,取值范圍是-8~+7之間。
  • 從半字節(jié) 0~6 由下表給出了具體的定義,其中半字節(jié) 0 表示測(cè)量系統(tǒng),半字節(jié) 7 保留。例如在半字節(jié) 0 數(shù)值為 1(表示采用線(xiàn)性公制測(cè)量系統(tǒng))的條件下,半字節(jié) 1 表示長(zhǎng)度(單位為厘米),如果其數(shù)值為 1 表示厘米,數(shù)值為 2 表示(厘米)2,成為面積單位。半字節(jié)3 表示時(shí)間(單位為秒),如果其數(shù)值為-2,表示(秒)-2。 Unit 單位的定義
  • 雖然表中只是定義了有限的基本單位,但可以通過(guò)這些基本單位的組合派生出大多數(shù)其它的常用單位。 例如報(bào)表使用一個(gè)字節(jié)傳送一個(gè)從-20 到 110 華氏度溫度值,可以定義以下報(bào)表描述 項(xiàng)目: Logical Minimum = -128 Logical Maximum = 127 Physical Minimum = -20 Physical Maximum = 110 Unit Exponent = 0 Unit = 30003h Unit 的半字節(jié) 0=3 選擇英制線(xiàn)性測(cè)量系統(tǒng),半字節(jié) 4=3 選擇華氏溫度單位。 130(110+20)華氏度的數(shù)值范圍線(xiàn)性分布到了 256 和有效數(shù)值區(qū)域,每一位相當(dāng)于 0.51 華氏度,這樣就提高了分辨率。

    ?

  • Report Size 和 Report Count 項(xiàng)目

  • Report Size 項(xiàng)目指定 Input、Output 與 Feature 項(xiàng)目字段的大小,以位為單位。
  • Report Count 項(xiàng)目指定 Input、Output 與 Feature 項(xiàng)目包含的字段數(shù)目。
  • 例如兩個(gè) 8 位的字段,Report Size 等于 8,而 Report Count 等于 2。8 個(gè) 1 位的字段,Report Size 等于 1,而 Report Count 等于 8。3
  • Input、Output 與 Feature 項(xiàng)目報(bào)表可以有多個(gè)項(xiàng)目Size 和 Report Count 項(xiàng)目。
  • Usage、Usage Minimum 和 Usage Maximum 項(xiàng)目

  • 這 3 個(gè)項(xiàng)目輸入 Local 類(lèi)型項(xiàng)目。
  • Usage 項(xiàng)目和 Global 類(lèi)型的 Usage Page 項(xiàng)目協(xié)同描述項(xiàng)目或集合的功能。一個(gè)報(bào)表可以指定一個(gè) Usage 給許多個(gè)控制,或是指定不同的 Usage 給每一個(gè)控制。如果一個(gè)報(bào)表項(xiàng)目之前有一個(gè) Usage,此 Usage 應(yīng)用到該項(xiàng)目的所有控制。如果一個(gè)報(bào)表項(xiàng)目之前有一個(gè)以上的 Usage,每一個(gè) Usage 應(yīng)用到一個(gè)控制,Usage 與控制是按順序結(jié)合的。 例如下面報(bào)表描述符的一個(gè)局部,報(bào)表含有 2 個(gè)輸入字節(jié),第一個(gè)字節(jié)的用法是 x, 第 2 個(gè)字節(jié)是 y。 Report Size (8) Report Count (2) Usage (x) Usage (y) Input (Data, Variable, Absolute)

    ?

  • 如果一個(gè)報(bào)表項(xiàng)目之前有一個(gè)以上的 Usage,而且控制的數(shù)目多于 Usage 的數(shù)目,每一個(gè) Usage 與一個(gè)控制對(duì)應(yīng),最后一個(gè) Usage 則應(yīng)用到所有剩余的控制。 例如在下面報(bào)表包含 16 個(gè)字節(jié)輸入數(shù)據(jù),第一個(gè)字節(jié)對(duì)應(yīng)用法 x,第 2 個(gè)字節(jié)對(duì)應(yīng)用法 y,剩余的 14 個(gè)字節(jié)對(duì)應(yīng)廠(chǎng)商定義的用法。Usage (x) Usage (y) Usage (Vendor defined) Report Size (8) Report Count (16) Input (Data, Variable, Absolute)

    ?

  • Usage Minimum 和 Usage Maximum 可以指定一個(gè) Usage 給多個(gè)控制或是數(shù)組項(xiàng)目。將從 Usage Minimum 到 Usgae Maximun 定義的用法順序?qū)?yīng)到多個(gè)控制中。 例如在一個(gè)鍵盤(pán)描述符中定義的標(biāo)準(zhǔn)鍵盤(pán)的左、右修飾鍵的輸入項(xiàng)目中,使用一個(gè)字 節(jié)的 8 位分別輸入鍵盤(pán)的左、右 Ctrl 鍵、Shift 鍵、Alt 鍵和 GUI 鍵,從 HID Usage tables 文檔中的第 10 節(jié)可以查到關(guān)于鍵盤(pán)用法的定義,其中上述 8 個(gè)修飾鍵的用法定義值為 224 到 231。以下是報(bào)表描述符的修飾鍵部分描述。 Usage Page (1) ; 1 = Generic Desktop Controls Usage (6) ; 6 = Keyboard Collection (1) ; 1 = Application Usage Page (7) ; 7 = Keyboard/Keypad Usage Minimum (224) Usage Maximum (231) Logical Minimum (0) Logical Maximum (1) Report Size (1) Report Count (8) Input (Data, Variable, Absolute) ……

    自此,本章結(jié)束了,有不懂的一起探討!

  • 總結(jié)

    以上是生活随笔為你收集整理的HID报表描述符(目前最全的解析,也是USB最复杂的描述符)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。