《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的低成本長距離高速傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于FPGA的低成本長距離高速傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
來源:電子技術(shù)應(yīng)用2010年第10期
王 康,郭智勇
電子科技大學(xué) 通信與信息工程學(xué)院,四川 成都611731
摘要: 借助Altera Cyclone III FPGA的LVDS I/O通道產(chǎn)生LVDS信號(hào),穩(wěn)定地完成了數(shù)據(jù)的高速、遠(yuǎn)距離傳輸。系統(tǒng)所需的8B/10B編解碼、數(shù)據(jù)時(shí)鐘恢復(fù)(CDR)、串/并行轉(zhuǎn)換電路、誤碼率計(jì)算模塊均在FPGA內(nèi)利用VHDL語言設(shè)計(jì)實(shí)現(xiàn),大大降低了系統(tǒng)互聯(lián)的復(fù)雜度和成本,提高了系統(tǒng)集成度和穩(wěn)定性。
中圖分類號(hào): TP302.2
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2010)10-0012-04
Design and implementation of low-cost long-distance high-speed data transmission system based on FPGA
WANG Kang,GUO Zhi Yong
School of Communication and information Engineering,University of Electronic Science and Technology of China,Chengdu 611731,China
Abstract: With the LVDS signal produced by Altera Cyclone III FPGA I/O channel, the system completed the high-speed data,long-distance transmission stably. 8B/10B coder and decoder ,clock data recovery(CDR),string/parallel transition circuit, BER calculation module were all designed with VHDL in FPGA, witch reduce the complexity and costs of interconnected system ,improve the system integration and stability.
Key words : data transmission;high-speed;long-distance;FPGA;LVDS

    在地質(zhì)勘探、工業(yè)環(huán)境監(jiān)測(cè)、大型科學(xué)實(shí)驗(yàn)等領(lǐng)域中需要將實(shí)時(shí)采集到的大量數(shù)據(jù)以較高的速率傳輸較遠(yuǎn)距離,復(fù)雜而龐大的數(shù)據(jù)傳輸任務(wù)給傳輸系統(tǒng)的設(shè)計(jì)帶來極大的挑戰(zhàn)。目前常見的遠(yuǎn)距離高速傳輸方案多采用較為復(fù)雜的光纖通道等方案,系統(tǒng)的成本、設(shè)計(jì)難度、體積和功耗都相對(duì)較大,限制了其應(yīng)用場(chǎng)合。
    本文提出的高速數(shù)據(jù)遠(yuǎn)距離傳輸系統(tǒng)方案以Altera公司Cyclone III系列低成本FPGA芯片EP3C5E144C8為核心,以LVDS信號(hào)為基礎(chǔ),通過增加信道編碼、數(shù)據(jù)時(shí)鐘恢復(fù)、預(yù)加重和均衡等技術(shù),保證了數(shù)據(jù)傳輸?shù)姆€(wěn)定性和同步性,確保采用UTP-5雙絞線為傳輸介質(zhì)時(shí)傳輸速率不低于400 Mb/s,傳輸距離為50 m以上,實(shí)現(xiàn)低成本的遠(yuǎn)距離高速數(shù)據(jù)傳輸。
1 方案總體設(shè)計(jì)
    LVDS(Low Voltage Differential Signaling)是一種低振幅高速差分信號(hào),其電氣特性決定了其傳輸距離有限。為了滿足系統(tǒng)使用UTP-5雙絞線實(shí)現(xiàn)距離50 m的數(shù)據(jù)傳輸要求,需要通過增加預(yù)加重和均衡技術(shù)來恢復(fù)線路上傳輸?shù)男盘?hào)波形。由于傳輸距離較遠(yuǎn)且傳輸速率較高,所以無法直接采用傳送位時(shí)鐘信號(hào)和幀同步脈沖來保證系統(tǒng)同步。本系統(tǒng)采取接收端從接收數(shù)據(jù)中恢復(fù)時(shí)鐘信號(hào)的方法簡化系統(tǒng)設(shè)計(jì)方案。
    系統(tǒng)整體設(shè)計(jì)框圖如圖1所示,系統(tǒng)的核心模塊包括了8 B/10 B編碼、CDR(時(shí)鐘恢復(fù))、并-串/串-并轉(zhuǎn)換模塊、LVDS接口電路、電纜驅(qū)動(dòng)器(Cable Driver)和電纜均衡器(Cable Equalizer)等。數(shù)據(jù)在發(fā)送端的FPGA內(nèi)經(jīng)過8 B/10 B編碼,并-串轉(zhuǎn)換經(jīng)LVDS模式的I/O端口轉(zhuǎn)化為LVDS信號(hào),然后經(jīng)過線路驅(qū)動(dòng)器芯片CLC001預(yù)加重后,通過UTP-5雙絞線傳出數(shù)據(jù)。接收端收到的信號(hào)經(jīng)過均衡器芯片LMH0074SQ均衡后進(jìn)入FPGA,在接收端FPGA內(nèi),數(shù)據(jù)先經(jīng)過CDR模塊提取時(shí)鐘信號(hào),然后字對(duì)齊后經(jīng)過串-并轉(zhuǎn)換產(chǎn)生并行數(shù)據(jù)流,最后經(jīng)過8 B/10 B解碼模塊得到傳輸數(shù)據(jù)。

    系統(tǒng)除電纜驅(qū)動(dòng)器和電纜均衡器采用專用芯片外,其他功能均在FPGA內(nèi)部實(shí)現(xiàn),從而極大地減小了系統(tǒng)的復(fù)雜度和PCB板的面積。
