宣二勇,常立新,王俊芳
(1.中國電子科技集團公司第五十四研究所,河北石家莊050081;2.總參信息化部駐石家莊地區軍代室,河北石家莊050081)
當前以太網和SDH系統分別是IP業務和時分復用(TDM)業務的主要承載網絡,如何實現SDH上的IP業務傳輸一直是業界研究的熱點之一。EOS[1](Ethernet over SDH)是當前一種較現實和較高效的解決方案,然而用SDH傳送以太網業務存在的一個主要問題是SDH的虛容器速率與以太網速率不匹配造成的帶寬浪費,為此ITU提出的虛級聯技術[2]很好地解決了這一問題,即把一路高速數據適配到N路互相獨立的低速信道中傳輸,提供相當于多路低速信道容量之和的傳輸帶寬。當低速傳輸信道為E1時,便為E1虛級聯,也稱作E1反向復用技術。
E1/LAN反向復用技術是將一路高速以太網數據流捆綁到多路低速E1鏈路上進行傳輸工程應用技術,該技術在現有SDH傳輸設備的基礎上,充分利用E1鏈路資源,為多個局域網通過SDH網絡實現互聯提供了一種簡單經濟的解決方案。
E1/LAN反向復用技術的系統設計框圖如圖1所示。虛線框表示FPGA芯片,主要由媒體訪問控制(MAC)模塊、高級數據鏈路控制(HDLC)/鏈路訪問規程(LAPS)[3]模塊、交錯間插總線操作(IBO)模塊、E1模塊、SDRAM 控制器和 NiosⅡ處理器[4]構成,主要完成介質獨立接口(MII)與4路E1接口之間的數據轉換。由于以太網接口速率為10/100 Mbps,而 4路 E1鏈路的總帶寬僅為8.192 Mbps,為避免以太網數據分組突發時造成的數據丟失,采用外接SDRAM存儲器緩存突發的數據分組。NiosⅡ處理器是片上可編程系統(SOPC)的核心,通過Avalon總線與各模塊相連,結合片內定制的通用異步收發(UART)模塊可以實現對整個系統的控制與維護。

圖1 系統總體設計
MAC模塊完成以太網側MAC幀的收發,支持10/100 Mbps全雙工操作。在接收方向,從MII接口接收MAC幀,進行前導碼和幀起始定界符檢測和循環冗余校驗(CRC),若校驗結果正確,將數據分組通過SDRAM控制器寫入SDRAM,否則丟棄該MAC幀;在發送方向,從HDLC/LAPS模塊接收數據分組,添加CRC字段和前導碼,封裝成MAC幀后通過MII接口送往接口電路。NiosⅡ處理器通過寫控制寄存器的相應比特位,可以設置MAC模塊的端口速率、允許接收的最大幀長度、是否去除CRC字段和接口環回等;通過讀取狀態寄存器的相應比特位可以獲得該模塊的當前狀態。
HDLC/LAPS模塊將MAC幀封裝為HDLC幀或LAPS幀,采用字節操作模式,主要完成HDLC成幀/解幀、標志生成/檢測、語義轉換操作、幀校驗(FCS)和異常幀檢測等操作。在發送方向,從SDARAM中讀取數據分組,首先進行語義轉換操作,然后封裝為HDLC幀或LAPS幀送往IBO模塊;在接收方向,從IBO模塊接收到的數據流中檢測HDLC/LAPS幀起始標志,一旦檢測到幀起始標志后,進行幀校驗,去除幀頭、幀尾字段和異常幀檢測等操作,最后完成語義轉換后將恢復的數據分組送往MAC模塊。NiosⅡ處理器通過寫控制寄存器的相應比特位,可以設置幀類型(HDLC幀或LAPS幀)、HDLC幀格式(標準HDLC幀或簡易HDLC幀)、循環冗余校驗模式(CRC-32、CRC-16或no-CRC)、比特收發順序(大端模式或小端模式)、擾碼與解擾、最大幀長度和接口環回等參數。
IBO模塊主要完成鏈路層協議握手、復分接、鏈路差分時延補償和序號產生/檢測等操作,是整個實現的重點和難點。
系統上電初始化完成后進入握手階段,兩端節點間進行鏈路層協議的握手,握手操作在每路E1鏈路上單獨進行,握手流程如圖2所示。

