摘 要: 分析了同步數(shù)字體系中2.048Mbps支路信號(hào)E1異步映射" title="異步映射">異步映射進(jìn)VC-12的過程,并根據(jù)正/零/負(fù)碼速調(diào)整" title="碼速調(diào)整">碼速調(diào)整原理確定了緩沖存儲(chǔ)器的容量和正負(fù)碼速調(diào)整的判定門限。通過對(duì)異步FIFO讀控制實(shí)現(xiàn)了此異步映射過程的正/零/負(fù)碼速調(diào)整。同時(shí),為了在異步時(shí)鐘域之間可靠地傳遞數(shù)據(jù),采用格雷碼" title="格雷碼">格雷碼實(shí)現(xiàn)讀時(shí)鐘域?qū)懼羔樀牟蓸?。該設(shè)計(jì)通過了功能仿真、綜合及FPGA驗(yàn)證。
關(guān)鍵詞: 同步數(shù)字體系 異步映射 碼速調(diào)整 異步FIFO 格雷碼
SDH (Synchronous Digital Hierarchy,同步數(shù)字體系)是一種有機(jī)地接合了高速大容量光纖傳輸技術(shù)和智能網(wǎng)技術(shù)的新型傳輸體制,由于其特有的高度靈活性、可管理性,已經(jīng)成為光纖通信的一個(gè)重要發(fā)展方向[1]。2.048Mbps是公用網(wǎng)中基本傳輸速率,應(yīng)用極為廣泛,將2.048Mbps支路信號(hào)E1(Electrical interface signal,電接口信號(hào))復(fù)用入STM-1(Synchronous Transport Module,同步傳送模塊)是實(shí)現(xiàn)PDH(Plesiochronous Digital Hierarchy,準(zhǔn)同步數(shù)字系列)與SDH兼容的重要部分。要完成這一工作,需要把2.048Mbps支路信號(hào)E1異步映射進(jìn)VC-12(Virtual Container,虛容器)。本文將具體介紹SDH中E1/VC-12異步映射的設(shè)計(jì)與實(shí)現(xiàn)。
1 2.048Mbps支路信號(hào)E1映射進(jìn)VC-12復(fù)幀的過程
在PDH向SDH過渡的長(zhǎng)時(shí)期內(nèi),2.048Mbps支路信號(hào)E1需要異步映射入STM-1。由于PDH的一次群支路信號(hào)與SDH傳輸網(wǎng)是非同步的,故2.048Mbps 支路信號(hào)E1必須先裝入標(biāo)準(zhǔn)容器C-12中進(jìn)行適配處理即進(jìn)行碼速調(diào)整,使之與SDH網(wǎng)同步。
首先將2.048Mbps支路信號(hào)E1經(jīng)過速率適配裝載到對(duì)應(yīng)的標(biāo)準(zhǔn)容器C-12中,為了便于速率的適配采用了復(fù)幀的概念,即將4個(gè)C-12基幀組成一個(gè)復(fù)幀。復(fù)幀的具體比特安排如圖1所示[2][3]。C-12的基幀頻率是8000幀/s,所以C-12復(fù)幀的頻率也就成了2000幀/s。
為了在SDH網(wǎng)的傳輸中能實(shí)時(shí)監(jiān)測(cè)任一個(gè)2.048Mbps通道信號(hào)的性能,需將C-12再打包,即加入相應(yīng)的通道開銷(低階通道開銷),使其成為VC-12幀結(jié)構(gòu)。
VC-12幀結(jié)構(gòu)如圖1所示。V5、J2、N2、K4為VC-12的通道開銷字節(jié);8個(gè)O比特為開銷通信通路比特;49個(gè)R比特為固定塞入比特;3個(gè)C1比特為負(fù)碼速調(diào)整控制比特,3個(gè)C2比特為正碼速調(diào)整控制比特,分別用來控制一個(gè)負(fù)調(diào)整機(jī)會(huì)比特S1和一個(gè)正調(diào)整機(jī)會(huì)比特S2。當(dāng)C1C1C1=000時(shí)表示S1是信息比特,而C1C1C1=111時(shí)表示S1是調(diào)整比特。C2按同樣的方式控制S2比特。S1比特和S2比特作為調(diào)整比特時(shí)其值未做規(guī)定,因而要求接收機(jī)將該值忽略[2]。
支路信號(hào)E1的幀頻為8kHz,所以VC-12復(fù)幀的頻率為2kHz,每復(fù)幀中有一個(gè)負(fù)調(diào)整比特S1和一個(gè)正調(diào)整比特S2,因此做零調(diào)整時(shí)凈復(fù)合速率為:(324×8+0)×2k=2048kbps;做負(fù)調(diào)整時(shí)凈復(fù)合速率為:(324×8+1)×2k=2050kbps;做正調(diào)整時(shí)凈復(fù)合速率為:(324×8-1)×2k=2046kbps。
由于E1接口的標(biāo)稱速率及容差為:2048kb/s±50ppm,也就是(2048kb±102.4b)/s,因此(2048kb±2kb)/s完全可以容納支路信號(hào)E1的頻偏。所以本設(shè)計(jì)采用將2.048Mbps支路信號(hào)E1通過正/零/負(fù)碼速調(diào)整異步映射入VC-12的設(shè)計(jì)思路。
2 正/零/負(fù)碼速調(diào)整原理及相關(guān)參數(shù)的確定
正/零/負(fù)碼速調(diào)整是采用脈沖塞入原理并在支路速率的標(biāo)稱值上進(jìn)行的。首先為支路緩沖存儲(chǔ)器設(shè)置兩個(gè)固定門限:正調(diào)整門限Zmin和負(fù)調(diào)整門限Zmax。由于包裝速率fh與支路速率fl都在一定的容差內(nèi)變化,并且傳輸時(shí)鐘各不相同,因此有下列三種情況:讀寫時(shí)差在兩門限之間,不做碼速調(diào)整;讀寫時(shí)差低于正調(diào)整門限,要求正調(diào)整,即減慢讀出時(shí)鐘(fh),以增大讀寫時(shí)差;讀寫時(shí)差高于負(fù)調(diào)整門限,要求負(fù)調(diào)整,即加快讀出時(shí)鐘(fh),以減小讀寫時(shí)差。
讀出第x個(gè)信碼時(shí)讀寫時(shí)差△tx的表達(dá)式為[4]:

