多路接口與E1協(xié)議轉(zhuǎn)換器設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:針對(duì)通信帶寬越來(lái)越高,低速設(shè)備無(wú)法連接到高速的E1線路的問(wèn)題,提出了一種基于可編程邏輯器件FPGA、嵌入式微處理器MPC875的多路接口與E1協(xié)議轉(zhuǎn)換器的設(shè)計(jì),給出了硬件原理框圖及主要元器件的選型,并對(duì)多路接口數(shù)據(jù)調(diào)度方法、空時(shí)隙處理策略、FPGA結(jié)構(gòu)設(shè)計(jì)、軟件設(shè)計(jì)流程進(jìn)行了詳細(xì)說(shuō)明。通過(guò)實(shí)現(xiàn)RS 232,RS 449,V.35三路接口與E1的協(xié)議轉(zhuǎn)換,證明該方案是可行的。
關(guān)鍵詞:多路接口;E1;協(xié)議轉(zhuǎn)換;FPGA
0 引言
隨著計(jì)算機(jī)技術(shù)與通信技術(shù)的持續(xù)發(fā)展,人們對(duì)高帶寬需求不斷增加,接入DDN(Digital Data Network)網(wǎng)、幀中繼網(wǎng)等高速通信網(wǎng)的應(yīng)用也越來(lái)越普遍。E1是我國(guó)電信傳輸網(wǎng)一次群使用的傳輸標(biāo)準(zhǔn),速率是2.048 Mb/s。實(shí)現(xiàn)多路接口與E1協(xié)議的相互轉(zhuǎn)換,將可以把多種設(shè)備同時(shí)連接至高速的E1線路。本文基于FPGA(Field Programmable Gate Array)、嵌入式微處理器設(shè)計(jì)了一個(gè)多路接口與E1的協(xié)議轉(zhuǎn)換器,實(shí)現(xiàn)RS 232,RS 449,V.35等接口數(shù)據(jù)在E1線路上的高速傳輸。
1 系統(tǒng)原理
1.1 系統(tǒng)描述
多路接口與E1協(xié)議轉(zhuǎn)換示意圖如圖1所示。在發(fā)送端,將多路接口數(shù)據(jù)按照一定順序合并成一路符合E1協(xié)議的數(shù)據(jù)在E1信道上進(jìn)行傳輸,在接收端,將接收到的E1信號(hào)再按發(fā)送端順序分成多路接口數(shù)據(jù)。
1.2 多路接口數(shù)據(jù)映射到E1幀的方法
E1是一種典型的時(shí)分復(fù)用結(jié)構(gòu),一個(gè)E1時(shí)分復(fù)用幀劃分為32個(gè)相等的時(shí)隙,編號(hào)為CH0~CH31,其中時(shí)隙CH0用作幀同步用,時(shí)隙CH16用來(lái)傳送信令。其余的時(shí)隙用來(lái)傳送有效數(shù)據(jù)。
通過(guò)將不同的接口數(shù)據(jù)插入不同的數(shù)據(jù)時(shí)隙,把多路接口數(shù)據(jù)編成一個(gè)E1數(shù)據(jù)幀,實(shí)現(xiàn)多路接口與E1的協(xié)議轉(zhuǎn)換。
將多路接口數(shù)據(jù)映射到E1時(shí)隙中,需要根據(jù)每路接口的速率進(jìn)行時(shí)隙分配,也就是將E1的一個(gè)或多個(gè)時(shí)隙分配給一路接口使用,分配的時(shí)隙速率不小于接口速率(每個(gè)時(shí)隙的速率相當(dāng)于64 Kb/s),DTE(Data Terminal Equipment)與DCE(Data Communications Equipment)設(shè)備端時(shí)隙分配設(shè)置必須一致。由于協(xié)議轉(zhuǎn)換器沒(méi)有自適應(yīng)接口速率的功能,因此時(shí)隙的分配通過(guò)一個(gè)軟件界面由使用者完成。
為了實(shí)現(xiàn)對(duì)時(shí)隙的分配,設(shè)置30個(gè)4位的時(shí)隙分配寄存器。CPU根據(jù)使用者的時(shí)隙分配設(shè)置,生成30個(gè)數(shù)據(jù)時(shí)隙地址并寫入對(duì)應(yīng)時(shí)隙分配寄存器。數(shù)據(jù)時(shí)隙地址表示的是該數(shù)據(jù)時(shí)隙傳送的是哪個(gè)接口的數(shù)據(jù)。在發(fā)送端,根據(jù)該地址從相應(yīng)接口讀取數(shù)據(jù)插入對(duì)應(yīng)時(shí)隙;在接收端,根據(jù)該地址將相應(yīng)時(shí)隙數(shù)據(jù)送往對(duì)應(yīng)接口。表1為數(shù)據(jù)時(shí)隙地址與接口對(duì)應(yīng)關(guān)系表,空閑表示該時(shí)隙空置沒(méi)有使用。
系統(tǒng)將E1時(shí)隙分配給多路接口使用,當(dāng)有時(shí)隙沒(méi)有被分配時(shí),就會(huì)產(chǎn)生空時(shí)隙。在本設(shè)計(jì)中,系統(tǒng)可支配的最小單位是E1時(shí)隙,也就是說(shuō),系統(tǒng)可以將一個(gè)數(shù)據(jù)時(shí)隙分配給一路接口使用,也可以將多個(gè)數(shù)據(jù)時(shí)隙分配給一路接口使用,當(dāng)一路接口數(shù)據(jù)不能完全填滿一個(gè)或多個(gè)時(shí)隙時(shí),將會(huì)產(chǎn)生半空時(shí)隙。比如一個(gè)100 Kb/s的接口,占用兩個(gè)時(shí)隙,將會(huì)產(chǎn)生28 Kb/s的空時(shí)隙。
對(duì)于沒(méi)有使用的空閑時(shí)隙,系統(tǒng)可以根據(jù)時(shí)隙分配寄存器的值識(shí)別空閑時(shí)隙。在發(fā)送端,默認(rèn)發(fā)送全“1”數(shù)據(jù),在接收端,拋棄該無(wú)用數(shù)據(jù);對(duì)于一路接口數(shù)據(jù)不能完全填滿一個(gè)或多個(gè)數(shù)據(jù)時(shí)隙產(chǎn)生的半空時(shí)隙,采取循環(huán)發(fā)空包的方法來(lái)填充半空時(shí)隙,空包格式固定為“000 01111”。在接收端,檢測(cè)到這樣的空包數(shù)據(jù),丟棄不用。
下面主要實(shí)現(xiàn)V.35,RS 449,RS 232三路接口與E1協(xié)議轉(zhuǎn)換的設(shè)計(jì)。通過(guò)三路接口與E1協(xié)議轉(zhuǎn)換的實(shí)現(xiàn),驗(yàn)證多路接口同時(shí)與E1協(xié)議轉(zhuǎn)換的可行性。
1.3 系統(tǒng)硬件原理框圖與模塊功能描述
系統(tǒng)硬件原理框圖如圖2所示,主要由接口芯片、FPGA、CPLD、微處理器構(gòu)成。
LTC1546/LTC1544:多功能接口芯片LTC1546,LTC1544,二者結(jié)合,構(gòu)成全功能的多協(xié)議接口界面,支持RS232,RS449,EIA530,EIA-530-A,V.35,V.36,X.21協(xié)議,協(xié)議的選擇可完全由軟件進(jìn)行。
MPC875:飛思卡爾MPC875嵌入式CPU,基于POWERPC架構(gòu),主頻高達(dá)133 MHz,8 KB指令cache,8 KB數(shù)據(jù)cache,總線頻率最高可達(dá)80 MHz。
EP3C25F324C8:Altera公司的CycloneⅢ系列FPGA,性價(jià)比高,資源豐富。
EPM7256 AETCl44-7:A1tera公司MAX7000AE系列CPLD,支持多種接口電平。由于LTC1546,LTC1544接口電平為5 V,F(xiàn)PGA不支持這樣的接口電壓,這里使用CPLD作接口電路。
XRT82D20:RXAR公司的E1線路接口芯片,支持單路E1,具有HDB3編碼、時(shí)鐘恢復(fù)、線路驅(qū)動(dòng)等功能,75 Ω或者120 Ω阻抗匹配。
keyboard:4×4鍵盤,用來(lái)接收時(shí)隙分配設(shè)置輸入。
LED:LED指示燈,共30個(gè),用來(lái)指示30個(gè)數(shù)據(jù)時(shí)隙的使用情況:當(dāng)LED燈點(diǎn)亮?xí)r,表示該時(shí)隙已經(jīng)使用;LED燈不亮,表示該時(shí)隙為空閑。
2 關(guān)鍵模塊設(shè)計(jì)
2.1 與CPU通信FPGA端硬件電路設(shè)計(jì)
當(dāng)FPGA與CPU通信時(shí),由于CPU總線特殊的時(shí)序關(guān)系,F(xiàn)PGA端須做相應(yīng)的處理才能保證讀寫數(shù)據(jù)的穩(wěn)定性。圖3為MPC875讀數(shù)據(jù)總線時(shí)序圖。其中:為片選信號(hào),為讀信號(hào),A[0:31]為地址信號(hào),D[0:31]為數(shù)據(jù)信號(hào)。圖4為MPC875寫數(shù)據(jù)總線時(shí)序圖,為寫信號(hào),其余信號(hào)與讀總線相同。
當(dāng)CPU讀取FPGA中數(shù)據(jù)時(shí),先給出地址信號(hào),然后使能片選、讀信號(hào),這時(shí)如果數(shù)據(jù)總線上有數(shù)據(jù),CPU讀入數(shù)據(jù)。但MPC875總線頻率高達(dá)80 MHz,為了CPU能穩(wěn)定的讀取到數(shù)據(jù),這里將片選信號(hào)與讀信號(hào)相“與”,然后擴(kuò)寬3倍得到總線可用信號(hào),在總線可用信號(hào)有效期間,數(shù)據(jù)總線上總有數(shù)據(jù),這樣,可以保證CPU能穩(wěn)定的讀到數(shù)據(jù)。
當(dāng)CPU寫入數(shù)據(jù)時(shí),CPU先給出地址信號(hào),然后給出片選及寫信號(hào),在寫信號(hào)有效期間,CPU穩(wěn)定的給出數(shù)據(jù)。因此,在片選及寫信號(hào)有效時(shí),鎖存數(shù)據(jù)總線上的數(shù)據(jù)即可。
2.2 CPLD硬件接口電路設(shè)計(jì)
CPLD主要完成V.35,RS 449,RS 232數(shù)據(jù)收發(fā);keyboard,LED控制;FIFO讀寫等功能。功能框圖如圖5所示。
CPU通過(guò)CPLD對(duì)接口芯片進(jìn)行模式選擇。V.35,RS 449為同步平衡接口,常用接口速率為N×64 Kb/s(N=1~32)。時(shí)鐘、數(shù)據(jù)信號(hào)為兩線平衡傳輸,控制信號(hào)為不平衡傳輸。發(fā)送數(shù)據(jù)時(shí),將與之對(duì)應(yīng)的時(shí)鐘一并輸出。在接收數(shù)據(jù)時(shí),用接口時(shí)鐘采樣數(shù)據(jù)。
RS 232為不平衡傳輸。幀格式固定為:1位開始位、8位數(shù)據(jù)位、結(jié)束位。結(jié)束位有三種:1位、1.5位、2位。開始位固定為“0”,停止位固定為“1”。通信雙方在開始通信前必須約定好串行傳輸?shù)膮?shù)(傳輸速度、幀格式)。在發(fā)送端,首先通過(guò)分頻產(chǎn)生需要的串行波特率,然后按照幀格式以約定好的速率發(fā)送。在接收端,使用8倍于波特率的時(shí)鐘對(duì)接收到的信號(hào)進(jìn)行過(guò)采樣,經(jīng)過(guò)濾波后如果為低電平信號(hào),即認(rèn)為是開始位,然后按照約定好的速率接收數(shù)據(jù)。
在接收數(shù)據(jù)時(shí),F(xiàn)IFO讀寫模塊將串行接收數(shù)據(jù)變成8位并行,同時(shí),將與接收數(shù)據(jù)同步的時(shí)鐘8分頻,用此時(shí)鐘將8位并行數(shù)據(jù)寫入與該接口對(duì)應(yīng)的FIFO;在發(fā)送數(shù)據(jù)時(shí),將發(fā)送時(shí)鐘8分頻,用此時(shí)鐘從與該接口對(duì)應(yīng)的FIFO讀取數(shù)據(jù),同時(shí)將8位并行數(shù)據(jù)串行輸出。
keyboard為4×4掃描式矩陣鍵盤,具有16個(gè)鍵。由硬件程序自動(dòng)掃描鍵盤,輸入數(shù)據(jù)觸發(fā)中斷,CPU讀取數(shù)據(jù)。LED輸出由CPU寫入相應(yīng)的顯示寄存器,然后硬件程序?qū)⑾嚓P(guān)信號(hào)輸出點(diǎn)亮LED。
2.3 FPGA硬件電路設(shè)計(jì)
FPGA主要根據(jù)時(shí)隙的分配設(shè)置,在時(shí)鐘系統(tǒng)的管理控制下,完成E1的編解幀功能。功能框圖如圖6所示。
CPU根據(jù)設(shè)置向時(shí)隙分配寄存器寫入相應(yīng)的數(shù)據(jù)。在發(fā)送數(shù)據(jù)時(shí),E1編解幀模塊根據(jù)時(shí)隙分配設(shè)置,從相應(yīng)的FIFO讀取數(shù)據(jù),寫入該時(shí)隙。對(duì)于沒(méi)有使用的空時(shí)隙,按照空時(shí)隙處理辦法填入無(wú)效數(shù)據(jù)。發(fā)送時(shí)鐘為FPGA外接的2.048 MHz時(shí)鐘。由于XRT82D20為數(shù)據(jù)差分輸入,因此將編解幀模塊輸出的數(shù)據(jù)TPOS進(jìn)行反向得到TNEG,平衡輸出。TCLK為發(fā)送時(shí)鐘。
在接收時(shí),XRT82D20數(shù)據(jù)差分輸入RPOS,RNEG,將兩個(gè)信號(hào)相減得到輸入數(shù)據(jù)信號(hào),RCLK為時(shí)鐘輸入。在輸入時(shí)鐘的控制下,E1編解幀模塊將數(shù)據(jù)解幀。同時(shí),根據(jù)時(shí)隙分配設(shè)置,將各個(gè)時(shí)隙的數(shù)據(jù)送入不同的接口FIFO。
3 軟件主程序流程圖
MPC875主要完成接口芯片初始化設(shè)置、時(shí)隙分配設(shè)置輸入、狀態(tài)顯示等功能。軟件主程序流程圖如圖7所示。
上電以后,CPU進(jìn)行初始化設(shè)置。延遲1 ms進(jìn)行內(nèi)存地址分配:每個(gè)自定義寄存器及I/O均分配一個(gè)內(nèi)存地址,CPU操作時(shí)讀寫相應(yīng)地址即可;接著進(jìn)行LTC1546/LTC1544模式選擇,將三組接口分別配置為V.35,RS 449,RS 232;然后查詢時(shí)隙分配設(shè)置輸入,如果已經(jīng)輸入時(shí)隙分配設(shè)置,則讀取時(shí)隙設(shè)置數(shù)據(jù),否則,等待時(shí)隙設(shè)置輸入;協(xié)議轉(zhuǎn)換器初始化設(shè)置完畢,每隔100 ms進(jìn)行一次線路運(yùn)行狀態(tài)告警顯示。
4 協(xié)議轉(zhuǎn)換器測(cè)試
4.1 測(cè)試平臺(tái)搭建
測(cè)試平臺(tái)由JDSU ANT-5 SDH接入測(cè)試儀,協(xié)議轉(zhuǎn)換器,示意圖如圖8所示。JDSU ANT-5手持型SDH/PDH傳輸分析儀,內(nèi)置所有必要的接口:從T1Bantam、E1平衡與E1非平衡,到STM-16/OC48光接口;測(cè)試速率從1.544 Mb/s~2.5 Gb/s;大屏幕、簡(jiǎn)單圖形化界面、中文菜單,易于使用。
首先進(jìn)行時(shí)隙分配設(shè)置,將1到15時(shí)隙分配給V.35接口,17到30時(shí)隙分配給RS 449接口,31時(shí)隙分配給RS 232接口。由JDSU ANT-5 SDH接入測(cè)試儀發(fā)出的2 MHz信號(hào),進(jìn)入?yún)f(xié)議轉(zhuǎn)換器,然后分別將V.35,RS 449,RS 232接口環(huán)回,再將輸出的E1信號(hào)接入測(cè)試儀,在測(cè)試儀中測(cè)試環(huán)回信號(hào)的各種特性。
4.2 測(cè)試結(jié)果
依照上述測(cè)試平臺(tái)進(jìn)行協(xié)議轉(zhuǎn)換器功能測(cè)試,測(cè)試結(jié)果顯示,誤碼率為0,說(shuō)明協(xié)議轉(zhuǎn)換器功能正常。JDSU ANT-5 SDH接入測(cè)試儀測(cè)試截圖如圖9所示。其中BER為誤碼率。
5 結(jié)語(yǔ)
本文提出了一種多路接口與E1的協(xié)議轉(zhuǎn)換設(shè)計(jì)方法,并具體介紹了時(shí)隙分配及調(diào)度、空時(shí)隙處理等技術(shù)難點(diǎn)。通過(guò)實(shí)現(xiàn)V.35,RS449,RS 232三路接口與E1的協(xié)議轉(zhuǎn)換,證明該方案是可行的。另外,本設(shè)計(jì)具有良好的擴(kuò)展性,可以方便的根據(jù)具體應(yīng)用添加或去除接口,也可以在本設(shè)計(jì)的基礎(chǔ)上進(jìn)行二次開發(fā),完成更多的功能。