USB 介面描述符 四

2021-10-02 05:46:52 字數 1432 閱讀 7705

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主機以後,主機首先是...