国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA和UDP/IP協(xié)議的千兆網(wǎng)絡(luò)圖傳系統(tǒng)①

2018-04-21 01:37韓劍南胡遼林
關(guān)鍵詞:以太網(wǎng)數(shù)據(jù)包像素

韓劍南, 胡遼林

(西安理工大學(xué) 機(jī)械與精密儀器工程學(xué)院,西安 710048)

圖像處理、機(jī)器視覺等技術(shù)是當(dāng)今工程領(lǐng)域的熱門課題,圖像傳輸系統(tǒng)的高速化、網(wǎng)絡(luò)化已經(jīng)成為這個方向的一個重要組成部分,也被視為國內(nèi)外相關(guān)領(lǐng)域的焦點(diǎn)[1]. 隨著攝像頭硬件性能的提升,圖像的像素量也大幅提高. 圖像傳輸設(shè)備的高速化和集成化已經(jīng)成為主流發(fā)展方向.

針對網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)挠布到y(tǒng),現(xiàn)在主流的方案都源自不同的嵌入式平臺進(jìn)行搭建. 各自硬件方案都有各自的優(yōu)缺點(diǎn),而達(dá)到速度、效率和移植性三者之間的平衡才是以太網(wǎng)傳輸系統(tǒng)設(shè)計的關(guān)鍵. 千兆以太網(wǎng)傳輸硬件系統(tǒng)[2-5]主要有:

(1)基于進(jìn)階精簡指令集機(jī)器(Advanced RISC Machines,ARM)的硬件平臺. 該平臺需要ARM的芯片配上千兆網(wǎng)卡,運(yùn)行在Linux系統(tǒng)下. 此硬件平臺有使用C語言編程,易于移植在同類芯片,指令集兼容性好等優(yōu)點(diǎn). 但其缺點(diǎn)也很突出,因為引入網(wǎng)卡,所以需要編寫驅(qū)動文件,不同網(wǎng)卡驅(qū)動不兼容,維護(hù)成本高,操作復(fù)雜.

(2)基于數(shù)字信號處理(Digital Signal Processing,DSP)芯片的硬件平臺. 對于網(wǎng)絡(luò)而言,DSP內(nèi)也有集成的以太網(wǎng)接口芯片. 在編寫程序時,可以調(diào)用庫文件實(shí)現(xiàn)以太網(wǎng)的通信,所以DSP平臺相較ARM平臺來說開發(fā)更容易. 但是,該平臺軟件開發(fā)的庫文件冗余,裁剪和自定義難度大,系統(tǒng)設(shè)計靈活性不高. 同時因為DSP采用串行指令流和中斷機(jī)制,也產(chǎn)生了系統(tǒng)執(zhí)行效率不高的問題.

(3)基于現(xiàn)場可編程門陣列(Field Programmable Gate Array,FPGA)的硬件平臺. FPGA具有邏輯資源多,集成度高,處理速度快,執(zhí)行效率高,編程靈活等特點(diǎn). 針對網(wǎng)絡(luò)應(yīng)用,常使用FPGA和物理層(Physical Layer,PHY)芯片的這種硬件組合. PHY芯片處于OSI模型的物理層,是一種與外部信號相連的接口芯片. 主要作用是定義了數(shù)據(jù)傳輸所需要的電平標(biāo)準(zhǔn)、時鐘基準(zhǔn)和數(shù)據(jù)編碼等信息,并向數(shù)據(jù)鏈路層提供接口標(biāo)準(zhǔn). 該系統(tǒng)不用調(diào)用庫函數(shù)或者使用串行指令,不需要驅(qū)動的編寫. 通過分模塊編寫Verilog代碼,完成介質(zhì)訪問控制層(Media Access Control,MAC)配置和PHY芯片的配置,相對靈活地實(shí)現(xiàn)用戶數(shù)據(jù)報協(xié)議/因特網(wǎng)互聯(lián)協(xié)議(User Datagram Protocol/Internet Protocol,UDP/IP)協(xié)議.

針對這種非壓縮、大數(shù)據(jù)量的特點(diǎn),本文設(shè)計了一種基于FPGA硬件數(shù)據(jù)自定義UDP/IP協(xié)議的千兆網(wǎng)絡(luò)圖傳系統(tǒng)的解決方案. UDP/IP協(xié)議主要用在同步通信或者強(qiáng)調(diào)實(shí)時性的通信中,該協(xié)議是面向無連接的通信,所以任何時刻都能發(fā)送數(shù)據(jù)[6-8]. 而且,因為它處理過程很簡單,所以適合進(jìn)行高速處理. 利用FPGA的高速性、靈活性、硬件資源豐富等特點(diǎn),實(shí)現(xiàn)硬件UDP/IP協(xié)議棧,達(dá)到高速傳輸?shù)哪康?

