USB1.0設(shè)備為何能夠在USB2.0端口上使用?
USB從1994年開始提出以來,到目前為止共有三個版本:USB 1.0、USB 1.1和USB 2.0。USB 1.0只有低速(low speed,1.5Mbps)一種傳輸模式,USB 1.1增加了全速(full speed,12Mbps)模式,USB 2.0又增加了高速(high speed,480Mbps)模式。
本文引用地址:http://m.butianyuan.cn/article/201612/328913.htm圖1 USB端口與高速USB端口的標(biāo)志
為了使USB1.0的設(shè)備(鼠標(biāo)和鍵盤)在USB 2.0下面仍可以工作,首先要做的工作,就是讓2.0端口的物理形狀與1.0保持完全一致(圖2)。所以,僅從外觀上來看,我們是分別不出USB端口的版本。當(dāng)我們把U盤或移動硬盤插入到主機的USB接口時,往往并不知道移動設(shè)備的工作模式,也不知道數(shù)據(jù)傳輸率是究竟1.5Mbps、12Mbps,還是480Mbps。
圖2 兩種USB版本具有相同的連接器
(還有一種mini-B型,比B型的尺寸更小一些)
那么,USB 2.0端口怎樣保持與USB 1.0、USB 1.1設(shè)備之間相互兼容呢?2.0控制器又是怎樣判斷出設(shè)備是1.0還是2.0的呢?這就是本文將要解決的問題。
一、主機如何識別USB設(shè)備類型?
當(dāng)USB設(shè)備插上主機時,主機就通過一系列的動作來對設(shè)備進行枚舉配置,其中包括如下一些狀態(tài):
(1)接入態(tài)(Attached):設(shè)備接入主機后,主機通過檢測信號線上的電平變化來發(fā)現(xiàn)設(shè)備的接入;
(2)供電態(tài)(Powered):就是給設(shè)備供電,分為設(shè)備接入時的默認(rèn)供電值,配置階段后的供電值(按數(shù)據(jù)中要求的最大值,可通過編程設(shè)置);
(3)缺省態(tài)(Default):USB在被配置之前,通過缺省地址0與主機進行通信;
(4)地址態(tài)(Address):經(jīng)過了配置,USB設(shè)備被復(fù)位后,就可以按主機分配給它的唯一地址來與主機通信,這種狀態(tài)就是地址態(tài);
(5)配置態(tài)(Configured):主機發(fā)出標(biāo)準(zhǔn)的USB請求命令來獲取設(shè)備的各種信息,并根據(jù)這些信息對控制器進行設(shè)置。
(6)掛起態(tài)(Suspended):總線供電設(shè)備在3ms內(nèi)沒有總線操作,即USB總線處于空閑狀態(tài)的話,該設(shè)備就要自動進入掛起狀態(tài),在進入掛起狀態(tài)后,總的電流功耗不超過280UA。
USB設(shè)備的EEPROM芯片中存儲有設(shè)備描述符、配置描述符、字符描述符、接口描述符和端點描述符,其中的接口描述符會告訴主機該接口的類型。在配置態(tài),主機獲取USB設(shè)備信息,Windows的設(shè)備管理器將描述符內(nèi)的信息與PC內(nèi)部INF文檔進行比較,從中找出最佳匹配,然后指定一個設(shè)備驅(qū)動程序,這樣應(yīng)用程序就能夠訪問該設(shè)備了(圖3)。
圖3 Windows的“設(shè)備管理器”中可以看到枚舉成功的設(shè)備
二、保持兼容性的措施
為了保持向下兼容,需從軟硬件兩個方面去考慮。軟件方面的問題這里不準(zhǔn)備討論,我關(guān)心的只是硬件方面。
(1)帶寬分配與速率轉(zhuǎn)換
雖然USB 2.0定義了1.5Mbps、12Mbps和480Mbps三種傳輸速率,但任何一個設(shè)備的實際傳輸速率只能達(dá)到設(shè)備自身所允許的最高值。對于連接到2.0端口的低速設(shè)備,主控端需要降低速率,以保證通信的成功。USB2.0控制器中有一個稱為“Transaction Translator”的電路,就是負(fù)責(zé)進行傳輸速率轉(zhuǎn)換的。
(2)電平設(shè)置與電流分配
我們知道,USB連接線中有四條導(dǎo)線,其中的兩條用于傳送數(shù)據(jù),另外兩條則分別用來傳送電力與接地。這些擁有專門用途的導(dǎo)線都有特別的名稱:VBUS(電源)、Ground(接地)、D+與D-(信號線)。其中D+與D-是傳送USB數(shù)據(jù)的差分信號線。
圖4 由一對雙絞線組成差模信號傳輸線路
在全速與低速傳輸時,這對信號線的差分電壓為+/-3V。 而在高速傳輸時,這對信號線的差分電壓為+/-400mV。高速傳輸模式采用較低的電位有助于減少信號傳送的耗電量以及降低電磁干擾(EMI)。
當(dāng)設(shè)備剛插入時,僅允許它吸入100mA的電流,只有當(dāng)確定設(shè)備為USB 2.0時,才允許它吸入最高500mA的電流。
三、 如何確認(rèn)USB設(shè)備工作在1.0,1.1,還是2.0模式?
雖然今天的電腦提供兩個以上的USB端口,但有些只能用于USB1.0和USB 1.1的數(shù)據(jù)傳輸,并不能支持USB 2.0的數(shù)據(jù)傳輸。另外,從設(shè)備管理器中我們還可以看到,USB控制器保留了10%的帶寬,所以USB的帶寬只能達(dá)到理論帶寬的90%。當(dāng)我們把一個移動硬盤插入電腦時,系統(tǒng)并沒有告訴我們它的實際速率,Windows的設(shè)備管理器中也沒有顯示它的工作模式。這就是說,即便插入的設(shè)備可以工作,但是它是否達(dá)到了我們所期望數(shù)據(jù)傳輸速度,尚無法確認(rèn)。從這個意義上講,弄清楚它的工作模式是有實際意義的。
如何得知設(shè)備的實際工作模式呢?看來只有借助于第三方測試軟件了。下面以Travel star 40GB移動硬盤為例,使用兩款軟件測試其數(shù)據(jù)傳輸率。
HD Tach是一款專用的硬盤速度測試軟件,測出的數(shù)據(jù)為:最大值23.8MB/s,最小值:13.8MB/s;平均值:20.0MB/s(圖5)。
圖5 HD Tach 2.70的測量結(jié)果
SiSoft Sandra Pro 2005 是一款系統(tǒng)信息測試軟件,該軟件的“文件系統(tǒng)測試”項可以測試硬盤(包括移動硬盤)的傳輸速率,測出的數(shù)據(jù)傳輸率為24MB/s(圖6)。
圖6 SiSoft Sandra Pro 2005 的測量結(jié)果
雖然兩款軟件測試結(jié)果不盡相同,卻說明了同一個事實:移動硬盤確實工作在USB 2.0模式下,因為這些數(shù)據(jù)都超過了USB 1.1規(guī)范的最大理論值12MB/s。
四、USB 2.0 為何≠ 480Mbps
由上面這些測試數(shù)據(jù),我們已經(jīng)看到,USB2.0的設(shè)備,也未必就意味著它們就是以480Mbps的數(shù)據(jù)傳輸率進行數(shù)據(jù)交換。這是因為:
(1)傳輸線路的影響
由于USB 2.0 High-speed接口的傳輸速率是USB 1.1的40倍,二者的數(shù)據(jù)延長線有明顯不同。仔細(xì)觀察USB 2.0 High-speed延長線纜,通??煽吹?ldquo;USB Revision 2.0”或“High-speed USB”的標(biāo)注。如果使用不符合標(biāo)準(zhǔn)的或者劣質(zhì)的延長線,可能會導(dǎo)致傳輸率下降或讀寫錯誤。
(2)設(shè)備性能的限制
就目前來說,突發(fā)傳輸率能夠達(dá)到480Mbps的設(shè)備還不多見。硬盤的數(shù)據(jù)傳輸率最高,也沒有達(dá)到這個數(shù)值。與硬盤相比,閃存的讀寫速度更慢一些,至少目前還達(dá)不到480Mps這么高的速度。
評論