配置描述符具有9 b的長度,并且針對設備給予配置的信息。但應注意的是,對每個設各而言可能不止一種配置類型,其配置的數 目由上面的設各描述符的最后一個字段bnumconfigurations設置。當主機要求設備的配置時,它將會連續(xù)讀取這些描述符,直到所有 的配置已經接收完畢為止。雖然大部分設各非常簡單,并僅有一種配置方式,但usb設備能夠具有幾種不同配置方式。在配置描述符 中,設置了設各如何提供電源消耗、電源消耗量以及其具各的接口數目。因此,設各有可能具各2種配置方式,一種是設各是總線供 電,另一種是自我供電?! ∫坏┧械呐渲靡呀浲ㄟ^主機檢查過后,主機就會送出非0數值的setconfigura-tlon命令,而此數值符合配置之一 bconfigurationvalue字段值。這個動作用來選擇所要的配置方式。 以usb鼠標為例,利用view descriptors項目與device framework項目所測試的配置描述符如圖1和圖2所示。圖1 view descriptors項目所測試的配置描述符圖2 device framework項目所測試的配置描述符 以下,列出配置描述符的范例、數值以及各個字段的意義?! 。籦length,長度大小(9字節(jié)) ?。籦descriptortype,描述符類型,2代表配置(1字節(jié)) ,ooh ;wtatollength,描述符的總長度(34字節(jié)),(包括配置描述符9字節(jié)、接口描述符 ??;9字節(jié)、端點描述符7字節(jié)與群組描述符9字節(jié))。在這例子中,總長度為34字節(jié) ;bnumlnterface,用來配置的接口的數目(1字節(jié)) ;bconfigurationvalue,配置值(1字節(jié)) ??;iconfiguration,配置的字符串描述符的索引(1字節(jié)) ??;bmattributes,配置的屬性(具有總線供電與遠程喚醒的特性)(1字節(jié)) 最大電源以2ma為單位,在這例子中,32h×2ma=100 ma(1字節(jié)) 其中,應注意的是bmattributes字段配置了這個設各的電源屬性。bit-7表示總線供電,bit-6表示自我供電,bit-5表示具有遠程喚 醒的功能,bit[4:0]則保留使用。例如,上面的數值0xa0,表示這個設備具有遠程喚醒的功能,且是總線供電的。而maxpower字段 ,則說明以2 ma為單位的設各最大電源。此外,當通過控制傳輸來讀取配置描述符時,它將會回傳包含了相關的接口與端點描述符完 整的配置層,如圖3所示。wtotallength字段即是放置了在這層圖中所有的字節(jié)數目。圖3 配置描述符中的wtotallenrth字段所存放的字節(jié)層圖