• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2018-04-21 01:37:30韓劍南胡遼林
      計算機系統(tǒng)應(yīng)用 2018年3期
      關(guān)鍵詞:以太網(wǎng)數(shù)據(jù)包像素

      韓劍南, 胡遼林

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

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

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

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

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

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

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

      系統(tǒng)設(shè)計原理,如圖1所示. PC機將圖像信息以UDP協(xié)議封裝的形式,通過雙絞線發(fā)送到以太網(wǎng)PHY芯片. 由于以太網(wǎng)傳輸數(shù)據(jù)采用吉比特介質(zhì)獨立接口(Reduced Gigabit Media Independent Interface,RGMII)進行傳輸數(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機. 同時圖像顯示控制模塊也會不停讀取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)準格式[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個像素點),需要分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機接收到數(shù)據(jù),完成圖像傳輸.

      2.2 DDR3控制模塊

      針對DDR3 SDRAM來說,Xilinx公司XC6SLX45T芯片中內(nèi)置內(nèi)存控制塊(Memory Controller Block,MCB)硬核,MCB是用來控制DDR3 SDRAM. 而用戶需要編寫一個控制MCB的模塊,實現(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進行跨時鐘域. 而控制FIFO讀數(shù)據(jù)到HDMI需要設(shè)定一個閾值,實驗設(shè)定的閾值是1524個數(shù)據(jù),當(dāng)FIFO內(nèi)數(shù)據(jù)超過該閾值則進行讀數(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機發(fā)來的圖像,右顯示器用于操作PC機軟件,PC端的軟件可以顯示FPGA發(fā)來的圖像預(yù)覽圖,如圖7所示. 系統(tǒng)將硬件開發(fā)平臺用雙絞線與計算機直接相連,先將圖像通過PC機發(fā)送給FPGA,FPGA收到該圖像后,將圖像通過HDMI顯示到顯示器上,同時將數(shù)據(jù)重新打包,將圖像信息以UDP協(xié)議封裝成數(shù)據(jù)包,通過網(wǎng)線發(fā)送到計算機上,計算機收到后,軟件顯示收到的圖像預(yù)覽圖.

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

      圖9是使用ChipScope軟件抓取的FPGA內(nèi)部信號的時序圖,ChipScope不同于Modelsim仿真軟件,它顯示的時序邏輯并不是仿真波形,而是開發(fā)板中的實際波形. 從圖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ù)包之間會有包間隔時間,所以不能真正達到1024 Mbit/s的速度.

      4 結(jié)論

      本系統(tǒng)以FPGA和PHY芯片作為硬件平臺,硬件實現(xiàn)UDP/IP協(xié)議棧封裝圖像信息. 系統(tǒng)設(shè)計靈活、體積小、速度快,能夠滿足高速傳輸圖像的要求. 由于系統(tǒng)MAC層協(xié)議是Verilog編程實現(xiàn),所以調(diào)整方便、成本低、接口簡單. 實驗測試結(jié)果表明,系統(tǒng)傳輸數(shù)據(jù)穩(wěn)定,傳輸速度可達865.19 Mbit/s,易于維護,便于移植,為高清圖像傳輸提供了一種良好的解決方案,應(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付高原,郭臣,潘進勇,等. 基于FPGA的UDP點對點傳輸協(xié)議實現(xiàn). 電子設(shè)計工程,2017,25(2): 181-184.

      3姜興家,劉布民,何春梅,等. 一種基于FPGA實現(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ù)的研究. 計算機工程,2002,28(7): 143-144,257.

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

      8肖衛(wèi)國,爾聯(lián)潔,謝廷毅,等. 基于共享內(nèi)存機制微機實時網(wǎng)的數(shù)據(jù)傳輸實時性研究. 系統(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高富強,夏禹,戴正國,等. 基于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é)議棧精簡實現(xiàn). 軍事通信技術(shù),2011,32(3): 61-65.

      猜你喜歡
      以太網(wǎng)數(shù)據(jù)包像素
      趙運哲作品
      藝術(shù)家(2023年8期)2023-11-02 02:05:28
      像素前線之“幻影”2000
      基于1500以太網(wǎng)養(yǎng)豬場的智能飼喂控制系統(tǒng)的設(shè)計與實現(xiàn)
      “像素”仙人掌
      SmartSniff
      談實時以太網(wǎng)EtherCAT技術(shù)在變電站自動化中的應(yīng)用
      電子制作(2017年24期)2017-02-02 07:14:44
      高像素不是全部
      CHIP新電腦(2016年3期)2016-03-10 14:22:03
      一種90W高功率以太網(wǎng)供電系統(tǒng)的設(shè)計
      淺談EPON與工業(yè)以太網(wǎng)在貴遵高速公路中的應(yīng)用
      基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計與實現(xiàn)
      托克逊县| 章丘市| 秭归县| 麻城市| 新宾| 张北县| 海安县| 成都市| 乐清市| 楚雄市| 和平区| 昆山市| 吉木乃县| 乌拉特中旗| 江孜县| 贵阳市| 探索| 曲周县| 蚌埠市| 彰化县| 房山区| 虎林市| 嘉禾县| 凤台县| 偃师市| 伊金霍洛旗| 荥阳市| 浮山县| 道真| 聂拉木县| 察雅县| 屏山县| 保康县| 杭锦后旗| 体育| 九寨沟县| 沾化县| 伊吾县| 郁南县| 临漳县| 东方市|