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