2 FPGA關(guān)鍵模塊設(shè)計(jì)
2.1 信道編解碼模塊

    在高速數(shù)據(jù)傳輸過程中,為了使數(shù)據(jù)時(shí)鐘恢復(fù)模塊中的數(shù)字鎖相環(huán)能夠得到足夠充足的跳變沿信息,需要采用信道編解碼技術(shù)消除或減少數(shù)字電信號(hào)中的直流和低頻分量。8 B/10 B編碼是其中最常用的一種編碼方式。
    8 B/10 B編碼被廣泛應(yīng)用于多種高速串行通信協(xié)議中。它將8 bit的基帶信號(hào)映射成10 bit的數(shù)據(jù)進(jìn)行發(fā)送,防止在基帶數(shù)據(jù)中過多的0碼流或1碼流。通過8 B/10 B編碼可以提高數(shù)據(jù)在鏈路上的傳輸性能;使接收器可以正確地恢復(fù)時(shí)鐘;提高碼流中一個(gè)或者多個(gè)比特錯(cuò)誤的檢測(cè)能力;定義特定的碼元使接收器能夠正確地對(duì)齊碼元[1]。在本系統(tǒng)中分別在兩塊FPGA中實(shí)現(xiàn)了8 B/10 B編碼模塊和8 B/10 B解碼模塊。
    8 B/10 B編碼模塊如圖2所示,該模塊在邏輯上又分成3 B/4 B編碼模塊、5 B/6 B編碼模塊、RD控制模塊等3部分。編碼器首先將接收到的8 B數(shù)據(jù)分成3 bit和5 bit兩部分,然后分別編碼成4 bit和6 bit,編碼完成的4 bit和6 bit再按順序組合成10 B碼。整個(gè)系統(tǒng)首先將3 bit編碼成4 bit,RD控制器讀出4 bit數(shù)據(jù)的RD值,然后反饋控制5 B/6 B編碼模塊選擇合適的編碼。最終RD控制器判斷10 B數(shù)據(jù)的RD值,若滿足要求則輸出,否則將報(bào)錯(cuò)。

    解碼模塊如圖3所示,可分為6 B/5 B解碼模塊、4 B/3 B解碼模塊和誤碼檢測(cè)模塊。解碼模塊相對(duì)編碼模塊而言邏輯過程要簡單,該模塊首先將10 bit信號(hào)分割成4 bit和6 bit兩部分(高低位必須和編碼端對(duì)應(yīng))。然后,4 bit和6 bit數(shù)據(jù)根據(jù)編碼列表分別解碼成3 bit和5 bit,在解碼過程中判斷是否有誤碼產(chǎn)生,有則報(bào)錯(cuò),沒有則并行輸出。

