usb描述符總結
參考**:
一、usb描述符:主機識別usb裝置的根據,主機根據裝置的描述符來載入相應的驅動程式。
二、描述符的分類:三大類
標準類描述符、裝置類描述符、廠商描述符。
具體如下圖:
三、使用的幾種類
裝置類deviceclass
介面類inte***ceclass
四、標準描述符
1.裝置描述符
2.配置描述符
3.介面描述符
整個配置描述符的長度,固定為0x09.
(2)bdescriptortype
由usb給配置描述符分配的型別編號, 值為常數0x04。
(3)binte***cenumber
介面的編號,如果乙個配置擁有n個介面, 那麼這些介面都是互不相干的, 每乙個介面都有惟一的編號, usb就是通過此字段來識別不同的介面。預設值為0。
(4)balternatesetting
usb裝置的配置與usb配置描述符是一一對應的, 即乙個配置只能有乙個配置描述符。usb允許多個介面描述符來描述同乙個介面, 而且這些描述符都可以通過命令來切換。這裡,此欄位就是每乙個這類描述符惟一的編號。usb可以通過呼叫這個欄位來切換描述同乙個介面的不同描述符。控制傳輸中可以通過get_inte***ce和set_inte***ce來獲取、設定目前正在使用的描述乙個確定介面的介面描述符的編號。
(5)bnumendpoints
該介面使用的端點總數(除端點0之外)。如果此值為0, 則意味著該介面只使用了端點0。
(6)binte***ceclass
該介面所屬的類別。這個類別編號由usb來分配。當值為0xff時, 表示該介面是廠商所定義的介面型別。而值0保留。
(7)binte***cesubclass
介面所屬的類別中的子類型別。這個子類編號也由usb分配。同binte***ceclass欄位一樣, 當其值為0xff時代表該介面由廠商自己所定義。而值0保留。
(8)binte***ceprotocol
此介面類所遵循的類的協議。因而, 該字段的值跟binte***ceclass和binte***cesubclass欄位是相關的。其值從1~0xfe由usb分配, 代表不同標準的裝置類的協議。 當值為0時, 表示該介面不遵循任何類協議; 而值為0xff時, 表示該介面應用了廠商自定義的類協議。
(9)iinte***ce
指向字串描述符中相應的字串內容, 用於描述該介面。 如果裝置沒有啟用字串描述符 , 則該值為0。
4.端點描述符
5.字串描述符
五、hid裝置類描述符
關於usb描述符
usb 的描述符主要有裝置描述符,裝置限定描述符,介面描述符,端點描述符,字串描述符等等,usb的描述符之間的關係是一層一層的,首先最上層的是裝置描述符,然後是配置描述符,在下面的是介面描述符,最後是端點描述符.描述符在乙個usb的裝置中所起的作用是十分重要的,在裝置連線到usb主機以後,主機首先是...
USB 描述符詳解
usb描述符的分類與介紹 usb的符述符分為幾類?有人可能會答 裝置描述符 配置描述符 介面描述符 端點描述符 字串描述符等。但這裡說的不是這樣的。上面的幾類描述符屬於usb標準描述符。另外還有hid描述符和hub描述符。所以分類是這樣的 1.標準描述符 1 裝置描述符 2 配置描述符 3 字串描述...
USB描述符舉例
裝置描述符給出了usb裝置的一般資訊。這包括裝置及裝置設定全程起作用的資訊,乙個usb裝置只能有乙個裝置描述符。所有的usb裝置都有預設的控制管道,在裝置描述符中給定了預設控制管道最大包長度。rom usb device descriptor device dsc 配置描述符給出了裝置配置的資訊,描...