1 系統(tǒng)總體框架設(shè)計

系統(tǒng)選用Xilinx公司XC6SLX45T芯片作為硬件開發(fā)平臺,并外接VSC8601芯片、ADV7513芯片和三代雙倍數(shù)據(jù)速率(Double Data Rate 3,DDR3)SDRAM芯片. VSC8601芯片作為千兆以太網(wǎng)的PHY芯片,用于規(guī)定以太網(wǎng)物理層電平標(biāo)準(zhǔn)等. ADV7513芯片作為高清晰度多媒體接口(High Definition Multimedia Interface,HDMI)輸出圖像信息. DDR3 SDRAM主要用于緩存大量圖像信息. 由于DUP/IP協(xié)議模塊使用125 MHz的時鐘,接收數(shù)據(jù)和發(fā)送數(shù)據(jù)各使用4根數(shù)據(jù)線發(fā)送DDR數(shù)據(jù),所以傳輸速度可以達(dá)到千兆級別.

系統(tǒng)設(shè)計原理,如圖1所示. PC機(jī)將圖像信息以UDP協(xié)議封裝的形式,通過雙絞線發(fā)送到以太網(wǎng)PHY芯片. 由于以太網(wǎng)傳輸數(shù)據(jù)采用吉比特介質(zhì)獨(dú)立接口(Reduced Gigabit Media Independent Interface,RGMII)進(jìn)行傳輸數(shù)據(jù),所以FPGA與PHY芯片之間通信,需要在FPGA端編寫雙倍數(shù)據(jù)速率(Double Data Rate,DDR)數(shù)據(jù)和單倍數(shù)據(jù)速率(Single Data Rate,SDR)數(shù)據(jù)之間的轉(zhuǎn)換模塊. SDR數(shù)據(jù)經(jīng)過UDP/IP協(xié)議模塊,將圖像信息存入DDR3控制模塊. 當(dāng)一幅圖像存儲完后,會產(chǎn)生一個標(biāo)志信息,UDP/IP協(xié)議模塊會將圖像信息封裝起來,按照UDP/IP協(xié)議的格式,發(fā)給PHY芯片. PHY芯片通過雙絞線將數(shù)據(jù)發(fā)給PC機(jī). 同時圖像顯示控制模塊也會不停讀取DDR3 SDRAM中的圖像信息,通過HDMI接口芯片顯示在顯示器上.

圖1 系統(tǒng)設(shè)計原理

2 功能模塊設(shè)計

2.1 UDP/IP協(xié)議模塊

系統(tǒng)根據(jù)UDP/IP協(xié)議定義以下用于傳輸圖像的UDP/IP協(xié)議,如圖2所示. 圖中第一行為UDP/IP協(xié)議報頭格式,屬于國際標(biāo)準(zhǔn)格式[9]. 在UDP/IP數(shù)據(jù)內(nèi)容中,用戶可以自定義協(xié)議,用來傳輸用戶的數(shù)據(jù),如圖2中第二行和第三行. 發(fā)送數(shù)據(jù)時,需要先發(fā)送一個數(shù)據(jù)頭包,然后再發(fā)送數(shù)據(jù)信息. 由于UDP協(xié)議規(guī)定,每個UDP報文長度不得超過1500個字節(jié),而一個像素占3個字節(jié),400個像素即1200個字節(jié). 現(xiàn)定義一個數(shù)據(jù)包最多攜帶400個像素信息,所以傳輸一幅1024×768個像素的圖像的一行(1024個像素點(diǎn)),需要分3個數(shù)據(jù)包發(fā)送.

當(dāng)UDP/IP協(xié)議模塊接收到圖像信息時,需要先將PHY芯片發(fā)來的信息通過時序邏輯,將數(shù)據(jù)的時序穩(wěn)定. PHY芯片的時鐘需要經(jīng)過一個數(shù)字時鐘管理(Digital Clock Manager,DCM)延遲90度相位,這樣能夠提高時鐘采集數(shù)據(jù)的穩(wěn)定性[10,11]. 將穩(wěn)定后的數(shù)據(jù)經(jīng)過循環(huán)冗余校驗(Cyclic Redundancy Check 32,CRC32)解碼模塊后,通過像素提取模塊將像素信息提取出來[12],將像素信息經(jīng)過DDR3控制模塊寫入DDR3. 當(dāng)一幅圖像存儲完后,DDR3控制模塊會產(chǎn)生一個標(biāo)志,成幀模塊會將像素打包成UDP協(xié)議幀,在經(jīng)過校驗和算法模塊添加校驗和,最后通過CRC32編碼生成完整的UDP報文. 此時UDP報文是SDR數(shù)據(jù),需要經(jīng)過變換成DDR數(shù)據(jù)發(fā)送給PHY芯片,最后PC機(jī)接收到數(shù)據(jù),完成圖像傳輸.

