郭鵬翔, 祖靜, 尤文斌
(中北大學(xué)儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,太原,030051)
隨著信息化的高速發(fā)展,工程人員面臨著大數(shù)據(jù)量的高速傳輸問題。采用低電壓差分信號(hào)LVDS技術(shù)的設(shè)備電路系統(tǒng)可使傳輸速度每秒高達(dá)數(shù)百M(fèi)b,可以很好地解決這一瓶頸問題[1-2]。另外本設(shè)計(jì)中還引入了FIFO芯片作為緩沖給LVDS發(fā)送端,從而確保數(shù)據(jù)的高速傳輸不會(huì)中斷。同時(shí)應(yīng)用CPLD對(duì)FIFO以及LVDS器件進(jìn)行時(shí)序精確,邏輯準(zhǔn)確的操作,以達(dá)到設(shè)計(jì)要求。最后應(yīng)用Modelsim軟件對(duì)設(shè)計(jì)系統(tǒng)進(jìn)行了時(shí)序仿真以驗(yàn)證其達(dá)到了所需要求。
系統(tǒng)設(shè)計(jì)框圖如圖1所示。以模塊化設(shè)計(jì),主要分為L(zhǎng)VDS發(fā)送模塊,LVDS接收模塊,USB模塊。系統(tǒng)從存儲(chǔ)器中讀取的數(shù)據(jù)通過LVDS總線高速傳輸給USB模塊,可以在上位機(jī)進(jìn)行存儲(chǔ)與實(shí)時(shí)顯示。
本系統(tǒng)的LVDS器件選用美國(guó)國(guó)家半導(dǎo)體公司推出的10位總線型低壓差分信號(hào)芯片組SN65LV1023A、SN65LV1224B。其中SN65LV1023A是可將10位并行CMOS或TTL數(shù)據(jù)轉(zhuǎn)換為具有內(nèi)嵌時(shí)鐘的高速串行差分?jǐn)?shù)據(jù)流的串化器[3];而SN65LV1224B則是接收該差分?jǐn)?shù)據(jù)流并將它們轉(zhuǎn)換為并行數(shù)據(jù)的解串器,它同時(shí)又可以重建并行時(shí)鐘[4-5]。采用該器件組進(jìn)行數(shù)據(jù)串化時(shí)采用的是內(nèi)嵌時(shí)鐘,這樣可有效地解決由于時(shí)鐘與數(shù)據(jù)的不嚴(yán)格同步而制約高速傳輸?shù)钠款i問題。
圖1 系統(tǒng)組成框圖
上電后,兩芯片分別置所有輸出管腳為三態(tài),而后啟動(dòng)鎖相環(huán)跟蹤并鎖定本地時(shí)鐘(對(duì)于串化器為TCLK,對(duì)于解串器為REFCLK)。當(dāng)解串器檢測(cè)到LVDS輸入端的邊緣跳變后,它試圖鎖定到內(nèi)部嵌入時(shí)鐘[6]。當(dāng)解串器內(nèi)部鎖相環(huán)鎖定到輸入的數(shù)據(jù)時(shí),解串器LOCK輸出端為高;當(dāng)解串器鎖定到LVDS數(shù)據(jù)時(shí),LOCK輸出端變低。所以只有當(dāng)LOCK為低時(shí),此時(shí)解串器的輸出才是為輸入端的LVDS數(shù)據(jù)。在數(shù)據(jù)傳輸過程中一旦解串器中的鎖相環(huán)失鎖,LOCK位將變高。這時(shí)解串器鎖相環(huán)會(huì)在較短時(shí)間內(nèi)自動(dòng)再次鎖定到內(nèi)部嵌入時(shí)鐘以達(dá)到再次同步[7]。
在實(shí)際情況下,如果出現(xiàn)失鎖,串化器會(huì)繼續(xù)發(fā)送數(shù)據(jù),解串器會(huì)在很短時(shí)間內(nèi)(小于500μs)重新完成同步[8],但是在這個(gè)時(shí)間內(nèi)解串器輸出的數(shù)據(jù)并不是輸入端的LVDS數(shù)據(jù)。即輸入端的LVDS數(shù)據(jù)會(huì)有部分遺漏由于失鎖。對(duì)于大容量數(shù)據(jù)的高速傳輸,這部分遺漏的數(shù)據(jù)對(duì)接收端數(shù)據(jù)的完整性會(huì)有較大的影響。為此,本設(shè)計(jì)在CPLD內(nèi)部設(shè)置了一選通功能,使得系統(tǒng)在失鎖的這段時(shí)間內(nèi),CPLD會(huì)內(nèi)部發(fā)假數(shù)據(jù)給串化器輸入端,直至系統(tǒng)再次同步。并且在發(fā)假數(shù)據(jù)的同時(shí),會(huì)發(fā)送標(biāo)志位R8=0,從而在接受模塊接收數(shù)據(jù)時(shí),可以根據(jù)R8的數(shù)值來(lái)甄別真假數(shù)據(jù)。
以發(fā)送模塊為例,它的工作流程如圖2所示。
圖2 發(fā)送模塊組成框圖
本設(shè)計(jì)中發(fā)送模塊采用的串化器SN65LV1023A的具體電路連接圖如圖3所示。高速驅(qū)動(dòng)器CLC001的電路連接如圖4所示。在發(fā)送模塊中,由于是高速數(shù)據(jù)傳輸且在傳輸過程中可能會(huì)出現(xiàn)短時(shí)間(小于500μs)的失鎖,所以本方案中特地引入了FIFO芯片IDT72V241,從存儲(chǔ)器讀取的數(shù)據(jù)先寫入FIFO,在確認(rèn)系統(tǒng)同步的情況下,再將FIFO中數(shù)據(jù)讀出賦給串化器。從而確保數(shù)據(jù)的有效性,且保證了數(shù)據(jù)高速傳輸?shù)牟婚g斷性??梢?,在發(fā)送模塊中,通過CPLD控制FIFO芯片的讀寫操作是實(shí)現(xiàn)LVDS高速傳輸且不丟失有效數(shù)據(jù)的關(guān)鍵。
圖3 串化器SN65LV1023A連接圖
圖4 高速驅(qū)動(dòng)器CLC001電路連接圖
FIFO芯片IDT72V241的容量為4096x9 bit。CPLD采用XILINX公司的XCR3128,其內(nèi)部程序采用模塊化設(shè)計(jì)。分為復(fù)位,寫FIFO,讀FIFO 3個(gè)模塊。
與許多芯片類似,F(xiàn)IFO芯片在正常工作之前,也需要進(jìn)行復(fù)位操作。本設(shè)計(jì)中CPLD在檢測(cè)到EN信號(hào)變高后,會(huì)先賦給FIFO復(fù)位管腳RS端一個(gè)低脈沖(不小于120ns),使得FIFO芯片復(fù)位,以準(zhǔn)備好下一步的工作。
在本設(shè)計(jì)中,大容量的數(shù)據(jù)在進(jìn)入LVDS系統(tǒng)傳輸前先經(jīng)過FIFO芯片進(jìn)行數(shù)據(jù)緩沖。用CPLD控制數(shù)據(jù)寫入FIFO的過程可以用狀態(tài)圖來(lái)表示,如圖5所示。
圖5 寫FIFO流程
FIFO中的數(shù)據(jù)都是有效數(shù)據(jù),在被讀出后通過CPLD賦給串化器的輸入端,從而通過LVDS的數(shù)據(jù)形式發(fā)送出去。如前面所述,在這個(gè)傳輸過程中,可能會(huì)出現(xiàn)短時(shí)間(小于500μs)的失鎖,這是為了防止FIFO內(nèi)有效數(shù)據(jù)的丟失,應(yīng)停止讀取FIFO中的數(shù)據(jù),并通過CPLD賦值假數(shù)據(jù)給串化器直到再次同步完成。
根據(jù)CPLD內(nèi)部各模塊的設(shè)計(jì)思想,在XILINX ISE9.1環(huán)境下編輯程序,并在MODELSIM軟件中通過時(shí)序仿真來(lái)驗(yàn)證構(gòu)想的正確性。通過各仿真時(shí)序圖來(lái)看,程序很好地完成了設(shè)計(jì)要求。
各模塊仿真結(jié)果如下。
時(shí)序仿真如圖6所示。
圖6 復(fù)位模塊仿真圖
該模塊時(shí)序仿真如圖7所示。圖中wclk_f信號(hào)為FIFO的寫時(shí)鐘信號(hào)。WEN1為FIFO的寫使能信號(hào),低有效。
圖7 寫FIFO模塊仿真圖
該模塊時(shí)序仿真如圖8所示。
圖8 讀FIFO模塊仿真圖
本文設(shè)計(jì)的基于CPLD的LVDS總線高速數(shù)據(jù)傳輸系統(tǒng),充分考慮了實(shí)際情況中可能出現(xiàn)的失鎖現(xiàn)象,做到高速數(shù)據(jù)傳輸?shù)耐瑫r(shí)且不丟失有效數(shù)據(jù)。有著非常好的應(yīng)用前景。
[1]陳一新.基于USB+LVDS的FPGA遠(yuǎn)程測(cè)試系統(tǒng)[J].電子測(cè)試,2009(4):73-75.
[2]劉祥遠(yuǎn),陳書明.LVDS 高速 I/O 接口單元的設(shè)計(jì)研究[J].計(jì)算機(jī)工程與科學(xué), 2001,23(4):54-58,62.
[3]來(lái)衛(wèi)國(guó).基于無(wú)線激光通信的數(shù)字視頻接收機(jī)的研究[J].國(guó)外電子元器件,2002(2).
[4]倪春波,應(yīng)建華,劉三清,等.LVDS高速I/O接口電路設(shè)計(jì)[J].華中科技大學(xué)學(xué)報(bào):自然科學(xué)版,2003,31(10):16-18.
[5]薛隆全,文豐,張時(shí)華.基于LVDS總線的高速長(zhǎng)距數(shù)據(jù)傳輸?shù)脑O(shè)計(jì)[J].電子設(shè)計(jì)工程,2009(2).
[6]楊建義.基于Visual Basic與RS232串行通信的溫度監(jiān)測(cè)系統(tǒng)[J].電子測(cè)試,2007(12):47-50.
[7]National Semiconductor .LVDS Owners' Manual[R].National Semiconductor , Spring 1997.
[8]彭鄉(xiāng)琳.LVDS在長(zhǎng)距離信號(hào)傳輸中的應(yīng)用[J].兵工自動(dòng)化,2006(7).