USB 小知識
1、即插即用(Plug-and-Play)
USB 比較于其他傳統(tǒng)接口的一個優(yōu)勢是即插即用的實現(xiàn),即插即用(Plug-and-Play )也可以叫做熱插拔(Hot Plugging)。對于用戶來講,第一次插入USB 外設(shè),自動或手動安裝驅(qū)動程序,他就應(yīng)該可以使用這個外設(shè)了,這是很友好的用戶體驗。如果操作系統(tǒng)提示你重新啟動電腦,說明這個外設(shè)沒有實現(xiàn)即插即用,從嚴(yán)格意義上來講,這并不是一個USB 的外設(shè)。如果告訴用戶這是應(yīng)該的,就是在欺騙用戶。
對于微軟來說,如果外設(shè)沒有實現(xiàn)即插即用,就無法獲得WHQL 認(rèn)證。而對于USB IF(USB 實現(xiàn)者論壇)來說,如果外設(shè)沒有實現(xiàn)即插即用,就無法獲得USB 的認(rèn)證,不能使用USB 的標(biāo)識。這個標(biāo)識可以在USB 的官方網(wǎng)站www.usb.org 看到(本文的下面也有),由于在USB2.0 規(guī)范發(fā)布之后,USB IF 改變了原先的標(biāo)識,有些制造商仍使用原先的標(biāo)識,這其實也是在欺騙用戶。
USB 的外設(shè)有很多,其中有很多外設(shè)有相似的特性,這些外設(shè)被歸為某一類,例如鍵盤、鼠標(biāo)等為HID 類,音響產(chǎn)品為Audio 類,硬盤、CD-ROM 、Flash 為Mass Storage 類。微軟為一些常用類提供了類驅(qū)動程序,如果一個外設(shè)設(shè)計滿足該類的規(guī)范,在第一次插入PC 時,操作系統(tǒng)可以自動識別到,并且自動調(diào)用該類驅(qū)動程序,這就是所謂的自動安裝。目前Windows 能支持的類驅(qū)動程序只有HID、Audio 和Mass Storage,除此之外制造商必須提供自己的驅(qū)動程序。很不幸,USB 轉(zhuǎn)串口的應(yīng)用就屬于這種情況,這就需要所謂的手動安裝。手動安裝有兩種可能,一種是在第一次插入USB 時,系統(tǒng)會提示用戶安裝驅(qū)動程序,用戶可以根據(jù)彈出窗口的提示進行安裝,這時可能需要用戶做一些搜索,有些用戶可能會覺得這樣不太方便;所以另一種方法是提供一個安裝程序,將所有有關(guān)的應(yīng)用/驅(qū)動程序打包在一起,一次性安裝完成。如果驅(qū)動程序沒有獲得WHQL 認(rèn)證,在安裝過程中需要用戶用鼠標(biāo)點擊一到二次“繼續(xù)”和“完成”;而如果驅(qū)動程序獲得WHQL 認(rèn)證,就無需這么麻煩,這也可稱為安靜安裝(Silent Install)。
2、USB 多串口協(xié)議(UMP)
在安裝USB 轉(zhuǎn)串口設(shè)備時,用戶發(fā)現(xiàn)會出現(xiàn)二個步驟,一個是在接口(并串口)下有一個USB 設(shè)備,另一個就是USB 多串口協(xié)議(UMP)。其實這是正確的,首先USB 轉(zhuǎn)串口的設(shè)備是用來模擬一個串口(COM ),所以是一個虛擬的COM 口;其次這是一個USB 轉(zhuǎn)串口的橋,它必須遵循USB 多串口協(xié)議。
在外設(shè)的“設(shè)備描述器”(Device Description)中,這個設(shè)備是一個USB 轉(zhuǎn)串口的橋,每次外設(shè)接入時,操作系統(tǒng)會去讀這個“設(shè)備描述器”來了解接入的是什么設(shè)備,并把它加入到“設(shè)備管理器”中(Device Manager)。這是第一步,之后操作系統(tǒng)知道這個外設(shè)是要實現(xiàn)一個虛擬的串口,所以在COM 下會加上USB 設(shè)備。
有一些應(yīng)用中,只出現(xiàn)一個虛擬串口,而沒有USB 多串口協(xié)議。其實這是在驅(qū)動程序上作了手腳,屏蔽了很關(guān)鍵的第一步,沒有向操作系統(tǒng)報告設(shè)備的屬性。這樣做看似簡單了,但根本沒有可能獲得WHQL 認(rèn)證,也無法得到USB 的認(rèn)證。
3、500mA 的總線供電模式
USB 的規(guī)范中規(guī)定一個USB 的根集線器(root hub)最多只能提供500mA 的電流,這一方面是為了減輕PC 機的負(fù)擔(dān),另一方面是保護USB 的主控制器(Host Controller),目前USB 主控制器往往集成在南橋中。理論上來講,任何一個USB Hub 應(yīng)該使用一個電源開關(guān)來防止過電流,但目前至少有10%以上的主板沒有使用電源開關(guān)或使用一些低性能的元器件以節(jié)省成本。
當(dāng)外設(shè)需要多于500mA 的電流時,就需要采用自供電模式了。這對于USB 硬盤的應(yīng)用是一個瓶頸,也是一個挑戰(zhàn)。2.5 英寸以上的硬盤本身就需要超過500mA,所以必須自供電,自供電可以使用電池,也可以使用穩(wěn)壓源,這對于移動設(shè)備來說都不是理想的方法。有一種折衷的方法是連接兩個USB 口,可以獲得兩倍的電流-1A 。這是沒有辦法的辦法,同樣無法WHQL 和USB 認(rèn)證。操作起來也很麻煩,必須先接上供電口,再接上設(shè)備口等等。
好消息是硬盤的尺寸越來越小型化,耗電越來越省。1.8、1.5、1 英寸的硬盤已被廣泛應(yīng)用,性能越來越穩(wěn)定,這些硬盤的耗電在300mA 之內(nèi),如果USB 控制芯片的耗電能控制在200mA 之內(nèi),就可以真正實現(xiàn)由總線來供電。TI 的TUSB6250 就是業(yè)界第一片實現(xiàn)總線供電的USB2.0 高速(480Mbps)轉(zhuǎn)ATA/ATAPI 的解決方案。
4、USB 與ATA/ATAPI 的沖突
USB 轉(zhuǎn)ATA/ATAPI 橋的控制器存在一些內(nèi)在的沖突,原因在于橋的兩邊都試圖要控制橋本身,例如USB 和ATA/ATAPI 都向往橋發(fā)送數(shù)據(jù)或接收數(shù)據(jù),可以把這稱為競爭,這時候橋無法解決優(yōu)先權(quán)的話,數(shù)據(jù)的傳送就停了下來。更嚴(yán)重的是橋還無法把這種狀況通知PC 機和硬盤,PC 機和硬盤仍然不斷地嘗試,卻沒有出錯信息提示給用戶,用戶就會很困惑,不知道發(fā)生了什么情況。這時候除了關(guān)機重新啟動電腦,別無他法。
USB 的Mass Storage 類規(guī)范共總結(jié)出13 種不同的沖突,這些沖突從標(biāo)準(zhǔn)本身已無法解決,只能用硬件或軟件的方法來解決。TI 的TUSB6250 就很好地處理和解決了這個難題,其實就是增加了對競爭的仲裁,解決了優(yōu)先權(quán)的判斷,在同一時間只允許一個控制邏輯來控制總線,不會發(fā)生總線的堵塞。
評論