以太網(wǎng)到多路E1適配電路設(shè)計(jì)及FPGA實(shí)現(xiàn)
適配電路的一側(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毫秒的延時(shí)。
鑒于目前國內(nèi)類似產(chǎn)品較少,而ASIC開發(fā)成本較高,本電路采用VHDL編程→FPGA實(shí)現(xiàn)設(shè)計(jì)流程。
1反向復(fù)用定義
反向復(fù)用的基本概念就是把一路高速數(shù)據(jù)適配到多路低速信道中傳輸,提供相當(dāng)于多路低速之和的傳輸帶寬。對(duì)于點(diǎn)對(duì)點(diǎn)通信,主要關(guān)心以下幾點(diǎn)性能。
1.1 帶寬利用率
低速信道在傳輸高速數(shù)據(jù)的同時(shí),必然有附加的開銷,會(huì)影響帶寬利用率。在本設(shè)計(jì)中,以太網(wǎng)包進(jìn)入適配電路后封裝成HDLC幀需要四字節(jié)的附加信息。E1幀在傳輸HDLC數(shù)據(jù)的同時(shí)要攜帶的同步信息,占用6.25%帶寬。綜合上述兩點(diǎn),有效數(shù)據(jù)平均帶寬利用率大約在90%。
1.2 容納延時(shí)
由于各路低速信道在傳輸過程中經(jīng)歷的路徑不同,到達(dá)對(duì)端后各路間會(huì)有延時(shí),設(shè)計(jì)中要考慮如何消除這部分延時(shí)。
1.3 線路故障處理
算法設(shè)計(jì)中必需有同步保護(hù)狀態(tài)機(jī),保證傳輸信道出現(xiàn)錯(cuò)誤時(shí),算法不會(huì)產(chǎn)生過高的附加誤碼率,并且在信道錯(cuò)誤恢復(fù)時(shí),保證數(shù)據(jù)傳輸同步恢復(fù)。
1.4 數(shù)據(jù)包突發(fā)性
以太網(wǎng)的滿發(fā)送速率為100MHz,而低速信道的最大可配帶寬為16MHz,這將導(dǎo)致即使平均流量小于配置帶寬,一個(gè)短時(shí)間內(nèi),接收的數(shù)據(jù)量還有可能遠(yuǎn)大于傳輸帶寬。所以在以太網(wǎng)數(shù)據(jù)的輸入側(cè)必須設(shè)計(jì)高容量的緩存隊(duì)列以容納一定的突發(fā)數(shù)據(jù)包。
2 算法設(shè)計(jì)
以下就設(shè)計(jì)中一些核心電路的算法做具體說明。
2.1 以太網(wǎng)數(shù)據(jù)→多路E1反向復(fù)用
數(shù)據(jù)反向適配一般可以采用三種方式:包間插、比特間插和字節(jié)間插。所謂包間插就是指數(shù)據(jù)包到達(dá)后,連續(xù)檢測各個(gè)E1信道,在第一個(gè)查到的空閑信道上順序傳輸整個(gè)數(shù)據(jù)包,下一包到達(dá)后再重復(fù)這一過程。這種方式的優(yōu)點(diǎn)是設(shè)計(jì)簡單,在對(duì)端也不需要對(duì)多路E1進(jìn)行同步,各路數(shù)據(jù)可單獨(dú)處理。缺點(diǎn)是由于各路E1傳輸過程中經(jīng)歷延時(shí)不同,導(dǎo)致對(duì)端接收數(shù)據(jù)包的順序與發(fā)端順序有較大差別??紤]到發(fā)包比較稀疏的情況,一個(gè)長包完全可以在一路E1中傳遞,而其它E1通道沒有數(shù)據(jù)包傳送。這樣,一方面造成帶寬浪費(fèi),另一方面也引入較大的轉(zhuǎn)發(fā)延時(shí)。
比特間插在傳輸過程中沒有包的概念,只是順序從以太網(wǎng)數(shù)據(jù)輸入緩存區(qū)內(nèi)讀出比特流并按1→n(n路E1)循環(huán)編號(hào),編號(hào)為i的比特在第i路E1中傳輸。這種設(shè)計(jì)電路十分復(fù)雜,對(duì)端要對(duì)多路E1同步到比特單位才能還原出有效數(shù)據(jù)。其優(yōu)點(diǎn)就是沒有帶寬的浪費(fèi)和輸入輸出包順序的變化,轉(zhuǎn)發(fā)延時(shí)也是固定的。
本設(shè)計(jì)采用的字節(jié)間插是比較折中的解決方案。它的基本原理與比特間插類似,但從緩存區(qū)讀出的數(shù)據(jù)和編號(hào)都是以字節(jié)為單位,每個(gè)字節(jié)經(jīng)過串并轉(zhuǎn)后在對(duì)應(yīng)編號(hào)的E1信道中傳輸。它繼承了比特間插的優(yōu)點(diǎn),同時(shí)由于對(duì)端只需同步到字節(jié)單位上,處理時(shí)鐘較為寬裕,同步電路設(shè)計(jì)也就相對(duì)簡單。其具體的算法實(shí)現(xiàn)如下:
以太網(wǎng)數(shù)據(jù)包進(jìn)入適配電路后封裝成HDLC幀存入緩存區(qū)Buff,Buff的出口側(cè)速率與多路E1信道傳輸速率匹配,一個(gè)2MHz時(shí)鐘周期內(nèi)完成的操作如圖1所示。
圖中,F(xiàn)cnt:8比特幀計(jì)數(shù)(E1幀有256個(gè)bit);
MFcnt:8比特復(fù)幀計(jì)數(shù);
L3:Fcnt的低三位比特;
E1out:輸出8路E1數(shù)據(jù)(8bit);
Framecode:E1幀同步碼“10011011”;
N:配置E1路數(shù)(1~8);
Rdaddr:Buff讀地址;
P2S:2
評(píng)論