陳 凱,唐清善,李亞捷,羅 振,黎 歡,單威武
(長(zhǎng)沙理工大學(xué) 物理與電子科學(xué)學(xué)院,湖南 長(zhǎng)沙 410004)
?
基于FPGA的千兆以太網(wǎng)傳輸實(shí)現(xiàn)方案
陳 凱,唐清善,李亞捷,羅 振,黎 歡,單威武
(長(zhǎng)沙理工大學(xué) 物理與電子科學(xué)學(xué)院,湖南 長(zhǎng)沙 410004)
為滿(mǎn)足數(shù)據(jù)傳輸系統(tǒng)對(duì)遠(yuǎn)距離、大量數(shù)據(jù)、抗干擾性和可靠性的需求,提出了一種基于FPGA的千兆以太網(wǎng)傳輸以取代以往的百兆網(wǎng)傳輸方式,實(shí)現(xiàn)大數(shù)據(jù)的快速遠(yuǎn)距離傳輸。FPGA接收到數(shù)據(jù)后通過(guò)FIFO緩存,經(jīng)過(guò)FPGA組幀后通過(guò)超五類(lèi)雙絞線傳輸。系統(tǒng)傳輸速度最高可達(dá)1 Gbit·s-1,硬件完成對(duì)數(shù)據(jù)的采集、校驗(yàn)和發(fā)送控制。經(jīng)過(guò)仿真、調(diào)試、驗(yàn)證,系統(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ù)流量的擴(kuò)大,無(wú)論幀速度還是分辨率都有了一定的提高,這就要求數(shù)據(jù)的傳輸也需要更高的帶寬。另一方面,短距離的數(shù)據(jù)傳輸已經(jīng)不能滿(mǎn)足多項(xiàng)目的要求[2]。目前常用的數(shù)據(jù)傳輸方法是通過(guò)百兆網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸,此方法由于帶寬的限制,雖然能夠完成數(shù)據(jù)的傳輸,但速度上已經(jīng)難以滿(mǎn)足需要[3]。針對(duì)上述問(wèn)題,結(jié)合某光端機(jī)項(xiàng)目研發(fā),提出了一種基于FPGA的千兆以太網(wǎng)傳輸系統(tǒng)具有一定應(yīng)用價(jià)值。
1.1 系統(tǒng)總體設(shè)計(jì)
系統(tǒng)的總體設(shè)計(jì)滿(mǎn)足以下要求:(1)系統(tǒng)支持RJ45接口的千兆以太網(wǎng),采用IP/UDP網(wǎng)絡(luò)協(xié)議進(jìn)行數(shù)據(jù)傳輸;(2)數(shù)據(jù)位寬8位,支持預(yù)設(shè)MAC地址;(3)將PC發(fā)送來(lái)的數(shù)據(jù)重新組幀發(fā)回PC;(4)點(diǎn)對(duì)點(diǎn)數(shù)據(jù)通信。根據(jù)這些要求,設(shè)計(jì)千兆網(wǎng)系統(tǒng)如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
1.2 系統(tǒng)工作流程
系統(tǒng)通過(guò)前導(dǎo)碼判斷并接收PC發(fā)送的數(shù)據(jù),將去掉幀頭的數(shù)據(jù)緩存到一個(gè)深度為2 048的FIFO中,F(xiàn)PGA對(duì)數(shù)據(jù)進(jìn)行處理后通過(guò)超五類(lèi)雙絞線發(fā)送到PC端進(jìn)行顯示。
圖2 各模塊所處時(shí)鐘域
系統(tǒng)工作流程如下:
(1)系統(tǒng)上電后完成一系列的初始化工作,PC端準(zhǔn)備發(fā)送數(shù)據(jù)給系統(tǒng);
(2)PC端發(fā)送來(lái)的數(shù)據(jù)進(jìn)入FIFO1進(jìn)行一個(gè)緩存,再通過(guò)FIFO1傳遞給FPGA;
(3)FPGA的接收模塊從FIFO1中讀取PC端發(fā)送來(lái)的數(shù)據(jù),校驗(yàn)確認(rèn)后將數(shù)據(jù)存入FPGA產(chǎn)生的FIFO2中做緩存處理;
(4)FPGA的發(fā)送模塊從FIFO2中將緩存的數(shù)據(jù)取出,并對(duì)數(shù)據(jù)的結(jié)構(gòu)做一定的處理,同時(shí)對(duì)數(shù)據(jù)進(jìn)行編碼,添加相應(yīng)的包頭信息;
(5)FPGA通過(guò)GMII協(xié)議同GPHY芯片通信,GPHY芯片將FPGA組幀好的數(shù)據(jù)流經(jīng)RJ45以太網(wǎng)口,由超五類(lèi)雙絞線傳遞出去。
千兆網(wǎng)技術(shù)是一種應(yīng)用廣泛的網(wǎng)絡(luò)技術(shù),目前已經(jīng)成為主流的網(wǎng)絡(luò)技術(shù)。千兆網(wǎng)的優(yōu)勢(shì)在于兼容原有以太網(wǎng)標(biāo)準(zhǔn)所規(guī)定的全部技術(shù)規(guī)范,又同時(shí)具有一些新的特性,如使用8B/10B編碼解碼方案、分組突發(fā)技術(shù)等,使得網(wǎng)絡(luò)傳輸速度得到了大幅度的提高。要通過(guò)千兆以太網(wǎng)傳輸數(shù)據(jù),涉及到開(kāi)放系統(tǒng)互連模型(OSI)中的1~4層,分別是物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和傳輸層。本文設(shè)計(jì)的數(shù)據(jù)傳輸系統(tǒng)的網(wǎng)絡(luò)協(xié)議由FPGA實(shí)現(xiàn),綜合考慮實(shí)現(xiàn)的網(wǎng)絡(luò)協(xié)議具有以下特點(diǎn):(1)點(diǎn)對(duì)點(diǎn)通信。為實(shí)現(xiàn)千兆網(wǎng)絡(luò)的數(shù)據(jù)傳輸,至少要使用到開(kāi)放互聯(lián)模型七層機(jī)構(gòu)中的數(shù)據(jù)鏈路層和物理層,數(shù)據(jù)鏈路層負(fù)責(zé)幀的組裝、傳輸、差錯(cuò)校驗(yàn),物理層主要負(fù)責(zé)數(shù)據(jù)編碼、狀態(tài)監(jiān)測(cè)等。由于系統(tǒng)實(shí)現(xiàn)的是點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)傳送,因此可以不考慮網(wǎng)絡(luò)延遲堵塞可能引起的數(shù)據(jù)丟失和錯(cuò)誤。又由于系統(tǒng)需要盡可能提高傳輸速率,因此無(wú)需選用復(fù)雜的可靠性高的協(xié)議,使用傳輸速度快的UDP協(xié)議即可;(2)簡(jiǎn)化接口信號(hào)。因?yàn)槭屈c(diǎn)對(duì)點(diǎn)通信,因此可以簡(jiǎn)化一些不必要的信號(hào)接口,如沖突檢測(cè)和載波監(jiān)聽(tīng)信號(hào);(3)通信雙方信息確定。通信雙方的MAC地址,IP地址,協(xié)議類(lèi)型,端口號(hào)等都是事先固定的,直接封裝在數(shù)據(jù)包中,這樣做一方面可以簡(jiǎn)化系統(tǒng)設(shè)計(jì)協(xié)議的復(fù)雜度,另一方面也可以提高信息的可靠性和傳輸速度。系統(tǒng)采用的IP/UDP協(xié)議固定部分如表1所示。
系統(tǒng)采用Xilinx公司的ISE14.7軟件開(kāi)發(fā),采用自頂向下的方法進(jìn)行設(shè)計(jì),使用Verilog HDL硬件描述語(yǔ)言編寫(xiě)各個(gè)功能模塊。系統(tǒng)接收模塊的狀態(tài)機(jī)如圖3所示。當(dāng)系統(tǒng)接收到前導(dǎo)碼后,接收目標(biāo)MAC地址并判斷該地址是否與系統(tǒng)預(yù)設(shè)的MAC地址一致,若一致則接收剩余的數(shù)據(jù)信息,進(jìn)行下一步數(shù)據(jù)的處理;若不一致則回到狀態(tài)機(jī)初始狀態(tài),等待接收前導(dǎo)碼。
表1 IP/UDP協(xié)議固定部分
圖3 接收模塊狀態(tài)機(jī)圖
系統(tǒng)發(fā)送模塊與系統(tǒng)接收模塊原理基本相同,區(qū)別在于發(fā)送模塊增加了組幀的工作,需要提前將通信雙方事先約定的一些信息封裝在IP包里,添加到裸數(shù)據(jù)的報(bào)頭里發(fā)送出去,發(fā)送模塊在系統(tǒng)檢測(cè)到數(shù)據(jù)有效標(biāo)志e_rxdv信息后開(kāi)始工作,首先將按照IP報(bào)頭的要求,依次發(fā)送前導(dǎo)碼、目的MAC地址、源MAC地址、版本號(hào)報(bào)頭長(zhǎng)度等報(bào)頭信息,接著從讀取出FIFO中的數(shù)據(jù)進(jìn)行發(fā)送,在發(fā)送完全部數(shù)據(jù)后最后再發(fā)送CRC32的值。系統(tǒng)發(fā)送模塊的狀態(tài)機(jī)如圖4所示。系統(tǒng)使用的UDP協(xié)議模塊用硬件描述語(yǔ)言封裝后的RTL視圖如圖5所示。
圖4 發(fā)送模塊狀態(tài)機(jī)圖
圖5 UDP協(xié)議模塊RTL圖
所有模塊設(shè)計(jì)均在Xilinx ISE14.7開(kāi)發(fā)平臺(tái)上進(jìn)行,使用到的相關(guān)工具有仿真軟件Isim和在線邏輯分析儀Chipscope。在仿真時(shí),模擬PC端向FPGA發(fā)送數(shù)據(jù),先發(fā)送數(shù)據(jù)傳輸請(qǐng)求前導(dǎo)碼然后發(fā)送FPGA的MAC地址和PC端MAC地址,再發(fā)送其余的報(bào)頭信息和數(shù)據(jù)。通過(guò)仿真軟件Isim觀察仿真信號(hào)結(jié)果如圖6所示。觀測(cè)到接收模塊已經(jīng)接收到的報(bào)頭數(shù)據(jù),與FPGA預(yù)設(shè)的MAC地址匹配,開(kāi)始接收數(shù)據(jù)。
圖6 接收模塊仿真結(jié)果
發(fā)送模塊在接收到數(shù)據(jù)傳輸有效標(biāo)志位e_rxdv有效信號(hào)后開(kāi)始準(zhǔn)備發(fā)送報(bào)頭信息和相關(guān)數(shù)據(jù)。仿真信號(hào)如圖7所示,數(shù)據(jù)有效標(biāo)志位e_rxdv由低變高,說(shuō)明接收數(shù)據(jù)有效,發(fā)送模塊將準(zhǔn)備好的IP報(bào)頭提取出來(lái),準(zhǔn)備向PC端進(jìn)行數(shù)據(jù)發(fā)送。
ISE軟件自帶的在線邏輯分析儀Chipscope是Xilinx公司推出的一款在線調(diào)試工具,它可以使開(kāi)發(fā)者不使用傳統(tǒng)的邏輯分析儀來(lái)觀察分析時(shí)序,而直接通過(guò)該軟件觀察到FPGA內(nèi)部的信號(hào)位寬等關(guān)鍵信息,對(duì)系統(tǒng)整體調(diào)試有很大的幫助作用。使用在線邏輯分析儀Chipscope觀察,采集到網(wǎng)口向PC端發(fā)送的報(bào)頭數(shù)據(jù)前導(dǎo)碼0X55、0Xd5,目標(biāo)MAC,源MAC等與系統(tǒng)預(yù)設(shè)的數(shù)據(jù)完全一致,證明數(shù)據(jù)傳輸成功,F(xiàn)PGA系統(tǒng)在向PC端發(fā)送接收到的數(shù)據(jù)。
圖8 Chipscope結(jié)果
圖9 測(cè)試程序效果圖
利用FPGA并行處理的優(yōu)勢(shì)和千兆網(wǎng)在數(shù)據(jù)傳輸中的速度優(yōu)勢(shì),設(shè)計(jì)了基于FPGA的千兆網(wǎng)絡(luò)數(shù)據(jù)傳輸系統(tǒng),實(shí)現(xiàn)了點(diǎn)對(duì)點(diǎn)的千兆網(wǎng)絡(luò)傳輸系統(tǒng),解決了傳統(tǒng)數(shù)據(jù)傳輸速度較慢,設(shè)計(jì)相對(duì)復(fù)雜,數(shù)據(jù)無(wú)法進(jìn)行遠(yuǎn)距離傳輸?shù)葐?wèn)題。重點(diǎn)介紹了網(wǎng)絡(luò)協(xié)議的選擇與實(shí)現(xiàn),系統(tǒng)理論上傳輸速度最快可以達(dá)到1 Gbit·s-1,經(jīng)過(guò)仿真、調(diào)試、驗(yàn)證,系統(tǒng)通過(guò)兩個(gè)FIFO可進(jìn)行跨時(shí)鐘域處理,接收端時(shí)鐘可根據(jù)需要進(jìn)行調(diào)整,發(fā)送端時(shí)鐘為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è)計(jì)相對(duì)價(jià)格低廉,可移植性強(qiáng)、功耗低,可以廣泛應(yīng)用在遠(yuǎn)距離大數(shù)據(jù)傳輸設(shè)備中。在以后的研究中,可以結(jié)合具體視頻傳輸格式進(jìn)行下一步的研究,實(shí)現(xiàn)高清圖像視頻傳輸?shù)裙δ堋?/p>
[1] 趙文達(dá),趙建.嵌入式千兆網(wǎng)高清視頻傳輸系統(tǒng)設(shè)計(jì)[J].液晶與顯示,2014(3):384-385.
[2] 樊光輝,孫國(guó)強(qiáng),向健勇.基于千兆以太網(wǎng)技術(shù)的大型實(shí)時(shí)傳輸系統(tǒng)[J].電子科技,2009,22(3):37-40.
[3] 周彬.雙百兆以太網(wǎng)控制器在FPGA上的實(shí)現(xiàn)[J].IT時(shí)代周刊論文專(zhuān)版,2014(3):296-300.
[4] 李艷霞.千兆以太網(wǎng)接口高速圖像采集系統(tǒng)設(shè)計(jì)[D].大連:大連理工大學(xué),2010.
[5] 田耘,徐文波.Xilinx FPGA開(kāi)發(fā)實(shí)用教程[M].北京:清華大學(xué)出版社,2008.
[8] 李皖,周璧華,江志東,等.閃電聲源定位系統(tǒng)研究[J].電波科學(xué)學(xué)報(bào),2014,29(2):270-275.
[9] 張傳義,米常偉.基于TDE技術(shù)的聲源定位算法[J].東北大學(xué)學(xué)報(bào):自然科學(xué)版,2014,35(3):333-336,369.
[10] 張奕,孟書(shū)杰.針對(duì)頭佩式麥克風(fēng)陣列的聲源定位算法研究[J].計(jì)算機(jī)工程與應(yīng)用,2015,51(24):266-270.
[11] 蔡衛(wèi)平,黃印君,陸澤椽.基于分布式麥克風(fēng)陣列的聲源定位算法[J].計(jì)算機(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].計(jì)算機(jī)應(yīng)用研究,2013,31(8): 2326-2330.
[15] 殷俠,蔡衛(wèi)平,徐健,等.基于粒子濾波的聲源方位跟蹤算法[J].計(jì)算機(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ù)字信號(hào)處理等。李亞捷(1980-),女,副教授。研究方向:基于光纖的全光處理器件。
10.16180/j.cnki.issn1007-7820.2017.06.028
TN915.04;TP393.11
A
1007-7820(2017)06-102-04