如何為具體應(yīng)用選擇USB總線
為了理解為什么USB會成為如今的通用總線,讓我們看一下早期的PC:它有一個DOS操作系統(tǒng)和一個鍵盤,但沒有圖形用戶接口(GUI)。絕大多數(shù)的PC在機箱內(nèi)沒有硬盤驅(qū)動器,也沒有外部存儲。沒有萬維網(wǎng),也無需外部網(wǎng)絡(luò)連接。因此,除了通常用并口連接的打印機之外,需要的外設(shè)很少。
本文引用地址:http://m.butianyuan.cn/article/148795.htm隨著Windows引入GUI,開始需要一個備選的輸入設(shè)備(HDI)。如今,鼠標(biāo)變成必需的設(shè)備。這種新連接,以及對訪問網(wǎng)絡(luò)的需求,要求PC采用一個串口或COM口。那時,絕大多數(shù)PC采用P/S-2或?qū)S媒涌谟糜阪I盤和鼠標(biāo)。
不過,這些外設(shè)接口都有一些缺點。它們無法進行接口擴展,只能連接有限的外設(shè);它們的性能有限;另外也缺乏一個標(biāo)準(zhǔn)的連接。每個外設(shè)提供商都必須決定采用什么樣的接口,然后提供所需的驅(qū)動程序,這對用戶來說也是頗為頭痛的事情。
最終,每人都需要連接外設(shè)到PC,但過程是復(fù)雜的和令人糊涂的。絕大多數(shù)人不知道該用什么接口,也沒有人知道某種接口的限制。最后,導(dǎo)致一批權(quán)威的業(yè)界領(lǐng)導(dǎo)一起來定義一個新的通用PC外設(shè)連接,來替代復(fù)雜的傳統(tǒng)連接。
該規(guī)范定義了一個簡單的四線接口,這是一個點對點,使用方便的以主機為目標(biāo)架構(gòu)的接口。可以利用一個集線器來實現(xiàn)總線擴展,并連接到其它的USB目標(biāo)設(shè)備。另外,定義主機目標(biāo)架構(gòu)大大降低了成本,因為絕大部分的“大腦”控制功能包含在采用CPU控制的PC中。
USB的架構(gòu)定義
USB是一個以主機為中心的總線,在這種總線中,由主機發(fā)起所有的數(shù)據(jù)轉(zhuǎn)移,包括出站和入站。該規(guī)范定義了三種基本的設(shè)備類型:即主機控制器;集線器和功能模塊(即外設(shè)或目標(biāo)模塊);以及一個復(fù)合設(shè)備(集線器加“集成”外設(shè))。
內(nèi)部的物理連接是一個層疊的星型拓撲結(jié)構(gòu),集線器位于每個星的中心(圖1)。每個線段是一個位于主機和集線器或功能塊之間的點對點連接,或者是從一個集線器連接到另一個集線器或功能塊。由于時序的限制,所允許的最大層數(shù)為7層(包括根層)。在主機和任何設(shè)備之間,通信信道可以支持最多達5層的非根層集線器。一個復(fù)合設(shè)備占用兩層。復(fù)合設(shè)備不能依附于第7層,在這一層只能使用功能塊,其他將不能用。地址結(jié)構(gòu)允許一個集線器連接的設(shè)備最多達127臺。集線器和外設(shè)可以任意組合。一臺復(fù)合或混合設(shè)備占用兩臺或更多的設(shè)備。
USB主機控制器
在任何的USB系統(tǒng)中都只有一臺主機。這與網(wǎng)絡(luò)架構(gòu)的定義不同,USB規(guī)范只是想實現(xiàn)外設(shè)到PC的方便連接。主機的實現(xiàn)的方法可能是硬件,固件或軟件的結(jié)合。典型的USB主機PC實現(xiàn)是內(nèi)核邏輯芯片集的一部分。該主控制器設(shè)備利用PC CPU來實現(xiàn)其運算功能,利用系統(tǒng)存儲器來存儲數(shù)據(jù)和轉(zhuǎn)移,而在總體實現(xiàn)中利用OS。所有的主機需要在系統(tǒng)中集成一個根集線器。
當(dāng)今的OS已包括各種驅(qū)動設(shè)備。這就為外設(shè)制造商節(jié)約了驅(qū)動設(shè)備的研發(fā)成本,維護成本和運輸成本。通常常用的驅(qū)動設(shè)備包括音頻、HID、圖像、存儲、打印機和視頻。許多制造商充分利用了這些驅(qū)動設(shè)備來實現(xiàn)它們的功能,但也會選用一個定制驅(qū)動設(shè)備或應(yīng)用軟件來擴展功能。
圖1:層疊星形拓撲結(jié)構(gòu)的內(nèi)部物理連接。
USB集線器
可以將集線器視為一個分配器和轉(zhuǎn)發(fā)器的結(jié)合。集線器提供USB設(shè)備和主機之間的電接口,并直接負責(zé)支持USB用戶友好方面的許多屬性。它提供比主機能夠提供的更多的連接點,并將來自上游端口的業(yè)務(wù)流重播到下游的端口上。集線器檢測下游端口的連接和斷開,并上報主機。集線器必須能夠支持下游端口所連接的USB外設(shè)的各種不同速率,并檢測和恢復(fù)連接中的總線故障。此外,集線器還管理為下游端口提供的電源,并將與此相關(guān)的任何問題報告給主機。該規(guī)范定義了兩種不同的用于集線器的電源類型,即總線和自供電。
總線供電方式從上游端口吸取功率。它只能從供電的上游端口吸取100mA的電流,而最終的配置后的電流可達到500mA。滿配置功率在集線器、任一個不可拆卸的功能塊或外部端口之間進行分配。它必須為每個下游端口提供100mA。這就限定了總線供電集線器上的下游端口的數(shù)量不超過4個。因為每個端口需要100mA,因此四個下游端口需要400mA。因為第五個下游端口也需要100mA,因而為集線器自身留下的電流為0mA。一個總線供電的集線器可以有4個外置下游端口,一個或多于一個的非外置下游端口——假定集線器和所有連接到非外置端口的所有功能塊消耗的總電流少于100mA。
自供電的集線器從本地電源(即墻體電源)提取功率。一個自供電的集線器將從其上游端口吸取高達100mA的電流,在集線器的其余部分的電源關(guān)斷時,允許接口為功能塊供電。一個自供電的集線器需要為每個下游端口提供500mA。規(guī)范沒有限制一個自供電的集線器所能連接的下游端口數(shù)量,但出于供電的考慮通常限制到7個或更少一點。一個7端口的集線器必須能夠為功能塊提供大于3.5A(500mA/每端口)的電流。
USB外設(shè)
今天的USB外設(shè)包括鼠標(biāo),存儲器棒,外驅(qū),便攜式音頻播放器和數(shù)碼相機。根據(jù)規(guī)范,一個外設(shè)是一個能夠執(zhí)行某項特定功能的邏輯或物理實體。最低級別的外設(shè)指的是一個單獨的硬件部件(即閃存)。而高級別的外設(shè)指的是一系列執(zhí)行特定功能的硬件部件(即:鍵盤,生物指紋識別閱讀器和顯示設(shè)備)。
外設(shè)支持四種類型的數(shù)據(jù)發(fā)送。控制發(fā)送器為主機提供有關(guān)所連接的設(shè)備的類型和功能。其余的三個(中斷,整塊(bulk),或同步)也都包含控制發(fā)送,不過只是專用于數(shù)據(jù)發(fā)送控制應(yīng)用。中斷發(fā)送在外設(shè)需要主機對其進行周期性的輪詢以檢查是否有數(shù)據(jù)需要發(fā)送時使用。當(dāng)數(shù)據(jù)的完整性的重要性高于數(shù)據(jù)的延遲時,整塊發(fā)送在主機系統(tǒng)和外設(shè)(打印機,存儲設(shè)備等)之間傳遞數(shù)據(jù)。這包括錯誤校驗,以及發(fā)現(xiàn)錯誤后的重發(fā)。當(dāng)數(shù)據(jù)流的實時性高于其精度(即網(wǎng)絡(luò)攝影,講話和麥克風(fēng))的情況下,同步發(fā)送實時轉(zhuǎn)移數(shù)據(jù)。
規(guī)范中規(guī)定了兩種供電類型:總線供電和自供電?;诳偩€供電又被分為低功率和高功率兩種。這兩種都從上游連接點獲取電源。對于低功率,基于總線供電的設(shè)備恒定地吸納100mA電流,而對于高功率設(shè)備,在配置之前可以吸納100mA電流,而在工作期間可以吸納最高達500mA的電流。對于自供電設(shè)備,當(dāng)從上游連接點提取電流時,具體的限制與自供電的集線器一樣。它們可以吸納100mA的電流使USB接口能夠工作,而其余的功能將會斷電。所有其他的功率將由外部電源提供。此外,所有外設(shè)必須支持低功耗掛起狀態(tài),此時所吸納的電流小于500uA,該功率足以使計算機能夠喚醒掛起的設(shè)備。
評論