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