基于FPGA實(shí)現(xiàn)千兆以太網(wǎng)業(yè)務(wù)在SDH上的傳輸
摘要:為了實(shí)現(xiàn)千兆以太網(wǎng)業(yè)務(wù)在SDH網(wǎng)絡(luò)上的傳輸(EOS),可以利用FPGA將以太網(wǎng)MAC數(shù)據(jù)幀在SDH數(shù)據(jù)幀中進(jìn)行封裝和映射處理。介紹了GFP封裝協(xié)議以及虛級聯(lián)技術(shù),給出了FPGA內(nèi)部的模塊化設(shè)計方法。利用FPGA的強(qiáng)大功能和內(nèi)部的豐富資源,簡化了電路設(shè)計的復(fù)雜性。千兆以太網(wǎng)在SDH中的傳輸增強(qiáng)了SDH設(shè)備的業(yè)務(wù)傳輸能力。
關(guān)鍵詞:以太網(wǎng);SDH;GFP;EOS
0 引言
隨著人們對數(shù)據(jù)業(yè)務(wù)需求的不斷增長,以太網(wǎng)作為全世界應(yīng)用最為廣泛的網(wǎng)絡(luò)通信技術(shù)之一,在全世界得到了大規(guī)模的普及。SDH是電信部門常用的通信傳輸設(shè)備,具有高可靠性和高安全性的特點(diǎn)。EOS(Ethernet over SDH)技術(shù)即借現(xiàn)有的SDH傳輸設(shè)備實(shí)現(xiàn)以太網(wǎng)業(yè)務(wù)的傳輸,具有非常重要的現(xiàn)實(shí)意義。
基于以太網(wǎng)的七層架構(gòu),在第二層數(shù)據(jù)鏈路層傳輸?shù)氖且蕴W(wǎng)的MAC幀。由于以太網(wǎng)和SDH系統(tǒng)的傳輸速率不匹配,需要通過封裝進(jìn)行速率調(diào)整后才能映射到SDH的虛容器中。目前來講,常用的是GFP(Generic Framing Procedure)封裝。GE(千兆以太網(wǎng))信號在SDH系統(tǒng)中的映射可以分為相鄰級聯(lián)和虛級聯(lián)兩種模式。相鄰級聯(lián)是在整個傳輸過程中保持連續(xù)帶寬,各個級聯(lián)的VC是相鄰的,在SDH網(wǎng)絡(luò)系統(tǒng)中需要有能夠進(jìn)行相鄰級聯(lián)處理的中間設(shè)備,而虛級聯(lián)的應(yīng)用方式比較靈活,將連續(xù)帶寬分解到多個VCs上傳輸,不一定相鄰,在傳輸?shù)慕K端再將多個VCs重新組合成連續(xù)帶寬。因此,虛級聯(lián)方式有效地節(jié)省了帶寬,在系統(tǒng)中只需能夠進(jìn)行處理的終端設(shè)備即可。在實(shí)際使用中,這種方式的應(yīng)用比較廣泛。
1 FPGA收發(fā)模塊設(shè)計
本文實(shí)現(xiàn)的傳輸方式是在STM-16中傳輸1路GE信號,需要對以太網(wǎng)MAC幀進(jìn)行GFP封裝。GFP幀分為GFP-F和GFP-T兩種模式,本設(shè)計采用的是GFP-F封裝模式。STM-16的傳輸速率是2.488 32 Gb/s。STM-16一共包括16路STM-1信號,STM-1的傳輸速率是155.52 Mb/s。STM-1信號采用虛級聯(lián)方式,利用VC-4-XV(X=1~7)最多采用7路STM-1信號即可傳輸1路GE信號。剩余STM-1通道的信號用來傳輸其他數(shù)據(jù)業(yè)務(wù)。
以太網(wǎng)數(shù)據(jù)在SDH設(shè)備中傳輸過程如下:在SDH發(fā)送部分中,以太網(wǎng)通過接口處理芯片產(chǎn)生MAC數(shù)據(jù)幀,通過GMII接口傳送給FPGA。FPGA將MAC幀進(jìn)行GFP協(xié)議的封裝,然后映射到SDH的虛容器VC當(dāng)中,再通過添加復(fù)用段和再生段開銷,生成STM-16數(shù)據(jù)幀,發(fā)送給光模塊再上到光網(wǎng)絡(luò);在SDH接收部分中,光接收模塊從光網(wǎng)絡(luò)將STM-16數(shù)據(jù)幀接收F來發(fā)送給FPGA,F(xiàn)PGA在內(nèi)部處理相關(guān)的開銷,再將GFP數(shù)據(jù)幀從VC虛容器中提取出來,通過解幀處理,將以太網(wǎng)的MAC幀還原出來,經(jīng)過處理后發(fā)送給以太網(wǎng)。
FPGA的內(nèi)部設(shè)計可以分成發(fā)送模塊和接收模塊兩部分。其中,發(fā)送模塊可以分為以太網(wǎng)數(shù)據(jù)接收預(yù)處理模塊、GFP成幀模塊、SDH成幀模塊;接收模塊可以分為SDH解幀模塊、GFP解幀模塊、以太網(wǎng)數(shù)據(jù)發(fā)送處理模塊。發(fā)送和接收模塊示意圖分別如圖1和圖2所示。
發(fā)送部分的三個模塊的功能分別如下:以太網(wǎng)數(shù)據(jù)接收處理模塊利用FIFO緩存模塊存儲每一個有效MAC數(shù)據(jù)幀的數(shù)據(jù)和長度。同時實(shí)現(xiàn)數(shù)據(jù)從以太網(wǎng)時鐘域到SDH時鐘域的轉(zhuǎn)換;GFP成幀模塊對以太網(wǎng)MAC幀進(jìn)行GFP封裝,通過調(diào)整GFP數(shù)據(jù)幀和GFP空閑幀的插入,將以太網(wǎng)MAC幀映射到SDH的高階VC-4虛容器中;SDH成幀模塊對虛容器進(jìn)一步處理,添加開銷字段,生成STM-16數(shù)據(jù)幀,再利用FPGA內(nèi)部的GTP接口將16位155. 52MHz的并行數(shù)據(jù)轉(zhuǎn)化為一路2 488.32 MHz高速LVDS差分信號發(fā)送出去。
接收部分實(shí)現(xiàn)的過程是發(fā)送部分的逆過程。
GFP成幀模塊分為GFP數(shù)據(jù)幀產(chǎn)生模塊、空閑幀產(chǎn)生模塊、插入幀選擇模塊、GFP擾碼模塊;GFP解幀模塊分為GFP幀同步模塊、GFP解擾模塊、GFP接收幀處理模塊。
GFP數(shù)據(jù)幀產(chǎn)生模塊在去掉MAC幀8 B前導(dǎo)碼后,將剩余部分的數(shù)據(jù)封裝為GFP數(shù)據(jù)幀。按照GFP協(xié)議添加4 B的核心頭部和4 B的凈負(fù)荷域頭部,將非定長的以太網(wǎng)MAC幀添加到凈負(fù)荷信息字段,在幀尾添加4 B的凈負(fù)荷幀校驗序列(FCS)。
空閑幀實(shí)際上屬于GFP用戶管理幀的一種,沒有凈負(fù)荷域,只包含一個GFP核心幀頭,是4 B的全0比特與序列“B6AB31E0”異或所得。
插入幀選擇模塊根據(jù)流量情況調(diào)整數(shù)據(jù)幀和空閑幀的插入,在沒有數(shù)據(jù)幀要發(fā)送時,插入空閑幀,以保證GFP數(shù)據(jù)流的連續(xù)性。
在整個FPGA設(shè)計中,接收端的幀同步模塊是比較重要的,它主要進(jìn)行GFP幀的幀頭搜索和同步保持處理。同步狀態(tài)轉(zhuǎn)移圖如圖3所示。
用一個狀態(tài)機(jī)表示三種狀態(tài),即搜索態(tài)、預(yù)同步態(tài)和同步態(tài)。在預(yù)同步狀態(tài)和同步狀態(tài)時都只取1幀進(jìn)行狀態(tài)跳轉(zhuǎn)判斷。狀態(tài)機(jī)在FPGA初始化時默認(rèn)處于搜索狀態(tài),然后在連續(xù)的GFP數(shù)據(jù)流中進(jìn)行幀頭的搜索判斷,將連續(xù)的數(shù)據(jù)流在每個時鐘周期按字節(jié)存入緩存器中,在每個時鐘周期進(jìn)行4 B的擾碼判斷,即連續(xù)的4個字節(jié)與擾碼序列“B6AB31E0”進(jìn)行異或,得到的4 B數(shù)據(jù)中前2個字節(jié)根據(jù)擾碼多項式G(x)=X16+X12 +X5+1生成2個字節(jié)的校驗值,然后與后2個字節(jié)進(jìn)行比較,如果一致則表示找到了幀頭,進(jìn)入到預(yù)同步態(tài)。在預(yù)同步態(tài)繼續(xù)在一幀幀頭的相應(yīng)時刻進(jìn)行幀頭的判斷,如果正確則跳轉(zhuǎn)到同步態(tài),否則重新跳轉(zhuǎn)到搜索態(tài),繼續(xù)尋找?guī)^。如果進(jìn)入到同步態(tài),和預(yù)同步態(tài)一樣,也在一幀幀頭的相應(yīng)時刻進(jìn)行判斷,如果正確則繼續(xù)保持在同步態(tài),否則跳轉(zhuǎn)到搜索態(tài),重新在數(shù)據(jù)流中進(jìn)行幀頭的搜索。只有在處于同步狀態(tài)時才能繼續(xù)對數(shù)據(jù)進(jìn)行后續(xù)處理。
在SDH和GFP協(xié)議的成幀解幀里都要進(jìn)行擾碼和解擾處理。SDH的擾碼多項式為G(x)=X7+X6+1,GFP對核心頭部PLI的擾碼多項式為G(x)=X16 +X12+X5+1,GFP凈負(fù)荷域的擾碼多項式為G(x)=x43+1。這些擾碼器都為串行擾碼器,對于GE這種速率的數(shù)據(jù)如果也采用串行處理方式的話,F(xiàn)PGA內(nèi)部是無法實(shí)現(xiàn)的。經(jīng)過轉(zhuǎn)換處理,可以將串行擾碼器變?yōu)椴⑿袛_碼器再進(jìn)行擾碼,即可降低處理速度,滿足時序要求。
2 仿真綜合及實(shí)現(xiàn)
本設(shè)計采用VHDL硬件描述語言,使用的是XILINX公司帶有高速SERDES接口的SPARTAN-6芯片,利用ISE 12.1和仿真軟件進(jìn)行了綜合和仿真。由于FPGA的內(nèi)部資源較為豐富,本身自帶的IP核具有可靠性、方便性和靈活性的特點(diǎn)。時鐘部分使用了XIUNX芯片內(nèi)部的DCM時鐘管理模塊,雙端口RAM以及FIFO緩存器都使用了FPGA的內(nèi)部IP核資源。高速數(shù)據(jù)接口部分使用的是芯片內(nèi)部的GTP模塊,去掉了外部高速接口轉(zhuǎn)換芯片,簡化了電路板的設(shè)計,不但提高了設(shè)計效率,也提高了系統(tǒng)設(shè)計的穩(wěn)定性。
圖4和圖5表示的是對EOS數(shù)據(jù)進(jìn)行VC-4-7V虛級聯(lián)后的部分時序仿真圖。
圖4中,data_frm_state信號表示的是幀同步狀態(tài)機(jī)。在數(shù)據(jù)流中,狀態(tài)機(jī)一開始處于hunt狀態(tài),一旦找到幀頭,則進(jìn)入到presync狀態(tài);如果幀頭檢測沒有錯誤,則繼續(xù)跳轉(zhuǎn)到sync狀態(tài);如果幀頭判斷正確,那么狀態(tài)機(jī)就一直保持在sync狀態(tài)。
圖5中,s_datain信號表示的是解碼前的數(shù)據(jù),s_dataout信號表示的是根據(jù)擾碼多項式G(x)=X43+1解擾后的數(shù)據(jù)。
3 結(jié)語
綜上所述,利用FPGA可以實(shí)現(xiàn)千兆以太網(wǎng)MAC幀在SDH數(shù)據(jù)幀中的封裝和映射,配合外圍接口電路的使用,可以實(shí)現(xiàn)GE在STM-16中的傳輸。EOS技術(shù)既增強(qiáng)了以太網(wǎng)傳輸?shù)母采w范圍,也豐富了SDH設(shè)備的傳輸接口,極大地方便了用戶的使用。同時,利用FPGA進(jìn)行設(shè)計,大大縮短了開發(fā)的周期,也便于以后的升級和維護(hù)。