2.2 DDR3控制模塊

針對DDR3 SDRAM來說,Xilinx公司XC6SLX45T芯片中內(nèi)置內(nèi)存控制塊(Memory Controller Block,MCB)硬核,MCB是用來控制DDR3 SDRAM. 而用戶需要編寫一個控制MCB的模塊,實(shí)現(xiàn)控制MCB模塊,間接控制DDR3 SDRAM[13,14],其控制結(jié)構(gòu)如圖3所示.

命令先入先出隊列(First Input First Output,FIFO)用于接收DDR3 SDRAM的讀寫指令,每當(dāng)MCB模塊接收到讀或?qū)懼噶詈?便會將數(shù)據(jù)FIFO中的數(shù)據(jù)讀走或?qū)懭?存入或讀取DDR3 SDRAM. 控制MCB模塊的Modelsim仿真波形如圖4所示. MCB模塊設(shè)置為突發(fā)長度為64.

2.3 圖像顯示控制模塊

當(dāng)DDR3 SDRAM芯片上電,該芯片需要初始化. 之后會產(chǎn)生一個標(biāo)志信號. 只要該標(biāo)志信號拉高,則圖像顯示模塊一直循環(huán)從DDR3開始讀數(shù)據(jù). 由于MCB讀出的時鐘頻率是125 MHz,而720 P的圖像顯示時鐘頻率是65 MHz,所以需要FIFO進(jìn)行跨時鐘域. 而控制FIFO讀數(shù)據(jù)到HDMI需要設(shè)定一個閾值,實(shí)驗設(shè)定的閾值是1524個數(shù)據(jù),當(dāng)FIFO內(nèi)數(shù)據(jù)超過該閾值則進(jìn)行讀數(shù)據(jù)到HDMI,并且MCB只有在FIFO內(nèi)數(shù)據(jù)小于該閾值時,才向FIFO內(nèi)寫數(shù)據(jù). 其讀寫時序如圖5.

圖4 Modelsim仿真波形

圖5 圖像數(shù)據(jù)FIFO時序

3 系統(tǒng)測試

系統(tǒng)的硬件測試平臺如圖6所示,左顯示器用于HDMI顯示PC機(jī)發(fā)來的圖像,右顯示器用于操作PC機(jī)軟件,PC端的軟件可以顯示FPGA發(fā)來的圖像預(yù)覽圖,如圖7所示. 系統(tǒng)將硬件開發(fā)平臺用雙絞線與計算機(jī)直接相連,先將圖像通過PC機(jī)發(fā)送給FPGA,FPGA收到該圖像后,將圖像通過HDMI顯示到顯示器上,同時將數(shù)據(jù)重新打包,將圖像信息以UDP協(xié)議封裝成數(shù)據(jù)包,通過網(wǎng)線發(fā)送到計算機(jī)上,計算機(jī)收到后,軟件顯示收到的圖像預(yù)覽圖.

圖8是使用Wireshark軟件抓取網(wǎng)絡(luò)數(shù)據(jù)包,用該軟件可以捕獲到FPGA發(fā)送給PC機(jī)的UDP協(xié)議封裝的圖像數(shù)據(jù). 可以從圖8中看出,計算機(jī)收到的數(shù)據(jù)符合UDP/IP協(xié)議報文格式,數(shù)據(jù)信息為頭包+數(shù)據(jù)包方式傳輸,并且一行圖像分成了三包數(shù)據(jù)發(fā)送.

圖9是使用ChipScope軟件抓取的FPGA內(nèi)部信號的時序圖,ChipScope不同于Modelsim仿真軟件,它顯示的時序邏輯并不是仿真波形,而是開發(fā)板中的實(shí)際波形. 從圖9可以看出FPGA發(fā)出的數(shù)據(jù)包格式正確,硬件系統(tǒng)功能正常.

圖6 硬件測試平臺

圖10是使用Wireshark軟件獲取的以太網(wǎng)吞吐量,可以看出傳輸速度是90124包/s. 一個數(shù)據(jù)包是1200個字節(jié),一個字節(jié)是8 bit. 經(jīng)過簡單計算可以得到傳輸速度是865.19 Mbit/s. 由于數(shù)據(jù)包之間會有包間隔時間,所以不能真正達(dá)到1024 Mbit/s的速度.

4 結(jié)論

