USB使用一根屏蔽的4線電纜與網(wǎng)絡(luò)上的設(shè)備進行互聯(lián)。數(shù)據(jù)傳輸通過一個差分雙絞線進行,這兩根線分別標(biāo)為D+和D-,另外兩根線是Vcc和Ground,其中Vcc向USB設(shè)備供電。使用USB電源的設(shè)備稱為總線供電設(shè)備,而使用自己外部電源的設(shè)備叫做自供電設(shè)備。為了避免混淆,USB電纜中的線都用不同的顏色標(biāo)記,如表所示。 ![]() 引腳編號
信號名稱 纜線顏色 1 Vcc
紅 2 Data-(D-)
白 3 Data+(D+)
綠 4 Ground
黑
從一個設(shè)備連回到主機,稱為上行連接;從主機到設(shè)備的連接,稱為下行連接。為了防止回環(huán)情況的發(fā)生,上行和下行端口使用不同的連接器,所以USB在電纜和設(shè)備的連接中分別采用了兩種類型的連接頭,即圖16-2所示的A型連接頭和B型連接頭。每個連接頭內(nèi)的電線號與圖16-2的引腳編號是一致的,請讀者對照閱讀。A型連接頭,用于上行連接,即在主機或集線器上有一個A型插座,而在連接到主機或集線器的電纜的一端是A型插頭。在USB設(shè)備上有B型插座,而B型插頭在從主機或集線器接出的下行電纜的一端。采用這種連接方式,可以確保USB設(shè)備、主機/集線器和USB電纜始終以正確的方式連接,而不可能出現(xiàn)電纜接入方式出錯,或直接將兩個USB設(shè)備連接到一起的情況。
USB信號
數(shù)據(jù)在USB總線上實際傳輸時,使用的是NRZI(反向不歸零)編碼的差分信號,這種信號有利于保證數(shù)據(jù)的完整性和消除噪聲干擾。
1.
差分信號技術(shù) 我們知道,傳統(tǒng)的傳輸方式大多使用“正信號”或者“負信號”二進制表達機制,這些信號利用單線傳輸。用不同的信號電平范圍來分別表示1和0,它們之間有一個臨界值,如果在數(shù)據(jù)傳輸過程中受到中低強度的干擾,高低電平不會突破臨界值,那么信號傳輸可以正常進行。但如果遇到強干擾,高低電平突破臨界值,由此造成數(shù)據(jù)傳輸出錯。一般說來,總線頻率越高,線路間的電磁干擾就越厲害,數(shù)據(jù)傳輸失敗的發(fā)生機率也就越高。因此這種信號表達技術(shù)無法應(yīng)用于高速總線傳輸,而差分信號技術(shù)能有效克服這種缺點。 差分信號技術(shù)最大的特點是:必須使用兩條線路才能表達一個比特位,用兩條線路傳輸信號的壓差作為判斷1還是0的依據(jù)。這種做法的優(yōu)點是具有極強的抗干擾性。倘若遭受外界強烈干擾,兩條線路對應(yīng)的電平同樣會出現(xiàn)大幅度提升或降低的情況,但二者的電平改變方向和幅度幾乎相同,電壓差值就可始終保持相對穩(wěn)定,因此數(shù)據(jù)的準(zhǔn)確性并不會因干擾噪聲而有所降低。當(dāng)然,由于1個比特位需要兩條線路,在總線寬度相等的條件下,差分技術(shù)需要的信號線條數(shù)就是“正/負信號”技術(shù)的兩倍。
2.
USB編碼格式 USB的數(shù)據(jù)包使用反向不歸零編碼(NRZI)。圖16-3描述了在USB電纜段上傳輸信息的步驟。反向不歸零編碼由傳送信息的USB代理程序完成;然后,被編碼的數(shù)據(jù)通過差分驅(qū)動器送到USB電纜上;接著,接收器將輸入的差分信號進行放大,將其送給解碼器。使用該編碼和差動信號傳輸方式可以更好地保證數(shù)據(jù)的完整性并減少噪聲干擾。
![]() ![]() 使用反向不歸零編碼方式可以保證數(shù)據(jù)傳輸?shù)耐暾?,而且不要求傳輸過程中有獨立的時鐘信號。反向不歸零編碼不是一個新的編碼方式。它在許多方面都有應(yīng)用。圖16-4給出了一個數(shù)據(jù)流和編碼之后的結(jié)果。在反向不歸零編碼時,遇到“
![]() 但這樣的編碼方式會遇到一個很嚴重的問題,就是若重復(fù)相同的“1”信號一直進入時,就會造成數(shù)據(jù)長時間無法轉(zhuǎn)換,逐漸的積累,而導(dǎo)致接收器最終丟失同步信號的狀況,使得讀取的時序會發(fā)生嚴重的錯誤。因此,在NRZI編碼之前,還需執(zhí)行所謂的位填充的工作。位填充要求數(shù)據(jù)流中如果有連續(xù)的六個“1”就要強行轉(zhuǎn)換。這樣接收器在反向不歸零碼數(shù)據(jù)流中最多每七個位就檢測到一次跳轉(zhuǎn)。這樣就保證了接收器與輸入數(shù)據(jù)流保持同步。反向不歸零碼的發(fā)送器要把“0”(填充位)插到數(shù)據(jù)流中。接收器必須被設(shè)計成能夠在連續(xù)的六個“1”之后識別一個自動跳轉(zhuǎn),并且立即扔掉這六個“1”之后的“0”位。
圖16-5的第一行是送到接收器的原始數(shù)據(jù)。注意數(shù)據(jù)流包括連續(xù)的八個“
檢測設(shè)備連接和速度
在USB設(shè)備連接時,USB系統(tǒng)能自動檢測到這個連接,并識別出其采用的數(shù)據(jù)傳輸速率。USB采用在D+或D-線上增加上拉電阻的方法來識別低速和全速設(shè)備。USB支持三種類型的傳輸速率:1.5Mb/s的低速傳輸、12Mb/s的全速傳輸和480Mb/s的高速傳輸。如圖16-6和圖16-7所示。 ![]() 當(dāng)主控制器或集線器的下行端口上沒有USB設(shè)備連接時,其D+和D-線上的下拉電阻使得這兩條數(shù)據(jù)線的電壓都是近地的(0V);當(dāng)?shù)退?/span>/全速設(shè)備連接以后,電流流過由集線器的下拉電阻和設(shè)備在D+/D-的上拉電阻構(gòu)成的分壓器。由于下拉電阻的阻值是15KΩ,上拉電阻的阻值是1.5KΩ,所以在D+/D-線上會出現(xiàn)大小為(Vcc*15/(15+1.5))的直流高電平電壓。當(dāng)USB主機探測到D+/D-線的電壓已經(jīng)接近高電平,而其它的線保持接地時,它就知道全速/低速設(shè)備已經(jīng)連接了。 高速設(shè)備在連接起始時需要以全速速率與主機進行通信,以完成其配置操作,這時需要在D+線上連接1.5KΩ的上拉電阻。當(dāng)高速設(shè)備正常工作時,如果采用高速傳輸?shù)脑挘?/span>D+線不可上拉;但如果仍采用全速傳輸,則在D+線上必須使用上拉電阻。所以,為識別出高速設(shè)備,需要在上拉電阻和D+線之間連接一個由軟件控制的開關(guān),它通常被集成在USB設(shè)備接口芯片的內(nèi)部。
|
|