余發(fā)洪,劉皖,王占峰
摘 要:針對通信帶寬越來越高,低速設備無法連接到高速的E1線路的問題,提出了一種基于可編程邏輯器件FPGA、嵌入式微處理器MPC875的多路接口與E1協(xié)議轉換器的設計,給出了硬件原理框圖及主要元器件的選型,并對多路接口數(shù)據(jù)調度方法、空時隙處理策略、FPGA結構設計、軟件設計流程進行了詳細說明。通過實現(xiàn)RS 232,RS 449,V.35三路接口與E1的協(xié)議轉換,證明該方案是可行的。
關鍵詞:多路接口; E1; 協(xié)議轉換; FPGA
中圖分類號:TN712-34
文獻標識碼:A
文章編號:1004-373X(2011)09-0069-04
Design and Implementation of Protocol Converter for Multiple Interfaces and E1
YU Fa-hong1, LIU Wan2, WANG Zhan-feng2
(1. College of Electronic Technology, PLA Information Engineering University, Zhengzhou 450000, China;
2. Northern Institute of Information Technology, Beijing 100072, China)
Abstract: Since the communication bandwidth is widened increasingly, a design of protocol converter based on FPGA and MPC875 for multiple interfaces and E1 is proposed to solve the problem that the low-speed devices can not be connected to high-speed E1 lines. The hardware functional block diagram and the selection method of major components are provided. The dispatching method of multi-interface data, empty timeslot disposal strategy, FPGA structure design and software design flow are elaborated. Through the realization of protocol conversion for RS 232, RS 449, V.35 and E1, this design is proved to be feasible.
Keywords: multi-interface; E1; protocol convertion; FPGA
0 引 言
隨著計算機技術與通信技術的持續(xù)發(fā)展,人們對高帶寬需求不斷增加,接入DDN(Digital Data Network)網、幀中繼網等高速通信網的應用也越來越普遍[1]。E1是我國電信傳輸網一次群使用的傳輸標準,速率是2.048 Mb/s。實現(xiàn)多路接口與E1協(xié)議的相互轉換,將可以把多種設備同時連接至高速的E1線路。本文基于FPGA(Field Programmable Gate Array)、嵌入式微處理器設計了一個多路接口與E1的協(xié)議轉換器,實現(xiàn)RS 232,RS 449,V.35等接口數(shù)據(jù)在E1線路上的高速傳輸。
1 系統(tǒng)原理
1.1 系統(tǒng)描述
多路接口與E1協(xié)議轉換示意圖如圖1所示。在發(fā)送端,將多路接口數(shù)據(jù)按照一定順序合并成一路符合E1協(xié)議的數(shù)據(jù)在E1信道上進行傳輸,在接收端,將接收到的E1信號再按發(fā)送端順序分成多路接口數(shù)據(jù)。
圖1 多路接口與E1協(xié)議轉換示意圖
1.2 多路接口數(shù)據(jù)映射到E1幀的方法
E1是一種典型的時分復用結構,一個E1時分復用幀劃分為32個相等的時隙,編號為CH0~CH31,其中時隙CH0用作幀同步用,時隙CH16用來傳送信令。其余的時隙用來傳送有效數(shù)據(jù)[2]。
通過將不同的接口數(shù)據(jù)插入不同的數(shù)據(jù)時隙,把多路接口數(shù)據(jù)編成一個E1數(shù)據(jù)幀,實現(xiàn)多路接口與E1的協(xié)議轉換[3]。
將多路接口數(shù)據(jù)映射到E1時隙中,需要根據(jù)每路接口的速率進行時隙分配,也就是將E1的一個或多個時隙分配給一路接口使用,分配的時隙速率不小于接口速率(每個時隙的速率相當于64 Kb/s),DTE(Data Terminal Equipment)與DCE(Data Communications Equipment)設備端時隙分配設置必須一致。由于協(xié)議轉換器沒有自適應接口速率的功能,因此時隙的分配通過一個軟件界面由使用者完成。
為了實現(xiàn)對時隙的分配,設置30個4位的時隙分配寄存器。CPU根據(jù)使用者的時隙分配設置,生成30個數(shù)據(jù)時隙地址并寫入對應時隙分配寄存器。數(shù)據(jù)時隙地址表示的是該數(shù)據(jù)時隙傳送的是哪個接口的數(shù)據(jù)。在發(fā)送端,根據(jù)該地址從相應接口讀取數(shù)據(jù)插入對應時隙;在接收端,根據(jù)該地址將相應時隙數(shù)據(jù)送往對應接口。表1為數(shù)據(jù)時隙地址與接口對應關系表,空閑表示該時隙空置沒有使用。
系統(tǒng)將E1時隙分配給多路接口使用,當有時隙沒有被分配時,就會產生空時隙。在本設計中,系統(tǒng)可支配的最小單位是E1時隙,也就是說,系統(tǒng)可以將一個數(shù)據(jù)時隙分配給一路接口使用,也可以將多個數(shù)據(jù)時隙分配給一路接口使用,當一路接口數(shù)據(jù)不能完全填滿一個或多個時隙時,將會產生半空時隙。比如一個100 Kb/s的接口,占用兩個時隙,將會產生28 Kb/s的空時隙[4]。
對于沒有使用的空閑時隙,系統(tǒng)可以根據(jù)時隙分配寄存器的值識別空閑時隙。在發(fā)送端,默認發(fā)送全“1”數(shù)據(jù),在接收端,拋棄該無用數(shù)據(jù);對于一路接口數(shù)據(jù)不能完全填滿一個或多個數(shù)據(jù)時隙產生的半空時隙,采取循環(huán)發(fā)空包的方法來填充半空時隙,空包格式固定為“00001111”。在接收端,檢測到這樣的空包數(shù)據(jù),丟棄不用。
下面主要實現(xiàn)V.35,RS 449,RS 232三路接口與E1協(xié)議轉換的設計[5-6]。通過三路接口與E1協(xié)議轉換的實現(xiàn),驗證多路接口同時與E1協(xié)議轉換的可行性。
1.3 系統(tǒng)硬件原理框圖與模塊功能描述
系統(tǒng)硬件原理框圖如圖2所示,主要由接口芯片、FPGA、CPLD、微處理器構成。
圖2 系統(tǒng)硬件結構原理圖
LTC1546/LTC1544:多功能接口芯片LTC1546,LTC1544,二者結合,構成全功能的多協(xié)議接口界面,支持RS 232,RS 449,EIA530,EIA530-A,V.35,V.36,X.21協(xié)議,協(xié)議的選擇可完全由軟件進行。
MPC875:飛思卡爾MPC875嵌入式CPU,基于POWERPC架構,主頻高達133 MHz,8 KB指令cache,8 KB數(shù)據(jù)cache,總線頻率最高可達80 MHz。
EP3C25F324C8: Altera公司的CycloneⅢ系列FPGA,性價比高,資源豐富。
EPM7256AETC144-7:Altera公司MAX7000AE系列CPLD,支持多種接口電平。由于LTC1546,LTC1544接口電平為5 V,F(xiàn)PGA不支持這樣的接口電壓,這里使用CPLD作接口電路。
XRT82D20:RXAR公司的E1線路接口芯片,支持單路E1,具有HDB3編碼、時鐘恢復、線路驅動等功能,75 Ω或者120 Ω阻抗匹配。
keyboard:4×4鍵盤,用來接收時隙分配設置輸入。
LED:LED指示燈,共30個,用來指示30個數(shù)據(jù)時隙的使用情況:當LED燈點亮時,表示該時隙已經使用;LED燈不亮,表示該時隙為空閑。
2 關鍵模塊設計
2.1 與CPU通信FPGA端硬件電路設計[7]
當FPGA與CPU通信時,由于CPU總線特殊的時序關系,F(xiàn)PGA端須做相應的處理才能保證讀寫數(shù)據(jù)的穩(wěn)定性。圖3為MPC875讀數(shù)據(jù)總線時序圖。其中:CS為片選信號,OE為讀信號,A[0:31]為地址信號,D[0:31]為數(shù)據(jù)信號。圖4為MPC875寫數(shù)據(jù)總線時序圖,WE為寫信號,其余信號與讀總線相同。
圖3 MPC875讀數(shù)據(jù)總線時序圖
當CPU讀取FPGA中數(shù)據(jù)時,先給出地址信號,然后使能片選CS、讀信號OE,這時如果數(shù)據(jù)總線上有數(shù)據(jù),CPU讀入數(shù)據(jù)。但MPC875總線頻率高達80 MHz,為了CPU能穩(wěn)定的讀取到數(shù)據(jù),這里將片選信號與讀信號相“與”,然后擴寬3倍得到總線可用信號,在總線可用信號有效期間,數(shù)據(jù)總線上總有數(shù)據(jù),這樣,可以保證CPU能穩(wěn)定的讀到數(shù)據(jù)。
圖4 MPC875寫數(shù)據(jù)總線時序圖
當CPU寫入數(shù)據(jù)時,CPU先給出地址信號,然后給出片選及寫信號,在寫信號有效期間,CPU穩(wěn)定的給出數(shù)據(jù)。因此,在片選及寫信號有效時,鎖存數(shù)據(jù)總線上的數(shù)據(jù)即可。
2.2 CPLD硬件接口電路設計
CPLD主要完成V.35,RS 449,RS 232數(shù)據(jù)收發(fā);keyboard,LED控制;FIFO讀寫等功能。功能框圖如圖5所示。
圖5 CPLD程序功能框圖
CPU通過CPLD對接口芯片進行模式選擇。V.35,RS 449為同步平衡接口,常用接口速率為N×64 Kb/s(N=1~32)。時鐘、數(shù)據(jù)信號為兩線平衡傳輸,控制信號為不平衡傳輸。發(fā)送數(shù)據(jù)時,將與之對應的時鐘一并輸出。在接收數(shù)據(jù)時,用接口時鐘采樣數(shù)據(jù)。
RS 232為不平衡傳輸。幀格式固定為:1位開始位、8位數(shù)據(jù)位、結束位。結束位有三種:1位、1.5位、2位。開始位固定為“0”,停止位固定為“1”。通信雙方在開始通信前必須約定好串行傳輸?shù)膮?shù)(傳輸速度、幀格式)。在發(fā)送端,首先通過分頻產生需要的串行波特率,然后按照幀格式以約定好的速率發(fā)送。在接收端,使用8倍于波特率的時鐘對接收到的信號進行過采樣,經過濾波后如果為低電平信號,即認為是開始位,然后按照約定好的速率接收數(shù)據(jù)。
在接收數(shù)據(jù)時,F(xiàn)IFO讀寫模塊將串行接收數(shù)據(jù)變成8位并行,同時,將與接收數(shù)據(jù)同步的時鐘8分頻,用此時鐘將8位并行數(shù)據(jù)寫入與該接口對應的FIFO;在發(fā)送數(shù)據(jù)時,將發(fā)送時鐘8分頻,用此時鐘從與該接口對應的FIFO讀取數(shù)據(jù),同時將8位并行數(shù)據(jù)串行輸出。
keyboard為4×4掃描式矩陣鍵盤,具有16個鍵。由硬件程序自動掃描鍵盤,輸入數(shù)據(jù)觸發(fā)中斷,CPU讀取數(shù)據(jù)。LED輸出由CPU寫入相應的顯示寄存器,然后硬件程序將相關信號輸出點亮LED。
2.3 FPGA硬件電路設計[8-9]
FPGA主要根據(jù)時隙的分配設置,在時鐘系統(tǒng)的管理控制下,完成E1的編解幀功能。功能框圖如圖6所示。
圖6 FPGA程序功能框圖
CPU根據(jù)設置向時隙分配寄存器寫入相應的數(shù)據(jù)。在發(fā)送數(shù)據(jù)時,E1編解幀模塊根據(jù)時隙分配設置,從相應的FIFO讀取數(shù)據(jù),寫入該時隙。對于沒有使用的空時隙,按照空時隙處理辦法填入無效數(shù)據(jù)。發(fā)送時鐘為FPGA外接的2.048 MHz時鐘。由于XRT82D20為數(shù)據(jù)差分輸入,因此將編解幀模塊輸出的數(shù)據(jù)TPOS進行反向得到TNEG,平衡輸出。TCLK為發(fā)送時鐘[10]。
在接收時,XRT82D20數(shù)據(jù)差分輸入RPOS,RNEG,將兩個信號相減得到輸入數(shù)據(jù)信號,RCLK為時鐘輸入。在輸入時鐘的控制下,E1編解幀模塊將數(shù)據(jù)解幀。同時,根據(jù)時隙分配設置,將各個時隙的數(shù)據(jù)送入不同的接口FIFO。
3 軟件主程序流程圖
MPC875主要完成接口芯片初始化設置、時隙分配設置輸入、狀態(tài)顯示等功能。軟件主程序流程圖如圖7所示。
上電以后,CPU進行初始化設置。延遲1 ms進行內存地址分配:每個自定義寄存器及I/O均分配一個內存地址,CPU操作時讀寫相應地址即可;接著進行LTC1546/LTC1544模式選擇,將三組接口分別配置為V.35,RS 449,RS 232;然后查詢時隙分配設置輸入,如果已經輸入時隙分配設置,則讀取時隙設置數(shù)據(jù),否則,等待時隙設置輸入;協(xié)議轉換器初始化設置完畢,每隔100 ms進行一次線路運行狀態(tài)告警顯示。
圖7 軟件設計主流程圖
4 協(xié)議轉換器測試
4.1 測試平臺搭建
測試平臺由JDSU ANT-5 SDH接入測試儀,協(xié)議轉換器,示意圖如圖8所示。JDSU ANT-5手持型SDH/PDH傳輸分析儀,內置所有必要的接口:從T1 Bantam、E1平衡與E1非平衡,到STM-16/OC48光接口;測試速率從1.544 Mb/s~2.5 Gb/s;大屏幕、簡單圖形化界面、中文菜單,易于使用。
圖8 協(xié)議轉換器測試平臺示意圖
首先進行時隙分配設置,將1到15時隙分配給V.35接口,17到30時隙分配給RS 449接口,31時隙分配給RS 232接口。由JDSU ANT-5 SDH接入測試儀發(fā)出的2 MHz信號,進入?yún)f(xié)議轉換器,然后分別將V.35,RS 449,RS 232接口環(huán)回,再將輸出的E1信號接入測試儀,在測試儀中測試環(huán)回信號的各種特性。
4.2 測試結果
依照上述測試平臺進行協(xié)議轉換器功能測試,測試結果顯示,誤碼率為0,說明協(xié)議轉換器功能正常。JDSU ANT-5 SDH接入測試儀測試截圖如圖9所示。其中BER為誤碼率。
圖9 SDH接入測試儀測試結果截圖
5 結 語
本文提出了一種多路接口與E1的協(xié)議轉換設計方法,并具體介紹了時隙分配及調度、空時隙處理等技術難點。通過實現(xiàn)V.35,RS 449,RS 232三路接口與E1的協(xié)議轉換,證明該方案是可行的。另外,本設計具有良好的擴展性,可以方便的根據(jù)具體應用添加或去除接口,也可以在本設計的基礎上進行二次開發(fā),完成更多的功能。
參考文獻
[1]李偉章.現(xiàn)代通信網概論[M].北京:人民郵電出版社,2003.
[2]劉穎,石戰(zhàn)勇,李仲俠.大規(guī)模集成電路PCM終端及復接設備[M].北京:人民郵電出版社,1996.
[3]潘長勇,韓冰,杜鄧寶.TS流與多路E1協(xié)議轉換器設計與實現(xiàn)[J].電視技術,2009(4):11-14.
[4]王合川,朱大勇.基于FPGA的多路E1信道的MPEG-2碼流傳輸[J].無線電工程,2007,37(9):10-12.
[5]林進超,羅強,李振卿.E1-V.35協(xié)議轉換器設計實現(xiàn)[J].中國科技信息,2008(24):62-63.
[6]郝娟,葉志祥.串口通信協(xié)議轉換器的研制[J].電腦開發(fā)與應用,2001,15(1):37-38.
[7]夏宇聞.Verilog數(shù)字系統(tǒng)設計教程[M].北京:北京航空航天大學出版社,2003.
[8]陳大征,胡建偉.同步流密碼機中E1接口的設計與實現(xiàn)[J].電子技術應用,2009(3):138-139.
[9]李鵬程,顏永紅,帥金曉,等.E1成/解幀器的設計[J].微計算機信息,2009,25(8):83-88.
[10]韓鵬,馮馳,孫玲.路由器中的E1接口設計[J].應用科技,2005,32(5):16-18.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文