《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 以太網(wǎng)到多路E1適配電路設(shè)計及FPGA實現(xiàn)

以太網(wǎng)到多路E1適配電路設(shè)計及FPGA實現(xiàn)

2008-11-14
作者:范亞希 葛 寧

??? 摘? 要: 介紹了一種基于現(xiàn)場可編程門陣列(FPGA)的以太網(wǎng)數(shù)據(jù)-多路" title="多路">多路E1反向復(fù)用" title="復(fù)用">復(fù)用器同步電路設(shè)計, 分析了FPGA具體實現(xiàn)過程中的一些常見問題。該設(shè)計采用VHDL硬件描述語言編程,可以實現(xiàn)以太網(wǎng)數(shù)據(jù)在多路E1信道中的透明傳輸,適配" title="適配">適配電路芯片內(nèi)置HDB3編解碼器和數(shù)字時鐘提取電路。?

??? 關(guān)鍵詞: FPGA? 反向復(fù)用? 以太網(wǎng)數(shù)據(jù)? EI信道? 適配電路?

?

??? 伴隨著Internet的迅速發(fā)展,IP已經(jīng)成為綜合業(yè)務(wù)通信的首選協(xié)議,其承載的信息量也在成倍增長,如何利用現(xiàn)有的電信資源組建寬帶IP網(wǎng)絡(luò)是近年來研究的熱點,。目前,比較成熟的技術(shù)主要有IP over SDH(POS)和IP over ATM(POA),。POS將IP包直接裝入SDH的虛容器中,通道開銷少、實現(xiàn)簡單,具有自動保護(hù)切換功能;POA的復(fù)接過程比較復(fù)雜,可以通過高系統(tǒng)開銷提供較好的服務(wù)質(zhì)量保證(QOS),。從目前的市場看,各大通信設(shè)備商都推出了基于POS/POA的產(chǎn)品,但總體成本較高,主要面向的是一些高端應(yīng)用,。對于帶寬需求在十幾兆以下的點對點通信而言,上述兩種技術(shù)的優(yōu)勢并不明顯。本文介紹的適配電路將以太網(wǎng)數(shù)據(jù)適配到E1信道傳輸,通過配置E1信道數(shù)量控制帶寬,針對這類應(yīng)用提供了一種經(jīng)濟靈活的解決方案,。?

??? 適配電路的一側(cè)為MII標(biāo)準(zhǔn)以太網(wǎng)MAC接口,采用100MHz/全雙工模式,另一側(cè)是8路E1(HDB3)差分接口,。發(fā)送方向?qū)⒁蕴W(wǎng)數(shù)據(jù)封裝為HDLC幀,反向復(fù)用到1~8路可配E1信道傳輸,接收方向同步多路E1,還原出以太網(wǎng)數(shù)據(jù)。帶寬從2MHz到16MHz(1~8路E1) 可配,接收側(cè)多路E1之間可以容納16毫秒的延時,。?

??? 鑒于目前國內(nèi)類似產(chǎn)品較少,而ASIC開發(fā)成本較高,本電路采用VHDL編程→FPGA實現(xiàn)的設(shè)計流程,。?

1 反向復(fù)用定義?

??? 反向復(fù)用的基本概念就是把一路高速數(shù)據(jù)適配到多路低速信道中傳輸,提供相當(dāng)于多路低速之和的傳輸帶寬。對于點對點通信,主要關(guān)心以下幾點性能,。?

1.1 帶寬利用率?

??? 低速信道在傳輸高速數(shù)據(jù)的同時,必然有附加的開銷,會影響帶寬利用率,。在本設(shè)計中,以太網(wǎng)包進(jìn)入適配電路后封裝成HDLC幀需要四字節(jié)的附加信息。E1幀在傳輸HDLC數(shù)據(jù)的同時要攜帶的同步信息,占用6.25%帶寬,。綜合上述兩點,有效數(shù)據(jù)平均帶寬利用率大約在90%,。?

1.2 容納延時?

??? 由于各路低速信道在傳輸過程中經(jīng)歷的路徑不同,到達(dá)對端后各路間會有延時,設(shè)計中要考慮如何消除這部分延時。?

1.3 線路故障處理?

??? 算法設(shè)計中必需有同步保護(hù)狀態(tài)機,保證傳輸信道出現(xiàn)錯誤時,算法不會產(chǎn)生過高的附加誤碼率,并且在信道錯誤恢復(fù)時,保證數(shù)據(jù)傳輸同步恢復(fù),。?

1.4 數(shù)據(jù)包突發(fā)性?