圖2 握手操作流程
A端首先發送握手起始命令,接著發送3個連續序號的序號命令,然后發送空操作命令;B端接收到握手起始命令后,立即發送握手起始命令,接著發送3個連續序號的序號命令和空操作命令。對于A端或B端來說,若接收到對端發送過來的握手起始命令和3個序號連續的序號命令,則認為本地同步,并向對端發送本地同步命令。當接收端接收到對端發送的同步命令后,則認為對端同步;當本地和對端均同步后,握手成功,進入數據收發階段。各命令格式如表1所示。

表1 握手命令
進入數據收發階段后,在發送方向,將HDLC/LAPS幀以字節交錯間插的方式分接到握手成功的鏈路上傳輸,握手未成功的鏈路發送固定字節FFh。各鏈路帶寬為2.048 Mbps,數據幀格式為每幀32個時隙,其中第1時隙固定為FFh,第2時隙在握手階段傳輸握手命令,數據階段傳輸幀序號,其余時隙傳輸數據字節。系統總的有效帶寬D為:

在接收方向,首先進行E1幀對齊,序號檢測和糾錯,然后將相同序號的四路2.048 Mbps TDM數據流以字節交錯間插的方式復接成一路8.192 Mbps數據流,送往HDLC/LAPS模塊。
E1模塊主要完成廣域網側4路E1數據流的收發,由E1成/解幀模塊、幀同步檢測模塊、時鐘提取模塊和HDB3編解碼模塊構成。在發送方向,將IBO模塊送來的2.048 Mbps數據流,封裝為E1幀后經HDB3編碼后送往E1接口電路;在接收方向,首先從接收的HDB3碼中提取出2.048 MHz時鐘信號,然后進行HDB3解碼和E1解幀后,送往IBO模塊。
NiosⅡ是Altera公司針對SOPC解決方案在其FPGA中集成的軟核處理器。為了降低設計成本和設備體積,在FPGA內構建了簡單的SOPC系統代替外部處理器,實現對設備的控制與維護。
NiosⅡ處理器通過Avalon總線與各模塊相連,完成的工作包括:①上電時對系統各模塊進行初始化操作;② 利用片內定制的UART模塊,完成對各模塊的參數設置與狀態查詢。
E1/LAN反向復用技術將一路以太網數據反向復用到多路E1鏈路上進行傳輸。由于各E1數據流經過的路徑不同,同一數據分組的各個分片到達接收端的時間也不同,因此接收端在將各E1鏈路接收的數據流恢復為HDLC/LAPS幀之前,必須對各分片進行時延補償。具體實現原理如下:
①將各鏈路接收到的E1數據幀寫入到先入先出隊列(FIFO)中,然后采用同一時鐘將數據讀出,實現各鏈路E1幀頭對齊。
②當某一鏈路接收到握手起始命令后,啟動本鏈路定時器和全局定時器。每接收到一個E1數據幀,定時器加1,同時將后續接收到的E1數據幀寫入本鏈路的片內緩沖區中進行緩存。
③握手成功后,首先復位各緩沖區的讀寫指針,然后利用各鏈路定時器的當前值和全局定時器的當前值調整各緩沖區的讀指針。
通過上述指針調整后,同一時間從各鏈路緩沖區中讀取的E1數據幀將保持序號相同,由此實現了各鏈路的差分時延補償。容許的差分時延大小由片內緩沖區的容量決定,緩存區容量R(kbit)與容許的差分時延T(ms)之間的關系為:

