USB HID 教學 #1(轉載)
什麼是 HID Report Descriptor? HID report descriptor 的用途是定義 reports 的資料格式與使用目的,包括:device 支援多少個 reports, report 的大小,還有 report 中每個 byte 與 bit 的用途。例如,如果是 mouse device,資料會是 mouse movements (滑鼠的移動) 與 button clicks (滑鼠按鍵動作) ;如果是鍵盤,資料會是 keystrokes (按鍵), modifiers (組合鍵或稱輔助鍵) 與 LED Indicators (指示燈) 的輸出狀態。所以,application 只要解讀 report descriptors 便可以知道 report 中的資料是做何種操控 (control) 之用。 HID report descriptor 可以包含多個 reports,而 report 的種類可以分成三種:Input, Output 與 Feature reports。Host 會用 Input report 收資料、用 Output report 送資料,而 Feature report 則是雙向的。 HID 文件 在 http://www.usb.org/developers/hidpage/ 這個頁面中有很多 HID 相關的文件,其中,底下這兩份文件比較重要,是學習 HID 必讀的文件: HID Device Class Definition HID Usage Tables HID descriptor tool 同一個頁面上有一支工具,叫做 HID descriptor tool: HID Descriptor Tool 這支工具可以用來幫助你產生 report descriptor,是每個寫 report descriptor 的工程師必備的,因為自行翻閱 HID Usage Tables 查表對應代碼以純手工的方式寫 report descriptor 是很累的一件事,用這支工具會省下不少工夫。 HID descriptor tool 內附一些 report descriptors 的範例,在同一個資料夾中副檔名為 .hid 的檔案即是。HID de...
留言
張貼留言