《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的低成本長距離高速傳輸系統(tǒng)的設計與實現
基于FPGA的低成本長距離高速傳輸系統(tǒng)的設計與實現
來源:電子技術應用2010年第10期
王 康,郭智勇
電子科技大學 通信與信息工程學院,四川 成都611731
摘要: 借助Altera Cyclone III FPGA的LVDS I/O通道產生LVDS信號,穩(wěn)定地完成了數據的高速、遠距離傳輸。系統(tǒng)所需的8B/10B編解碼、數據時鐘恢復(CDR)、串/并行轉換電路、誤碼率計算模塊均在FPGA內利用VHDL語言設計實現,大大降低了系統(tǒng)互聯的復雜度和成本,提高了系統(tǒng)集成度和穩(wěn)定性。
中圖分類號: TP302.2
文獻標識碼: A
文章編號: 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

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

    系統(tǒng)除電纜驅動器和電纜均衡器采用專用芯片外,其他功能均在FPGA內部實現,從而極大地減小了系統(tǒng)的復雜度和PCB板的面積。
2 FPGA關鍵模塊設計
2.1 信道編解碼模塊

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

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

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

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

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

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

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

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

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

此內容為AET網站原創(chuàng),未經授權禁止轉載。