??? 以太網(wǎng)的滿發(fā)送速率為100MHz,而低速信道的最大可配帶寬為16MHz,這將導(dǎo)致即使平均流量小于配置帶寬,一個短時間內(nèi),接收的數(shù)據(jù)量還有可能遠(yuǎn)大于傳輸帶寬,。所以在以太網(wǎng)數(shù)據(jù)的輸入側(cè)必須設(shè)計高容量的緩存隊列以容納一定的突發(fā)數(shù)據(jù)包。?

2 算法設(shè)計?

??? 以下就設(shè)計中一些核心電路的算法做具體說明,。?

2.1 以太網(wǎng)數(shù)據(jù)→多路E1反向復(fù)用?

??? 數(shù)據(jù)反向適配一般可以采用三種方式:包間插,、比特間插和字節(jié)間插。所謂包間插就是指數(shù)據(jù)包到達(dá)后,連續(xù)檢測各個E1信道,在第一個查到的空閑信道上順序傳輸整個數(shù)據(jù)包,下一包到達(dá)后再重復(fù)這一過程,。這種方式的優(yōu)點是設(shè)計簡單,在對端也不需要對多路E1進(jìn)行同步,各路數(shù)據(jù)可以單獨處理,。缺點是由于各路E1傳輸過程中經(jīng)歷延時不同,導(dǎo)致對端接收數(shù)據(jù)包的順序與發(fā)端順序有較大差別??紤]到發(fā)包比較稀疏的情況,一個長包完全可以在一路E1中傳遞,而其它E1通道沒有數(shù)據(jù)包傳送,。這樣,一方面造成帶寬浪費,另一方面也引入較大的轉(zhuǎn)發(fā)延時。?

??? 比特間插在傳輸過程中沒有包的概念,只是順序從以太網(wǎng)數(shù)據(jù)輸入緩存區(qū)內(nèi)讀出比特流并按1→n(n路E1)循環(huán)編號,編號為i的比特在第i路E1中傳輸。這種設(shè)計電路十分復(fù)雜,對端要對多路E1同步到比特單位才能還原出有效數(shù)據(jù),。其優(yōu)點就是沒有帶寬的浪費和輸入輸出包順序的變化,轉(zhuǎn)發(fā)延時也是固定的,。?

??? 本設(shè)計采用的字節(jié)間插是比較折中的解決方案。它的基本原理與比特間插類似,但從緩存區(qū)讀出的數(shù)據(jù)和編號都是以字節(jié)為單位,每個字節(jié)經(jīng)過串并轉(zhuǎn)換后在對應(yīng)編號的E1信道中傳輸,。它繼承了比特間插的優(yōu)點,同時由于對端只需同步到字節(jié)單位上,處理時鐘較為寬裕,同步電路設(shè)計也就相對簡單,。其具體的算法實現(xiàn)如下:?

??? 以太網(wǎng)數(shù)據(jù)包進(jìn)入適配電路后封裝成HDLC幀存入緩存區(qū)Buff,Buff的出口側(cè)速率與多路E1信道傳輸速率匹配,一個2MHz時鐘周期內(nèi)完成的操作如圖1所示。?

?

?

圖中,?

??? Fcnt:8比特幀計數(shù)(E1幀有256個bit);?

??? MFcnt:8比特復(fù)幀計數(shù);?

??? L3:Fcnt的低三位比特;?

??? E1out:輸出8路E1數(shù)據(jù)(8bit);?

??? Framecode:E1幀同步" title="幀同步">幀同步碼“10011011”;?

??? N:配置E1路數(shù)(1~8);?

??? Rdaddr:Buff讀地址;?

??? P2S:2×8字節(jié)并串轉(zhuǎn)換存儲區(qū),寫一組8字節(jié)時,讀另一組8字節(jié);?

??? WR:P2S讀寫區(qū)域指示(0,1),。?

??? 輸出的E1幀格式如圖2所示,幀同步碼和復(fù)幀計數(shù)都是為接收端提供同步信息,。?

2.2 E1接收數(shù)據(jù)同步?

??? E1接收側(cè)要完成的功能是從多路E1數(shù)據(jù)中還原出以太網(wǎng)數(shù)據(jù)包。簡單看就是發(fā)送側(cè)反向復(fù)用的逆過程,通過高速時鐘" title="高速時鐘">高速時鐘循環(huán)從1→n路E1中各讀出一字節(jié)合成一路數(shù)據(jù),。但由于各路E1在傳遞過程中經(jīng)過延時不同,同一時刻到達(dá)字節(jié)不對齊,在合并前必須對多路E1進(jìn)行同步,。考慮到同步過程的復(fù)雜性,在設(shè)計算法時采用了分步處理,以降低復(fù)雜度,。?

