除了上述所介紹的描述符類型外,若用戶想要將1.x規(guī)范的設(shè)各兼容2.0規(guī)范,就必須對描述符作若干的修正。在雙速度設(shè)各中,如 何通過讀取其描述符來檢測設(shè)備的目前速度,就是一個非常重要的課題?! ∪绫?所列,為1.x規(guī)范設(shè)備要與2.0規(guī)范設(shè)備兼容時,所須修改的描述符字段。其中,用戶會發(fā)現(xiàn)僅具各等時端點的設(shè)各須去修 改等時端點描述符的內(nèi)容,而在設(shè)備描述符中,唯一也是僅須去修改的字段是bcddevice,且將其更改為0200h?! ≡诖隧氈?,設(shè)備的預(yù)設(shè)上,必須要求無等時的帶寬。這是因為這些接口并沒有使 用等時傳輸?shù)臄?shù)據(jù),若設(shè)各想要去執(zhí)行等時傳輸,它必須支持至少一個接口設(shè)置,其中還須內(nèi)含至少一個端點描述符。而有部分1.x 設(shè)備也已經(jīng)符合了這個要求。所以說,若沒有使用等時傳輸,也就無須更改這些字段設(shè)置值?! ≡?.0規(guī)范中對于已存在的字段的若干位,增加了2個新的描述符與功能。但是如表1所列,所使用到的新描述符僅用在雙速度的設(shè) 各上。而所存在的描述符也與規(guī)范1.x向下兼容。表1 1.x規(guī)范與2.0規(guī)范兼容所須改變的描述符類型及其字段 而高速設(shè)備必須以全速的方式來響應(yīng)設(shè)備列舉的標(biāo)準要求的過程,以及也可能具備與全速完全兼容的功能。 前面的章節(jié)有提及過,如果一個具備與高速兼容的設(shè)備連接至1.x規(guī)范主機,或如果介于主機與設(shè)備之間使用1.x規(guī)范集線器,就必 須使用全速的功能?! 《鴮τ趹?yīng)用程序與設(shè)備驅(qū)動程序通常無須知道這雙速度設(shè)備是使用何種速度,因為所有的應(yīng)用程序與設(shè)備驅(qū)動程序若與速度相關(guān)的 都可以以較低階的方式來加以處理。事實上,windows操作系統(tǒng)沒有直接的方法可以知道設(shè)備的速度是什么,但是,還是有一些小技巧,可以讓主機知道有一些設(shè)備仍可提供相關(guān)信息?! ±纾绻O(shè)備具有批量端點,用戶即可通過設(shè)備列舉,以主動的方式去取得并檢查端點描述符的信息。其中,對maxpacksize字段 來說,若設(shè)置為512(個字節(jié)),即可知道目前所連接上的是高速設(shè)備。這是因為全速設(shè)備不能設(shè)置這個數(shù)值。若以此方式來推演, 假設(shè)沒有批量端點,也可以使用中斷端點與等時端點所設(shè)置的maxpacksize字段,同樣地,用戶也可用來判斷此設(shè)備是屬于哪一種速 度。其中,針對中斷端點的maxpacksize字段來說,若設(shè)置超過64的數(shù)值,就可表示目前是高速設(shè)備。但是,若高速設(shè)各也有可能設(shè) 置為64,或更低的maxpacksize值。再者同樣的道理,對于等時端點的maxpacksize字段來說,若設(shè)置為1 024的數(shù)值,表示目前連接 上的是一個高速設(shè)各。但是,相對的高速設(shè)備也有可能設(shè)置為l 024或更低的maxpacksize值。因此,這種方式并不能絕對保證此設(shè)備 一定是高速設(shè)備?! ∪绻脩粼?jīng)編寫過固件程序代碼,用戶可以通過配置描述符或other_speed_configuration描述符,利用可選擇性的配置字符串 索引來添加一些與速度相關(guān)的信息。例如,以cypress ez-usb fx2(usb 2.0)的固件范例程序代碼bulkloop來說明。以下列出其描 述符文件的內(nèi)容。 從這個程序范例碼中觀察到,可以把描述符分成:highspeedconfigdscr與full-speedconfigdscr兩組,分別設(shè)置高速與全速的各種描述符。其中,設(shè)備描述符的bcd-device字段設(shè)置成:dw 0002h方式(因為是little endian),用來表示高速設(shè)備?! ≡谏郧八鶖⑹龅膗sb設(shè)備描述符的“設(shè)備群組”字段以及“設(shè)備次群組”字段中,定義了設(shè)備群組。那什么是設(shè)各群組呢?在usb的 文件中,定義了將某種相同屬性的設(shè)備整合在一起的群體,稱之為群組(class)。而將這些相同屬性的設(shè)備組合在一起的優(yōu)點是, 可以同時開發(fā)該群組以pc主機為主的驅(qū)動程序。 例如,鼠標(biāo)是屬于人工接口設(shè)備的一種,其群組驅(qū)動程序已包含在操作系統(tǒng)下。如果鼠標(biāo)也遵循了設(shè)備群組規(guī)范,那么鼠標(biāo)的制造 商在出售時,根本就無須另外再附一套驅(qū)動程序。也就是可以直接使用windows 98 se或windows 2000所內(nèi)建的人工接口設(shè)備的驅(qū)動 程序。這樣,硬件的制造商只須專心開發(fā)其硬件電路即可。相對的,倘若該設(shè)備并不符合人工接口設(shè)備群組,就必須使用含有win32 api調(diào)用的vb、c++或delphi等高級程序,另外再編寫其驅(qū)動程序?! ∫韵铝谐鰑sb規(guī)范中所定