如何為具體應(yīng)用選擇USB總線
為了理解為什么USB會(huì)成為如今的通用總線,讓我們看一下早期的PC:它有一個(gè)DOS操作系統(tǒng)和一個(gè)鍵盤(pán),但沒(méi)有圖形用戶(hù)接口(GUI)。絕大多數(shù)的PC在機(jī)箱內(nèi)沒(méi)有硬盤(pán)驅(qū)動(dòng)器,也沒(méi)有外部存儲(chǔ)。沒(méi)有萬(wàn)維網(wǎng),也無(wú)需外部網(wǎng)絡(luò)連接。因此,除了通常用并口連接的打印機(jī)之外,需要的外設(shè)很少。
隨著Windows引入GUI,開(kāi)始需要一個(gè)備選的輸入設(shè)備(HDI)。如今,鼠標(biāo)變成必需的設(shè)備。這種新連接,以及對(duì)訪問(wèn)網(wǎng)絡(luò)的需求,要求PC采用一個(gè)串口或COM口。那時(shí),絕大多數(shù)PC采用P/S-2或?qū)S媒涌谟糜阪I盤(pán)和鼠標(biāo)。
不過(guò),這些外設(shè)接口都有一些缺點(diǎn)。它們無(wú)法進(jìn)行接口擴(kuò)展,只能連接有限的外設(shè);它們的性能有限;另外也缺乏一個(gè)標(biāo)準(zhǔn)的連接。每個(gè)外設(shè)提供商都必須決定采用什么樣的接口,然后提供所需的驅(qū)動(dòng)程序,這對(duì)用戶(hù)來(lái)說(shuō)也是頗為頭痛的事情。
最終,每人都需要連接外設(shè)到PC,但過(guò)程是復(fù)雜的和令人糊涂的。絕大多數(shù)人不知道該用什么接口,也沒(méi)有人知道某種接口的限制。最后,導(dǎo)致一批權(quán)威的業(yè)界領(lǐng)導(dǎo)一起來(lái)定義一個(gè)新的通用PC外設(shè)連接,來(lái)替代復(fù)雜的傳統(tǒng)連接。
該規(guī)范定義了一個(gè)簡(jiǎn)單的四線接口,這是一個(gè)點(diǎn)對(duì)點(diǎn),使用方便的以主機(jī)為目標(biāo)架構(gòu)的接口??梢岳靡粋€(gè)集線器來(lái)實(shí)現(xiàn)總線擴(kuò)展,并連接到其它的USB目標(biāo)設(shè)備。另外,定義主機(jī)目標(biāo)架構(gòu)大大降低了成本,因?yàn)榻^大部分的“大腦”控制功能包含在采用CPU控制的PC中。
USB的架構(gòu)定義
USB是一個(gè)以主機(jī)為中心的總線,在這種總線中,由主機(jī)發(fā)起所有的數(shù)據(jù)轉(zhuǎn)移,包括出站和入站。該規(guī)范定義了三種基本的設(shè)備類(lèi)型:即主機(jī)控制器;集線器和功能模塊(即外設(shè)或目標(biāo)模塊);以及一個(gè)復(fù)合設(shè)備(集線器加“集成”外設(shè))。
內(nèi)部的物理連接是一個(gè)層疊的星型拓?fù)浣Y(jié)構(gòu),集線器位于每個(gè)星的中心(圖1)。每個(gè)線段是一個(gè)位于主機(jī)和集線器或功能塊之間的點(diǎn)對(duì)點(diǎn)連接,或者是從一個(gè)集線器連接到另一個(gè)集線器或功能塊。由于時(shí)序的限制,所允許的最大層數(shù)為7層(包括根層)。在主機(jī)和任何設(shè)備之間,通信信道可以支持最多達(dá)5層的非根層集線器。一個(gè)復(fù)合設(shè)備占用兩層。復(fù)合設(shè)備不能依附于第7層,在這一層只能使用功能塊,其他將不能用。地址結(jié)構(gòu)允許一個(gè)集線器連接的設(shè)備最多達(dá)127臺(tái)。集線器和外設(shè)可以任意組合。一臺(tái)復(fù)合或混合設(shè)備占用兩臺(tái)或更多的設(shè)備。
USB主機(jī)控制器
在任何的USB系統(tǒng)中都只有一臺(tái)主機(jī)。這與網(wǎng)絡(luò)架構(gòu)的定義不同,USB規(guī)范只是想實(shí)現(xiàn)外設(shè)到PC的方便連接。主機(jī)的實(shí)現(xiàn)的方法可能是硬件,固件或軟件的結(jié)合。典型的USB主機(jī)PC實(shí)現(xiàn)是內(nèi)核邏輯芯片集的一部分。該主控制器設(shè)備利用PC CPU來(lái)實(shí)現(xiàn)其運(yùn)算功能,利用系統(tǒng)存儲(chǔ)器來(lái)存儲(chǔ)數(shù)據(jù)和轉(zhuǎn)移,而在總體實(shí)現(xiàn)中利用OS。所有的主機(jī)需要在系統(tǒng)中集成一個(gè)根集線器。
當(dāng)今的OS已包括各種驅(qū)動(dòng)設(shè)備。這就為外設(shè)制造商節(jié)約了驅(qū)動(dòng)設(shè)備的研發(fā)成本,維護(hù)成本和運(yùn)輸成本。通常常用的驅(qū)動(dòng)設(shè)備包括音頻、HID、圖像、存儲(chǔ)、打印機(jī)和視頻。許多制造商充分利用了這些驅(qū)動(dòng)設(shè)備來(lái)實(shí)現(xiàn)它們的功能,但也會(huì)選用一個(gè)定制驅(qū)動(dòng)設(shè)備或應(yīng)用軟件來(lái)擴(kuò)展功能。
圖1:層疊星形拓?fù)浣Y(jié)構(gòu)的內(nèi)部物理連接。
USB集線器
可以將集線器視為一個(gè)分配器和轉(zhuǎn)發(fā)器的結(jié)合。集線器提供USB設(shè)備和主機(jī)之間的電接口,并直接負(fù)責(zé)支持USB用戶(hù)友好方面的許多屬性。它提供比主機(jī)能夠提供的更多的連接點(diǎn),并將來(lái)自上游端口的業(yè)務(wù)流重播到下游的端口上。集線器檢測(cè)下游端口的連接和斷開(kāi),并上報(bào)主機(jī)。集線器必須能夠支持下游端口所連接的USB外設(shè)的各種不同速率,并檢測(cè)和恢復(fù)連接中的總線故障。此外,集線器還管理為下游端口提供的電源,并將與此相關(guān)的任何問(wèn)題報(bào)告給主機(jī)。該規(guī)范定義了兩種不同的用于集線器的電源類(lèi)型,即總線和自供電。
總線供電方式從上游端口吸取功率。它只能從供電的上游端口吸取100mA的電流,而最終的配置后的電流可達(dá)到500mA。滿(mǎn)配置功率在集線器、任一個(gè)不可拆卸的功能塊或外部端口之間進(jìn)行分配。它必須為每個(gè)下游端口提供100mA。這就限定了總線供電集線器上的下游端口的數(shù)量不超過(guò)4個(gè)。因?yàn)槊總€(gè)端口需要100mA,因此四個(gè)下游端口需要400mA。因?yàn)榈谖鍌€(gè)下游端口也需要100mA,因而為集線器自身留下的電流為0mA。一個(gè)總線供電的集線器可以有4個(gè)外置下游端口,一個(gè)或多于一個(gè)的非外置下游端口——假定集線器和所有連接到非外置端口的所有功能塊消耗的總電流少于100mA。
自供電的集線器從本地電源(即墻體電源)提取功率。一個(gè)自供電的集線器將從其上游端口吸取高達(dá)100mA的電流,在集線器的其余部分的電源關(guān)斷時(shí),允許接口為功能塊供電。一個(gè)自供電的集線器需要為每個(gè)下游端口提供500mA。規(guī)范沒(méi)有限制一個(gè)自供電的集線器所能連接的下游端口數(shù)量,但出于供電的考慮通常限制到7個(gè)或更少一點(diǎn)。一個(gè)7端口的集線器必須能夠?yàn)楣δ軌K提供大于3.5A(500mA/每端口)的電流。
USB外設(shè)
今天的USB外設(shè)包括鼠標(biāo),存儲(chǔ)器棒,外驅(qū),便攜式音頻播放器和數(shù)碼相機(jī)。根據(jù)規(guī)范,一個(gè)外設(shè)是一個(gè)能夠執(zhí)行某項(xiàng)特定功能的邏輯或物理實(shí)體。最低級(jí)別的外設(shè)指的是一個(gè)單獨(dú)的硬件部件(即閃存)。而高級(jí)別的外設(shè)指的是一系列執(zhí)行特定功能的硬件部件(即:鍵盤(pán),生物指紋識(shí)別閱讀器和顯示設(shè)備)。
外設(shè)支持四種類(lèi)型的數(shù)據(jù)發(fā)送??刂瓢l(fā)送器為主機(jī)提供有關(guān)所連接的設(shè)備的類(lèi)型和功能。其余的三個(gè)(中斷,整塊(bulk),或同步)也都包含控制發(fā)送,不過(guò)只是專(zhuān)用于數(shù)據(jù)發(fā)送控制應(yīng)用。中斷發(fā)送在外設(shè)需要主機(jī)對(duì)其進(jìn)行周期性的輪詢(xún)以檢查是否有數(shù)據(jù)需要發(fā)送時(shí)使用。當(dāng)數(shù)據(jù)的完整性的重要性高于數(shù)據(jù)的延遲時(shí),整塊發(fā)送在主機(jī)系統(tǒng)和外設(shè)(打印機(jī),存儲(chǔ)設(shè)備等)之間傳遞數(shù)據(jù)。這包括錯(cuò)誤校驗(yàn),以及發(fā)現(xiàn)錯(cuò)誤后的重發(fā)。當(dāng)數(shù)據(jù)流的實(shí)時(shí)性高于其精度(即網(wǎng)絡(luò)攝影,講話和麥克風(fēng))的情況下,同步發(fā)送實(shí)時(shí)轉(zhuǎn)移數(shù)據(jù)。
規(guī)范中規(guī)定了兩種供電類(lèi)型:總線供電和自供電?;诳偩€供電又被分為低功率和高功率兩種。這兩種都從上游連接點(diǎn)獲取電源。對(duì)于低功率,基于總線供電的設(shè)備恒定地吸納100mA電流,而對(duì)于高功率設(shè)備,在配置之前可以吸納100mA電流,而在工作期間可以吸納最高達(dá)500mA的電流。對(duì)于自供電設(shè)備,當(dāng)從上游連接點(diǎn)提取電流時(shí),具體的限制與自供電的集線器一樣。它們可以吸納100mA的電流使USB接口能夠工作,而其余的功能將會(huì)斷電。所有其他的功率將由外部電源提供。此外,所有外設(shè)必須支持低功耗掛起狀態(tài),此時(shí)所吸納的電流小于500uA,該功率足以使計(jì)算機(jī)能夠喚醒掛起的設(shè)備。[!--empirenews.page--]
電池供電設(shè)備(主要是便攜式多媒體播放器)USB的普及為USB電源管理帶來(lái)了一個(gè)新挑戰(zhàn)。特別是在設(shè)備利用USB接口進(jìn)行充電時(shí)尤其如此。電池供電的設(shè)備也必須遵從與標(biāo)準(zhǔn)外設(shè)相同的規(guī)則。究竟它們能夠從上游連接點(diǎn)吸納多少電流用于充電,包括掛起狀態(tài)中的需求,取決于它們自己的報(bào)告。這對(duì)于沒(méi)電的設(shè)備來(lái)說(shuō)是一個(gè)極大的挑戰(zhàn)。通常,它們需要大電流來(lái)啟動(dòng)初始充電。
USB 2.0規(guī)范
雖然USB 1.1,USB 2.0,USB-OTG,WUSB和OTG都經(jīng)常采用,但這仍然為工程師以及終端用戶(hù)們帶來(lái)困惑。于1996年頒布的初始的USB1.0規(guī)范,所定義的低速率(LS)為1.5Mbps,而全速(FS)則為
12Mbps。1998年修訂的USB1.1主要是補(bǔ)充說(shuō)明和更新。后來(lái)又在2000年增加了高速USB,即USB2.0(480Mbps)。USB2.0全面超越了USB1.1,但全面向后兼容。2003年發(fā)布的USB OTG補(bǔ)充特別定義了便攜式和電池供電設(shè)備的連接。而2005年,又頒布了無(wú)線USB規(guī)范。
為了確保大量的終端用戶(hù)的USB體驗(yàn),USB論壇(USB-IF)維持一個(gè)資質(zhì)授予許可程序。為了獲得資質(zhì)徽標(biāo)的使用權(quán),設(shè)備廠商必須通過(guò)USB-IF的認(rèn)證,包括規(guī)范兼容性和互通性測(cè)試。對(duì)于標(biāo)準(zhǔn)的USB設(shè)備有兩個(gè)徽標(biāo):圖2a給出的是支持低速和全速的設(shè)備標(biāo)志;而圖2b則是用于支持最高數(shù)據(jù)率的高速設(shè)備標(biāo)志。
圖2:通過(guò)資質(zhì)認(rèn)證許可的USB標(biāo)志。
USB OTG是USB2.0的補(bǔ)充。該規(guī)范定義了一種新設(shè)備,這種設(shè)備擴(kuò)展了外設(shè)產(chǎn)品的功能,包括一些主機(jī)功能。便攜式設(shè)備定位于允許終端用戶(hù)在沒(méi)有可用的計(jì)算機(jī)時(shí)能夠共享數(shù)據(jù)(即,可以在支持照相功能的手機(jī)之間傳送照片,從照相機(jī)中直接打印照片等)。
和標(biāo)準(zhǔn)的USB一樣,OTG也是一種點(diǎn)對(duì)點(diǎn)設(shè)備,也是以主機(jī)為中心,而并非對(duì)等網(wǎng)絡(luò)連接。當(dāng)連接到一個(gè)標(biāo)準(zhǔn)USB主機(jī)(PC)時(shí),OTG產(chǎn)品必須作為一個(gè)標(biāo)準(zhǔn)的外設(shè)。OTG補(bǔ)充標(biāo)準(zhǔn)主要是解決當(dāng)設(shè)備作為主機(jī)并同時(shí)提供功率時(shí)如何執(zhí)行任務(wù)的問(wèn)題。電源電流被限制到8mA。由于OTG設(shè)備無(wú)法通過(guò)加載驅(qū)動(dòng)程序的簡(jiǎn)單方法來(lái)識(shí)別未知設(shè)備,故需要設(shè)備提供商提供一個(gè)目標(biāo)外設(shè)列表來(lái)說(shuō)明所支持的設(shè)備。同理還需要一個(gè)信息顯示,用來(lái)通知終端用戶(hù),指明插入了一個(gè)無(wú)法工作的非支持設(shè)備。最后,兩個(gè)新協(xié)議被定義:即主協(xié)議(HNP)(主機(jī)和設(shè)備間的動(dòng)態(tài)交換協(xié)議)和進(jìn)程請(qǐng)求協(xié)議(SRP)(由“主機(jī)”決定的總線電源的通/斷)。
OTG設(shè)備的資質(zhì)認(rèn)證也由USB-IF負(fù)責(zé)。圖2c為支持低速和全速的OTG設(shè)備認(rèn)證標(biāo)志;而圖2d為支持高速OTG連接的設(shè)備標(biāo)志。
WUSB是USB規(guī)范的最新擴(kuò)展。它定義了一個(gè)易用的無(wú)線接口,具有有線USB技術(shù)的高速率和安全性。合格的WUSB支持魯棒的高速無(wú)線連接,利用的是WiMedia MB-OFDM超寬帶無(wú)線平臺(tái)。采用專(zhuān)屬的低帶寬連接并支持鍵盤(pán)、鼠標(biāo)等設(shè)備的WUSB設(shè)備已經(jīng)面市了一段時(shí)間了。不過(guò)這些連接與USB-IF開(kāi)發(fā)和促進(jìn)的WUSB規(guī)范是不一樣的。USB-IF對(duì)各種WUSB產(chǎn)品(圖2e)進(jìn)行認(rèn)證,確保終端用戶(hù)能夠識(shí)別這些認(rèn)證的產(chǎn)品,并確保認(rèn)證產(chǎn)品彼此間具有互操作性和兼容性。