??? 第一步處理是根據(jù)幀結(jié)構(gòu)中的幀同步碼,通過置位同步法完成單路E1幀同步,同步原理圖和狀態(tài)機如圖3所示,。同步后每路輸出數(shù)據(jù)產(chǎn)生獨立的幀定時計數(shù)器TM,從0→31標(biāo)記E1幀對應(yīng)的32(256bit)字節(jié),其中第0字節(jié)即幀同步碼Framecode,第一字節(jié)即復(fù)幀計數(shù)器MFcnt。這一步并未涉及多路間的延時消除,。?

?

?

??? 根據(jù)狀態(tài)轉(zhuǎn)移圖確定的狀態(tài)參數(shù):α(搜索保護(hù)幀數(shù))=3,、β(同步保護(hù)幀數(shù))=4。設(shè)線路誤碼率Pe=10-3,L(幀同步碼長度)=8,Ts(E1幀周期)=125μs,得出同步機的性能指標(biāo):?

??? 平均同步時間≈[1/(L×Pe)β-(α-1/2)]×Ts≈8.5小時?

??? 同步失幀誤碼率≈1/2(α-1/2) (L×Pe)β≈5×10-9?

??? 可見在較高的誤碼率下(10-3),同步機還是能夠保證比較好的同步質(zhì)量,平絕每8.5小時出現(xiàn)一次失步,引入的附加誤碼率也只有10-9量級,。?

??? 第二步處理根據(jù)E1幀同步產(chǎn)生的幀計數(shù)和每路數(shù)據(jù)中的復(fù)幀計數(shù)消除各路之間的延時及時鐘相位差,。其基本原理見圖4。在第0路數(shù)據(jù)延時最小的情況下,設(shè)第一步完成同步后到達(dá)RAM(0)的數(shù)據(jù)為第M復(fù)幀第T字節(jié),數(shù)據(jù)以各自計數(shù)為寫地址存入RAM,延時檢測通過計數(shù)不停檢測,直到所有路第M復(fù)幀T字節(jié)到達(dá)后,再統(tǒng)一以clk為讀時鐘,以M&T為起始地址順序從RAM中讀出數(shù)據(jù),。由于MFcnt最大為255,第二步同步能容納的線路時延在(-128,+128)幀之間,超過這個范圍MFcnt所代表的時延就可能是(n(任意整數(shù))×128+MFcnt)幀,所以該算法能承受的最大線路延時為:?

??? 128×Ts(幀周期)=16ms?

?

?

??? 在線路誤碼率較低時,E1幀同步丟失較少,幀定時計數(shù)TM可以確定,影響第二步處理的只有數(shù)據(jù)中的復(fù)幀計數(shù)字節(jié),。在沒有保護(hù)的條件下,假設(shè)目前某一路MFcnt由于誤碼使其讀數(shù)由正確值A(chǔ)變?yōu)锽,因為下一輪開始時A、B位置幀會重寫,所以該誤碼只會影響當(dāng)前一輪256幀中的A,、B兩幀,不會對數(shù)據(jù)整體邏輯產(chǎn)生較大影響,其它位置的誤碼會在后續(xù)的HDLC幀同步處理中檢測,。如果線路誤碼率較高,由于E1會頻繁失步使第二步處理根本無法進(jìn)行。出于上述考慮該步算法設(shè)計沒有采用狀態(tài)機保護(hù),。?

2.3 HDB3時鐘提取?

??? 從接收的E1信號HDB3編碼中提取時鐘的原理如圖5所示,。首先通過一個高速時鐘采樣HDB3的碼流(CODE)得到數(shù)據(jù)變化沿(EDGE),再根據(jù)EDGE位置由高速時鐘分頻出對應(yīng)的2MHz時鐘。?

?

?

3 電路設(shè)計?

??? 整體電路結(jié)構(gòu)如圖6所示,。在輸入數(shù)據(jù)緩存和消除延時兩部分處理中,由于需要較大存儲空間,采用兩塊外掛的SSRAM,。內(nèi)部處理以字節(jié)為單位,全同步電路設(shè)計,對應(yīng)以太網(wǎng)側(cè)處理速率為12.5MHz,對應(yīng)E1側(cè)時鐘為256kHz(2.048MHz/8)。兩側(cè)速率匹配通過高速時鐘采樣低速時鐘完成,。?

?

?

4 時序分析?

??? 從邏輯驗證到FPGA實現(xiàn)主要區(qū)別是增加了實際布線,、引腳間的時延。使系統(tǒng)失效的時序問題主要有以下幾點:?