2.2 數(shù)據(jù)時(shí)鐘恢復(fù)模塊
    在單向數(shù)據(jù)傳輸中,串行通信通常需要同時(shí)提供數(shù)據(jù)、位時(shí)鐘、幀同步脈沖三路信號(hào)[2]。在本系統(tǒng)所要求的高速率、長距離的數(shù)據(jù)傳輸要求下,這種連接方式不但浪費(fèi)導(dǎo)線,而且受環(huán)境影響很難實(shí)現(xiàn)三路信號(hào)間的同步。利用數(shù)據(jù)時(shí)鐘恢復(fù)模塊可以從串行位流數(shù)據(jù)中恢復(fù)出接收位同步時(shí)鐘、幀同步脈沖和接收的數(shù)據(jù)。
    數(shù)字鎖相環(huán)(DPLL)是一種相位反饋控制系統(tǒng)[3]。它根據(jù)輸入信號(hào)與本地估算時(shí)鐘之間的相位誤差對(duì)本地估算時(shí)鐘的相位進(jìn)行連續(xù)不斷的反饋調(diào)節(jié),從而使本地估算時(shí)鐘相位跟蹤輸入信號(hào)相位。DPLL通常由3個(gè)模塊組成:數(shù)字鑒相器(DPD)、數(shù)字環(huán)路濾波器(DLF)、 數(shù)控振蕩器(DCO)。根據(jù)各個(gè)模塊組態(tài)的不同,DPLL可以被劃分出許多不同的類型。根據(jù)設(shè)計(jì)的要求,本文采用超前滯后型數(shù)字鎖相環(huán)(LL-DPLL)作為解決方案,圖4是其實(shí)現(xiàn)結(jié)構(gòu)。在LL-DPLL中,DPD采用微分型超前-滯后數(shù)字鑒相器,DLF用雙向計(jì)數(shù)邏輯和比較邏輯實(shí)現(xiàn),DCO采用加扣脈沖式數(shù)控振蕩器。這樣設(shè)計(jì)出來的DPLL具有結(jié)構(gòu)簡潔明快、參數(shù)調(diào)節(jié)方便、工作穩(wěn)定可靠的優(yōu)點(diǎn)[2]。

3 板級(jí)電路設(shè)計(jì)
    由于設(shè)計(jì)要求達(dá)到高速率、50 m的傳輸距離,傳統(tǒng)的LVDS接口雖然可以達(dá)到較高的傳輸速率,但不能支持長距離傳輸,所以本系統(tǒng)采用高速串行數(shù)字接口(SDI)自適應(yīng)電纜均衡器及電纜驅(qū)動(dòng)器芯片來實(shí)現(xiàn)數(shù)據(jù)高速率、長距離的傳輸。
    預(yù)加重是在信號(hào)發(fā)送前對(duì)其進(jìn)行預(yù)扭曲,以使接收器上的信號(hào)質(zhì)量如同原始發(fā)送的質(zhì)量。當(dāng)信號(hào)在直流電平上保持超過一個(gè)比特的時(shí)間時(shí),預(yù)加重就會(huì)抬高高頻分量而降低低頻分量。本文選用CLC001電纜驅(qū)動(dòng)芯片,CLC001采用3.3 V供電,輸出幅度可調(diào),理論數(shù)據(jù)速率最高可達(dá)622 Mb/s[4]。
    接收均衡通過對(duì)輸入數(shù)據(jù)運(yùn)用相對(duì)頻率特征來補(bǔ)償信號(hào)的損耗特征。本文選用LMH0074SQ接收均衡芯片,LM0074SQ是標(biāo)準(zhǔn)清晰度SDI電纜均衡器,可在540 Mb/s的速度范圍內(nèi)操作,輸出抖動(dòng)典型值為0.2UI[5]。
    FPGA外部電路如圖5所示。在發(fā)送端,F(xiàn)PGA產(chǎn)生的LVDS信號(hào)經(jīng)CLC001預(yù)加重后通過50 m UTP-5雙絞線傳輸;在接收端,信號(hào)先經(jīng)過LMH0074SQ均衡后隔直輸出。由于LVDS接口電平標(biāo)準(zhǔn)要求輸入電壓直流偏置為1.2 V,因此需要通過偏置電路引入1.2 V的直流偏置后再傳給FPGA。

4 數(shù)據(jù)測(cè)試及系統(tǒng)性能分析
4.1 系統(tǒng)測(cè)試方案

    測(cè)試方案主要對(duì)系統(tǒng)的靜態(tài)功耗、動(dòng)態(tài)功耗以及在50 m傳輸距離時(shí)的數(shù)據(jù)傳輸速率及相應(yīng)的誤碼率進(jìn)行測(cè)試。測(cè)試方案連接框圖如圖6所示。測(cè)試所用數(shù)據(jù)存在發(fā)送端例化的ROM中,接收端FPGA中例化有FIFO和ROM,F(xiàn)IFO用來存儲(chǔ)接收的數(shù)據(jù),ROM中則存儲(chǔ)和發(fā)送端ROM中相同的數(shù)據(jù),用來計(jì)算誤碼率。同時(shí),在接收端FPGA中有接收數(shù)據(jù)計(jì)數(shù)器和錯(cuò)誤比特計(jì)數(shù)器模塊,通過設(shè)置SignalTap II的觸發(fā)信號(hào)和欲觀察的信號(hào),就可以在PC機(jī)端的Quartus II軟件中的SignalTap II Logic Analyzer窗口中實(shí)時(shí)看到這些信號(hào)。

