李欣,管紹軍,胡曉天
(哈爾濱理工大學 測控技術與儀器黑龍江省高校重點實驗室,黑龍江 哈爾濱 150080)
光纖收發器與FPGA技術相結合的方案是現在光纖通信系統的主流解決方案。目前,在超高速光纖通信中還多采用專用的ASIC芯片,但最近各FPGA廠商也相繼推出了40Gbps、4x10Gbps、100Gbps 和 10x10Gbps 等 FPGA 芯片 ,使基于FPGA超高速光纖通信的實現成為可能。FPGA的可編程特性,具有ASIC芯片無法比擬的優越性。所以基于FPGA的光纖通信有很大的現實意義。
光纖通信系統主要由位同步時鐘提取模塊、8B/10B編解碼器模塊和NRZI編解器模塊組成,主要功能框圖如圖1所示。數據經8B/10編碼后,能在很大程度上平衡位流中0與1的個數,而NRZI編碼又做了進一步的平衡,主要是為了使信號狀態變化趨于頻繁以便位同步時鐘提取模塊更好、更快的提取出位同步時鐘。編碼后的信號為LVTTL電平信號,先經電平轉換模塊轉換為PECL電平信號,再由光發送接收模塊轉換為光信號送入光纖傳輸介質。經光纖傳輸后,在接收端先經光發送接收模塊把光信號轉換為PECL電平信號,再由電平轉換模塊把PECL電平信號轉換為LVTTL電平信號,同時位同步時鐘提取模塊提取出同步時鐘,為解碼模塊提供參考時鐘。最后,接收到的數據經解碼后數據輸出。

圖1 光纖通信系統結構Fig.1 Fiber communication system block schematic diagram
在數字通信系統中,任何消息都是通過一連串的碼元序列傳送的,所以接收時需要知道每個碼元的起止時刻,以便在恰當的時候取樣判決。這就要求接收端必須提供一個位定時脈沖序列,該序列的重復頻率與碼元速率相同,相位與最佳取樣判決時刻一致。這種提取定時脈沖序列的過程稱為位同步。同步性能的好壞直接影響通信系統的性能,出現同步誤差或失去同步就會導致通信系統性能下降或通信中斷。
提取位同步信號有多種方法,其中最常用的是數字鎖相法。其基本原理[1]是:在接收端利用鑒相器比較接收碼元和本地產生的位同步信號的相位,若兩者相位不一致(超前或滯后),鑒相器就產生誤差信號去調整位同步信號的相位,直至獲得準確的位同步信號為止。本設計采用數字鎖相法提取位同步時鐘,主要由鑒相器、分頻器和相位選擇調整模塊等幾大部分組成。其功能框圖如圖2所示。

圖2 位同步時鐘提取功能框圖Fig.2 Extraction of bit synchronization signal block schematic diagram
CLK_local是利用FPGA內部的鎖相環倍頻后得到的高穩定度、高頻時鐘。CLK1是CLK_local經N次分頻后得到的,分頻系數N要求滿足分頻后的時鐘CLK1等于所要提取出的位同步時鐘R_clk。Din為接收到的碼元。Valid為超前、滯后鑒相器的使能輸出,Up_Down為超前、滯后鑒相器的比較輸出,Valid為邏輯0時關閉模增/減計數器,Valid為邏輯1時開啟模增/減計數器,如果位同步時鐘滯后時Up_Down的輸出為邏輯0,使模增/減計數器進行減計數,如果位同步時鐘超前時Up_Down的輸出為值為邏輯1,使模增/減計數器進行增計數。
接收到的碼元經超前、滯后鑒相器后,如果位同步時鐘滯后則計數器減計數,從而通過多路選擇器后減少一個單位的延遲,反之如果位同步時鐘超前則計數器進行增計數,從而通過多路選擇器后增加一個單位的延遲。
8B/10B編碼(以下簡稱8B/10B)作為一種高性能的串行數據編碼標準,其基本思想就是將一個字節寬度的數據經過映射機制(Mapping Rule)轉化為10為寬度的字符,但是平衡了位流中0與1的個數,也就是所謂的直流平衡特性。同時規定位流中0或1的游程長度(Run Length)的最大值不能大于5,以使得傳輸過程保持足夠高的信號變換頻率,這樣不僅確保了時鐘恢復也使得信息流的直流頻譜分量為零或近乎為零,而正是這些特性使得8B/10B編碼特別適合光纖等介質的連接和信息傳輸。
如圖3所示,通信適配接口的輸入由一個字節的數據(ABCDEFGH)、一個控制信號(Z)以及一個時鐘信號組成,其中時鐘采樣以字節為單位。控制信號Z是數據信號或控制信號的標示位。輸入數據ABCDEFGH被分成兩部分,其中ABCDE經5B/6B編碼生成6比特字符abcdei,而FGH經3B/4B編碼得到fghj,最后組合輸出得到10比特的傳輸字符abcdeifghj。