在本設計中使用了256 kbit的片內緩存區容量,因此容許的各鏈路的最大差分時延為16 ms。
在數據傳輸階段,當某些鏈路發生故障或從故障中恢復時,系統應能夠自動將數據切換到有效鏈路上傳輸,保證鏈路帶寬的最佳利用,這稱為鏈路動態調整特性。鏈路動態調整的原理為:由于傳輸鏈路狀態發生變化,將導致E1模塊中的E1幀同步狀態發生變化,因此當可用的E1鏈路數與當前正在使用的鏈路數不同時,重新發起鏈路握手操作,由此實現鏈路的動態調整。
鏈路動態調整帶來的一個問題是當傳輸鏈路頻繁在故障和正常之間切換時,將導致握手操作的頻繁進行,從而影響數據的正常傳輸。為降低握手操作對鏈路狀態變化的敏感度,在具體實現時通過增加一個計時器來控制有限狀態機的狀態切換,即當E1幀同步狀態發生變化時,啟動計時器進行計時,若計時器滿時E1幀同步狀態未發生變化,則控制狀態機進入握手狀態,若在計時器未計滿前E1幀同步狀態再次發生變化,則重新啟動計時器,不進行握手操作。
針對工程需求,在CycloneⅡ FPGA上完成了E1/LAN反向復用技術的硬件實現。相對于采用專用集成電路和微處理器實現的設計[5,6],該實現方法解決了如下問題:
①由于該設計中的所有功能模塊均在FPGA中利用邏輯資源實現,因此大大減小了設備體積,降低了設備功耗,提高了設備可靠性;
②通過改變相應模塊的邏輯,可以實現將一路以太網數據反向復用到更多的E1鏈路上,靈活性好,可擴展性強;
③利用差分時延補償技術,各鏈路容許的差分時延達16 ms,通過增加片內緩沖區的大小,可以進一步提高該指標。
④利用鏈路動態調整技術,實現E1鏈路的動態增加和刪除。另外可以根據應用需求進行靈活配置,強制使用部分E1鏈路作為傳輸鏈路,合理利用E1鏈路資源。
對實現的設備進行了互通測試,2臺設備之間通過4路E1互連,設備的以太網口連接至計算機,2臺計算機進行連續ping數據包操作,利用SignalTap邏輯分析儀對IBO模塊中的數據進行采集。
當斷開任意E1鏈路時,2臺計算機之間ping操作在出現部分數據包丟失后,能夠重新ping通,同時出現時延變大;當恢復斷開的E1鏈路后,2臺計算機之間仍能夠ping通,時延變小。
分別斷開和恢復第4路 E1鏈路,通過SignalTap邏輯分析儀觀察IBO模塊中的數據收發情況。可以發現,斷開第4路E1鏈路前,第4路發送的幀間填充符為7Eh,斷開第4路E1鏈路后,第4路發送的字節為全FFh,在接收端可以看到有效數據被調整到前3路E1鏈路上傳輸。
通過以上測試可以發現當業務兩端之間的E1鏈路狀態出現變化時,設備能夠自動將業務承載到有效鏈路上傳輸,保證了兩端之間的業務互通,由此驗證了該設計具有鏈路動態調整的特征。
通過在第1路E1模塊中增加緩沖模塊模擬該鏈路傳輸過程中產生的延時,測試對不同鏈路差分時延的支持。緩沖模塊中緩沖區大小設置為32 kbit,因此第1路E1鏈路相對于其他鏈路延時16 ms。2臺計算機之間進行連續ping數據包操作,ping數據包長度為32 byte。增加緩沖模塊前,ping數據包時延小于1 ms;當增加緩沖模塊后,ping數據包時延變為16 ms。由此可以說明當各鏈路的數據到達接收端的時延不同時,設備能夠自動對各鏈路時延差進行補償,即設備具有差分時延補償特征。
根據工程需求,使用VHDL語言完成了多路E1/LAN反向復用技術的FPGA實現,利用此技術設計完成的E1/LAN反向復用設備具有體積小、功耗低、可靠性高、靈活性好和可擴展性強等特點。靈活鏈路動態調整和時延補償技術,不僅滿足當前工程的需求,在未來的其他應用領域也可以根據傳輸鏈路的變化進行靈活配置,具有較廣的應用前景。
[1]肖萍萍,吳建學.SDH原理與技術[M].北京:北京郵電大學出版社,2002.
[2]李 玲.EOS中虛級聯及 LCAS功能的芯片設計與FPGA實現[D].濟南:山東大學,2009:12-18.
[3] ITU-T Recommendation X.86/Y.1323.Ethernet over LAPS[S],2001.
[4]李蘭英.NiosⅡ嵌入式軟核SOPC設計原理及應用[M].北京:北京航空航天大學出版社,2006.
[5]劉 羿.以太網10BASE-T到E1接口的硬件設計及實現[D].成都:電子科技大學,2003:14-37.
[6]魏海功,楊勇濤.基于DS33Z41的協議轉換器[J].電子技術,2006(12):64-66.