4.2 功耗測(cè)試
    本系統(tǒng)通過直流穩(wěn)壓電源供電,以方便計(jì)算整個(gè)系統(tǒng)的功耗。經(jīng)測(cè)試發(fā)現(xiàn),在不同的傳輸速率時(shí)系統(tǒng)的功耗差別不大,動(dòng)態(tài)功耗典型值為數(shù)據(jù)傳輸速率100 Mb/s時(shí),系統(tǒng)消耗電流0.24 A,供電電壓3.3 V,系統(tǒng)功耗為792 mW。靜態(tài)功耗測(cè)量時(shí),不發(fā)送數(shù)據(jù),但保持50 m雙絞線接入,電流為0.20 A,供電電壓為3.3 V,靜態(tài)功耗為660 mW。
4.3 誤碼率測(cè)試
    由于EP3C15F144C8的RAM只有512 Kbit,再加上Signal Tap的開銷,所以例化的ROM和FIFO比較小,ROM大小為8 KB,內(nèi)部存儲(chǔ)數(shù)據(jù)由00H~FFH一直重復(fù),把一次ROM數(shù)據(jù)的發(fā)送當(dāng)成一個(gè)幀。每發(fā)送一次ROM數(shù)據(jù)即比較一次FIFO中與原始ROM中的數(shù)據(jù)。重復(fù)發(fā)送20 000次,總數(shù)據(jù)量等于20 000次×(8 192×8)bit=1 469 120 000 bit。因?yàn)榻邮斩说臄?shù)據(jù)時(shí)鐘恢復(fù)和字對(duì)齊需要一定時(shí)間,因而實(shí)際成功重復(fù)次數(shù)不到20 000次,可通過專門的計(jì)數(shù)器來確定實(shí)際重復(fù)次數(shù)。
    在SignalTap II Logic Analyzer中,設(shè)置觸發(fā)信號(hào)為系統(tǒng)倍頻后的主時(shí)鐘,在接收端通過SignalTap II Logic Analyzer實(shí)時(shí)查看接收數(shù)據(jù)rx_data、錯(cuò)誤比特?cái)?shù)error_accumulator和成功重復(fù)次數(shù)packet_counter,圖7為SignalTap II Logic Analyzer接收數(shù)據(jù)的窗口顯示。誤碼率可通過下式求得:
    誤碼率=錯(cuò)誤比特?cái)?shù)/(成功重復(fù)次數(shù)×8 192×8)      (1)

    傳輸速率及相應(yīng)誤碼率如表1所示,在傳輸數(shù)據(jù)為400 Mb/s、傳輸距離為50 m時(shí)誤碼率仍為0。由于選用均衡器LM0074SQ的極限速率為540 Mb/s,因而在數(shù)據(jù)速率為500 Mb/s時(shí)誤碼率急劇增大。

    Altera公司新推出的Cyclone IV GX FPGA中含有8個(gè)收發(fā)器,具有時(shí)鐘數(shù)據(jù)恢復(fù)(CDR)功能,并在片內(nèi)集成了可編程預(yù)加重設(shè)置和可調(diào)差分輸出電壓(VOD),提高了信號(hào)完整性。后續(xù)工作是在Cyclone IV GX上實(shí)現(xiàn)本系統(tǒng)的所有功能,以進(jìn)一步提高數(shù)據(jù)傳輸速率、傳輸距離、誤碼率等指標(biāo)。
參考文獻(xiàn)
[1] 楊云,鄧元慶.基于VHDL的雙校驗(yàn)位8B10B編解碼系統(tǒng)設(shè)計(jì)[J].以太網(wǎng),2005(11).
[2] 李新昌,吳嗣亮,王旭.數(shù)字鎖相環(huán)技術(shù)在恢復(fù)位時(shí)鐘中的應(yīng)用[J].軍民兩用技術(shù)與產(chǎn)品,2004(2).
[3] 胡華春,石玉.數(shù)字鎖相環(huán)原理與應(yīng)用[M].上海:上??茖W(xué)技術(shù)出版社,1990.
[4] CLC001 datasheet.http://www.datasheet5.com/view-69E97D583C975C48.html.
[5] LMH0074SQ datasheet.http://www.datasheet5.com/view-3ED52CB88D36BEC8.html.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。