本系統(tǒng)以FPGA和PHY芯片作為硬件平臺,硬件實(shí)現(xiàn)UDP/IP協(xié)議棧封裝圖像信息. 系統(tǒng)設(shè)計靈活、體積小、速度快,能夠滿足高速傳輸圖像的要求. 由于系統(tǒng)MAC層協(xié)議是Verilog編程實(shí)現(xiàn),所以調(diào)整方便、成本低、接口簡單. 實(shí)驗測試結(jié)果表明,系統(tǒng)傳輸數(shù)據(jù)穩(wěn)定,傳輸速度可達(dá)865.19 Mbit/s,易于維護(hù),便于移植,為高清圖像傳輸提供了一種良好的解決方案,應(yīng)用前景廣泛.

1俞鵬煒,任勇,馮鵬,等. 基于FPGA 的千兆以太網(wǎng)CMOS圖像數(shù)據(jù)傳輸系統(tǒng)設(shè)計. 國外電子測量技術(shù),2016,35(11): 76-81. [doi: 10.3969/j.issn.1002-8978.2016.11.018]

2付高原,郭臣,潘進(jìn)勇,等. 基于FPGA的UDP點(diǎn)對點(diǎn)傳輸協(xié)議實(shí)現(xiàn). 電子設(shè)計工程,2017,25(2): 181-184.

3姜興家,劉布民,何春梅,等. 一種基于FPGA實(shí)現(xiàn)的視頻流可靠傳輸方案. 物聯(lián)網(wǎng)技術(shù),2014,4(2): 44-46.

4王宇聰,韓啟祥,蔡惠智. 聲納信號處理中UDP協(xié)議數(shù)據(jù)傳輸研究與設(shè)計. 現(xiàn)代電子技術(shù),2012,35(1): 78-79,84.

5侯義合,張冬冬,丁雷. 基于FPGA+MAC+PHY的千兆以太網(wǎng)數(shù)傳系統(tǒng)設(shè)計. 科學(xué)技術(shù)與工程,2014,14(19):275-279. [doi: 10.3969/j.issn.1671-1815.2014.19.053]

6顧穎彥. 反射內(nèi)存網(wǎng)實(shí)時通信技術(shù)的研究. 計算機(jī)工程,2002,28(7): 143-144,257.

7李勛,劉文怡. 基于FPGA的以太網(wǎng)接口設(shè)計與實(shí)現(xiàn). 自動化與儀表,2014,29(5): 57-60.

8肖衛(wèi)國,爾聯(lián)潔,謝廷毅,等. 基于共享內(nèi)存機(jī)制微機(jī)實(shí)時網(wǎng)的數(shù)據(jù)傳輸實(shí)時性研究. 系統(tǒng)仿真學(xué)報,2004,16(8):1717-1720.

9沈瀟波,聶玉鑫. 基于UDP協(xié)議的數(shù)據(jù)橋接單元設(shè)計. 聲學(xué)與電子工程,2012,(1): 27-29.

10Zhao LD. Using UDP datagram to realize a distributed control mode at high-speed data communication. Physics Procedia,2012,(25): 886-891. [doi: 10.1016/j.phpro. 2012.03.173]

11高富強(qiáng),夏禹,戴正國,等. 基于UDP的工業(yè)CT數(shù)據(jù)傳輸系統(tǒng). 核電子學(xué)與探測技術(shù),2012,32(3): 311-315,347.

12陳杰華. 基于FPGA的IP數(shù)據(jù)報的提取模塊的設(shè)計. 福建電腦,2010,26(2): 125-126.

13范璐,顧國華,陳錢. 基于多路UDP的紅外圖像采集. 數(shù)據(jù)采集與處理,2012,27(S1): 186-189.

14胡冠敏,徐志軍,許廣杰. 基于FPGA的硬件協(xié)議棧精簡實(shí)現(xiàn). 軍事通信技術(shù),2011,32(3): 61-65.

猜你喜歡
以太網(wǎng)數(shù)據(jù)包像素
像素前線之“幻影”2000
二維隱蔽時間信道構(gòu)建的研究*
民用飛機(jī)飛行模擬機(jī)數(shù)據(jù)包試飛任務(wù)優(yōu)化結(jié)合方法研究
“像素”仙人掌
C#串口高效可靠的接收方案設(shè)計
三大因素驅(qū)動創(chuàng)新提速以太網(wǎng)快步邁入“靈活”時代
三大因素驅(qū)動創(chuàng)新提速 以太網(wǎng)快步邁入“靈活”時代
基于以太網(wǎng)的計算機(jī)與數(shù)控系統(tǒng)通信技術(shù)研究
高像素不是全部
基于ENC28J60的嵌入式以太網(wǎng)/CAN網(wǎng)關(guān)設(shè)計