usb 滑鼠詳解閱讀順序
1、列舉
2、裝置描述符
3、設定位址
4、配置描述符
5、介面描述符
6、hid 描述符
7、端點描述符
8、字串描述符
9、hid 報告描述符
10、hid 報告的返回
linux 核心中對介面描述符的定義,目錄:linux/include/uapi/linux/usb/ch9.h
/* usb_dt_inte***ce: inte***ce descriptor */
struct usb_inte***ce_descriptor __attribute__ ((packed));
blength:該描述符的長度。標準的 usb 介面描述符的長度為 9 位元組
bdescriptortype:描述符的型別。介面描述符的型別編碼為 0x04
binte***cenumber:該介面的編號。當乙個配置具有多個介面時,每個介面的編號都不同
balternatesetting:該介面的備用編號
bnumendpoints:該介面所使用的端點數目(不包括 0 端點)
binte***ceclass:介面所使用的類
binte***cesubclass:介面所使用的子類
binte***ceprotocol:介面所使用的協議
iinte***ce:介面的字串的索引值
0x09 blength欄位。介面描述符的長度為 9 位元組
0x04 bdescriptortype欄位。介面描述符的編號為 0x04
0x00 binte***cenumber欄位。該介面的編號,第乙個介面,編號為0
0x00 balternatesetting欄位。該介面的備用編號,為0
0x01 bnumendpoints欄位。非0端點的數目。由於usb滑鼠只需要乙個中斷輸入端點,因此該值為1
0x03 binte***ceclass欄位。該介面所使用的類。usb滑鼠是hid類,hid類的編碼為0x03
0x01 binte***cesubclass欄位。該介面所使用的子類。在hid1.1協議中只規定了一種子類:支援bios引導啟動的子類。usb鍵盤、滑鼠屬於該子類,子類**為0x01。
0x02 binte***ceprotocol欄位。如果子類為支援引導啟動的子類,則協議可選擇滑鼠和鍵盤。鍵盤**為0x01,滑鼠**為0x02。
0x00 iconfiguration欄位。該介面的字串索引值。這裡沒有,為0。
USB 從配置描述符集合中獲取介面描述符
該程式用於從配置描述符集合中得到第 n 個介面描述符。原始碼如下 函式功能 從配置描述符集合中獲取介面描述符 cfg desc 配置描述符集合 num 要獲取的第幾個介面描述符 intf desc t 獲取到的介面描述符指標 return 錯誤碼 返回 eok 表示獲取成功 struct usb d...
USB 從介面描述符集合中獲取端點描述符
該程式用於從介面描述符集合中得到第 n 個端點描述符。原始碼如下 從介面描述符集合中獲取端點描述符 param intf desc 介面描述符 param num 要獲取的第幾個端點描述符 param ep desc 獲取到的端點描述符指標 return 錯誤碼,eok 表示成功 struct us...
關於usb描述符
usb 的描述符主要有裝置描述符,裝置限定描述符,介面描述符,端點描述符,字串描述符等等,usb的描述符之間的關係是一層一層的,首先最上層的是裝置描述符,然後是配置描述符,在下面的是介面描述符,最後是端點描述符.描述符在乙個usb的裝置中所起的作用是十分重要的,在裝置連線到usb主機以後,主機首先是...