??? (1)輸入經(jīng)內(nèi)部邏輯到輸出的建立時間,、保持時間和引腳時延大于一個時鐘周期,。?

??? (2)并行處理的信號彼此之間時延過大,不能同時采樣,。?

??? (3)在內(nèi)部對時鐘信號進(jìn)行過多操作,引入時鐘毛刺。?

??? (4)對同一時鐘,既使用上升沿,又使用下降沿觸發(fā),使時鐘最高頻率損失一半,。?

??? (5)在交叉時鐘域中,直接采樣由另一時鐘作為觸發(fā)的信號,引入不確定態(tài),。?

??? 對于這些常見問題,設(shè)計中采用如下相應(yīng)對策:?

??? (1)所有輸入、輸出引腳信號都經(jīng)過時鐘采樣,減少引腳的時延,。?

??? (2)內(nèi)部信號操作增加D觸發(fā)器,兩級觸發(fā)器之間盡量減少組合邏輯,比較復(fù)雜的處理經(jīng)多個時鐘周期完成,減小信號保持時間,。?

??? (3)并行邏輯經(jīng)過相同的處理流程,時分復(fù)用完成,并行引腳也盡量分配在一起。?

??? (4)內(nèi)部處理由單一系統(tǒng)時鐘完成,低速時鐘經(jīng)高速時鐘采樣統(tǒng)一到高速時鐘上,減少交叉時鐘域,。?

??? (5)不對系統(tǒng)時鐘進(jìn)行操作,只使用上升沿觸發(fā)器,。?

??? (6)必需進(jìn)行時鐘轉(zhuǎn)換時,通過雙端口RAM或FIFO完成,不直接操作交叉時鐘。?

??? 在設(shè)計中注意上述問題后,QUARTUSⅡ的后仿真結(jié)果能夠很好地滿足時序要求,其中系統(tǒng)時鐘(12.5MHz)最大能夠滿足20.59MHz,2MHz時鐘能夠滿足41.03MHz,。此結(jié)果在實際硬件測試中得到了驗證,。?

5 實際產(chǎn)品性能分析?

??? 本文介紹的以太網(wǎng)/多路E1適配電路設(shè)計已實際應(yīng)用在華環(huán)公司H0EL-1100 E1/100 Base-TX適配器中,表1是實際產(chǎn)品的吞吐量測試結(jié)果。由于以太網(wǎng)吞吐量包括IEEE802.3規(guī)定的前導(dǎo)和SFD字節(jié),而這部分信息是固定值,不需要經(jīng)過E1信道傳輸?shù)綄Χ?所以測試值可能大于實際E1信道容量,。表2是在8路E1配置下,以15MHz速率發(fā)包測得的以太網(wǎng)數(shù)據(jù)經(jīng)兩端設(shè)備的傳輸延時。該設(shè)計在APEXⅡ20K100器件中占用的邏輯單元為3608個(共4160個邏輯門),。?

?

?

??? 在開發(fā)過程中由于采用高級硬件編程語言→編程器件的設(shè)計實現(xiàn)過程,大大縮短了開發(fā)周期,增加了硬件設(shè)計的靈活性和可移植性,也避免了專用集成電路設(shè)計的高風(fēng)險,。采用邏輯仿真與后時序仿真相結(jié)合的驗證方法,基本可以保證設(shè)計的可靠性?;谏鲜鰞?yōu)點,這種開發(fā)方式在中小批量集成電路開發(fā)中已得到廣泛的應(yīng)用,。尤其是近年來,硬件方面伴隨著微電子工藝的迅速發(fā)展,編程器件的集成度正在成倍增長,越來越多的ASIC單元如微處理器、專用接口等嵌入編程器件中,使其適用范圍更廣;軟件方面EDA開發(fā)商提供了眾多的Ipcore及仿真工具,使得編程過程進(jìn)一步簡化,可靠性也不斷增強;在此基礎(chǔ)上SYS On Programmable Chip技術(shù)也開始走向商業(yè)化,為編程器件的發(fā)展提供了更為廣闊的空間,。?

參考文獻(xiàn)?

1 William Stallings.Data and Computer Communicatoins(Fifth?Edition).Prentice Hall,1997?

2 徐志軍.CPLD/FPGA開發(fā)與應(yīng)用.北京:電子工業(yè)出版社,?2002?

3 Horspool Nigel,Peter Gorman. The ASIC Handbook. Prentice Hall,2001?

4 孫 玉. 數(shù)字復(fù)接技術(shù). 北京:人民郵電出版社,1992?

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]