- 相關(guān)推薦
以太網(wǎng)到多路E1適配電路設(shè)計及FPGA實(shí)現(xiàn)
摘要:介紹了一種基于現(xiàn)場可編程門陣列(FPGA)的以太網(wǎng)數(shù)據(jù)-多路E1反向復(fù)用器同步電路設(shè)計,分析了FPGA具體實(shí)現(xiàn)過程中的一些常見問題。該設(shè)計采用VHDL硬件描述語言編程,可以實(shí)現(xiàn)以太網(wǎng)數(shù)據(jù)在多路E1信道中的透明傳輸,適配電路芯片內(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ò)是近年來研究的熱點(diǎn)。目前,比較成熟的技術(shù)主要有IPoverSDH(POS)和IPoverATM(POA)。POS將IP包直接裝入SDH的虛容器中,通道開銷少、實(shí)現(xiàn)簡單,具有自動保護(hù)切換功能;POA的復(fù)接過程比較復(fù)雜,可以通過高系統(tǒng)開銷提供較好的服務(wù)質(zhì)量保證(QOS)。從目前的市場看,各大通信設(shè)備商都推出了基于POS/POA的產(chǎn)品,但總體成本較高,主要面向的是一些高端應(yīng)用。對于帶寬需求在十幾兆以下的點(diǎn)對點(diǎn)通信而言,上述兩種技術(shù)的優(yōu)勢并不明顯。本文介紹的適配電路將以太網(wǎng)數(shù)據(jù)適配到E1信道傳輸,通過配置E1信道數(shù)量控制帶寬,針對這類應(yīng)用提供了一種經(jīng)濟(jì)靈活的解決方案。
適配電路的一側(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實(shí)現(xiàn)設(shè)計流程。
1反向復(fù)用定義
反向復(fù)用的基本概念就是把一路高速數(shù)據(jù)適配到多路低速信道中傳輸,提供相當(dāng)于多路低速之和的傳輸帶寬。對于點(diǎn)對點(diǎn)通信,主要關(guān)心以下幾點(diǎn)性能。
1.1帶寬利用率
低速信道在傳輸高速數(shù)據(jù)的同時,必然有附加的開銷,會影響帶寬利用率。在本設(shè)計中,以太網(wǎng)包進(jìn)入適配電路后封裝成HDLC幀需要四字節(jié)的附加信息。E1幀在傳輸HDLC數(shù)據(jù)的同時要攜帶的同步信息,占用6.25%帶寬。綜合上述兩點(diǎn),有效數(shù)據(jù)平均帶寬利用率大約在90%。
1.2容納延時
由于各路低速信道在傳輸過程中經(jīng)歷的路徑不同,到達(dá)對端后各路間會有延時,設(shè)計中要考慮如何消除這部分延時。
1.3線路故障處理
算法設(shè)計中必需有同步保護(hù)狀態(tài)機(jī),保證傳輸信道出現(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)點(diǎn)是設(shè)計簡單,在對端也不需要對多路E1進(jìn)行同步,各路數(shù)據(jù)可單獨(dú)處理。缺點(diǎn)是由于各路E1傳輸過程中經(jīng)歷延時不同,導(dǎo)致對端接收數(shù)據(jù)包的順序與發(fā)端順序有較大差別?紤]到發(fā)包比較稀疏的情況,一個長包完全可以在一路E1中傳遞,而其它E1通道沒有數(shù)據(jù)包傳送。這樣,一方面造成帶寬浪費(fèi),另一方面也引入較大的轉(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)點(diǎn)就是沒有帶寬的浪費(fèi)和輸入輸出包順序的變化,轉(zhuǎn)發(fā)延時也是固定的。
本設(shè)計采用的字節(jié)間插是比較折中的解決方案。它的基本原理與比特間插類似,但從緩存區(qū)讀出的數(shù)據(jù)和編號都是以字節(jié)為單位,每個字節(jié)經(jīng)過串并轉(zhuǎn)后在對應(yīng)編號的E1信道中傳輸。它繼承了比特間插的優(yōu)點(diǎn),同時由于對端只需同步到字節(jié)單位上,處理時鐘較為寬裕,同步電路設(shè)計也就相對簡單。其具體的算法實(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幀同步碼“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.2E1接收數(shù)據(jù)同步
E1接收側(cè)要完成的功能是從多路E1數(shù)據(jù)中還原出以太網(wǎng)數(shù)據(jù)包。簡單看就是發(fā)送側(cè)反向復(fù)用的逆過程,通過高速時鐘循環(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)機(jī)如圖3所示。同步后每路輸出數(shù)據(jù)產(chǎn)生獨(dú)立的幀定時計數(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,得出同步機(jī)的性能指標(biāo):
平均同步時間≈[1/(L×Pe)β-(α-1/2)]×Ts≈8.5小時
同步失幀誤碼率≈1/2(α-1/2)(L×Pe)β≈5×10-9
可見在較高的誤碼率下(10-3),同步機(jī)還是能夠保證比較好的同步質(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)锽,因?yàn)橄乱惠嗛_始時A、B位置幀會重寫,不會對數(shù)據(jù)整體邏輯產(chǎn)生較大影響,其它位置的誤碼會在后續(xù)的HDLC幀同步處理中檢測。如果線睡誤碼率較高,由于E1會頻繁失步使第二步處理根本無法進(jìn)行。出于述考慮該步算法設(shè)計沒有采用狀態(tài)機(jī)保護(hù)。
2.3HDB3時鐘提取
從接收的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,對尖E1側(cè)時鐘為256kHz(2.048MHz/8)。兩側(cè)速率匹配通過高速時鐘采樣低速時鐘完成。
4時序分析
從邏輯驗(yàn)證到FPGA實(shí)現(xiàn)主要區(qū)別是增加了實(shí)現(xiàn)布線、引腳間的時延。使系統(tǒng)失效的時序問題主要有以下幾點(diǎn):
。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è)計中注意上述問題后,QUARTUSII的后仿真結(jié)果能夠很好地滿足時序要求,其中系統(tǒng)時鐘(12.5MHz)最在能夠滿足20.59MHz,2MHz時鐘能夠滿足41.03MHz。此結(jié)果在實(shí)際硬件測試中得到了驗(yàn)證。
5實(shí)際產(chǎn)品性能分析
本文介紹的以太網(wǎng)/多路E1適配電路設(shè)計已實(shí)際應(yīng)用在華環(huán)公司H0EL-1100E1/100Base-TX適配器中,表1是實(shí)際產(chǎn)品的吞吐量測試結(jié)果。由于以太網(wǎng)吞吐量包括IEEE802.3規(guī)定的導(dǎo)和SFD字節(jié),而這部分信息是固定值,不需要經(jīng)過E1信道傳輸?shù)綄Χ,所以測試值可能大于實(shí)際E1信道容量。表2是在8路E1配置下,以15MHz速率發(fā)包測得的以太網(wǎng)數(shù)據(jù)兩端設(shè)備的傳輸延時。該設(shè)計在APEXII20K100器件中占用的邏輯單元為3608個(共4160個邏輯門)。
表1吞吐量測試結(jié)果(單位Mbit/s)
路數(shù)/包長641282565121.241280151812.442.192.051.991.971.971.9724.854.334.064.003.983.933.9337.256.416.095.935.755.755.7549.578.578.067.977.837.807.80511.8810.7610.259.889.759.759.75614.4712.7212.0611.7511.7411.4311.43716.8215.0714.2513.8713.5013.5013.50819.2717.2616.1315.7515.3715.3715.37
表2以太網(wǎng)口傳輸時延(單位μs)
包長64128256512102412801518Cut
Trough400.4437.0516.9670.4976.91130.11278.1Storeand
Forward395.3426.8496.5629.5895.01027.71156.7
在開發(fā)過程中由于采用高級硬件編程語言→編程器件的設(shè)計實(shí)現(xiàn)過程,大大縮短了開發(fā)周期,增加了硬件設(shè)計的靈活性和可移植性,也避免了專用集成電路設(shè)計的高風(fēng)險。采用邏輯仿真與后時序仿真相結(jié)合的驗(yàn)證方法,基本可以保證設(shè)計的可靠性。基于上述優(yōu)點(diǎn),這種開發(fā)方式在中小指集成電路開發(fā)中已得到廣泛的應(yīng)用。尤其是近年來,硬件方面伴隨著微電子工藝的迅速發(fā)展,編程器件的集成度正在成倍增長,越來越多的ASIC單元如微處理器、專用接口等嵌入編程器件中,使其適用范圍更廣;軟件方面EDA開發(fā)商提供了眾多的Ipcore及仿真工具,使得編程過程進(jìn)一步簡化,可靠性也不斷增強(qiáng);在此基礎(chǔ)上SYSOnProgrammableChip技術(shù)也開始走向商業(yè)化,為編程器件的發(fā)展提供了更為廣闊的空間。
【以太網(wǎng)到多路E1適配電路設(shè)計及FPGA實(shí)現(xiàn)】相關(guān)文章:
LON現(xiàn)場控制網(wǎng)絡(luò)到以太網(wǎng)互連適配器的設(shè)計08-06
非多路復(fù)用與多路復(fù)用總線轉(zhuǎn)換橋的設(shè)計與實(shí)現(xiàn)08-06
自適應(yīng)算術(shù)編碼的FPGA實(shí)現(xiàn)08-06
多路MPEG-4監(jiān)控系統(tǒng)的設(shè)計與實(shí)現(xiàn)08-06
用PowerPC860實(shí)現(xiàn)FPGA配置08-06
3-DES算法的FPGA高速實(shí)現(xiàn)08-06