一、 USB總線簡介
通用串行總線USB(Universal Serial Bus)是由Intel等廠商制定的連接計算機與具有USB接口的多種外設(shè)之間通信的串行總線。目前,帶USB接口的設(shè)備越來越多,如鼠標(biāo)、鍵盤、數(shù)碼相機、調(diào)制解調(diào)器、掃描儀、攝像機、電視及視頻抓取盒、音箱等。
USB總線最多可支持127個USB外設(shè)連接到計算機系統(tǒng)。USB的拓?fù)涫菢湫谓Y(jié)構(gòu),有1個USB根集線器(root hub),下面還可有若干集線器。1個集線器下面可接若干USB接口。USB線纜包括4條線:Vbus(USB電源)、D+(數(shù)據(jù))、D-(數(shù)據(jù))和 Gnd(USB地)。線纜最大長度不超過5m。USB1.1的傳輸速率最高為12Mb/s(低速外設(shè)的標(biāo)準(zhǔn)速率為1.5Mb/s,高速外設(shè)的標(biāo)準(zhǔn)速率為 12Mb/s)。圖1是典型的USB功能器件結(jié)構(gòu)框圖,圖2是高速外設(shè)的USB線纜與電阻的連接圖。圖2中:F?S為全速(高速);LS為低速;R1=15kΩ,R2=1?5kΩ。USB外設(shè)可以采用計算機里的電源(+5V,500mA),也可外接USB電源。在所有的USB信道之間動態(tài)地分配帶寬是USB總線的特征之一,這大大地提高了USB帶寬的利用率。當(dāng)一臺USB外設(shè)長時間(3ms以上)不使用時,就處于掛起狀態(tài),這時只消耗 0.5mA電流。按USB1.0/1.1標(biāo)準(zhǔn),USB的標(biāo)準(zhǔn)脈沖時鐘頻率為12MHz,而其總線時脈沖時鐘為1ms(1kHz),即每隔1ms,USB器件應(yīng)為USB線纜產(chǎn)生1個時鐘脈沖序列。這個脈沖系列稱為幀開始數(shù)據(jù)包(SOF)。高速外設(shè)長度為每幀12000bit(位),而低速外設(shè)長度只有每幀 1500bit。1個USB數(shù)據(jù)包可包含0~1023字節(jié)數(shù)據(jù)。每個數(shù)據(jù)包的傳送都以1個同步字段開始。
二、USB 2?0特性
2000年生產(chǎn)的PC主機幾乎都有了USB插口,最新的PC機還有USB集線器(Hub)和4~6個USB插口。USB集線器的結(jié)構(gòu)如圖3所示。但這些還是不能滿足對高速外設(shè)的要求。最近推出了USB2.0標(biāo)準(zhǔn),其速度比USB1.0/1.1快40倍,達480Mb/s。使USB推廣到硬盤、電纜調(diào)制解調(diào)器、信息家電網(wǎng)絡(luò)產(chǎn)品和其他的快速外設(shè)成為可能。一些公司已開發(fā)出支持USB2.0的產(chǎn)品,其中,Cypress半導(dǎo)體公司是USB控制器的帶頭者。該公司已開發(fā)出了稱為EZ|USB FX2的單芯片USB2.0。
1 設(shè)計USB2.0系統(tǒng)的兩種方法
(1) 多芯片方法
多芯片和ASIC(專用集成電路)方法:使用多芯片方法需要購買USB2.0收發(fā)器和串行接口引擎(SIE),并把收發(fā)器(作為一種外設(shè))與單片機相連接。這時,單片機要處理許多USB協(xié)議。自然,用建有芯片系統(tǒng)的ASIC并在它上面集成有全部必需的部件,這樣能獲得更高的集成度,但是,這樣需要面對應(yīng)用和如何使用USB2.0兩方面的工作。這意味著設(shè)計者需要做更大的努力,并且產(chǎn)品上市時間長。此方法的好處是最終部件的價格低,因此對大批量生產(chǎn)是有價值的。
(2) 單芯片方法
EZ-USB FX2的單芯片內(nèi)有USB2.0物理層(PHY)電路和基于該公司的EZ|USB FX結(jié)構(gòu)的8051單片機。用單片EZ|USB FX2開發(fā)USB2.0外設(shè)具有一定的優(yōu)勢,因此最好是用單芯片方法。這就是為什么Cypress半導(dǎo)體公司生產(chǎn)EZ|USB FX2(以下簡寫FX2)單芯片的原因。
Cypress公司指出,當(dāng)運行在480Mb/s時,數(shù)字和模擬之間的接口會有更多的細(xì)致差別。例如,噪聲熱容限會更小。USB2.0的電壓擺幅比USB1.1更小。例如,要建立1個100K(10萬)門的IC,小的物理層(PHY)將會存在更大的挑戰(zhàn)。那樣做不是不可能,但肯定會影響上市時間。第1個ASIC必須分兩步走,這影響上市時間。
另外,USB2.0需要在USB1.1“全速度”(“full speed”)速率基礎(chǔ)上完成。換句話說,USB2.0收發(fā)器和SIE(串行接口引擎)要做全速和高速率設(shè)計。這意味著設(shè)計時必須使USB1.1和USB2.0兼容。
2? 良好的調(diào)整有助于產(chǎn)品的快速上市和性能提高
Cypress相信它的單芯片方法給公司提供了1個USB2.0結(jié)構(gòu)的可能性。這是考慮了既要獲得所需的高性能I/O(輸入/輸出),又要保持480Mb/s的USB2.0高速率。
此外,該公司看到了USB1.1多芯片方法中存在的引腳數(shù)問題:USB1.1的數(shù)據(jù)寬度是8位,而現(xiàn)在USB2.0的寬度至少是32位。這需要大的封裝,如 100和128引腳四方扁平封裝。按該公司的方法,這正好適合作為SIE(串行接口引擎)和PHY(物理層)用,但并不包括單片機。因此,封裝的費用就占了總價格的相當(dāng)部分,則總系統(tǒng)的價格就更高。公司有3種芯片版本,最小的是56引腳的縮小外形輸出封裝(SSOP)。引腳數(shù)少是因為寬的數(shù)據(jù)引線都在芯片內(nèi)部,封裝的引腳是作為外部接口用。
總之,單芯片方法的優(yōu)勢可體現(xiàn)在性能、靈活性和價格方面。如上所述,寬數(shù)據(jù)總線在芯片內(nèi),實際上能調(diào)整結(jié)構(gòu)以適應(yīng)高速度。
FX2部件的特點之一是采用低價的8051單片機,仍然能獲得很高的速度。至于靈活性,則體現(xiàn)在USB2.0的可編程接口能為特定的應(yīng)用接口編程。 FX2的特點是內(nèi)有8位8051單片機內(nèi)核,它可工作在12,24或48MHz,這取決于應(yīng)用對象。圖4所示為FX2方框圖,它展示了芯片的集成特性。此單片機之所以得到廣泛的應(yīng)用,是因為它能適應(yīng)各種功耗和應(yīng)用的要求,并能保持USB2.0高速度的特點。此外,USB的端點(endpoint)數(shù)據(jù)緩沖器以及從屬FIFO(先入先出寄存器),現(xiàn)在都與經(jīng)典的FIFO一樣。該緩沖器可與Cypress智能USB2.0 SIE(串行接口引擎)相連接。如圖4所示:數(shù)據(jù)進入收發(fā)器后,通過SIE直接轉(zhuǎn)向FIFO,然后,通過8或16位數(shù)據(jù)路徑,可與外部連接,存取數(shù)據(jù)。注意,這時在數(shù)據(jù)路徑上沒有單片機。
收發(fā)器與SIE(串行接口引擎)相連接,SIE直接與端點(endpoint)FIFO相連。僅當(dāng)需要完成檢驗分組信息的工作時,單片機才與USB傳輸發(fā)生關(guān)系。
單片機仍可對FIFO進行存取。例如,它能根據(jù)信息分組(包)的頭標(biāo)碼內(nèi)容與因特網(wǎng)進行存取操作;但是,數(shù)據(jù)路徑的速度與單片機的處理速度無關(guān),它有獨立的速度。這是調(diào)整了結(jié)構(gòu)的1個例子。
Cypress USB2.0 SIE類似該公司以前的FX部件,能執(zhí)行USB2.0協(xié)議的大部分內(nèi)容。設(shè)計師不必考慮所有三級處理這類事情,而全由智能SIE來完成。當(dāng)用戶訂購該公司的開發(fā)板,并插入PC插槽時,不必寫入任何代碼,開發(fā)板就能工作。很明顯,這是由于有智能SIE之故,使用戶應(yīng)用時不需調(diào)整開發(fā)板。在啟動這部分工作時不會影響其他部分,USB就能立即傳輸數(shù)據(jù)。
由智能SIE支持的另一工作是Cypress固件下載。由于固件是在FX2的RAM中,所以能通過 SIE用USB下載。當(dāng)單片機復(fù)位時,SIE就能做下載工作。因為USB2.0是新的,有許多問題要考慮。下載給設(shè)計師提供了一種容易升級的方法。在參數(shù)變化時,這是一個重要的優(yōu)點,因此減少了風(fēng)險和不確定性,增加了產(chǎn)品上市快的優(yōu)勢。
USB2.0的分組長度是512字節(jié)。如果用經(jīng)典的FIFO,當(dāng)產(chǎn)生壞的CRC(循環(huán)校驗碼)時,所有的數(shù)據(jù)必然泛濫流出,因為它是壞數(shù)據(jù)。把FIFO作為RAM來執(zhí)行,它變得更像分組的 FIFO。整個分組信息能送入雙口存儲器。如果CRC是好的,則分組信息能從USB域交換到I/O(輸入/輸出)域。對外來說,它看起來仍然像FIFO,但代之以每次只傳送1個字或1個字節(jié)為立即傳送整個分組信息。
端點FIFO的其他部分與速度有關(guān)。因為數(shù)據(jù)流入很快,所以對分組來說,至少需要雙口緩沖器。 Cypress公司的器件因可編程而進了一步。端點緩沖器可能是雙、三或四緩沖器,與所需的數(shù)據(jù)量或靈活性有關(guān)。例如,批量存儲的外設(shè),在高速時,要斷開 1個讀數(shù)據(jù)信道。然后讀/寫頭移到下一條路徑,在USB上發(fā)送數(shù)據(jù)。為保證此工作,需要四重緩沖。
實際上不需要了解FIFO對外是如何進行調(diào)整工作的,因為有FIFO滿標(biāo)志、FIFO空標(biāo)志以及可編程標(biāo)志。事實上,這是一個“量子”FIFO(公司這樣稱呼),分組的換入、換出是完全透明的。
“量子”FIFO就是有256×16位的雙口RAM塊,如圖5所示。它們放置在USB這邊,而數(shù)據(jù)是從USB輸出或輸入。數(shù)據(jù)穿過虛線進行交換(見圖5),達到I/O系統(tǒng)部分,這時能肯定整個分組是好的。8051單片機也對此存儲器存取有效,這在另一種分組協(xié)議時就要用到。如以太網(wǎng),在應(yīng)用之前,可能要對分組進行試驗。8051能視分組的頭標(biāo)碼內(nèi)容按需要進行處理。在任何給定時間,某些RAM塊都是在SIE(串行接口引擎)控制下,由USB數(shù)據(jù)充滿/空閑;而其他的RAM塊則可由8051單片機和()或I/O控制單元使用。在USB域,RAM塊是單口;在8051的I/O單元域,RAM塊是雙口。RAM塊能構(gòu)成單、雙、三或四緩沖。
通過USB1.1和USB2.0的比較,明確了哪些東西是不用去學(xué)習(xí)研究的。需要考慮的是如何執(zhí)行USB2.0的總體結(jié)構(gòu)。如果Cypress公司仍停留在使用原來的結(jié)構(gòu),則USB將包括:在I/O一邊的FIFO和另一邊的端點緩沖器。但是,因為USB2.0工作非常快,以至于這兩種緩沖器將會是巨大的,從而增加了器件的成本。
“量子”FIFO思想是一個有創(chuàng)造性的方法,它把幾種功能都結(jié)合起來,以便FIFO能被外界看見;而端點緩沖器在芯片內(nèi)部才能看見,但它們的作用都是相同的。在以前的結(jié)構(gòu)中,存儲器都是分開的。作為分開的FIFO容易在不同的時間域保持。采用USB和對外部I/O執(zhí)行的方法,不同的時間域仍然是必要的,但這是更合理的方法。多芯片方法的設(shè)計師必然要回到兩個FIFO的布局,總體成本與這兩個大的器件有關(guān)。 FX2的靈活性由于有通用可編程接口(GPIF)而得到增強,它是一個可編程狀態(tài)機。它能產(chǎn)生全部控制信號,例如:作為ATAPI硬盤驅(qū)動、DSL(數(shù)字用戶線路)的Utopia接口或打印機的增強并行接口(EPP)。關(guān)鍵之處是能用相同的部件來尋址所有這些不同的接口,而不需要粘合連接邏輯。這也擴展到微處理器,如PowerPC、數(shù)字信號處理器(DSP)和PCMCIA(個人電腦存儲器卡國際協(xié)會)器件,其中的每一種都需要一個不同的部件作粘合連接。因此,采用單芯片方法可以降低成本。通用可編程接口使FX2能為這些設(shè)備的每一接口進行調(diào)節(jié)。
設(shè)計師必須編制GIPF(通用可編程接口)程序,但Cypress公司提供了編制適當(dāng)接口的軟件工具,從而不必了解如何接口的具體過程。在此領(lǐng)域,公司還有幫助設(shè)計師的參考設(shè)計。
如前所述,F(xiàn)X2有三種封裝形式:一是56腳的SOPP;二是100腳的TQFP(薄形四方扁平封裝);三是128腳的TQFP。引腳數(shù)的區(qū)別在于輸入、輸出引腳數(shù)的不同。盡管Cypress公司的重點是在前兩種封裝,但128腳封裝正好適合設(shè)計師必須采用外部數(shù)據(jù)總線、地址總線和8KB RAM的情況。這使得結(jié)構(gòu)可擴展,給了設(shè)計師一個增加路徑的空間。
三、USB單片機
下面介紹Infineon 8位和16位USB單片機的結(jié)構(gòu)和性能特點。圖6是8位USB單片機C541的內(nèi)部結(jié)構(gòu)框圖;圖7是16位USB單片機SABC161的內(nèi)部結(jié)構(gòu)框圖。從圖中可見,其基本結(jié)構(gòu)與普通單片機沒有多大區(qū)別,只是左下角增加了USB收發(fā)模塊(包括鎖相環(huán)PLL)。8位USB單片機C541有44個引腳P-LCC 封裝及P-SDIP-52封裝。并口1(Port1)可作6位到8位的數(shù)字接口??焖賃SB總線,使開發(fā)的多媒體產(chǎn)品更具競爭力。
圖6 8位USB單片機C514的內(nèi)部結(jié)構(gòu)框圖
BRG:基本波特速率發(fā)生器ASC:異步串行通信DMA:直接存儲器存儲
USART:通用同步異步收發(fā)器SCU:串行控制單元OCDS:操作控制文件系統(tǒng)
RTC:實時時鐘JTAJ:測試聯(lián)合行動組織PEC:保護選通控制
圖7 16位USB單片機SABC161的內(nèi)部結(jié)構(gòu)框圖
8位USB單片機C541性能特點:
· 兼容USB1.1標(biāo)準(zhǔn);
· 與8051完全兼容;
· 可高速及低速運行;
· 內(nèi)含USB收發(fā)模塊;
· 內(nèi)含看門狗;
· VDD:4.25~5.5V;
· 8KB OTP P-SDIP-52及P-LCC-44兩種封裝。
USB單片機C541還具有技術(shù)支援,包括C541U Starter Kit套件、核心軟件及USB總線應(yīng)用程序。
USB單片機C541可應(yīng)用于高級USB鍵盤、ISDN(綜合業(yè)務(wù)數(shù)據(jù)網(wǎng))調(diào)制解調(diào)器、入機USB接口和所有USB接口。
16位USB單片機SABC161的性能特點:
· 兼容USB1.1標(biāo)準(zhǔn);
· 18MIPS高速運算能力及55.5ns指令周期;
· 實時時鐘; · 內(nèi)含USB收發(fā)模塊;
· 內(nèi)含看門狗; · VDD:3.3V;
· 3KB RAM及2M地址線;
· DMA(直接存儲器存?。┛刂破鳎?
· USART(通用同步異步收發(fā)器)支持IrDA(紅外傳輸標(biāo)準(zhǔn))功能;
· TQFP-100及MQFP封裝。
USB單片機SABC161還具有技術(shù)支援,包括SABC161 Starter Kit套件、核心軟件和仿真器與C++編譯器。
USB單片機SABC161可應(yīng)用于USB打印機、USB數(shù)碼相機和所有高級USB接口及適配器