式中,△t0為初始讀寫時(shí)差;Tl為支路時(shí)鐘周期;g為在0讀出時(shí)刻到第x讀出時(shí)刻之間讀出時(shí)鐘總共停頓的節(jié)拍。當(dāng)經(jīng)歷一幀時(shí)間,并在這幀內(nèi)未進(jìn)行碼速調(diào)整,即x=Q,g=K時(shí),△tx=STl;當(dāng)經(jīng)歷一幀時(shí)間,并且在這幀內(nèi)進(jìn)行了正碼速調(diào)整,即x=Q-1,g=K+1時(shí),△tx=(S+1)Tl;當(dāng)經(jīng)歷一幀時(shí)間,并且在這幀內(nèi)進(jìn)行了負(fù)碼速調(diào)整,x=Q+1,g=K-1時(shí),△tx=(S-1)Tl。在這些式子中,S為調(diào)整比率,根據(jù)包裝速率fh與支路速率fl以及它們的容差范圍可以得出Smax=+0.07,Smin=-0.07;Q為無調(diào)整情況下一幀中的信息比特?cái)?shù); K為無調(diào)整情況下一幀中的非信息比特?cái)?shù)。
由此可得出穩(wěn)態(tài)碼速調(diào)整所引起的讀寫時(shí)差峰-峰值:
(1) 對(duì)正碼速調(diào)整,△tmin=Zmin-0.07Tl;△tmax=Zmin+22.86Tl;
(2)對(duì)負(fù)碼速調(diào)整,△tmin=Zmax-0.07Tl;△tmax=Zmax-22.93Tl;
按照ITU-T G.703建議,異步2.048Mbps網(wǎng)絡(luò)接口的最大允許輸入抖動(dòng)Jp-p=1.5UI;而且在碼速恢復(fù)鎖相環(huán)中,由于輸入支路頻偏差及壓控振蕩器中心頻率偏移還會(huì)引入跟蹤誤差(峰-峰值變化)[3]。緩沖存儲(chǔ)器容量和正調(diào)整門限、負(fù)調(diào)整門限的設(shè)定除了要考慮上述因素之外,還要考慮使碼速調(diào)整過渡過程盡量小,穩(wěn)定工作區(qū)盡量大,并且盡量擴(kuò)大不調(diào)整狀態(tài)的持續(xù)時(shí)間,同時(shí)又能承受1b的線路抖動(dòng)。
綜合以上因素,并且考慮到數(shù)據(jù)為串行數(shù)據(jù),一個(gè)支路時(shí)鐘周期Te要存儲(chǔ)的數(shù)據(jù)為1bit,可以得到緩沖存儲(chǔ)器的容量為N=32bit, 正調(diào)整門限為Zmin=3Tl,負(fù)調(diào)整門限Zmax=29Tl。
于是可以得到正調(diào)整判決門限為:BT+=Zmin=3Tl
負(fù)調(diào)整判決門限為:BT-=Zmax- (22Tl-8Tl)=15Tl
3 異步映射的設(shè)計(jì)與實(shí)現(xiàn)
本設(shè)計(jì)通過一個(gè)異步FIFO對(duì)支路信號(hào)E1實(shí)現(xiàn)正/零/負(fù)碼速調(diào)整。首先對(duì)異步FIFO設(shè)定兩個(gè)判決門限值:正調(diào)整判決門限值3Tl和負(fù)調(diào)整判決門限值15Tl。低于或等于正調(diào)整判決門限值時(shí)值進(jìn)行正碼速調(diào)整,高于或等于負(fù)調(diào)整判決門限值時(shí)進(jìn)行負(fù)碼速調(diào)整,在正負(fù)調(diào)整判決門限值之間的不進(jìn)行碼速調(diào)整。寫地址產(chǎn)生模塊的時(shí)鐘由支路信號(hào)E1提取的時(shí)鐘信號(hào)w_clk(2.098MHz±102.4Hz)提供,用于產(chǎn)生將E1_data順序?qū)懭?a class="cblue" href="http://m.ihrv.cn/search/?q=雙口" title="雙口">雙口RAM的寫指針;讀地址產(chǎn)生模塊的時(shí)鐘由外部時(shí)鐘信號(hào)r_clk(2.240MHz)提供,用于產(chǎn)生雙口RAM的讀指針。讀寫地址比較模塊產(chǎn)生讀寫指針的差值,并與正負(fù)調(diào)整判決門限值比較,之后將比較結(jié)果送給輸出控制模塊" title="控制模塊">控制模塊。輸出控制模塊還受控于幀頭信號(hào)、幀同步信號(hào)。輸出控制模塊決定是從雙口RAM中讀取數(shù)據(jù)VC-12,還是從發(fā)送寄存器中讀取數(shù)據(jù)VC-12。整體設(shè)計(jì)框圖如圖2所示。
3.1 存儲(chǔ)單元的設(shè)計(jì)
首先定義一個(gè)位寬為1bit、深度為32的雙口RAM,用作異步FIFO的存儲(chǔ)單元,然后定義寫數(shù)據(jù)端口(data_in)、寫時(shí)鐘(w_clk)、寫地址(w_add)、寫使能信號(hào)(wren)、讀數(shù)據(jù)端口(data_out)、讀時(shí)鐘(r_clk)、讀地址(r_add)、讀使能信號(hào)(ren)等,用以控制此雙口RAM的讀寫操作。
3.2 寫指針在寫時(shí)鐘域和讀時(shí)鐘域之間的傳遞及讀寫指針在讀時(shí)鐘域的比較
對(duì)此異步映射器而言,它的寫是不可控制的,輸入的寫時(shí)鐘頻率為2.048MHz±102.4Hz。但是讀是可控制的,讀時(shí)鐘頻率為由外部提供的2.240MHz。因此只需在讀時(shí)鐘域?qū)懼羔樔?,并把它與讀指針進(jìn)行比較產(chǎn)生正/零/負(fù)碼速調(diào)整信號(hào)即可。
由于讀寫時(shí)鐘頻率不同,為了在寫時(shí)鐘域和讀時(shí)鐘域之間可靠地傳遞寫指針,本設(shè)計(jì)采用在寫時(shí)鐘域先將寫指針的二進(jìn)制碼轉(zhuǎn)換為格雷碼[5],然后用讀時(shí)鐘對(duì)此格雷碼進(jìn)行采樣;在讀時(shí)鐘域?qū)⒉蓸拥膶懼羔樀母窭状a轉(zhuǎn)換為二進(jìn)制碼(wbin_rclk[n:0]),再與讀指針的二進(jìn)制碼(rbin_rclk[n:0])進(jìn)行比較,得到兩者之間的差值(ptr_gap[n-1:0])。
為了確定讀寫指針是否在同一個(gè)地址周期,需要對(duì)讀寫指針額外增加一位最高位MSB,用讀寫指針的最高位判定讀寫指針是否在同一個(gè)地址周期。
在圖3中,wbin[n-1:0]用于向雙口RAM中提供寫數(shù)據(jù)的寫指針;由于二進(jìn)制碼和格雷碼的最高位相同,因此寫指針的二進(jìn)制碼wbin[n:0]的最高位wbin[n]不變,并將除了最高位以外的二進(jìn)制碼轉(zhuǎn)換為格雷碼gptr[n-1:0],這樣做可以節(jié)省一個(gè)觸發(fā)器;wbin[n]和gptr[n-1:0]組成wgray_ptr_to_rclk[n:0],用于在讀時(shí)鐘域和寫時(shí)鐘之間傳遞寫指針。
在圖4中,wgray_ptr_to_rclk[n:0]為從寫時(shí)鐘域傳遞到讀時(shí)鐘域的寫指針;讀寫指針比較單元的讀指針(rbin_rclk[n:0])來自于讀地址產(chǎn)生模塊的二進(jìn)制讀指針(rbin_rclk_in[n:0])。
由前面的分析可以得出:若ptr_gap[n-1:0]<4Tl(正調(diào)整判決門限為3Tl),則進(jìn)行正碼速調(diào)整;若ptr_gap[n-1:0]>14Tl(負(fù)調(diào)整判決門限為15Tl),則進(jìn)行負(fù)碼速調(diào)整;若4 Tl≤ptr_gap[n-1:0]≤14Tl,則不進(jìn)行碼速調(diào)整。ptr_gap[n-1:0]的值必須小于32Tl,若大于此值,則說明輸入信號(hào)E1_data的速率過快或者過慢,超出了(2048k±102.4)bps這個(gè)范圍,此時(shí)產(chǎn)生輸入信號(hào)性能劣化報(bào)警信號(hào),同時(shí)發(fā)出響應(yīng)脈沖wren、ren,使對(duì)雙口RAM的讀寫操作無效。如果ptr_gap[n-1:0]<32Tl,則分為以下兩種情況:
?、賥bin_rclk[n:0]與rbin_rclk[n:0]在同一個(gè)地址周期(MSB相等,wbin_rclk[n]=rbin_rclk[n])
wbin_rclk[n-1:0]≥rbin_rclk[n-1:0],ptr_gap[n-1:0]=wbin_rclk[n-1:0] - rbin_rclk[n-1:0];
wbin_rclk[n-1:0]<rbin_rclk[n-1:0], 輸入信號(hào)性能劣化,產(chǎn)生報(bào)警信號(hào)。
?、趙bin_rclk[n:0]與rbin_rclk[n:0]不在同一個(gè)地址周期(MSB不等,wbin_rclk[n]≠rbin_rclk[n])
wbin_rclk[n-1:0]≤rbin_rclk[n-1:0],ptr_gap[n-1:0]= wbin_rclk[n-1:0]+rbin_rclk[n-1:0];
wbin_rclk[n-1:0]>rbin_rclk[n-1:0], 輸入信號(hào)性能劣化,產(chǎn)生報(bào)警信號(hào)。
3.3 輸出控制模塊
輸出控制模塊屬于讀時(shí)鐘域,根據(jù)讀時(shí)鐘r_clk、正/零/負(fù)碼速調(diào)整信號(hào)adjust_signal[1:0]以及幀信號(hào)(包括幀頭信號(hào)frame_head和幀同步信號(hào)in_frame)等產(chǎn)生輸出數(shù)據(jù)VC-12。輸出控制模塊的設(shè)計(jì)框圖如圖5所示。
輸出控制模塊由讀時(shí)鐘控制的模8計(jì)數(shù)器(n)、模35計(jì)數(shù)器(m)、模4計(jì)數(shù)器(p)以及輸出選擇單元組成,模8計(jì)數(shù)器的進(jìn)位用于模35計(jì)數(shù),模35計(jì)數(shù)器的進(jìn)位用于模4計(jì)數(shù)。模8計(jì)數(shù)器用于讀出一個(gè)字節(jié)的8比特。當(dāng)m=0時(shí)從發(fā)送寄存器讀出8個(gè)R、8個(gè)R、8個(gè)R、8個(gè)R;當(dāng)m=1時(shí)從發(fā)送寄存器讀出VC-12的通道開銷字節(jié)V5、J2、N2、K4;當(dāng)m=2時(shí)從發(fā)送寄存器讀出8個(gè)R、C1C2OOOORR、C1C2OOOORR、C1C2RRRRRS1;當(dāng)p=3、m=3、n=0時(shí)讀出S2比特。
正/零/負(fù)碼速調(diào)整的判定區(qū)放于幀末(p=3、m=34時(shí)),此時(shí)對(duì)讀寫指針進(jìn)行比較,并根據(jù)比較的結(jié)果設(shè)定正/零/負(fù)碼速調(diào)整信號(hào)。然后在下一幀中根據(jù)此調(diào)整信號(hào)進(jìn)行正/零/負(fù)碼速調(diào)整,并在此幀的判定區(qū)設(shè)定正/零/負(fù)碼速調(diào)整信號(hào)(用于第三幀的碼速調(diào)整)。同時(shí)設(shè)定正判決的優(yōu)先級(jí)別高于負(fù)判決,即用一幀中的正碼速調(diào)整判決關(guān)閉負(fù)碼速調(diào)整判決。
?
3.4 功能仿真以及綜合驗(yàn)證
通過可綜合的硬件描述語言Verilog實(shí)現(xiàn)了此異步映射電路的設(shè)計(jì),并且通過了VCS工具的功能仿真。圖6給出了正/零/負(fù)碼速調(diào)整判定區(qū)的仿真波形圖。
圖中,enable為進(jìn)行調(diào)整判定的使能信號(hào),r_clk為讀時(shí)鐘信號(hào),rbin_rclk_in[5:0]為來自于讀地址產(chǎn)生模塊的讀指針信號(hào),rbin_rclk[5:0]為對(duì)rbin_rclk_in[5:0]進(jìn)行采樣后的讀指針信號(hào),wgray_ptr_to_rclk[5:0]為從寫時(shí)鐘域傳遞到讀時(shí)鐘域的寫指針信號(hào),wgray_rclk[5:0]為讀時(shí)鐘對(duì)wgray_ptr_to_rclk[5:0]采樣后的寫指針信號(hào),wbin_rclk[5:0]為二進(jìn)制碼的寫指針信號(hào),ptr_gap[4:0]為讀寫指針的差值信號(hào),adjust_signal[1:0]為正/零/負(fù)碼速調(diào)整信號(hào),Ca[2:0]為C1C1C1, Cb[2:0]為C2C2C2,alarm_signal為輸入信號(hào)性能劣化報(bào)警信號(hào)。
由此仿真波形圖可以看出,由于讀寫指針的差值ptr_gap[4:0]為2Tl,小于正調(diào)整判決門限值3Tl,因此設(shè)置負(fù)碼速調(diào)整控制比特C1C1C1=111,正碼速調(diào)整控制比特C2C2C2=111,正/零/負(fù)碼速調(diào)整信號(hào)adjust_signal[1:0]=00(這三個(gè)值均為二進(jìn)制碼),于是下一幀要進(jìn)行正碼速調(diào)整。
實(shí)現(xiàn)了功能仿真之后,在Design Compiler綜合環(huán)境下完成了該系統(tǒng)的綜合。最后,采用ALTERA公司的FPGA(Cyclone系列)EP1C6T144C8器件通過了驗(yàn)證。
參考文獻(xiàn)
1 韋樂平. 光同步數(shù)字傳輸網(wǎng)(修訂版).北京: 人民郵電出版社,1993:1~3
2 鄧忠禮.光同步傳送網(wǎng)和波分復(fù)用系統(tǒng)(第一版).北京:清華大學(xué)出版社,2003:50~51
3 ITU-T Rec.G.783 Digital terminal equipment-Principal char-acteristics of multiplexing equipment for the synchronous dig-ital hierarchy.ITU-T, 2004:183
4 孫 玉. 數(shù)字復(fù)接技術(shù)(第二版). 北京:人民郵電出版社, 1993:54~55
5 Cummings C E. Simulation and Synthesis Techniques for Asynchronous FIFO Design.Sunburst Design Inc.,2002:6~7