圖3 8B/10B編碼模塊圖Fig.3 8B/10B encoding block schematic diagram
從編碼的種類看,直流平衡8B/10B編碼可分為數據字符編碼和控制字符編碼兩種,但是從編碼的組成看,它又可分為3B/4B編碼、5B/6B編碼兩部分。根據圖3 8B/10B編碼模塊圖將編碼器設計劃分為3個模塊:3B/4B編碼模塊、5B/6B編碼模塊和Dispartity運算模塊。基于Verilog語言的8B/10B編碼模塊圖,如圖4所示。

圖4 8B/10B編碼模塊圖Fig.4 8B/10B encoding logic diagram
datain[8:0]為編碼數據輸入引腳。datain[4:0]為5位5B/6B編碼數據輸入端,即為ABCDE,其中E為最高位,分別用ai、bi、ci、di和 ei表示每一位。 datain[7:5]為 3 位 3B/4B 編碼數據輸入端,即FGH,其中H為最高位,分別用fi、gi和hi表示每一位。datain[8]為控制字符編碼標示位,用ki表示,ki為1表示為控制字符編碼,為0表示為數據字符編碼。dispin為8B/10B編碼前的RD輸入引腳;dispout為8B/10B編碼后的RD輸出引腳。dataout[9:0]為編碼數據輸出引腳。dataout[5:0]為8B/10B編碼后5B/6B編碼模塊對應輸出引腳。dataout[6:9]為8B/10B編碼后3B/4B編碼模塊對應輸出引腳。
8B10B編碼器ModelSim仿真波形如圖5所示。其中datain、dispin、dispout和 dataout分別為圖 4編碼模塊圖對應的信號。 仿真時選取了 D31.2 (RD+)、D31.0 (RD-)、D28.0(RD+)和 K28.0(RD+)作為仿真輸入信號。

圖5 8B/10B編碼器仿真波形圖Fig.5 8B/10B encoder simulation wave
NRZI(Non-Return to Zero Inverted不歸零反轉)編碼是在數據位1時發生跳變,為0時保持不變的一種編碼。在光線通信中,由于光纖固有的特性,信號長時間的置0或置1容易造成數據傳輸錯誤,應當盡量避免這種情況發生,NRZI編碼能夠很好地解決這一問題。前面的8B/10B編碼已經在很大程度上緩解了這個問題,但為了進一步提高數據傳輸質量,在8B/10B編碼的基礎上加入一級NRZI編碼。
NRZI的編碼規則是:數據位為1時發生跳變,為0時保持當前狀態。圖6為本設計采用的NRZI編碼電路。其中,DFF為D觸發器,XOR為異或門;data_in為數據信號輸入端,數據來自編碼后的8B/10B碼;clock為NRZI編碼時鐘,clock時鐘頻率為data_in碼元速率的2倍頻 (由FPGA倍頻電路實現);NRZI_data為NRZI編碼器輸出。

