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