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