張繼軍,劉小平,陶治洲,楊 芳,顧適夷,范少池
(1.中國電子科技集團公司55所,南京210016;2.重慶三峽職業(yè)學院,重慶404155;3.海軍駐重慶453廠軍事代表室,重慶400021;4.重慶江陵機械廠,重慶404020)
USB具有熱插拔、即插即用、數(shù)據(jù)傳輸可靠等優(yōu)點,已成為當前計算機的主要接口之一。由于USB總線具有高速傳輸?shù)奶匦?,其廣泛應(yīng)用于高保真圖像視頻傳輸、大容量數(shù)據(jù)采集等場合。但是,USB也存在不可逾越的限制——傳輸距離。
傳統(tǒng)的延長USB傳輸距離的方案主要有2種:一種是使用USB 2.0專用芯片和單片機配合完成USB 2.0協(xié)議,然后通過網(wǎng)線或電話線等實現(xiàn)遠距離傳輸,這種方案存在開發(fā)困難(涉及固件程序、上位機程序和驅(qū)動程序的開發(fā))、成本高和速度低等缺點;另一種方案是將USB 2.0協(xié)議用FPGA的IP核實現(xiàn),利用FPGA的高處理能力和可編程性作為主機和設(shè)備的中介,從而實現(xiàn)遠距傳輸。但是,開發(fā)USB 2.0協(xié)議的IP核難度較大,同時要占去FPGA很多的資源,而且更重要的是如果要實現(xiàn)480Mb/s的高速傳輸,F(xiàn)PGA的時鐘需要達到2GHz,這是困難而且不現(xiàn)實的。
采用了一種專業(yè)公司生產(chǎn)的高速USB物理層收發(fā)器(PHY)與現(xiàn)場可編程門陣列(FPGA)相配合的方式,利用高速USB物理層收發(fā)器來完成物理層協(xié)議,然后與現(xiàn)場可編程門陣列開發(fā)的符合業(yè)界標準的接口相連,進而控制了上行數(shù)據(jù)和下行數(shù)據(jù)有序的流通,實現(xiàn)了USB 2.0傳輸距離的延長,在保證信號傳輸正確的前提下,減少了開發(fā)周期,增加了實際運用價值,達到了高速遠距透明傳輸?shù)哪康摹?/p>
提出的USB高速遠程系統(tǒng)設(shè)計方案可實現(xiàn)高速(480Mb/s)遠距(10km 以上)USB協(xié)議的傳輸。系統(tǒng)整體設(shè)計方案如圖1所示。系統(tǒng)分本地和遠端兩部分,分別由PC主機、USB設(shè)備、USB電纜和收發(fā)機組成。它們都嚴格遵從USB協(xié)議規(guī)范。PC主機對整個系統(tǒng)進行控制,收發(fā)機完成傳輸信號的轉(zhuǎn)換并實現(xiàn)USB信號長距離傳輸,設(shè)備完成對PC機的響應(yīng)。
圖1 系統(tǒng)框圖
設(shè)計的核心是遠端和本地收發(fā)機,它延長了USB信號的有效傳輸距離,打破了USB協(xié)議對傳輸距離的限制。在系統(tǒng)正常工作的情況下,PC主機可以實現(xiàn)對設(shè)備的“透明”訪問,如同將設(shè)備直接通過USB電纜連至主機一樣。收發(fā)機由3個主要模塊組成:
(1)USB物理接口;
(2)光收發(fā)模塊;
(3)FPGA控制模塊。
此外,還應(yīng)有必要的供電模塊及輔助電路。
選用美國國家半導(dǎo)體公司提供的USB3300作為USB物理接口模塊的核心芯片[1]。USB3300是一種在工業(yè)溫度下工作的高速USB物理層收發(fā)器 。該芯片使用低引腳計數(shù)接口(ULPI)連接ULPI兼容鏈路層。ULPI接口采用在鏈路層和PHY之間傳輸頻帶內(nèi)信號和狀態(tài)字節(jié)的方法,將引腳數(shù)從UTMI+接口的54降低到現(xiàn)在的12[2]。
ULPI全稱為UTMI+低引腳接口(UTMI+LPI),用于消除USB開發(fā)者在高速USB 2.0邏輯設(shè)計中的困難,負責處理USB總線的底層協(xié)議和信號,完成USB協(xié)議電氣層上的處理任務(wù)。UTMI的關(guān)鍵特性主要有:向邏輯電路提供標準的UTMI接口;支持480Mb/s高速模式;數(shù)據(jù)的并-串/串-并轉(zhuǎn)換;比特填充和比特解填充;比特填充錯誤的檢測;SYNC/EOP的產(chǎn)生和檢測;從USB的串行流中進行數(shù)據(jù)和時鐘的恢復(fù);保持寄存器用于暫存要發(fā)送和接收的數(shù)據(jù);檢測和發(fā)送恢復(fù)信號;檢測復(fù)位和掛起/喚醒功能;支持在全速和高速之間切換及終端阻抗的切換。這些特征都為實現(xiàn)高速遠距傳輸提供了實用的幫助。
通過開發(fā)符合業(yè)界標準的ULPI接口,將高速USB3300收發(fā)器整合于設(shè)計中。通過對USB3300內(nèi)部寄存器的訪問來實現(xiàn)對該芯片的控制,ULPI USB設(shè)備框圖如圖2所示。該芯片與FPGA的接口只有12個,除8條數(shù)據(jù)線外,其它均可進行控制。節(jié)省了設(shè)計開發(fā)時間,簡化了驗證和產(chǎn)品測試過程,還能保證嵌入式USB核心邏輯器件與高速USB收發(fā)器的互聯(lián)互通。
圖2 基本ULPI USB設(shè)備框圖
2.2.1 USB協(xié)議傳輸過程
USB的事務(wù)處理包括主機發(fā)起任務(wù)、數(shù)據(jù)傳輸和設(shè)備應(yīng)答[3]。事務(wù)處理必須在1幀內(nèi)完成,而1幀的時間為1ms。如果在1幀時間里主機沒有得到設(shè)備的答復(fù),則造成1次傳輸錯誤。同時,USB協(xié)議還規(guī)定,在事務(wù)處理中,應(yīng)答的等待至多為18個位時間,約為1.5μs。因此,如果傳輸距離太長,傳輸導(dǎo)線上的延時就會超過1幀的時間,導(dǎo)致傳輸錯誤。為了實現(xiàn)高速遠距離的傳輸,必須對USB協(xié)議中的事務(wù)包進行相應(yīng)的處理。
USB的事務(wù)處理主要包括IN事務(wù)處理、OUT事務(wù)處理和SETUP處理[4]。這些事務(wù)處理的本質(zhì)類似,在此以IN事務(wù)處理舉例說明。一般情況下如圖3所示,USB主機向總線發(fā)出IN令牌包,通知某個設(shè)備準備向USB主機發(fā)送數(shù)據(jù);當所指定的設(shè)備接收到令牌并驗證后,將準備好的數(shù)據(jù)組裝成DATA包由USB主機傳送出去;接著當USB主機接收到數(shù)據(jù),經(jīng)校驗確認其位填充、PID和CRC均無差錯后,創(chuàng)建一個ACK握手包返回給設(shè)備,通知它主機已經(jīng)正確地接收到了數(shù)據(jù),后面再進行新的事務(wù)處理。當主機收到的DATA包錯誤時,握手包將不會產(chǎn)生,表明此事務(wù)處理過程沒有成功,而主機等待一定時間后將會重新啟動任務(wù)。當設(shè)備沒有準備好時,它會給主機發(fā)送一個NAK握手包,表示現(xiàn)在還不能傳輸數(shù)據(jù),而主機會在一定時間內(nèi)重新啟動此事務(wù)。正是基于USB協(xié)議的此特征,為USB傳輸延長設(shè)計提供了理論基礎(chǔ)。
圖3 IN事務(wù)處理
主機發(fā)起任務(wù),而設(shè)備沒有準備好的情況下,可以發(fā)送NAK來讓主機等待,利用這一特性,設(shè)計了高速遠距USB傳輸方案。具體的實現(xiàn)方案如圖4所示。
主機發(fā)送IN令牌給本地收發(fā)端,由于要遠距傳輸,設(shè)備不可能在USB協(xié)議規(guī)定的時間返回數(shù)據(jù),于是本地收發(fā)端在將數(shù)據(jù)下行傳輸給設(shè)備的同時給主機返回一個NAK信號,讓主機一直等待。而遠端的收發(fā)端收到信號后將會直接發(fā)給設(shè)備,并將設(shè)備返回的信號上傳給本地的收端。本地收發(fā)端接收到信號后,便會繼續(xù)上傳給主機。因此,在延長USB傳輸距離的同時,實現(xiàn)了主機和設(shè)備的透明傳輸。
圖4 IN事務(wù)遠程傳輸
2.2.2 FPGA設(shè)計
由于不需在FPGA內(nèi)部完成USB協(xié)議IP核,采用ALTEAR公司的CYCLONE III系列EP3C10芯片完全能勝任此工作[5]。并且其功能強大、成本低廉,降低了開發(fā)風險。
FPGA內(nèi)部模塊如圖5如示。模塊由三部分組成:協(xié)議控制邏輯單元、ULPI接口邏輯單元和數(shù)據(jù)存儲單元。當主機向設(shè)備發(fā)送數(shù)據(jù)時,首先由高速的USB PHY完成物理層協(xié)議,然后通過8位并行總線傳輸給FPGA的ULPI接口單元,協(xié)議控制邏輯單元根據(jù)所接收到的數(shù)據(jù)進行相應(yīng)的處理,向主機返回NAK命令同時又將數(shù)據(jù)下傳,或是直接給主機回復(fù)ASK命令以結(jié)束本次事務(wù)。當將數(shù)據(jù)下傳時,則會通過下行的ULPI接口與設(shè)備進行通信。同理,如果設(shè)備要向主機傳送數(shù)據(jù)時,過程類似。從上面的分析可以看出,在保證信號高速、遠距傳輸?shù)那疤嵯?,簡化了FPGA的設(shè)計難度,降低了開發(fā)周期,減少了開發(fā)成本。
圖5 FPGA內(nèi)部模塊圖
選用美國國家半導(dǎo)體公司生產(chǎn)的S92LV1224來完成與光纖的通信。DS92LV1224是300~600Mb/s的串并轉(zhuǎn)換器,支持高速的單向串行數(shù)據(jù)傳輸。由于其支持480Mb/s傳輸速度,才完成了USB 2.0協(xié)議規(guī)定的高速傳輸。
討論了USB 2.0協(xié)議遠程高速傳輸?shù)脑?,提供了一種基于FPGA的遠程USB高速傳輸系統(tǒng)的實現(xiàn)方案,驗證了方案的可行性。該系統(tǒng)主要特點包括:
(1)遠距離。由于使用FPGA完成了USB 2.0協(xié)議的轉(zhuǎn)換,并用光纖傳輸突破了協(xié)議對傳輸距離的約束,使傳輸距離達10km以上。
(2)高速性。采用專業(yè)公司生產(chǎn)的USB PHY高速完成物理層協(xié)議,從而真正實現(xiàn)了USB 2.0協(xié)議的高速傳輸。
(3)經(jīng)濟性。采用價格低廉的CYCLONE III芯片以及一些簡單的模塊實現(xiàn)了USB 2.0協(xié)議的遠程傳輸,從而可以輕易地組裝在現(xiàn)有大量支持USB 2.0協(xié)議的設(shè)備上,所以客戶使用本系統(tǒng)時無需另外更換硬件,達到了經(jīng)濟實用的效果。
(4)簡易性。FPGA只是完成了一些簡單的邏輯控制,而不用設(shè)計復(fù)雜的USB2.0IP核,從而降低了開發(fā)難度,減少了開發(fā)風險。
綜上所述,現(xiàn)有方案設(shè)計簡易,經(jīng)濟實用,能突破USB傳輸距離的限制,并且保證其高速傳輸特性,具有較高的實用價值。
[1]SMSC.Hi-Speed USB host device or OTG PHY with ULPI low pin interface revision 1.08[EB/OL].http://www.smsc.com/index.php?tid=143&pid=28&cid=&tab=4,2007-11-07.
[2]Mentor raphics Corporation,Philips,SMSC,etal.UTMI+low pin interface specification revision[EB/OL].http://www.ulpi.org/documents.html,2004-10-20.
[3]周立功.USB 2.0與OTG規(guī)范及開發(fā)指南[M].北京:北京航空航天大學出版社,2004.
[4]肖踞雄,翁鐵成,宋中慶.USB技術(shù)及其應(yīng)用設(shè)計[M].北京:清華大學出版社,2003.
[5]楊登峰.基于FPGA的USB芯片設(shè)計[J].微電子與計算機,2004,21(6):39-41.