徐寒柳+李潔+馬苗
摘 要:針對(duì)傳統(tǒng)通信系統(tǒng)傳輸損耗高、抗干擾能力弱的不足,以及傳統(tǒng)1B/2B編碼難以滿足光纖通信的要求,本文融合光纖通信和FPGA可編程技術(shù),設(shè)計(jì)了基于FPGA的光纖通信系統(tǒng)。重點(diǎn)研究了直流平衡8B/10B編、解碼技術(shù)及其FPGA實(shí)現(xiàn),并對(duì)編解碼器進(jìn)行了驗(yàn)證。最后通過(guò)系統(tǒng)仿真及測(cè)試,驗(yàn)證了系統(tǒng)功能正確,實(shí)現(xiàn)了數(shù)據(jù)在光纖介質(zhì)中可靠傳輸。
關(guān)鍵詞:光纖通信;FPGA;數(shù)據(jù)傳輸;編碼
隨著信息化步伐逐漸加快,光纖通信技術(shù)已成為現(xiàn)代通信的重要支柱。光纖通信具有傳輸損耗低、傳輸頻帶寬、抗電磁干擾等優(yōu)點(diǎn),光纖傳輸損耗幾乎比同軸電纜低三個(gè)數(shù)量級(jí),并且在整個(gè)頻段內(nèi)其損耗對(duì)于任何調(diào)制信號(hào)都相同,因此光纖成為一種理想信號(hào)傳輸媒介[1]。FPGA具有時(shí)鐘頻率高,內(nèi)部時(shí)延小,運(yùn)行速度快的特點(diǎn),適于大數(shù)據(jù)量的高速傳輸控制[2]。目前,在高速光纖通信中還多采用專(zhuān)用的ASIC 芯片,F(xiàn)PGA的可編程特性,具有ASIC 芯片無(wú)法比擬的優(yōu)越性[3]。因此,本文融合光纖通信和FPGA可編程技術(shù),對(duì)基于FPGA的光纖通信系統(tǒng)進(jìn)行研究,這具有重要現(xiàn)實(shí)意義。
1 系統(tǒng)總體設(shè)計(jì)
系統(tǒng)主要由時(shí)鐘模塊、8B/10B編解碼器模塊、串并轉(zhuǎn)換模塊和光發(fā)收模塊組成,主要功能框圖如圖1 所示。在發(fā)送端,并行數(shù)據(jù)由系統(tǒng)控制送入8B/10B編碼器,編碼后的10位并行信號(hào)經(jīng)并串轉(zhuǎn)換串行化后差分輸出,再由光發(fā)送接收模塊轉(zhuǎn)換為光信號(hào)送入光纖傳輸介質(zhì)。在接收端,光接收模塊把將接收到的光信號(hào)還原回電平信號(hào),時(shí)鐘恢復(fù)模塊從串行信號(hào)中提取時(shí)鐘信息,完成最佳采樣。串并轉(zhuǎn)換模塊將串行信號(hào)轉(zhuǎn)換成10位并行數(shù)據(jù),然后通過(guò)字符邊界校準(zhǔn)模塊調(diào)整字邊界,再經(jīng)解碼還原為正確的8位數(shù)據(jù)。
2 直流平衡8B/10B編解碼的FPGA 實(shí)現(xiàn)
傳統(tǒng)1B/2B編碼幀之間不可避免出現(xiàn)長(zhǎng)0長(zhǎng)1,此種高低電平的跳變速率使得接收的光纖信號(hào)等效為高阻態(tài)導(dǎo)致沒(méi)有信號(hào),難以滿足光纖傳輸要求。此外,編碼中一旦有傳輸錯(cuò)誤易產(chǎn)生錯(cuò)誤累積。
8B/10B 編碼作為高性能的串行數(shù)據(jù)編碼標(biāo)準(zhǔn),其主要思想是利用映射機(jī)制將一個(gè)字節(jié)寬度的數(shù)據(jù)轉(zhuǎn)化為10位寬度的字符,具有直流平衡特性[4]。該編碼規(guī)定位流中0或1的最大游程長(zhǎng)度值不能大于5,使得傳輸過(guò)程有足夠高的信號(hào)變換頻率,保證串行數(shù)據(jù)在接收端被正確還原,可附用特殊碼(K碼)進(jìn)一步確保數(shù)據(jù)復(fù)原。另外,可在早期發(fā)現(xiàn)數(shù)據(jù)位傳輸錯(cuò)誤以抑制錯(cuò)誤累積[5]。因此,這些特性使得8B/10B編碼特別適合光纖介質(zhì)的連接和信息傳輸。
2.1 直流平衡8B/10B編碼實(shí)現(xiàn)
通信適配接口的輸入由單字節(jié)數(shù)據(jù)、控制信號(hào)以及時(shí)鐘信號(hào)組成。輸入的8bit數(shù)據(jù)(HGFEDCBA)編碼時(shí),將低5位(EDCBA,用x表示)經(jīng)5B/6B編碼成為6 bit(iedcba)碼字,高3位(HGF,用y表示)數(shù)據(jù)經(jīng)3B/4B編碼成為4 bit(jhgf)碼字,進(jìn)而組合得到10 bit碼字(abedeifghj)。在8B/10B編碼中,包括普通數(shù)據(jù)字符(用Dxy表示)和特殊控制字符(用Kxy表示)。極性偏差RD(Running Disparity)作為8B/10B編碼中重要的概念,是維持編碼直流平衡的核心。用RD+表示編碼結(jié)果中0的大于等于1的個(gè)數(shù),用RD-來(lái)表示編碼結(jié)果中1的個(gè)數(shù)大于等于0的個(gè)數(shù)。disp表示編碼結(jié)果中1和0的個(gè)數(shù)差,4bit編碼碼組中,disp為0時(shí)則為完美平衡碼。
8B10B編碼頂層原理圖如圖2所示。數(shù)據(jù)分離模塊將輸入8bit數(shù)據(jù)拆成高3bit、低5bit,同時(shí)將整體8bit分別輸出。特殊符號(hào)編碼模塊完成特殊控制符號(hào)Kxy編碼,輸出當(dāng)前編碼不均等性disp_k ('0'均等,'1'不均等)。5B/6B編碼模塊完成5B到6B的編碼,輸出當(dāng)前編碼不均等性disp_6,其中IsS表示出當(dāng)前編碼是否為5B碼。3B/4B編碼模塊完成3B到4B的初步編碼,輸出當(dāng)前編碼不均等性disp_4,其中IsOne表示當(dāng)前編碼是否為單值輸出,用于合成10B碼時(shí)判斷4B碼是否取反。3B/4B編碼調(diào)整模塊根據(jù)disp_6和IsOne判斷當(dāng)前3B4B編碼輸出是否需要反轉(zhuǎn)和調(diào)整。RD控制模塊將編碼后的10 bit數(shù)據(jù)進(jìn)行選擇輸出,同時(shí)根據(jù)前3個(gè)模塊輸送來(lái)的disp_6、disp_4及disp_10來(lái)更新當(dāng)前RD值以反饋到下一輪RD的輸入。
8B/10B編碼器仿真波形如圖3所示,可知8bit數(shù)據(jù)00011011被編碼成為10bit數(shù)據(jù)1101100100。輸入為00011101的特殊控制碼被編碼為1011100100。編碼結(jié)果與查碼表一致,表明該編碼器實(shí)現(xiàn)了正確編碼。
2.2 直流平衡8B/10B解碼實(shí)現(xiàn)
解碼模塊頂層原理圖如圖4所示,解碼器由塊數(shù)據(jù)緩存,特殊符號(hào)解碼,3B/4B解碼,5B/6B解碼以及解碼控制模塊組成。系統(tǒng)檢測(cè)到標(biāo)志位flag_out為1時(shí)進(jìn)行解碼,先判斷接收碼,若為特殊控制碼則直接查找表解碼。否則,將接收的10位碼分解為高6位和低4位,高6位用5B/6B的查找表解碼得到5bit碼,低4位用3B/4B的查找表解碼得到3bit碼,最后將得所3bit碼為高位而5bit碼為低位重新組合成8bit碼。圖4中的輸出信號(hào)包括:Dout_8為8bit解碼,flag_DataOut為輸出有效信號(hào),flag_IsK為特殊控制碼,flagOut_err表示解碼錯(cuò)誤。8B/10B解碼仿真波形圖如圖5所示,圖中din_10為輸入的10bit的數(shù)據(jù),decodeout為解碼的數(shù)據(jù)。圖中給出了K23.7,D0.0,D1.0,K27.7的正確解碼。
3 系統(tǒng)功能驗(yàn)證及測(cè)試
系統(tǒng)完成后,為驗(yàn)證輸出數(shù)據(jù)的正確性,預(yù)設(shè)輸入模塊循環(huán)往發(fā)送端輸入FIFO里輸入00到01,此時(shí)接入示波器以觀察輸出波形。另外,將發(fā)送模塊最終的編碼串行輸出連至接收端的串行輸入口,為了直觀觀測(cè)數(shù)據(jù),在輸出異步FIFO后連接UART至PC機(jī)串口,通過(guò)串口助手觀測(cè)接收碼。系統(tǒng)仿真波形與示波器實(shí)測(cè)波形對(duì)比如圖6所示,由結(jié)果可知,系統(tǒng)仿真結(jié)果與實(shí)測(cè)信號(hào)相符,驗(yàn)證了系統(tǒng)功能正確性。另外,串口助手不停的接收整齊的00,01數(shù)據(jù),進(jìn)一步驗(yàn)證了信號(hào)在實(shí)際傳輸時(shí)的正確性。
4 結(jié)語(yǔ)
本文研究并實(shí)現(xiàn)了基于FPGA的光纖通信系統(tǒng)。通過(guò)仿真和實(shí)驗(yàn),實(shí)現(xiàn)了數(shù)據(jù)在光纖內(nèi)的可靠傳輸,驗(yàn)證了系統(tǒng)功能正確。相對(duì)于傳統(tǒng)通信系統(tǒng),具有傳輸速率高,傳輸帶寬寬,抗電磁干擾能力強(qiáng)等優(yōu)點(diǎn)。本設(shè)計(jì)也可用于其它串行高速傳輸通信系統(tǒng),此外,在8B/10B編碼時(shí)運(yùn)用特殊控制碼,配合多個(gè)FIFO收發(fā)端,組成不同結(jié)構(gòu)的數(shù)據(jù)鏈路網(wǎng)絡(luò),實(shí)現(xiàn)多種數(shù)據(jù)的匯總和傳輸。
參考文獻(xiàn)
[1] 陳克難,劉文紅.使用光纖傳輸信號(hào)波形的技術(shù)[J].儀器儀表學(xué)報(bào), 2005, 26(z1):537-538.
[2] 秦奎,張衛(wèi)平,陳文元.基于ARM和FPGA的微加速度計(jì)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2010,313(2):25-27,30.
[3] 李欣,管紹軍,胡曉天.基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程, 2012,20(8):85-87.
[4]秦蒙,王輝,秋云海,等.光纖通信中8B/10B編碼器的設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù), 2014, 38(1):50-54
[5]李玉偉,潘明海. 8B/10B編碼對(duì)高速傳輸?shù)挠绊懛治鯷J].信息安全與通信保密, 2011(3):41-43.