圖6 NRZI編碼電路Fig.6 NRZI encoding logic diagram
下面以一具體實例說明NRZI的編碼過程。8B/10B碼D30.0(011110 0100)和 D7.1(111000 0100)編碼后的波形圖如圖7所示。經NRZI編碼后信號狀態變化更加頻繁,這些狀態變化使得接收器能夠持續地與輸入信號向相適應,這樣就保證了發送設備和接收設備之間的同步。由于8B/10B碼的有效編碼中都至少有4位“1”,從而保證了傳輸的信號至少發生4此跳變,以利于接收端的時鐘提取。

圖7 NRZI編碼波形Fig.7 NRZI encoding wave
NRZI編碼器ModelSim仿真波形如圖8所示。data_in輸入數據分別為D30.0和D7.1。

圖8 NRZI編碼器仿真波形圖Fig.8 NRZI encoding simulation wave
NRZI解碼器設計是NRZI編碼器的逆過程。圖9為本設計采用的NRZI解碼電路。其中,DFF為D觸發器,XOR為異或門。NRZI_data為信號輸入端,數據來自經光纖傳輸的NRZI碼;clock時鐘頻率同編碼起時鐘頻率,即為NRZI_data碼元速率的2倍 (由FPGA倍頻電路實現);data_out為解碼器輸出。

圖9 NRZI解碼電路Fig.9 NRZI decoding logic diagram
NRZI解碼器ModelSim仿真波形如圖10所示。NRZI_data輸入數據分別為D30.0和D7.1編碼后的數據。

圖10 NRZI解碼器仿真波形圖Fig.10 NRZI decoding simulation wave
文中主要用Verilog語言編寫了位同步時鐘提取模塊、8B/10B編解碼模塊、NRZI編解碼模塊等來實現光纖通信。8B/10B編碼很好地平衡了位流中0和1的個數,特別適合光纖介質的信息傳輸;NRZI編碼使信號的狀態變化更加頻繁,進一步增強了發送設備與接收設備的可同步性;位同步時鐘提取使得發送設備與接收設備保持同步,同時為接收端解碼器提供可靠的時鐘參考。這幾大模塊相輔相成,共同維持光纖通信系統可靠、高效的運行。
[1]袁冰,來新泉,葉強.一種高速串行數據發送器芯片的設計[J].電路與系統學報,2008,13(2):79-82.
YUAN bing,LAI Xin-quan,YE Qiang.A high-speed serial data transmitter chip design[J].Circuits and Systems,2008,13(2):79-82.
[2]Fukaishi M,Nakamura K,Heiuchi H,et al.A 20-Gb/s CMOS Multichannel transmitter and receiver chip set for ultra-highresolution digital displays[J].IEEE Journal of Solid-State Circuits,2000,35(11):1611-1618.
[3]LI Jun,WANG Wei.PCI Express Interface Design and Verification Based on Spartan-6 FPGA[R].Nanjing, China,2010.
[4]齊亮.基于FPGA的光纖通信系統偏振模色散自適應均衡器的設計[J].電路與系統學報,2011,13(2):2-3.
YI Liang.Design of adaptive equalizer based on FPGA for pmd in optical fiber communication system[J].Circuits and Systems,2011,13(2):2-3.
[5]Tanabe A,Umetani M,Fujiwara I,et al.0.18-um CMOS 10-Gb/s multiplexer/demultiplexer ICs using current mode logic with tolerance to threshold voltage fluctuation [J].IEEE Journal of Solid-State Circuits,2001,36(6):988-996.
[6]XU Jia-mou,LI Xu-wen,JIA Ke-bin.The Research and Implementation of Interacing Based on PCI Express[C]//ICEMI’09 9th International Conference on Electronic Measurement&Instrument,2009.
[7]杭觀榮,康小錄.美國AEHF軍事通信衛星推進系統及其在首發星上的應用[J].火箭推進,2011(6):1-8.
HANG Guan-rong,KANG Xiao-lu.Propulsion system of USA AEHF military communication satellite and its application on AEHF-1 satellite[J].Journal of Rocket Propulsion,2011(6):1-8.