完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>
標(biāo)簽 > USB總線
USB總線是為通用串行總線,USB接口位于PS/2接口和串并口之間,允許外設(shè)在開(kāi)機(jī)狀態(tài)下熱插拔,最多可串接下來(lái)127個(gè)外設(shè),傳輸速率可達(dá)480Mb/S,它可以向低壓設(shè)備提供5伏電源,同時(shí)可以減少PC機(jī)I/O接口數(shù)量。
USB總線是為通用串行總線,USB接口位于PS/2接口和串并口之間,允許外設(shè)在開(kāi)機(jī)狀態(tài)下熱插拔,最多可串接下來(lái)127個(gè)外設(shè),傳輸速率可達(dá)480Mb/S,它可以向低壓設(shè)備提供5伏電源,同時(shí)可以減少PC機(jī)I/O接口數(shù)量。
USB總線:
通用串行總線USB(universal serial bus)是由Intel、 Compaq、Digital、IBM、Microsoft、NEC、Northern Telecom等7家世界著名的計(jì)算機(jī)和通信公司共同推出的一種新型接口標(biāo)準(zhǔn)。它基于通用連接技術(shù),實(shí)現(xiàn)外設(shè)的簡(jiǎn)單快速連接,達(dá)到方便用戶、降低成本、擴(kuò)展PC連接外設(shè)范圍的目的。它可以為外設(shè)提供電源,而不像普通的使用串、并口的設(shè)備需要單獨(dú)的供電系統(tǒng)。另外,快速是USB技術(shù)的突出特點(diǎn)之一,USB的最高傳輸率可達(dá)12Mbps比串口快100倍,比并口快近10倍,而且USB還能支持多媒體UBS通用串行總線的特性阻抗是90歐姆。
USB總線是為通用串行總線,USB接口位于PS/2接口和串并口之間,允許外設(shè)在開(kāi)機(jī)狀態(tài)下熱插拔,最多可串接下來(lái)127個(gè)外設(shè),傳輸速率可達(dá)480Mb/S,它可以向低壓設(shè)備提供5伏電源,同時(shí)可以減少PC機(jī)I/O接口數(shù)量。
USB總線:
通用串行總線USB(universal serial bus)是由Intel、 Compaq、Digital、IBM、Microsoft、NEC、Northern Telecom等7家世界著名的計(jì)算機(jī)和通信公司共同推出的一種新型接口標(biāo)準(zhǔn)。它基于通用連接技術(shù),實(shí)現(xiàn)外設(shè)的簡(jiǎn)單快速連接,達(dá)到方便用戶、降低成本、擴(kuò)展PC連接外設(shè)范圍的目的。它可以為外設(shè)提供電源,而不像普通的使用串、并口的設(shè)備需要單獨(dú)的供電系統(tǒng)。另外,快速是USB技術(shù)的突出特點(diǎn)之一,USB的最高傳輸率可達(dá)12Mbps比串口快100倍,比并口快近10倍,而且USB還能支持多媒體UBS通用串行總線的特性阻抗是90歐姆。
USB基本架構(gòu)與總線架構(gòu)
如圖1所示,一般USB系統(tǒng)的基本架構(gòu)可以分為3個(gè)主要的部分:
·USB主機(jī)控制器/根集線器;
·USB集線器;
·USB設(shè)備。
圖1 USB基本架構(gòu)
1.USB主機(jī)控制器/根集線器
所有在USB系統(tǒng)上溝通都是在軟件控制下由PC主機(jī)激活的。主機(jī)硬件包括USB主機(jī)控制器(USB host controller)與USB根集線器(USB root hub)兩種。
如圖2所示,在用戶計(jì)算機(jī)上的系統(tǒng)屬性的“設(shè)各管理器”中所顯示的“通用串行總線控制器”內(nèi),包含了下列所示的兩組項(xiàng)目:
·Standard Universal PCI to USB H°st Controller——USB主機(jī)控制器;
·USB Root Hub——USB根集線器。
圖2 設(shè)備管理器下的USB所包含的項(xiàng)目
當(dāng)然,大部分的計(jì)算機(jī)僅有一組而已。若在操作系統(tǒng)中,未涵蓋類似的設(shè)各信息畫面,則代表此主機(jī)并未支持USB接口。用戶可能就必須另外購(gòu)置USB接口的擴(kuò)充卡來(lái)加以使用。而筆記本電腦則須使用PCMCIA接口的擴(kuò)充卡。相同的方式,若用戶須要將原先USB 1.1主機(jī)控制器的規(guī)范升級(jí)為USB 2.0,也同樣須購(gòu)置USB 2.0的擴(kuò)充卡。
如圖3所示,為Windows 2000下的“設(shè)各管理器”,在“通用串行總線控制器”所包含的USB 2.0主機(jī)控制器的項(xiàng)目。
圖3 “設(shè)備管理器凵下的“通用串行總線控制器”所包含的項(xiàng)目(USB 2.0)
而其相關(guān)的功能說(shuō)明如下所列:
·USB主機(jī)控制器——負(fù)責(zé)激活USB系統(tǒng)上的處理動(dòng)作,簡(jiǎn)而言之,就是整個(gè)USB系統(tǒng)的大腦。目前依USB開(kāi)發(fā)的進(jìn)度,有“OHC—Open Host Controllet開(kāi)放式主機(jī)控制器”與“UHC—Universal Host Controller通用式主機(jī)控匍器”兩種。這兩種主機(jī)控制器的功能完全是一樣的,只是內(nèi)部的運(yùn)作方法稍有不同而已。在Microsoft的Windows系統(tǒng)上,這兩種主機(jī)控制器都被支持,用戶只須知道有這兩種控制器就行了。在新的USB 2.0規(guī)范下,則應(yīng)用上述所提及的增強(qiáng)型主機(jī)控制器(Enhanced Host Controller Interface,EHCI)。
·USB根集線器——提供USB連接端口(俗稱USB Port)給USB設(shè)各或USB集線器來(lái)使用。一部計(jì)算機(jī)可以同時(shí)連接127個(gè)USB設(shè)各,當(dāng)然不可能由主機(jī)控制器去搜尋某個(gè)設(shè)備的地址,所以USB系統(tǒng)運(yùn)用類似計(jì)算機(jī)存儲(chǔ)數(shù)據(jù)的概念,有“根目錄”、“子目錄”、“次子目錄”等分層方式;而主機(jī)控制器只要對(duì)根集線器下命令,然后再由根集線器傳到正確的設(shè)各地址即可。
2.USB集線器
若僅靠USB根集線器則不可能同時(shí)連接上127個(gè)USB外圍設(shè)備,所以除了根集線器外,USB系統(tǒng)還支持額外的集線器。這些集線器的功用主要是提供另外的USB連接端口給用戶串接設(shè)備,有點(diǎn)像網(wǎng)絡(luò)的HUB集線器—樣;而整個(gè)USB連接設(shè)備方式,有點(diǎn)像金字塔型的架構(gòu)。每一個(gè)連接器上,呈現(xiàn)了一個(gè)USB接口。
對(duì)于1.x規(guī)范集線器來(lái)說(shuō),重復(fù)地接收在PC主機(jī)與設(shè)各兩端的USB數(shù)據(jù)流,整合處理了電源管理,以及負(fù)責(zé)對(duì)各種狀態(tài)與控制信息的響應(yīng)。再者,也避免讓全速的數(shù)據(jù)傳輸至低速的設(shè)各上。但是對(duì)于2.0規(guī)范集線器來(lái)說(shuō),做的事情就要比1.x規(guī)范的更多,更復(fù)雜了。當(dāng)然,2.0規(guī)范集線器支持了高速的特性。此外,不僅只是重復(fù)地接收數(shù)據(jù)外,還必須負(fù)責(zé)切換低速、全速和高速的傳輸速率,以及執(zhí)行其他的功能以確??偩€的時(shí)間是充分有效地被運(yùn)用分享。如圖4所示,是USB 2.0集線器的示意圖,其中,通過(guò)路由邏輯來(lái)連接設(shè)備至適當(dāng)?shù)穆窂缴?。此外,傳輸翻譯器(TransactionTranslator,簡(jiǎn)稱TT)掌握了低速/全速的數(shù)據(jù)交易,且用來(lái)激活數(shù)據(jù)交易分割的程序。其中,包含了兩種分割數(shù)據(jù)交易的動(dòng)作:起始分割與完成分割。對(duì)前者而言,主機(jī)會(huì)告訴集線器來(lái)起始全速/低速的數(shù)據(jù)交易;而后者則是主機(jī)詢問(wèn)集線器前面的全速/低速數(shù)據(jù)交易的結(jié)果。
圖4 USB 2.0集線器的架構(gòu)
3.USB設(shè)備
USB設(shè)備,顧名思義,就是指各種類型的USB外圍設(shè)各。依照目前USB產(chǎn)品的規(guī)范,可以將USB設(shè)各分為以下三種類型。
·全速設(shè)備(full-speed device):如OCD、移動(dòng)硬盤等設(shè)備。這些USB設(shè)備的傳輸速率最高為12 Mbps。
·低速設(shè)備(low speed device):如鍵盤、鼠標(biāo)等設(shè)各。這些USB設(shè)備的傳輸速率
最高為1.5 Mbps。除了速度低于全/高速設(shè)各之外,低速設(shè)各在某些USB的支持上也受限制,例如:當(dāng)主機(jī)控制器在執(zhí)行高速處理動(dòng)作時(shí),低速設(shè)備是沒(méi)有反應(yīng)的,此點(diǎn)可以避免高速的信號(hào)被送到低速的集線器上。
·高速設(shè)備(high speed device):USB 2,0所提出的新規(guī)范,也應(yīng)用在如CCD、移動(dòng)硬盤等設(shè)各上。這些USB設(shè)各的傳輸速率最高為480 Mbps。
在這里,有些重要的觀念要理清。通常所謂設(shè)各的定義是具備一種功能或集線器,但在此有些例外的情形存在,就是復(fù)合式(composrte)設(shè)各,它同時(shí)包含了集線器以及一個(gè)或更多的功能。基本上,主機(jī)即可視為這種復(fù)合式設(shè)備,因其集線器與其功能是具有個(gè)別實(shí)體設(shè)各的。由于每一個(gè)設(shè)各在該總線上擁有其獨(dú)立的地址,因此對(duì)這種復(fù)合
式設(shè)備,它的每一個(gè)集線器與功能都有獨(dú)立的地址。
另一個(gè)重要的設(shè)各是多元式(compound)設(shè)各。它是多功能的設(shè)各,具各了多重、獨(dú)立的接口,且僅具各一個(gè)獨(dú)立的地址,但是,這種設(shè)各卻可以根據(jù)不同的接口而擁有主機(jī)上不同的設(shè)備驅(qū)動(dòng)程序。以下,做個(gè)簡(jiǎn)單的比較。
1.復(fù)合式設(shè)備(composite device)
多組接口,每一個(gè)接口相互獨(dú)立,且都具各不同的驅(qū)動(dòng)程序;但僅具各一個(gè)USB地址。例如,具備CCD與照相機(jī)功能的USB復(fù)合式設(shè)各。
2.多元式設(shè)備(compound device)
分別功能的集合,每一個(gè)具各不同的USB地址,且連接至內(nèi)部的集線器。例如,將鍵盤與軌跡球整合在一個(gè)產(chǎn)品的包裝下。
全面認(rèn)識(shí)USB的技術(shù)精髓
本文將從技術(shù)的角度來(lái)探討一下USB,有關(guān)它的實(shí)用部分請(qǐng)參閱本刊1999年第5、7和11期的相關(guān)文章。
一個(gè)基于計(jì)算機(jī)的USB系統(tǒng)可以在系統(tǒng)層次上被分為三個(gè)部分:即USB主機(jī)(USB Host)、USB器件(USB Device)和USB的連接。
所謂USB連接實(shí)際上是指一種USB器件和USB主機(jī)進(jìn)行通信的方法。它包括:
●總線的拓?fù)洌ㄓ梢稽c(diǎn)分出多點(diǎn)的網(wǎng)絡(luò)形式):即外設(shè)和主機(jī)連接的模式;
●各層之間的關(guān)系:即組成USB系統(tǒng)的各個(gè)部分在完成一個(gè)特定的USB任務(wù)時(shí),各自之間的分工與合作;
●數(shù)據(jù)流動(dòng)的模式:即USB總線的數(shù)據(jù)傳輸方式;
●USB的“分時(shí)復(fù)用”:因?yàn)閁SB提供的是一種共享連接方式,因而為了進(jìn)行數(shù)據(jù)的同步傳輸,致使USB對(duì)數(shù)據(jù)的傳輸和處理必須采用分時(shí)處理的機(jī)制。
一、USB的總線拓?fù)?/p>
USB的總線拓?fù)淙鐖D1所示,在USB的樹(shù)形拓?fù)渲?,USB集線器(HUB)處于節(jié)點(diǎn)(Node)的中心位置。而每一個(gè)功能部件都和USB主機(jī)形成唯一的點(diǎn)對(duì)點(diǎn)連接,USB的HUB為USB的功能部件連接到主機(jī)提供了擴(kuò)展的接口。利用這種樹(shù)形拓?fù)?,USB總線支持最多127個(gè)USB外設(shè)同時(shí)連接到主計(jì)算機(jī)系統(tǒng)。
圖1 USB的總線拓?fù)涫疽鈭D
一個(gè)USB系統(tǒng)僅可以有一個(gè)主機(jī),而為USB器件連接主機(jī)系統(tǒng)提供主機(jī)接口的部件被稱為USB主機(jī)控制器。USB主機(jī)控制器是一個(gè)由硬件、軟件和固件(Firmware)組成的復(fù)合體。一塊具有USB接口的主板通常集成了一個(gè)稱為ROOT HUB的部件,它為主機(jī)提供一到多個(gè)可以連接其它USB外設(shè)的USB擴(kuò)展接口,我們通常在主板上見(jiàn)到的USB接口都是由ROOT HUB提供的。
USB器件可以分為兩種:即USB HUB和USB功能器件(Function Device)。
作為USB總線的擴(kuò)展部件,USB HUB(圖2)必須滿足以下特征:
●為自己和其它外設(shè)的連接提供可擴(kuò)展的下行和上行(Downstream and Upstream)端口;
●支持USB總線的電源管理機(jī)制;
●支持總線傳輸失敗的檢測(cè)和恢復(fù);
●可以自動(dòng)檢測(cè)下行端口外設(shè)的連接和摘除,并向主機(jī)報(bào)告;
●支持低速外設(shè)和高速外設(shè)的同時(shí)連接。
從以上要求出發(fā),USB HUB在硬件上由兩部分組成:HUB應(yīng)答器(HUB Repeater)和HUB控制器(HUB Controller)。HUB應(yīng)答器回應(yīng)主機(jī)對(duì)USB外設(shè)的設(shè)置,以及對(duì)連接到它下行端口的USB功能部件的連接和摘除(Attached and Detached)的檢測(cè)、分類,并將其端口信息傳送給主機(jī),它也負(fù)責(zé)如“總線傳輸失敗檢測(cè)”這樣的錯(cuò)誤處理;而HUB控制器則提供主機(jī)到HUB之間數(shù)據(jù)傳輸?shù)奈锢頇C(jī)制。如同我們所熟知的大多數(shù)計(jì)算機(jī)外設(shè)一樣,USB HUB也有一個(gè)用來(lái)向主機(jī)表明自己身份的“BIOS”系統(tǒng)。這塊位于USB HUB上的ROM,通過(guò)USB特征字使主機(jī)可以配置這個(gè)USB HUB,并監(jiān)控它的每一個(gè)端口。
USB功能器件即可以為主機(jī)系統(tǒng)提供某種功能的USB器件,如一個(gè)USB ISDN的調(diào)制解調(diào)器、或是一只USB接口的數(shù)字?jǐn)z像機(jī)、USB的鍵盤或鼠標(biāo)等。
圖2 USB HUB的結(jié)構(gòu)
圖3 一個(gè)典型的USB功能器件結(jié)構(gòu)框圖
USB的功能器件作為USB外設(shè)(USB Function),它必須保持和USB協(xié)議的完全兼容,并可以回應(yīng)標(biāo)準(zhǔn)的USB操作。同樣,用于表明自己身份的“BIOS”系統(tǒng)對(duì)于USB外設(shè)也是必不可少的,這在USB外設(shè)上被稱為協(xié)議層。在物理機(jī)制上,一個(gè)USB外設(shè)可以由四部分構(gòu)成(圖3):
●用于實(shí)現(xiàn)和USB協(xié)議兼容的SIE部分;
●用于存儲(chǔ)器件特征字、存儲(chǔ)實(shí)現(xiàn)外設(shè)特殊功能程序及廠家信息的協(xié)議層(ROM);
●用于實(shí)現(xiàn)外設(shè)功能的傳感器及對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單處理的DSP部分;
●將外設(shè)連接到主機(jī)或USB HUB的接口部分。
根據(jù)傳輸率的不同,USB器件被分為高速和低速兩種。低速外設(shè)的標(biāo)準(zhǔn)傳輸率為1.5Mbps,而高速外設(shè)的標(biāo)準(zhǔn)傳輸率為12Mbps。所有的USB HUB都為高速外設(shè),而功能部件則可以根據(jù)外設(shè)的具體情況設(shè)計(jì)成不同的傳輸率,如用于視頻、音頻傳輸?shù)耐庠O(shè)大都采用12Mbps的傳輸率,而像鍵盤、鼠標(biāo)這樣的點(diǎn)輸入設(shè)備則設(shè)計(jì)成低速外設(shè)。由于USB的數(shù)據(jù)傳輸采用數(shù)據(jù)包的形式,因而使得連接到主機(jī)的所有的USB外設(shè)可以同時(shí)工作而互不干擾。不幸的是,所有這些USB外設(shè)必須同時(shí)分享USB協(xié)議所規(guī)定的USB帶寬(這個(gè)帶寬在USB 1.0協(xié)議中為12Mbps),雖然USB的分時(shí)處理機(jī)制可以使有限的USB帶寬在各設(shè)備之間動(dòng)態(tài)地分配,但如果兩臺(tái)以上的高速外設(shè)同時(shí)使用這樣的連接方法,就會(huì)使它們都無(wú)法享用到最高的USB帶寬,從而降低了性能。這也正是Intel這樣的巨頭為什么要推出USB 2.0協(xié)議的原因(在USB 2.0協(xié)議中USB的總線帶寬一下子被提高到了480Mbps)。
用于實(shí)現(xiàn)外設(shè)到主機(jī)或USB HUB連接的是USB線纜(圖4)。從嚴(yán)格意義上講,USB線纜應(yīng)屬于USB器件的接口部分。USB線纜由四根線組成,其中一根是電源線VBus,一根是地線GND,其余兩根是用于差動(dòng)信號(hào)傳輸?shù)臄?shù)據(jù)線(D+,D-)。將數(shù)據(jù)流驅(qū)動(dòng)成為差動(dòng)信號(hào)來(lái)傳輸?shù)姆椒梢杂行岣咝盘?hào)的抗干擾能力(EMI)。在數(shù)據(jù)線末端設(shè)置結(jié)束電阻的思路是非常巧妙的,以至對(duì)于HUB來(lái)判別所連接的外設(shè)是高速外設(shè)或是低速外設(shè),僅僅只需要檢測(cè)在外設(shè)被初次連接時(shí),D+或D-上的信號(hào)是高或是低即可。因?yàn)閷?duì)于USB協(xié)議來(lái)講,要求低速外設(shè)在其D-端并聯(lián)一個(gè)7.5kΩ的接地電阻,而高速外設(shè)則在D+端接同樣的電阻。在加電時(shí),根據(jù)低速外設(shè)的D-線和高速外設(shè)的D+線所處的狀態(tài),HUB就很容易判別器件的種類,從而為器件配置不同的信息。圖5表明了一個(gè)典型的高速外設(shè)的連接狀況。為提高數(shù)據(jù)傳輸?shù)目煽啃浴⑾到y(tǒng)的兼容性及標(biāo)準(zhǔn)化程度,USB協(xié)議對(duì)用于USB的線纜提出了較為嚴(yán)格的要求。如用于高速傳輸?shù)腢SB線纜,其最大長(zhǎng)度不應(yīng)超過(guò)5米,而用于低速傳輸?shù)木€纜則最大長(zhǎng)度為兩米,每根數(shù)據(jù)線的電阻應(yīng)為標(biāo)準(zhǔn)的90Ω。
USB系統(tǒng)可以通過(guò)USB線纜為其外設(shè)提供不高于+5V、500mA的總線電源。那些完全依靠USB線纜來(lái)提供電源的器件被稱為總線驅(qū)動(dòng)器件(Bus-powered device),而自帶電源的器件則被稱為自驅(qū)動(dòng)外設(shè)(Self-powered device)。需要注意的是,當(dāng)一個(gè)外設(shè)初次連接時(shí),器件的配置和分類并不使用外設(shè)自帶的電源,而是通過(guò)USB線纜提供的電源來(lái)使外設(shè)處于Powered狀態(tài)。
無(wú)論在軟件還是硬件層次上,USB主機(jī)都處于USB系統(tǒng)的核心。主機(jī)系統(tǒng)(圖6)不僅包含了用于和USB外設(shè)進(jìn)行通信的USB主機(jī)控制器及用于連接的USB接口(SIE),更重要的是主機(jī)系統(tǒng)是USB系統(tǒng)軟件和USB客戶軟件的載體。
總而言之,USB主機(jī)軟件系統(tǒng)可以分為三個(gè)部分:
●客戶軟件部分(CSW),在邏輯上和外設(shè)的功能部件部分進(jìn)行數(shù)據(jù)的交換;
●USB系統(tǒng)軟件部分(即HCDI),在邏輯和實(shí)際中作為HCD和USBD之間的接口;
●USB主機(jī)控制器軟件部分(即HCD和USBD),用于對(duì)外設(shè)和主機(jī)的所有USB有關(guān)部分的控制和管理,包括外設(shè)的SIE部分、USB數(shù)據(jù)發(fā)送接收器(Transreceiver)部分及外設(shè)的協(xié)議層等。
圖4 USB線纜
圖5 高速外設(shè)的USB線纜和電阻的連接圖
圖6 USB主機(jī)系統(tǒng)的結(jié)構(gòu)及各部分之間的關(guān)系
二、USB的“分時(shí)復(fù)用”和電源管理
當(dāng)一個(gè)USB外設(shè)初次接入一個(gè)USB系統(tǒng)時(shí),主機(jī)就會(huì)為該USB外設(shè)分配一個(gè)唯一的USB地址,并作為該USB外設(shè)的唯一標(biāo)識(shí)(USB系統(tǒng)最多可以分配這樣的地址127個(gè)),這稱為USB的總線列舉(Bus Enumeration)。USB使用總線列舉方法在計(jì)算機(jī)系統(tǒng)運(yùn)行期間動(dòng)態(tài)檢測(cè)外設(shè)的連接和摘除,并動(dòng)態(tài)地分配USB地址,從而在硬件意義上真正實(shí)現(xiàn)“即插即用”和“熱插拔”。
在所有的USB信道之間動(dòng)態(tài)地分配帶寬是USB總線的特征之一。當(dāng)一臺(tái)USB外設(shè)在連接(Attached)并配置(Configuration)以后,主機(jī)即會(huì)為該USB外設(shè)的信道分配USB帶寬;而當(dāng)該USB外設(shè)從USB系統(tǒng)中摘除(Detached)或是處于掛起(Suspended)狀態(tài)時(shí),則它所占用的USB帶寬即會(huì)被釋放,并為其它的USB外設(shè)所分享。這種“分時(shí)復(fù)用”(Scheduling the USB)的帶寬分配機(jī)制大大地提高了USB帶寬利用率。
作為一種先進(jìn)的總線方式,USB提供了基于主機(jī)的電源管理系統(tǒng)。USB系統(tǒng)會(huì)在一臺(tái)外設(shè)長(zhǎng)時(shí)間(這個(gè)時(shí)間一般在3.0ms以上)處于非使用狀態(tài)時(shí)自動(dòng)將該設(shè)備掛起(Suspend),當(dāng)一臺(tái)USB外設(shè)處于掛起狀態(tài)時(shí),USB總線通過(guò)USB線纜為該設(shè)備僅僅提供500μA以下的電流,并把該外設(shè)所占用的USB帶寬分配給其它的USB外設(shè)。USB的電源管理機(jī)制使它支持如遠(yuǎn)程喚醒這樣的高級(jí)特性。當(dāng)一臺(tái)外設(shè)處于掛起狀態(tài)(Suspended Mode)時(shí),必須先通過(guò)主機(jī)使該設(shè)備“喚醒”(Resume),然后才可以執(zhí)行USB操作。
USB的這種智能電源管理機(jī)制,使得它特別適合如筆記本電腦之類的設(shè)備的應(yīng)用。
三、USB的數(shù)據(jù)傳輸模式
圖7 幀開(kāi)始數(shù)據(jù)包在USB數(shù)據(jù)傳輸中的分布
圖8 USB的通信流及信道
圖9 同步字段
圖10 PID字段
我們知道,USB總線是一種串行總線,即它的數(shù)據(jù)是一個(gè)bit一個(gè)bit來(lái)傳送的。雖然USB總線是把這些bit形式的數(shù)據(jù)打成數(shù)據(jù)包來(lái)傳送,但數(shù)據(jù)的同步也是必不可少的。USB 1.0/1.1協(xié)議規(guī)定,USB的標(biāo)準(zhǔn)脈沖時(shí)鐘為12MHz,而其總線時(shí)鐘為1ms,即每隔1ms,USB器件應(yīng)為USB線纜產(chǎn)生一個(gè)時(shí)鐘脈沖序列。這個(gè)脈沖序列稱為幀開(kāi)始數(shù)據(jù)包(SOF,如圖7所示),主機(jī)利用SOF來(lái)同步USB數(shù)據(jù)的發(fā)送和接收。由此可見(jiàn),對(duì)于一個(gè)數(shù)據(jù)傳輸率為12Mbps的外設(shè)而言,它每一幀的長(zhǎng)度為12000bit;而對(duì)于低速外設(shè)而言,它每一幀的長(zhǎng)度僅有1500bit。USB總線并不關(guān)心外設(shè)的數(shù)據(jù)采集系統(tǒng)及其處理的速率,無(wú)論對(duì)于怎樣的數(shù)據(jù)產(chǎn)生或是接收,它總是以外設(shè)所事先規(guī)定的USB標(biāo)準(zhǔn)傳輸率來(lái)傳輸數(shù)據(jù)。這就要求外設(shè)廠商必須在數(shù)據(jù)采集或接收系統(tǒng)和USB協(xié)議系統(tǒng)(SIE)之間,設(shè)置大小合適的先入先出模式(FIFO)來(lái)對(duì)數(shù)據(jù)進(jìn)行緩存。
在USB系統(tǒng)中,數(shù)據(jù)是通過(guò)USB線纜采用USB數(shù)據(jù)包從主機(jī)傳送到外設(shè)或是從外設(shè)傳送到主機(jī)的。在USB協(xié)議中,把基于外設(shè)的數(shù)據(jù)源和基于主機(jī)的數(shù)據(jù)接收軟件(或者方向相反)之間的數(shù)據(jù)傳輸模式稱為信道(Pipe)。信道分為流模式的信道(Stream Pipe)和消息模式的信道(Message Pipe)兩種。信道和外設(shè)所定義的數(shù)據(jù)帶寬、數(shù)據(jù)傳輸模式以及外設(shè)的功能部件的特性(如緩存大小、數(shù)據(jù)傳輸?shù)姆较虻龋┫嚓P(guān)。只要一個(gè)USB外設(shè)一經(jīng)連接,就會(huì)在主機(jī)和外設(shè)之間建立信道。對(duì)于任何的USB外設(shè),在它連接到一個(gè)USB系統(tǒng)中,并被USB主機(jī)經(jīng)USB線纜加電使其處于Powered狀態(tài)時(shí),都會(huì)在USB主機(jī)和外設(shè)的協(xié)議層(ROM)之間首先建立一個(gè)稱為Endpoint 0的消息信道,這個(gè)信道又稱為控制信道,主要用于外設(shè)的配置(Configuration)、對(duì)外設(shè)所處狀態(tài)的檢測(cè)及控制命令的傳送等。信道方式的結(jié)構(gòu)使得USB系統(tǒng)支持一個(gè)外設(shè)擁有多個(gè)功能部件(用Endpoint 0、Endpoint 1.。.Endpoint n這樣的方法進(jìn)行標(biāo)識(shí)),這些功能部件可以同時(shí)地、以不同的數(shù)據(jù)傳輸方向在同一條USB線纜上進(jìn)行數(shù)據(jù)傳輸而互不影響(圖8)。比如一個(gè)USB的ISDN MODEM,就可以同時(shí)擁有一個(gè)上傳的信道和一個(gè)下載的信道,并能同時(shí)很好地工作。
為實(shí)現(xiàn)多外設(shè)、多信道地同時(shí)工作,USB總線使用數(shù)據(jù)包的方式來(lái)傳輸數(shù)據(jù)和控制信息。
USB數(shù)據(jù)傳輸中的每一個(gè)數(shù)據(jù)包都以一個(gè)同步字段開(kāi)始(圖9),它的最后兩個(gè)bit作為PID字段開(kāi)始的標(biāo)志。緊跟在同步字段之后的一段8bit的脈沖序列稱為PID(數(shù)據(jù)包標(biāo)識(shí)字段,如圖10所示),PID字段的前四位用來(lái)標(biāo)記該數(shù)據(jù)包的類型,后四位則作為對(duì)前四位的校驗(yàn)。PID字段被分為標(biāo)記PID(共有IN、OUT、SETUP或SOF四種)、數(shù)據(jù)PID(DATA0或DATA1)、握手PID(ACK、NAK或STALL)及特殊PID等。主機(jī)根據(jù)PID字段的類型來(lái)判斷一個(gè)數(shù)據(jù)包中所包含的數(shù)據(jù)類型,并執(zhí)行相應(yīng)的操作。
當(dāng)一個(gè)USB外設(shè)初次連接時(shí),USB系統(tǒng)會(huì)為這臺(tái)外設(shè)分配唯一的USB地址,這個(gè)地址通過(guò)地址寄存器(ADDR)來(lái)標(biāo)記,以保證數(shù)據(jù)包不會(huì)傳送到別的USB外設(shè)。7bit的ADDR使得USB系統(tǒng)最大尋址為127臺(tái)設(shè)備(ADDR字段,如圖11所示)。由于一臺(tái)USB外設(shè)可能具有多個(gè)信道,因而在ADDR字段后會(huì)有一個(gè)附加的端點(diǎn)字段(Endpoint Field,簡(jiǎn)標(biāo)為ENDP)來(lái)標(biāo)記不同的信道(圖12)。所有的USB外設(shè)都必須支持Endpoint 0信道,用0000來(lái)標(biāo)記。對(duì)于高速設(shè)備,可以最大支持16個(gè)信道,而低速設(shè)備在Endpoint 0之外僅能有一個(gè)信道。
數(shù)據(jù)字段作為一次USB數(shù)據(jù)傳輸?shù)闹行哪康?,在一個(gè)USB數(shù)據(jù)包中可以包含0~1203Byte的數(shù)據(jù)(圖13)。而幀數(shù)量字段則包含在幀開(kāi)始數(shù)據(jù)包中,對(duì)有的應(yīng)用場(chǎng)合,可以用幀數(shù)量字段作為數(shù)據(jù)的同步信號(hào)。
為保證控制、塊傳送及中斷傳送中數(shù)據(jù)包的正確性,CRC校驗(yàn)字段被引用到如標(biāo)記、數(shù)據(jù)、幀開(kāi)始(SOF)這樣的數(shù)據(jù)包中。CRC校驗(yàn)(數(shù)據(jù)冗余校驗(yàn))可以給予數(shù)據(jù)以100%的正確性檢驗(yàn)。
圖11 數(shù)據(jù)包的ADDR字段
圖12 端點(diǎn)(Endpoint)字段
圖13 USB的數(shù)據(jù)字段
《下》
本文介紹USB總線的數(shù)據(jù)傳輸模式、USB數(shù)據(jù)包的格式,以及USB外設(shè)的組成與結(jié)構(gòu)等內(nèi)容。
一、USB數(shù)據(jù)包的格式
在USB系統(tǒng)中,有四種形式的數(shù)據(jù)包--標(biāo)記數(shù)據(jù)包(Token Packets)、DATA數(shù)據(jù)包(DATA Packets)、幀開(kāi)始數(shù)據(jù)包(SOF Packets)和握手?jǐn)?shù)據(jù)包(Handshake Packets)。
1.標(biāo)記數(shù)據(jù)包由PID、ADDR、ENDP和CRC5四個(gè)字段組成(圖1)。它因?yàn)镻ID字段的不同而分為輸入類型(IN)、輸出類型(OUT)和設(shè)置類型(SETUP)三種。標(biāo)記數(shù)據(jù)包處于每一次USB傳輸?shù)腄ATA數(shù)據(jù)包前面,以指明這次USB操作的類型(PID字段標(biāo)記)、操作的對(duì)象(在ADDR和ENDP字段中指明)等信息。5bit的CRC校驗(yàn)位用來(lái)確保標(biāo)記數(shù)據(jù)包的正確性。
2.我們已經(jīng)指出,USB主機(jī)會(huì)每隔1ms在USB總線上產(chǎn)生一個(gè)SOF的USB幀同步信號(hào),SOF數(shù)據(jù)包包含了這個(gè)脈沖序列的實(shí)際內(nèi)容(圖2),它由SOF格式的PID字段、幀數(shù)量字段和5bit的CRC校驗(yàn)碼組成。主機(jī)利用SOF數(shù)據(jù)包來(lái)同步數(shù)據(jù)的傳送和接收。
3.用于傳輸真正數(shù)據(jù)的DATA數(shù)據(jù)包(圖3),因?yàn)镻ID的不同可以分為DATA0和DATA1兩種。DATA0為偶數(shù)據(jù)包,DATA1為奇數(shù)據(jù)包。DATA數(shù)據(jù)包的奇偶性分類易于數(shù)據(jù)的雙流水處理,而用于控制傳輸?shù)腄ATA數(shù)據(jù)包總是以DATA0來(lái)傳送數(shù)據(jù)。
4.握手?jǐn)?shù)據(jù)包僅僅包含一個(gè)PID字段(圖4),ACK形式的PID表明此次USB傳輸沒(méi)有發(fā)生錯(cuò)誤,數(shù)據(jù)已經(jīng)成功的傳輸;而NAK形式的握手?jǐn)?shù)據(jù)包則向主機(jī)表明此次USB傳輸因?yàn)镃RC校驗(yàn)錯(cuò)誤或別的原因而失敗了,從而使得主機(jī)可以進(jìn)行數(shù)據(jù)的重新傳輸;STALL形式的回應(yīng)向主機(jī)報(bào)告外設(shè)此刻正處于掛起狀態(tài)而無(wú)法完成數(shù)據(jù)的傳輸。
需要指出的是,每個(gè)數(shù)據(jù)包的結(jié)束都會(huì)有兩個(gè)bit寬的EOP字段作為數(shù)據(jù)包結(jié)束的標(biāo)志(圖5),EOP在差模信號(hào)中表現(xiàn)為D+和D-都處于“0”狀態(tài)。對(duì)于高速USB外設(shè)而言,這個(gè)脈沖寬度在160~175ns之間,而低速設(shè)備則在1.25~1.50μs之間。無(wú)論其后是否有其它的數(shù)據(jù)包,USB線纜都會(huì)在EOP字段后緊跟1bit的總線空閑位。USB主機(jī)或外設(shè)利用EOP來(lái)判斷一個(gè)數(shù)據(jù)包的結(jié)束。
圖1 標(biāo)記數(shù)據(jù)包的組成
圖2 SOF數(shù)據(jù)包的格式
圖3 DATA數(shù)據(jù)包的格式
圖4 握手?jǐn)?shù)據(jù)包
圖5 EOP字段在差模信號(hào)中的電壓表現(xiàn)
二、USB總線的數(shù)據(jù)傳輸模式
在前面我們已經(jīng)提到,每一個(gè)USB信道對(duì)應(yīng)著一個(gè)特定的USB傳輸模式,根據(jù)不同的需要,USB外設(shè)可以為USB信道指定不同的USB傳輸模式。USB總線支持四種數(shù)據(jù)傳輸模式:
1.控制傳輸模式(圖6),控制傳輸用于在外設(shè)初次連接時(shí)對(duì)器件進(jìn)行配置;對(duì)外設(shè)的狀態(tài)進(jìn)行實(shí)時(shí)檢測(cè);對(duì)控制命令的傳送等;也可以在器件配置完成后被客戶軟件用于其它目的。Endpoint 0信道只可以采用控制傳送的方式。
2.塊傳送模式(圖7),塊傳送用于進(jìn)行批量的、非實(shí)時(shí)的數(shù)據(jù)傳輸。如一臺(tái)USB掃描儀即可采用塊傳送的模式,以保證數(shù)據(jù)連續(xù)地、在硬件層次上的實(shí)時(shí)糾錯(cuò)地傳送。采用塊傳送方式的信道所占用的USB帶寬,在實(shí)時(shí)帶寬分配中具有最高的優(yōu)先級(jí)。
3.同步傳輸模式(圖8),同步傳輸適用于那些要求數(shù)據(jù)連續(xù)地、實(shí)時(shí)地、以固定的數(shù)據(jù)傳輸率產(chǎn)生、傳送并消耗的場(chǎng)合,如數(shù)字錄像機(jī)等。為保證數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,同步傳輸不進(jìn)行數(shù)據(jù)錯(cuò)誤的重試,也不在硬件層次上回應(yīng)一個(gè)握手?jǐn)?shù)據(jù)包,這樣有可能使數(shù)據(jù)流中存在數(shù)據(jù)錯(cuò)誤的隱患。為保證在同步傳輸數(shù)據(jù)流中致命錯(cuò)誤的幾率小到可以容忍的程度,而數(shù)據(jù)傳輸?shù)难舆t又不會(huì)對(duì)外設(shè)的性能造成太大的影響,廠商必須為使用同步傳輸?shù)男诺肋x擇一個(gè)合適的帶寬(即必須在速度和品質(zhì)之間做出權(quán)衡)。
4.中斷傳輸模式(圖9),對(duì)于那些小批量的、點(diǎn)式、非連續(xù)的數(shù)據(jù)傳輸應(yīng)用的場(chǎng)合,如用于人機(jī)交互的鼠標(biāo)、鍵盤、游戲桿等,中斷傳輸?shù)姆绞绞亲钸m合的。
圖7 塊傳送的流程
圖8 同步傳輸?shù)牧鞒?/p>
圖9 中斷傳輸?shù)牧鞒?/p>
三、USB外設(shè)的組成與結(jié)構(gòu)
本文無(wú)意詳細(xì)論述USB外設(shè)(本部分所說(shuō)的USB外設(shè)如無(wú)特別說(shuō)明均指USB功能器件)的設(shè)計(jì)細(xì)節(jié),而只想介紹USB功能器件的一般組成,以此來(lái)幫助讀者了解USB外設(shè)的基本軟硬件構(gòu)成,以便了解USB外設(shè)的工作過(guò)程和原理。
組成外設(shè)的傳感器件和DSP因?yàn)橥庠O(shè)的具體應(yīng)用各異而有所不同。如對(duì)于一臺(tái)CMOS數(shù)字?jǐn)z像機(jī)(如Creative的WebCam),它的CMOS光電耦合器及其DSP部分并不因?yàn)槭褂檬裁礃拥慕涌诜绞蕉兴淖儯ㄈ缭缙诘碾娔X眼皆采用ECP的并口增強(qiáng)模式來(lái)進(jìn)行圖像數(shù)據(jù)的傳輸,而現(xiàn)在幾乎都是USB接口)。因而本文的重點(diǎn)是闡述USB外設(shè)接口的部分,即USB Device Microcontroller(USB器件微控制器)。圖10表明了一個(gè)USB外設(shè)總線接口的詳細(xì)組成框圖。
USB總線是以差模驅(qū)動(dòng)的方式來(lái)進(jìn)行數(shù)據(jù)傳輸?shù)?,但在?shù)據(jù)包發(fā)送之前,USB協(xié)議規(guī)定必須使用NRZI的編碼方式來(lái)對(duì)數(shù)據(jù)進(jìn)行編碼。當(dāng)然,在USB外設(shè)中,用于解碼的器件對(duì)外設(shè)來(lái)說(shuō)也是必不可少的。NRZI的編碼協(xié)議其實(shí)很簡(jiǎn)單,它采用的是逢“1”保持,逢“0”跳變的原則(圖11),而NRZI的解碼則采用相反的操作。
為保證數(shù)據(jù)流中有足夠的信號(hào)變化,USB協(xié)議規(guī)定了Bit stuffing(加填充位)的原則,即如果信號(hào)流中連續(xù)出現(xiàn)六位以上的數(shù)據(jù)“1”,則每隔六位,必須插入一個(gè)“0”,然后才進(jìn)入NRZI編碼。圖12是一串原始數(shù)據(jù)及其加填充位后和NRZI編碼后的數(shù)據(jù)格式對(duì)比。
圖10 USB外設(shè)總線接口的詳細(xì)組成框圖
圖11 NRZI數(shù)據(jù)編碼
圖12 原始數(shù)據(jù)和加填充位后及NRZI編碼后的數(shù)據(jù)格式對(duì)比
SIE(Serial interface Engine)是USB外設(shè)最重要的硬件組成部分之一,它主要由四部分組成:
1.硬件上用來(lái)完成NRZI編/解碼和加/去填充位操作的,NRZI/Bit Buffing和NRZO/Bit Unstuffing的部分;
2.硬件上產(chǎn)生數(shù)據(jù)的CRC校驗(yàn)碼并對(duì)數(shù)據(jù)包進(jìn)行CRC校驗(yàn)的CRC check & Generator部分;
3.用來(lái)將并行數(shù)據(jù)轉(zhuǎn)化成USB串行數(shù)據(jù)的并/串轉(zhuǎn)換部分(Packet Encode),將主機(jī)發(fā)送的USB數(shù)據(jù)包轉(zhuǎn)化成可以識(shí)別的并行數(shù)據(jù)的串/并轉(zhuǎn)換部分(Packet Decode);
4.檢測(cè)和產(chǎn)生SOP(即每個(gè)數(shù)據(jù)包的同步字段)和EOP信號(hào)的部分。
USB外設(shè)使用一片ROM來(lái)存儲(chǔ)關(guān)于該外設(shè)工作的一些重要信息,這被稱為USB的協(xié)議層(Protocol Layer),它不僅存儲(chǔ)了諸如廠家識(shí)別號(hào)、該外設(shè)所屬的類型(是HUB還是Function,是低速還是高速設(shè)備)、電源管理等常規(guī)信息,更重要的是還存儲(chǔ)了外設(shè)的設(shè)備類型、器件配置信息、功能部件的描述、接口信息等,其存儲(chǔ)方式都采用特征字(Descriptors)的方式。USB主機(jī)通過(guò)在外設(shè)的協(xié)議層和主機(jī)之間建立Endpoint 0信道、采用控制傳輸?shù)姆绞綄?duì)這些信息進(jìn)行存取。特征字采用USB協(xié)議所規(guī)定的結(jié)構(gòu)和代碼排列(關(guān)于特征字的詳細(xì)信息請(qǐng)參閱USB協(xié)議標(biāo)準(zhǔn))。廠家也可以在該ROM的剩余空間中存儲(chǔ)特定的程序或信息,以幫助外設(shè)完成特定的工作。協(xié)議層是一臺(tái)USB外設(shè)能夠被主機(jī)正確識(shí)別和配置,并正常工作的前提??梢哉f(shuō),協(xié)議層是一臺(tái)USB外設(shè)的固件(Firmware)中心。
我們知道,數(shù)據(jù)采樣率因采樣精度和使用的不同場(chǎng)合而不同,如對(duì)于音頻應(yīng)用,就可以采用22.05kHz或44.1kHz的采樣率,而這個(gè)時(shí)鐘并不和USB標(biāo)準(zhǔn)時(shí)鐘對(duì)應(yīng)。因而在實(shí)際應(yīng)用中,為保證采集到的數(shù)據(jù)無(wú)丟失地打包和傳送,必須在SIE和數(shù)據(jù)采集部件(對(duì)諸如音箱或打印機(jī)等外設(shè)則為數(shù)據(jù)消耗部件)之間設(shè)立FIFOs,以便對(duì)數(shù)據(jù)進(jìn)行緩存。對(duì)于采用塊傳送和同步傳送的外設(shè)而言,F(xiàn)IFOs的作用顯得尤為重要。例如一臺(tái)采用同步傳輸?shù)腢SB數(shù)字?jǐn)z像機(jī)(現(xiàn)在市場(chǎng)上有很多這種類型的產(chǎn)品),我們假設(shè)它的CCD為400×300像素,那么為保證數(shù)據(jù)正確地壓縮、傳輸和接收,直到以后的解壓縮及處理,在動(dòng)態(tài)采集中,F(xiàn)IFOs至少要存儲(chǔ)一幀圖像,即要求FIFOs有400×300=12KB的容量。
在USB外設(shè)中,用于實(shí)現(xiàn)和USB線纜無(wú)縫連接的USB傳輸接收部分(Transreceiver)是必不可少的,它不僅要在電氣和物理層面上實(shí)現(xiàn)和USB線纜的連接,而且要完成對(duì)數(shù)據(jù)包的差模驅(qū)動(dòng)或分離的操作。
以上我們簡(jiǎn)述了USB外設(shè)接口的硬件組成,那么在完成USB數(shù)據(jù)傳輸?shù)倪^(guò)程中,這些硬件又是如何配合工作并和位于主機(jī)的軟硬件交互,以完成數(shù)據(jù)傳輸?shù)哪兀?/p>
前面已經(jīng)提到,USB總線采用總線列舉的方法來(lái)標(biāo)記和管理外設(shè)所處的狀態(tài),當(dāng)一臺(tái)USB外設(shè)初次連接到USB系統(tǒng)中后,通過(guò)8個(gè)步驟來(lái)完成它的初始化:
1.USB外設(shè)所連接的HUB(ROOT HUB或擴(kuò)展HUB)檢測(cè)到所連接的USB外設(shè)并自動(dòng)通知主機(jī),以及它的端口狀態(tài)的變化,這時(shí)外設(shè)還處于禁止(Disabled)狀態(tài);
2.主機(jī)通過(guò)對(duì)HUB的查詢以確認(rèn)外設(shè)的連接;
3.現(xiàn)在,主機(jī)已經(jīng)知道有一臺(tái)新的USB外設(shè)連接到了USB系統(tǒng)中,然后,它激活(Enabled)這個(gè)HUB的端口,并向HUB發(fā)送一個(gè)復(fù)位(Reset)該端口的命令;
4.HUB將復(fù)位信號(hào)保持10ms,為連接到該端口的外設(shè)提供100mA的總線電流,這時(shí)該外設(shè)處于Powered狀態(tài),它的所有寄存器被清空并指向默認(rèn)的地址;
5.在外設(shè)分配到唯一的USB地址以前,他的默認(rèn)信道均使用主機(jī)的默認(rèn)地址。然后主機(jī)通過(guò)讀取外設(shè)協(xié)議層的特征字來(lái)了解該外設(shè)的默認(rèn)信道所使用的實(shí)際的最大數(shù)據(jù)有效載荷寬度(即外設(shè)在特征字中所定義的在DATA0數(shù)據(jù)包中數(shù)據(jù)字段的長(zhǎng)度)。
6.主機(jī)分配一個(gè)唯一的USB地址給該外設(shè),并使它處于Addressed狀態(tài);
7.主機(jī)開(kāi)始使用Endpoint 0信道讀取外設(shè)ROM中所存儲(chǔ)的器件配置特征字,這可能會(huì)花去幾幀的時(shí)間;
8.基于器件配置特征字,主機(jī)為該外設(shè)指定一個(gè)配置值,這時(shí),外設(shè)即處于配置(Configured)狀態(tài)了,它所有的端點(diǎn)(Endpoint)這時(shí)也處于配置值所描述的狀態(tài)。從外設(shè)的角度來(lái)看,這時(shí)該外設(shè)已處于準(zhǔn)備使用的狀態(tài)。
在一臺(tái)外設(shè)能被使用之前,它必須被配置。“配置”即主機(jī)根據(jù)外設(shè)的配置特征字來(lái)定義器件的配置寄存器,以便規(guī)定外設(shè)的所有Endpoint的工作環(huán)境。如某信道所采用的數(shù)據(jù)傳輸方式,該外設(shè)所屬的器件“基類(Class)”、“派生類(SubClass)”和C++等,從而通過(guò)基于主機(jī)的USB系統(tǒng)軟件或客戶軟件對(duì)外設(shè)進(jìn)行控制。
當(dāng)一臺(tái)USB外設(shè)配置好以后,即會(huì)進(jìn)入到掛起(Suspend)狀態(tài),直到它開(kāi)始被使用。
必須指出的是,一臺(tái)USB外設(shè)一旦配置好,它的每一個(gè)特定的信道只能使用一種數(shù)據(jù)傳輸方式。Endpoint 0信道只能采用控制傳送的方式,主機(jī)通過(guò)Endpoint 0來(lái)傳送標(biāo)準(zhǔn)的USB命令,完成諸如讀取器件配置特征字、控制外設(shè)對(duì)數(shù)據(jù)的采集、處理和傳送等任務(wù),并可以通過(guò)Endpoint 0來(lái)檢測(cè)和改變外設(shè)所處的狀態(tài)(如對(duì)外設(shè)的遠(yuǎn)端喚醒、掛起和恢復(fù)等)。
對(duì)于一臺(tái)采用同步傳輸?shù)臄?shù)字?jǐn)z像機(jī)來(lái)說(shuō),數(shù)據(jù)傳輸?shù)倪^(guò)程如下:
1.應(yīng)用軟件(CSW)在內(nèi)存中開(kāi)辟數(shù)據(jù)緩沖區(qū),并通過(guò)標(biāo)準(zhǔn)USB命令字向外設(shè)發(fā)出數(shù)據(jù)請(qǐng)求(IRPs);
2.主機(jī)USB系統(tǒng)軟件通過(guò)對(duì)該IRPs的翻譯形成Token數(shù)據(jù)包發(fā)送到外設(shè),這時(shí)主機(jī)進(jìn)入等待狀態(tài);
3.外設(shè)對(duì)數(shù)據(jù)包進(jìn)行NRZI解碼和Bit Unstuffing操作及CRC校驗(yàn),確認(rèn)后接收主機(jī)PID字段中所包含的命令并開(kāi)始采集數(shù)據(jù)。
4.采集到的并行數(shù)據(jù)首先進(jìn)入FIFOs,并通過(guò)并/串轉(zhuǎn)換部件形成串行脈沖;
5.根據(jù)器件配置寄存器的要求對(duì)數(shù)據(jù)進(jìn)行符合條件的分割,配置數(shù)據(jù)包的PID字段等以形成原始數(shù)據(jù)包。
6.通過(guò)CRC校驗(yàn)產(chǎn)生器對(duì)每一個(gè)數(shù)據(jù)包生成CRC校驗(yàn)碼字段,SOP & EOP信號(hào)產(chǎn)生器為該數(shù)據(jù)包加入同步字段頭和數(shù)據(jù)包結(jié)束符;
7.數(shù)據(jù)包的NRZI編碼和Bit Stuffing操作;
8.使用收發(fā)器(Transreceiver)將數(shù)據(jù)流驅(qū)動(dòng)到USB線纜上。
9.主機(jī)控制器將USB數(shù)據(jù)轉(zhuǎn)化成為普通的“純”圖像數(shù)據(jù)送到數(shù)據(jù)緩沖區(qū)以進(jìn)行數(shù)據(jù)的進(jìn)一步處理;如果是控制傳輸、塊傳輸或中斷傳輸方式,在數(shù)據(jù)被成功傳送后,主機(jī)還會(huì)向外設(shè)發(fā)送ACK的握手?jǐn)?shù)據(jù)包作為回應(yīng)。
圖13簡(jiǎn)單描繪了非同步數(shù)據(jù)傳輸?shù)恼?qǐng)求和傳送過(guò)程(在同步傳輸中沒(méi)有Handshake部分)。
圖13 非同步數(shù)據(jù)傳輸?shù)恼?qǐng)求和傳送過(guò)程
四、結(jié)束語(yǔ)
至此,我們已從幾個(gè)方面較詳細(xì)地介紹了USB系統(tǒng)的軟硬件構(gòu)成及USB的數(shù)據(jù)傳輸協(xié)議。USB可以說(shuō)是開(kāi)辟了計(jì)算機(jī)外設(shè)接口的新紀(jì)元。它把人們從繁雜的連線、不同的接口標(biāo)準(zhǔn)和惱人的中斷沖突中解放出來(lái);
使“PnP”和“熱插拔”這樣的特性不再只是口號(hào);它大大擴(kuò)展了計(jì)算機(jī)可連接的外設(shè)數(shù)目;它的智能電源管理有效地降低了手持電腦的電源損耗……USB正在成為市場(chǎng)的熱點(diǎn),越來(lái)越多的外設(shè)生產(chǎn)廠家將自己的產(chǎn)品轉(zhuǎn)向USB接口。而USB 2.0協(xié)議的推出,無(wú)疑對(duì)USB技術(shù)的發(fā)展起到了推波助瀾的作用。
在如鼠標(biāo)、鍵盤、手寫板或是游戲桿等人機(jī)交互的應(yīng)用場(chǎng)合;如掃描儀、數(shù)碼相機(jī)、移動(dòng)存貯設(shè)備、數(shù)字?jǐn)z像機(jī)等數(shù)據(jù)輸入應(yīng)用場(chǎng)合,USB無(wú)疑是替代傳統(tǒng)串/并口的最佳接口方式,它們使得USB的優(yōu)點(diǎn)得到了充分發(fā)揮。但對(duì)諸如視頻或音頻輸出這樣的場(chǎng)合,USB也真的適用嗎?我們知道,像Sound Blaster Live!這樣的聲卡正是因?yàn)樗谟布蠈?shí)現(xiàn)了波表合成和EAX環(huán)境音效等高級(jí)特性,才使我們?cè)趲缀跣∮?%的資源占用率下就能聽(tīng)到“天籟之音”,同時(shí)又能在美侖美奐的3D環(huán)境中飚車。然而USB也并非萬(wàn)能,例如我們看到在市場(chǎng)上熱賣的“USB音箱”號(hào)稱可以“省掉一塊聲卡!”。但由于USB接口并不對(duì)數(shù)據(jù)進(jìn)行任何處理,因而數(shù)據(jù)處理的任務(wù)完全交給了CPU和軟件,從而這種音箱造成了驚人的資源占用率,且從聲音的表現(xiàn)上看也與聲卡有著天壤之別。所以說(shuō),USB并不是“包治百病”的。
硬件電路設(shè)計(jì)之USB轉(zhuǎn)串口電路設(shè)計(jì)
今天我們重點(diǎn)要講述的是USB轉(zhuǎn)串口功能,單板設(shè)計(jì)過(guò)程中,往往需要留至少一個(gè)調(diào)試接口,比較常見(jiàn)的是串口、網(wǎng)口、USB等。其中,串口作為調(diào)試接口時(shí),需要將其...
2023-12-11 標(biāo)簽:電路設(shè)計(jì)接口usb 8730 0
1. 基本概念 一個(gè)【傳輸】(控制、批量、中斷、等時(shí)):由多個(gè)【事務(wù)】組成; 一個(gè)【事務(wù)】(IN、OUT、SETUP):由一多個(gè)【Packet】組成。 ...
2023-06-22 標(biāo)簽:數(shù)據(jù)USB總線計(jì)數(shù)器 778 0
信號(hào)完整性實(shí)戰(zhàn):USB3.0
USB總線自面世第一代開(kāi)始,就對(duì)電氣性能的要求特別高,特別是信號(hào)完整性。隨著USB總線的不斷升級(jí),速率也是成倍的增長(zhǎng),從當(dāng)年USB1.0的1.5Mbps...
USB總線自面世第一代開(kāi)始,就對(duì)電氣性能的要求特別高,特別是信號(hào)完整性。隨著USB總線的不斷升級(jí),速率也是成倍的增長(zhǎng),從當(dāng)年USB1.0的1.5Mbps...
USB總線自面世第一代開(kāi)始,就對(duì)電氣性能的要求特別高,特別是信號(hào)完整性。隨著USB總線的不斷升級(jí),速率也是成倍的增長(zhǎng),從當(dāng)年USB1.0的1.5Mbps...
USB設(shè)備進(jìn)入正常工作狀態(tài)即是激活(ACTIVE)狀態(tài),此時(shí)USB設(shè)備的各項(xiàng)功能應(yīng)可以正常工作。激活狀態(tài)時(shí)USB設(shè)備的一個(gè)最基本的工作狀態(tài)。
如何解決USB-C接口在設(shè)計(jì)規(guī)范性上的問(wèn)題?
USB TYPE-C規(guī)范里面,還規(guī)定了一種帶Emark 芯片的Cable,這種Cable的CC2上,有一個(gè)1K的下拉電阻,用來(lái)告知DFP端的CC識(shí)別芯片...
2019-07-26 標(biāo)簽:USB總線Raspberry Pi樹(shù)莓派 1.0萬(wàn) 0
USB總線通用接口芯片CH375對(duì)比色計(jì)儀器的設(shè)計(jì)
CH375是一種USB總線的通用接口芯片,支持 USB-HOST主機(jī)方式和 USB-DEVICE/SLAVE設(shè)備方式,兼容USB2.0,支持 USB的控...
1
0
怎么實(shí)現(xiàn)基于USB的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)?
標(biāo)簽:USB總線數(shù)據(jù)采集系統(tǒng) 1444 1
什么是USB HOST、USB Slave和USB OTG?它們之間有什么區(qū)別?
什么是USB HOST、USB Slave和USB OTG?它們之間有什么區(qū)別? USB(通用串行總線)是一種用于連接設(shè)備的通信接口標(biāo)準(zhǔn),它允許設(shè)備之間...
2024-02-02 標(biāo)簽:數(shù)據(jù)傳輸USB總線OTG 1.1萬(wàn) 0
USB數(shù)據(jù)在【主機(jī)軟件】與【USB設(shè)備特定的端點(diǎn)】間被傳輸?!局鳈C(jī)軟件】與【USB設(shè)備特定的端點(diǎn)】間的關(guān)聯(lián)叫做【pipes】。一個(gè)USB設(shè)備可以有多個(gè)管...
2022-07-07 標(biāo)簽:數(shù)據(jù)傳輸USB總線計(jì)數(shù)器 811 0
USB總線轉(zhuǎn)接芯片CH344概述、特點(diǎn)及封裝
CH344是一款USB總線的轉(zhuǎn)接芯片,實(shí)現(xiàn)USB轉(zhuǎn)四個(gè)異步串口UART0/1/2/3功能,用于為計(jì)算機(jī)擴(kuò)展異步串口,或者將普通的串口設(shè)備或者M(jìn)CU直接升...
2022-06-28 標(biāo)簽:USB總線異步串口轉(zhuǎn)接芯片 2806 0
USB總線轉(zhuǎn)接芯片CH9103概述及特點(diǎn)
沁恒CH9103是一個(gè)USB總線的轉(zhuǎn)接芯片,實(shí)現(xiàn)USB轉(zhuǎn)兩個(gè)異步串口。
2022-06-28 標(biāo)簽:USB總線異步串口轉(zhuǎn)接芯片 1308 0
USB總線轉(zhuǎn)接芯片CH342概述、特點(diǎn)及封裝
沁恒CH342是一個(gè)USB總線的轉(zhuǎn)接芯片,實(shí)現(xiàn)USB轉(zhuǎn)兩個(gè)異步串口。
2022-06-28 標(biāo)簽:USB總線異步串口轉(zhuǎn)接芯片 1996 0
USB總線轉(zhuǎn)接芯片CH9102概述、特點(diǎn)及封裝
CH9102是一個(gè)USB總線的轉(zhuǎn)接芯片,實(shí)現(xiàn)USB轉(zhuǎn)高速異步串口。提供了常用的MODEM聯(lián)絡(luò)信號(hào),用于為計(jì)算機(jī)擴(kuò)展異步串口,或者將普通的串口設(shè)備或者M(jìn)C...
2022-06-08 標(biāo)簽:封裝USB總線轉(zhuǎn)接芯片 1718 0
USB總線數(shù)據(jù)采集卡在平衡機(jī)領(lǐng)域中的應(yīng)用
產(chǎn)品型號(hào):USB-1603(USB2.0) 產(chǎn)品優(yōu)點(diǎn): 1、USB2.0總線,驅(qū)動(dòng)支持XP/WIN7/WIN10/Linux; 2、16路模擬量16位2...
2022-06-06 標(biāo)簽:USB總線數(shù)據(jù)采集卡 358 0
基于一種專為USB設(shè)計(jì)的PDIUSBD12芯片解析
基于USB1.1的Philip公司的PDIUSBD12芯片結(jié)構(gòu)比較簡(jiǎn)單,它必須單片機(jī)配合才能完成USB通信功能。單片機(jī)以讀寫外部存儲(chǔ)器的方式執(zhí)行PDIU...
基于USB接口芯片CH372的人機(jī)接口設(shè)備設(shè)計(jì)與實(shí)現(xiàn)
摘 要: 基于一種新型USB 總線接口芯片CH372,設(shè)計(jì)出一種人機(jī)接口設(shè)備-USB 鼠標(biāo)。闡述了CH372 的工作原理和特點(diǎn),給出了系統(tǒng)的硬件電路圖;...
USB總線在光柵位移傳感器檢測(cè)系統(tǒng)中的應(yīng)用
本文以光柵位移傳感器檢測(cè)系統(tǒng)的設(shè)計(jì)背景,詳細(xì)介紹了系統(tǒng)的硬件、軟件設(shè)計(jì)方法。光柵位移傳感器是進(jìn)行高精度位移測(cè)量的光電轉(zhuǎn)換器,它將位移微變量轉(zhuǎn)換為多路正弦光柵信號(hào)
2012-02-28 標(biāo)簽:檢測(cè)系統(tǒng)USB總線光柵傳感器 1580 0
編輯推薦廠商產(chǎn)品技術(shù)軟件/工具OS/語(yǔ)言教程專題
電機(jī)控制 | DSP | 氮化鎵 | 功率放大器 | ChatGPT | 自動(dòng)駕駛 | TI | 瑞薩電子 |
BLDC | PLC | 碳化硅 | 二極管 | OpenAI | 元宇宙 | 安森美 | ADI |
無(wú)刷電機(jī) | FOC | IGBT | 逆變器 | 文心一言 | 5G | 英飛凌 | 羅姆 |
直流電機(jī) | PID | MOSFET | 傳感器 | 人工智能 | 物聯(lián)網(wǎng) | NXP | 賽靈思 |
步進(jìn)電機(jī) | SPWM | 充電樁 | IPM | 機(jī)器視覺(jué) | 無(wú)人機(jī) | 三菱電機(jī) | ST |
伺服電機(jī) | SVPWM | 光伏發(fā)電 | UPS | AR | 智能電網(wǎng) | 國(guó)民技術(shù) | Microchip |
Arduino | BeagleBone | 樹(shù)莓派 | STM32 | MSP430 | EFM32 | ARM mbed | EDA |
示波器 | LPC | imx8 | PSoC | Altium Designer | Allegro | Mentor | Pads |
OrCAD | Cadence | AutoCAD | 華秋DFM | Keil | MATLAB | MPLAB | Quartus |
C++ | Java | Python | JavaScript | node.js | RISC-V | verilog | Tensorflow |
Android | iOS | linux | RTOS | FreeRTOS | LiteOS | RT-THread | uCOS |
DuerOS | Brillo | Windows11 | HarmonyOS |