韓美林 喬成芳
(商洛學(xué)院電子信息與電氣工程學(xué)院 商洛 726000)
OTN技術(shù)對已有的SDH和WDM的傳統(tǒng)優(yōu)勢進(jìn)行了更為有效的繼承和組合,能最大程度上滿足多業(yè)務(wù)、大顆粒、大容量、高可靠性的傳送需求,相比以往的數(shù)字傳送網(wǎng),OTN技術(shù)包含了光層和電層的完整體系結(jié)構(gòu),同時具備了SDH的安全與調(diào)度和WDM大容量遠(yuǎn)距離傳送的雙重優(yōu)勢,同時可以為數(shù)據(jù)業(yè)務(wù)提供最低的時延抖動,更好地滿足了目前的互聯(lián)網(wǎng)需要[3~4]。
雖然OTN具有很多優(yōu)點,但目前限制其快速發(fā)展的主要問題是交換問題。以往OTN采用的是面向連接的電路交換方式,其缺點是網(wǎng)絡(luò)的帶寬利用率低,電路交換時不同數(shù)據(jù)類型、不同規(guī)格、不同速率的終端很難相互進(jìn)行通信,也難以在通信過程中進(jìn)行差錯控制[5]。因此基于市場和技術(shù)的需求本文設(shè)計了在OTN分組交換技術(shù)的解映射過程中采用一種基于同步時鐘產(chǎn)生的均勻缺口時鐘來實現(xiàn)解幀[6],將成幀后的一路16位ODU1信號通過異步映射方式去映射為兩路8位的ODU0信號供下級電路處理。
通過對ODU1 remux ODU0模塊功能的分析,設(shè)計了圖1所示的將ODU1信號通過異步映射方式去映射到ODU0信號的總體結(jié)構(gòu)框圖。
如圖1所示,將ODU1 remux ODU0模塊分為三個小模塊,分別為一路ODU1到ODTU01的時隙拆分模塊,兩路ODTU01到ODU0的JC調(diào)整模塊,兩路ODU0的成幀器模塊[7]。在輸入端,其中otu2_clk和odu1_clk產(chǎn)生與odu1同頻的虛擬時鐘,odu1_line和odu1_columm是odu1的行列指示信號;od?tu01_a、odtu01_b是時隙拆分后支路的數(shù)據(jù),mfas是復(fù)幀信號。jc_decision是當(dāng)前幀中JC0到JC3多數(shù)判決結(jié)果的輸出。在輸出端,其中otu2_clk和odu0_clk產(chǎn)生與odu0同頻的虛擬時鐘[8];w_data0、w_data1是JC調(diào)整后時間上不均勻的兩個支路的ODU0數(shù)據(jù);odu0_data0、odu0_data1是odu0成幀后的數(shù)據(jù),odu0_column和odu0_line是odu0成幀后的行列指示信號。
ODU0的成幀器模塊與ODU1的成幀器模塊相似,此處不再重復(fù)。ODU1 remux ODU0模塊的接口定義及說明如表1所示。
圖1 ODU1 remux ODU0模塊的總體結(jié)構(gòu)框圖
根據(jù)ODUk幀結(jié)構(gòu)可知,ODU1和ODU0的幀格式相同,均是4×3824,前16列為開銷部分,后3808列為凈荷部分[9]。2路ODU0數(shù)據(jù)加上ODU1開銷數(shù)據(jù)組成一路的ODU1數(shù)據(jù),根據(jù)ODU1的幀結(jié)構(gòu)和ODU1的行列指示去除ODU1的前16列開銷數(shù)據(jù)后將剩余數(shù)據(jù)根據(jù)數(shù)據(jù)間插的方式拆分為兩路8bit的ODTU01數(shù)據(jù)輸出給下級電路使用[10]。并將ODU1的復(fù)幀MFAS輸出,為JC調(diào)整模塊做準(zhǔn)備。
ODU1幀結(jié)構(gòu)中,在前3行的第16列中存放著對調(diào)整字節(jié)進(jìn)行解釋的JC開銷,G709中規(guī)定為了在異步映射中最大程度的減小對調(diào)整字節(jié)的解釋錯誤[11],用3個JC開銷采用多數(shù)判決的辦法對調(diào)整的字節(jié)進(jìn)行一到兩個字節(jié)的正負(fù)調(diào)整,從而避免因調(diào)整字節(jié)的解釋錯誤導(dǎo)致整個客戶數(shù)據(jù)的傳錯。
ODTU01到ODU0采用3個寄存器JC1到JC3進(jìn)行多數(shù)判決,由接收到的JC開銷為高的個數(shù)情況進(jìn)行判決[12]。在第4列時按照之前判決的結(jié)果和MFAS最后兩位對應(yīng)的數(shù)據(jù)進(jìn)行JC的調(diào)整。ODTU01到ODU0的JC調(diào)整字節(jié)意義具體結(jié)構(gòu)如表 2所示[13]。
表2 字節(jié)調(diào)整信息意義
從表2可以看出:當(dāng)三個JC中至少有兩個為00時,判斷為不調(diào)整,則NJO為開銷數(shù)據(jù),PJO1、PJO2均為客戶數(shù)據(jù);當(dāng)三個JC中至少有兩個為01時,判斷為負(fù)調(diào)整,則NJO、PJO1、PJO2均為客戶數(shù)據(jù);當(dāng)三個JC中至少有兩個為10時,則判斷為有兩個正調(diào)整,則NJO、PJO1、PJO2均為開銷數(shù)據(jù);當(dāng)三個JC中至少有兩個為11時,則判斷為有一個正調(diào)整,則NJO為開銷數(shù)據(jù),PJO1、PJO2均為無效數(shù)據(jù)[14]。
ODTU01到ODU0的JC調(diào)整模塊具體設(shè)計為根據(jù)ODU1的行列指示判斷是否為開銷數(shù)據(jù),是開銷則直接送給開銷模塊進(jìn)行開銷的提取處理,然后判斷復(fù)幀MFAS最后一位對應(yīng)的數(shù)據(jù)是否為零,如果為零則將第一行的第八列的最低兩位送給jc1、第二行的第八列的最低兩位送給jc1、第三行的第八列的最低兩位送給jc3。根據(jù)多數(shù)判決如果至少有兩個相等則說明JC判決正確反之則錯誤[15]。如果jc1、jc2、jc3至少有兩個等于0則為不調(diào)整,如果至少有兩個等于1則為負(fù)調(diào)整,如果至少有兩個為2則為兩個正調(diào)整,如果至少有兩個為3則為一個正調(diào)整。詳細(xì)步驟根據(jù)圖2所示完成相應(yīng)的操作。其他一路設(shè)計步驟相同不再做說明。
圖2 ODTU01到ODU0的一路JC調(diào)整模塊詳細(xì)流程圖
如圖3所示為ODU1 remux ODU0模塊的電路仿真結(jié)果圖。odu1_gap_en為ODU1數(shù)據(jù)的使能信號,data_in為成幀后的ODU1數(shù)據(jù)流,line和column分別為ODU1數(shù)據(jù)流的行列指示,mfas為復(fù)幀值,jc_decision表示jc1、jc2、jc3調(diào)整多數(shù)判決的結(jié)果,fifo_data0、fifo_data1分別為解復(fù)用后沒有成幀的ODU0數(shù)據(jù)流,fifo_en0、fifo_en1分別為ODU0數(shù)據(jù)流的使能信號。從圖中可以看出mfas為00時表示調(diào)整第一路ODU0數(shù)據(jù),jc多數(shù)判決結(jié)果為00表示不調(diào)整,則fifo_data0數(shù)據(jù)輸出不調(diào)整。一路16bit的ODU1數(shù)據(jù)流去映射為兩路8bit的ODU0數(shù)據(jù)流。
圖3 ODU1 remux ODU0模塊的電路仿真結(jié)果圖
本文設(shè)計并實現(xiàn)了光傳送網(wǎng)中ODU1到ODU0的解復(fù)用映射電路。仿真表明,本設(shè)計能夠?qū)崟r、準(zhǔn)確地完成ODU1到ODU0的數(shù)據(jù)傳輸,大大減少了鎖相環(huán)的使用,時鐘抖動也較少。同時設(shè)計中采用的是Verilog硬件語言,不僅可以有效地縮短設(shè)計周期,而且增加電路設(shè)計的可移植性。