陳 凱,唐清善,李亞捷,羅 振,黎 歡,單威武
(長沙理工大學 物理與電子科學學院,湖南 長沙 410004)
?
基于FPGA的千兆以太網(wǎng)傳輸實現(xiàn)方案
陳 凱,唐清善,李亞捷,羅 振,黎 歡,單威武
(長沙理工大學 物理與電子科學學院,湖南 長沙 410004)
為滿足數(shù)據(jù)傳輸系統(tǒng)對遠距離、大量數(shù)據(jù)、抗干擾性和可靠性的需求,提出了一種基于FPGA的千兆以太網(wǎng)傳輸以取代以往的百兆網(wǎng)傳輸方式,實現(xiàn)大數(shù)據(jù)的快速遠距離傳輸。FPGA接收到數(shù)據(jù)后通過FIFO緩存,經(jīng)過FPGA組幀后通過超五類雙絞線傳輸。系統(tǒng)傳輸速度最高可達1 Gbit·s-1,硬件完成對數(shù)據(jù)的采集、校驗和發(fā)送控制。經(jīng)過仿真、調(diào)試、驗證,系統(tǒng)數(shù)據(jù)流速度可以穩(wěn)定在800 Mbit·s-1以上。
千兆以太網(wǎng);物理層;MAC;UDP
隨著電子技術(shù)的發(fā)展,系統(tǒng)設(shè)備正不斷向小型化、集成化、網(wǎng)絡(luò)化發(fā)展[1]。一方面隨著網(wǎng)絡(luò)帶寬的增加和數(shù)據(jù)流量的擴大,無論幀速度還是分辨率都有了一定的提高,這就要求數(shù)據(jù)的傳輸也需要更高的帶寬。另一方面,短距離的數(shù)據(jù)傳輸已經(jīng)不能滿足多項目的要求[2]。目前常用的數(shù)據(jù)傳輸方法是通過百兆網(wǎng)絡(luò)進行數(shù)據(jù)傳輸,此方法由于帶寬的限制,雖然能夠完成數(shù)據(jù)的傳輸,但速度上已經(jīng)難以滿足需要[3]。針對上述問題,結(jié)合某光端機項目研發(fā),提出了一種基于FPGA的千兆以太網(wǎng)傳輸系統(tǒng)具有一定應(yīng)用價值。
1.1 系統(tǒng)總體設(shè)計
系統(tǒng)的總體設(shè)計滿足以下要求:(1)系統(tǒng)支持RJ45接口的千兆以太網(wǎng),采用IP/UDP網(wǎng)絡(luò)協(xié)議進行數(shù)據(jù)傳輸;(2)數(shù)據(jù)位寬8位,支持預(yù)設(shè)MAC地址;(3)將PC發(fā)送來的數(shù)據(jù)重新組幀發(fā)回PC;(4)點對點數(shù)據(jù)通信。根據(jù)這些要求,設(shè)計千兆網(wǎng)系統(tǒng)如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
1.2 系統(tǒng)工作流程
系統(tǒng)通過前導碼判斷并接收PC發(fā)送的數(shù)據(jù),將去掉幀頭的數(shù)據(jù)緩存到一個深度為2 048的FIFO中,F(xiàn)PGA對數(shù)據(jù)進行處理后通過超五類雙絞線發(fā)送到PC端進行顯示。
圖2 各模塊所處時鐘域
系統(tǒng)工作流程如下:
(1)系統(tǒng)上電后完成一系列的初始化工作,PC端準備發(fā)送數(shù)據(jù)給系統(tǒng);
(2)PC端發(fā)送來的數(shù)據(jù)進入FIFO1進行一個緩存,再通過FIFO1傳遞給FPGA;
(3)FPGA的接收模塊從FIFO1中讀取PC端發(fā)送來的數(shù)據(jù),校驗確認后將數(shù)據(jù)存入FPGA產(chǎn)生的FIFO2中做緩存處理;
(4)FPGA的發(fā)送模塊從FIFO2中將緩存的數(shù)據(jù)取出,并對數(shù)據(jù)的結(jié)構(gòu)做一定的處理,同時對數(shù)據(jù)進行編碼,添加相應(yīng)的包頭信息;
(5)FPGA通過GMII協(xié)議同GPHY芯片通信,GPHY芯片將FPGA組幀好的數(shù)據(jù)流經(jīng)RJ45以太網(wǎng)口,由超五類雙絞線傳遞出去。
千兆網(wǎng)技術(shù)是一種應(yīng)用廣泛的網(wǎng)絡(luò)技術(shù),目前已經(jīng)成為主流的網(wǎng)絡(luò)技術(shù)。千兆網(wǎng)的優(yōu)勢在于兼容原有以太網(wǎng)標準所規(guī)定的全部技術(shù)規(guī)范,又同時具有一些新的特性,如使用8B/10B編碼解碼方案、分組突發(fā)技術(shù)等,使得網(wǎng)絡(luò)傳輸速度得到了大幅度的提高。要通過千兆以太網(wǎng)傳輸數(shù)據(jù),涉及到開放系統(tǒng)互連模型(OSI)中的1~4層,分別是物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和傳輸層。本文設(shè)計的數(shù)據(jù)傳輸系統(tǒng)的網(wǎng)絡(luò)協(xié)議由FPGA實現(xiàn),綜合考慮實現(xiàn)的網(wǎng)絡(luò)協(xié)議具有以下特點:(1)點對點通信。為實現(xiàn)千兆網(wǎng)絡(luò)的數(shù)據(jù)傳輸,至少要使用到開放互聯(lián)模型七層機構(gòu)中的數(shù)據(jù)鏈路層和物理層,數(shù)據(jù)鏈路層負責幀的組裝、傳輸、差錯校驗,物理層主要負責數(shù)據(jù)編碼、狀態(tài)監(jiān)測等。由于系統(tǒng)實現(xiàn)的是點對點的數(shù)據(jù)傳送,因此可以不考慮網(wǎng)絡(luò)延遲堵塞可能引起的數(shù)據(jù)丟失和錯誤。又由于系統(tǒng)需要盡可能提高傳輸速率,因此無需選用復雜的可靠性高的協(xié)議,使用傳輸速度快的UDP協(xié)議即可;(2)簡化接口信號。因為是點對點通信,因此可以簡化一些不必要的信號接口,如沖突檢測和載波監(jiān)聽信號;(3)通信雙方信息確定。通信雙方的MAC地址,IP地址,協(xié)議類型,端口號等都是事先固定的,直接封裝在數(shù)據(jù)包中,這樣做一方面可以簡化系統(tǒng)設(shè)計協(xié)議的復雜度,另一方面也可以提高信息的可靠性和傳輸速度。系統(tǒng)采用的IP/UDP協(xié)議固定部分如表1所示。
系統(tǒng)采用Xilinx公司的ISE14.7軟件開發(fā),采用自頂向下的方法進行設(shè)計,使用Verilog HDL硬件描述語言編寫各個功能模塊。系統(tǒng)接收模塊的狀態(tài)機如圖3所示。當系統(tǒng)接收到前導碼后,接收目標MAC地址并判斷該地址是否與系統(tǒng)預(yù)設(shè)的MAC地址一致,若一致則接收剩余的數(shù)據(jù)信息,進行下一步數(shù)據(jù)的處理;若不一致則回到狀態(tài)機初始狀態(tài),等待接收前導碼。
表1 IP/UDP協(xié)議固定部分
圖3 接收模塊狀態(tài)機圖
系統(tǒng)發(fā)送模塊與系統(tǒng)接收模塊原理基本相同,區(qū)別在于發(fā)送模塊增加了組幀的工作,需要提前將通信雙方事先約定的一些信息封裝在IP包里,添加到裸數(shù)據(jù)的報頭里發(fā)送出去,發(fā)送模塊在系統(tǒng)檢測到數(shù)據(jù)有效標志e_rxdv信息后開始工作,首先將按照IP報頭的要求,依次發(fā)送前導碼、目的MAC地址、源MAC地址、版本號報頭長度等報頭信息,接著從讀取出FIFO中的數(shù)據(jù)進行發(fā)送,在發(fā)送完全部數(shù)據(jù)后最后再發(fā)送CRC32的值。系統(tǒng)發(fā)送模塊的狀態(tài)機如圖4所示。系統(tǒng)使用的UDP協(xié)議模塊用硬件描述語言封裝后的RTL視圖如圖5所示。
圖4 發(fā)送模塊狀態(tài)機圖
圖5 UDP協(xié)議模塊RTL圖
所有模塊設(shè)計均在Xilinx ISE14.7開發(fā)平臺上進行,使用到的相關(guān)工具有仿真軟件Isim和在線邏輯分析儀Chipscope。在仿真時,模擬PC端向FPGA發(fā)送數(shù)據(jù),先發(fā)送數(shù)據(jù)傳輸請求前導碼然后發(fā)送FPGA的MAC地址和PC端MAC地址,再發(fā)送其余的報頭信息和數(shù)據(jù)。通過仿真軟件Isim觀察仿真信號結(jié)果如圖6所示。觀測到接收模塊已經(jīng)接收到的報頭數(shù)據(jù),與FPGA預(yù)設(shè)的MAC地址匹配,開始接收數(shù)據(jù)。
圖6 接收模塊仿真結(jié)果
發(fā)送模塊在接收到數(shù)據(jù)傳輸有效標志位e_rxdv有效信號后開始準備發(fā)送報頭信息和相關(guān)數(shù)據(jù)。仿真信號如圖7所示,數(shù)據(jù)有效標志位e_rxdv由低變高,說明接收數(shù)據(jù)有效,發(fā)送模塊將準備好的IP報頭提取出來,準備向PC端進行數(shù)據(jù)發(fā)送。
ISE軟件自帶的在線邏輯分析儀Chipscope是Xilinx公司推出的一款在線調(diào)試工具,它可以使開發(fā)者不使用傳統(tǒng)的邏輯分析儀來觀察分析時序,而直接通過該軟件觀察到FPGA內(nèi)部的信號位寬等關(guān)鍵信息,對系統(tǒng)整體調(diào)試有很大的幫助作用。使用在線邏輯分析儀Chipscope觀察,采集到網(wǎng)口向PC端發(fā)送的報頭數(shù)據(jù)前導碼0X55、0Xd5,目標MAC,源MAC等與系統(tǒng)預(yù)設(shè)的數(shù)據(jù)完全一致,證明數(shù)據(jù)傳輸成功,F(xiàn)PGA系統(tǒng)在向PC端發(fā)送接收到的數(shù)據(jù)。
圖8 Chipscope結(jié)果
圖9 測試程序效果圖
利用FPGA并行處理的優(yōu)勢和千兆網(wǎng)在數(shù)據(jù)傳輸中的速度優(yōu)勢,設(shè)計了基于FPGA的千兆網(wǎng)絡(luò)數(shù)據(jù)傳輸系統(tǒng),實現(xiàn)了點對點的千兆網(wǎng)絡(luò)傳輸系統(tǒng),解決了傳統(tǒng)數(shù)據(jù)傳輸速度較慢,設(shè)計相對復雜,數(shù)據(jù)無法進行遠距離傳輸?shù)葐栴}。重點介紹了網(wǎng)絡(luò)協(xié)議的選擇與實現(xiàn),系統(tǒng)理論上傳輸速度最快可以達到1 Gbit·s-1,經(jīng)過仿真、調(diào)試、驗證,系統(tǒng)通過兩個FIFO可進行跨時鐘域處理,接收端時鐘可根據(jù)需要進行調(diào)整,發(fā)送端時鐘為125 MHz,最終系統(tǒng)傳輸數(shù)據(jù)流速度能夠穩(wěn)定工作在800 Mbit·s-1以上,與已有的千兆網(wǎng)系統(tǒng)傳輸速率300 Mbit·s-1相比[4],速率提高了約1倍。系統(tǒng)設(shè)計相對價格低廉,可移植性強、功耗低,可以廣泛應(yīng)用在遠距離大數(shù)據(jù)傳輸設(shè)備中。在以后的研究中,可以結(jié)合具體視頻傳輸格式進行下一步的研究,實現(xiàn)高清圖像視頻傳輸?shù)裙δ堋?/p>
[1] 趙文達,趙建.嵌入式千兆網(wǎng)高清視頻傳輸系統(tǒng)設(shè)計[J].液晶與顯示,2014(3):384-385.
[2] 樊光輝,孫國強,向健勇.基于千兆以太網(wǎng)技術(shù)的大型實時傳輸系統(tǒng)[J].電子科技,2009,22(3):37-40.
[3] 周彬.雙百兆以太網(wǎng)控制器在FPGA上的實現(xiàn)[J].IT時代周刊論文專版,2014(3):296-300.
[4] 李艷霞.千兆以太網(wǎng)接口高速圖像采集系統(tǒng)設(shè)計[D].大連:大連理工大學,2010.
[5] 田耘,徐文波.Xilinx FPGA開發(fā)實用教程[M].北京:清華大學出版社,2008.
[8] 李皖,周璧華,江志東,等.閃電聲源定位系統(tǒng)研究[J].電波科學學報,2014,29(2):270-275.
[9] 張傳義,米常偉.基于TDE技術(shù)的聲源定位算法[J].東北大學學報:自然科學版,2014,35(3):333-336,369.
[10] 張奕,孟書杰.針對頭佩式麥克風陣列的聲源定位算法研究[J].計算機工程與應(yīng)用,2015,51(24):266-270.
[11] 蔡衛(wèi)平,黃印君,陸澤椽.基于分布式麥克風陣列的聲源定位算法[J].計算機應(yīng)用與軟件,2014,31(5):132-135.
[12] Canclini A, Antonacci F, Sarti A. Acoustic source localization with distributed asynchronous microphone networks[J].IEEE Transaction on Audio, Speech and Language Processing, 2013, 21(2): 439-443.
[13] Hu Jinyu,Gao Zhiwei,Pan Weisen.Multiangle social network recommendation algorithms and similarity network evaluation[J].Journal of Applied Mathematics,2013 (3):352-358.
[14] 蔡衛(wèi)平,徐健,周琳.一種基于粒子濾波的多聲源跟蹤算法[J].計算機應(yīng)用研究,2013,31(8): 2326-2330.
[15] 殷俠,蔡衛(wèi)平,徐健,等.基于粒子濾波的聲源方位跟蹤算法[J].計算機應(yīng)用與軟件,2012, 29(12):77-80.
Design Method of Gigabit Ethernet Transmission Based on FPGA
CHEN Kai,TANG Qingshan,LI Yajie,LUO Zhen,LI Huan,SHAN Weiwu
(School of Physics and Electronic Science, Changsha University of Science and Technology, Changsha 410004, China)
A Gigabit Ethernet transmission based on FPGA is designed to replace the existing 100 M Ethernet FPGA for real-time reliable long-distance transmission of large data. The data received by FPGA are cached in the FIFO for FPGA group frame and then transmitted through the cat5e of twisted pair at a speed of up to 1 Gbit·s-1. Data acquisition, processing, and transmission control are implemented by hardware. Simulation shows the transmission speed of the system remains stable at above 800Mbit·s-1.
gigabit Ethernet; PHY; MAC; UDP
2016- 07- 18
陳凱(1990-),男,碩士研究生。研究方向:數(shù)字視頻處理。唐清善(1977-),男,博士。研究方向:數(shù)字信號處理等。李亞捷(1980-),女,副教授。研究方向:基于光纖的全光處理器件。
10.16180/j.cnki.issn1007-7820.2017.06.028
TN915.04;TP393.11
A
1007-7820(2017)06-102-04