• 
    

    
    

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

      ?

      基于FPGA的以太網(wǎng)接口設(shè)計與實(shí)現(xiàn)

      2014-03-08 05:46:11劉文怡
      自動化與儀表 2014年5期
      關(guān)鍵詞:發(fā)送數(shù)據(jù)寄存器以太網(wǎng)

      李 勛 ,劉文怡

      (1.中北大學(xué) 電子測試技術(shù)國家重點(diǎn)實(shí)驗(yàn)室,太原 030051;2.中北大學(xué) 儀器科學(xué)與動態(tài)測試教育部重點(diǎn)實(shí)驗(yàn)室,太原 030051)

      隨著互聯(lián)網(wǎng)硬件和軟件的迅猛發(fā)展,以太網(wǎng)接口成為目前使用最廣泛的網(wǎng)絡(luò)接口,具有接口簡單、通信速度高、傳輸距離遠(yuǎn)、通信協(xié)議完善和工作性能穩(wěn)定等優(yōu)點(diǎn),能夠?qū)崿F(xiàn)遠(yuǎn)程高速數(shù)據(jù)通信系統(tǒng)[1]。傳統(tǒng)以太網(wǎng)常采用主控芯片內(nèi)部編寫以太網(wǎng)協(xié)議或在ARM等高性能處理器上運(yùn)行操作系統(tǒng),通過操作系統(tǒng)完成TCP/IP等復(fù)雜的通信協(xié)議,從而實(shí)現(xiàn)以太網(wǎng)通信[2],這兩種解決方案開發(fā)周期長、難度較大、成本較高。然而利用硬件協(xié)議棧芯片,只需要通過簡單的配置和外部線路連接就可以實(shí)現(xiàn)以太網(wǎng)的數(shù)據(jù)傳輸功能,這種方法開發(fā)難度小、集成度高且運(yùn)行穩(wěn)定,已成為實(shí)現(xiàn)以太網(wǎng)數(shù)據(jù)傳輸?shù)氖走x方案[3]。

      本文設(shè)計了一種利用FPGA控制硬件協(xié)議棧芯片W5300實(shí)現(xiàn)初始化配置、數(shù)據(jù)傳輸?shù)囊蕴W(wǎng)接口,并利用上位機(jī)UDP調(diào)試助手對其進(jìn)行測試,實(shí)現(xiàn)了FPGA和上位機(jī)之間通信。

      1 硬件設(shè)計

      本文設(shè)計的以太網(wǎng)接口以FPGA為核心控制器,采用Xilinx公司Spartan-3系列XC3S400芯片,該芯片具有豐富的邏輯資源,易于配置;以太網(wǎng)接口協(xié)議芯片使用WIZnet公司生產(chǎn)的硬件協(xié)議棧芯片W5300。硬件結(jié)構(gòu)如圖1所示,其工作原理:FPGA通過邏輯程序控制W5300數(shù)據(jù)總線、地址總線及讀寫、數(shù)據(jù)位選擇信號,通過編程控制這些信號實(shí)現(xiàn)對W5300的初始化配置、數(shù)據(jù)讀寫及上位機(jī)通信。上位機(jī)通過UDP調(diào)試助手軟件設(shè)置與接口模塊相對應(yīng)的IP地址,通過發(fā)送“數(shù)據(jù)發(fā)送”和“數(shù)據(jù)接收”命令實(shí)現(xiàn)上位機(jī)與接口模塊中FPGA通信。

      圖1 以太網(wǎng)接口硬件結(jié)構(gòu)圖Fig.1 Ethernet interface hardware structure

      硬件協(xié)議棧芯片W5300內(nèi)部集成了10/100 M以太網(wǎng)控制器,MAC和TCP/IP協(xié)議棧,所以CPU不需要編寫復(fù)雜的TCP/IP協(xié)議,能夠大大地減小硬件接口設(shè)計和網(wǎng)絡(luò)編程的工作量,降低產(chǎn)品的開發(fā)難度和縮短開發(fā)周期,能夠?qū)崿F(xiàn)可靠穩(wěn)定的遠(yuǎn)程數(shù)據(jù)通信系統(tǒng)。支持8個獨(dú)立端口同時連接,通信速率最高可達(dá)到80 Mb/s;與主機(jī)接口支持8/16 bit數(shù)據(jù)總線,支持2種主機(jī)接口模式;內(nèi)部有128 KB TX/RX存儲器,可根據(jù)端口通信數(shù)據(jù)吞吐量動態(tài)調(diào)整其分配[4]。

      本文設(shè)計的接口主要是通過FPGA設(shè)置BIT16EN信號為高電平,實(shí)現(xiàn)16位數(shù)據(jù)總線工作模式,并采用直接尋址模式來實(shí)現(xiàn)數(shù)據(jù)的高速訪問,物理層使用W5300內(nèi)部的PHY,并配置為全功能自動握手運(yùn)行模式,即TEST_MODE[3:0]引腳和OP_MODE[2:0]引腳均接地。在以太網(wǎng)的設(shè)計中,外部接口的設(shè)計不可忽視,它關(guān)系到數(shù)據(jù)傳輸?shù)目乖肼暷芰头€(wěn)定性以及傳輸距離;在數(shù)據(jù)傳輸過程中為了增強(qiáng)W5300的差分信號抗干擾能力,防止不同電平通過網(wǎng)線傳輸損壞設(shè)備(在工作過程中,W5300需要3.3 V、1.8 V兩種不同電平),W5300與 RJ45之間采用網(wǎng)絡(luò)隔離變壓器T1-6T連接,其支持頻率高達(dá)300 MHz,既能滿足高速以太網(wǎng)的頻率要求,又能有效地保護(hù)接口電路。W5300芯片設(shè)有外置指示燈輸出,當(dāng)網(wǎng)絡(luò)連接成功時,LINKLED引腳輸出低電平;當(dāng)有數(shù)據(jù)包發(fā)送時,發(fā)送端TXLED輸出低電平,接收端RXLED輸出高電平,通過觀察外置指示燈,可以實(shí)時顯示以太網(wǎng)的數(shù)據(jù)傳輸動態(tài)。W5300以太網(wǎng)接口主要硬件連接原理如圖2所示。

      圖2 W5300以太網(wǎng)接口硬件連接原理圖Fig.2 Connection schematic diagram of W5300 Ethernet interface hardware

      2 邏輯程序設(shè)計

      以太網(wǎng)接口邏輯程序設(shè)計部分主要通過Xilinx ISE12.1軟件平臺,選用硬件描述語言VHDL編寫狀態(tài)機(jī)程序,實(shí)現(xiàn)FPGA對W5300的配置及數(shù)據(jù)發(fā)送、接收控制,最終實(shí)現(xiàn)上位機(jī)與W5300的數(shù)據(jù)通信。

      (1)W5300 配置模塊

      FPGA對W5300的配置模塊主要包括W5300初始化、對應(yīng)SOCKETn端口配置。W5300的初始化主要分為三個步驟:主機(jī)接口設(shè)置,網(wǎng)絡(luò)信息設(shè)置和內(nèi)部TX/RX存儲器的分配。在本文設(shè)計中,主要通過對26個不同寄存器的配置來完成W5300初始化。為了節(jié)省FPGA邏輯資源和靈活配置這些寄存器,F(xiàn)PGA邏輯控制程序調(diào)用了FPGA內(nèi)部的IP核,通過構(gòu)建深度為64B,位寬為16位的只讀單口塊ROM,將需要配置的寄存器的地址和其對應(yīng)的寄存器值依次寫入初始化文件(.coe),并將該文件加載到BLOCK ROM中。在單口塊ROM中,當(dāng)讀使能EN為高電平時有效,時鐘源CLK上升沿時,配置的數(shù)據(jù)從ROM端口輸出,寫進(jìn)W5300數(shù)據(jù)線和地址線,其示意圖如圖3所示。

      圖3 單口塊ROMFig.3 Single port block ROM

      W5300只支持軟件復(fù)位,所以FPGA在上電后對W5300進(jìn)行軟件復(fù)位。FPGA完成對W5300軟件復(fù)位之后就調(diào)用該IP核實(shí)現(xiàn)對W5300的初始化。本文選用SOCKET1進(jìn)行數(shù)據(jù)通信,初始化完成之后 FPGA主要對 S1_MR、S1_PORT、S1_CR寄存器寫入對應(yīng)地址和寄存器值實(shí)現(xiàn)對SOCKET1的端口配置,然后打開SOCKET1,并將其設(shè)置為UDP單道通信模式。FPGA完成對W5300配置之后,讀取S1_SSR寄存器值,判斷其是否處于UDP模式,若是則進(jìn)入數(shù)據(jù)通信;反之,將該端口關(guān)閉,返回重新對W5300配置。

      (2)W5300 通信控制模塊

      以太網(wǎng)接口與上位機(jī)通信包括數(shù)據(jù)接收和發(fā)送。W5300工作在UDP模式,UDP是一種報文通信協(xié)議,接收和發(fā)送數(shù)據(jù)不需要像TCP那樣建立SOCKET連接,就可以達(dá)到較高的傳輸速度[5],其通信流程如圖4所示。

      圖4 UDP模式通信流程圖Fig.4 UDP mode communication flow

      邏輯控制程序按照圖4通信流程編寫狀態(tài)機(jī),首先讀取S1_RX_RSR寄存器,查詢W5300是否接到數(shù)據(jù),若該寄存器接收數(shù)據(jù)字節(jié)長度大于0,則表明接收到數(shù)據(jù),進(jìn)入接收數(shù)據(jù)處理進(jìn)程中。該進(jìn)程主要負(fù)責(zé)處理內(nèi)部RX存儲器中接收到的UDP數(shù)據(jù),并將其讀取到FPGA中,數(shù)據(jù)全部讀取完后,執(zhí)行RECV命令,即完成數(shù)據(jù)接收。數(shù)據(jù)接收完成之后跳轉(zhuǎn)到數(shù)據(jù)發(fā)送查詢,若S1_TX_FSR有足夠剩余空間時,將待發(fā)送的數(shù)據(jù)通過S1_TX_FIFOR依次寫入到TX存儲器中,并將發(fā)送數(shù)據(jù)字節(jié)數(shù)寫入到S1_TX_WRSR寄存器,然后運(yùn)行SEND命令發(fā)送數(shù)據(jù),判斷并清除發(fā)送完成、超時中斷,即完成數(shù)據(jù)發(fā)送。最后判斷是否結(jié)束通信任務(wù),若結(jié)束任務(wù),則將S1_CR寄存器設(shè)置為 “0x10”,W5300狀態(tài)變?yōu)镾OCK_CLOSED,關(guān)閉SOCKET1端口;反之,返回開始查詢。

      在通信過程中,程序的主要負(fù)責(zé)對W5300寄存器的讀寫控制、UDP傳輸協(xié)議的實(shí)現(xiàn)。當(dāng)實(shí)時傳輸數(shù)據(jù)量較大時,對時序要求就非常嚴(yán)格,若時序不正常,將會導(dǎo)致數(shù)據(jù)的錯誤或丟失。為了滿足時序要求,本設(shè)計中FPGA程序利用控制狀態(tài)機(jī)數(shù)量來產(chǎn)生讀寫時序,硬件設(shè)計中FPGA選用40 MHz基準(zhǔn)時鐘,并將W5300使能信號CS直接接地,一直保持有效狀態(tài),每寫一次就控制/WR信號保持4個周期低電平,即100 ns,該時間大于芯片W5300寫時序最低要求50 ns;讀信號控制要求低電平有效時間大于65 ns,狀態(tài)機(jī)控制程序和寫信號一樣。

      圖5 發(fā)送數(shù)據(jù)圖Fig.5 Sending data

      圖6 讀取數(shù)據(jù)Fig.6 Reading data

      3 實(shí)驗(yàn)驗(yàn)證

      本文上位機(jī)使用UDP調(diào)試助手軟件,實(shí)現(xiàn)對FPGA控制的W5300以太網(wǎng)接口通信測試。該軟件采用VB編程,能夠?qū)崟r顯示數(shù)據(jù)傳輸動態(tài),易于可視化界面操作。如圖5、6所示,測試軟件設(shè)置W5300(發(fā)送端)的 IP 地址為:192.168.0.2,PC 機(jī)(接收端)的IP地址為192.168.0.3,連接網(wǎng)絡(luò)成功之后,就可以點(diǎn)擊“發(fā)送數(shù)據(jù)”或“讀取數(shù)據(jù)”發(fā)送命令給W5300,并通過W5300外置網(wǎng)絡(luò)LED指示燈亮滅情況判斷以太網(wǎng)連接、數(shù)據(jù)傳輸情況,進(jìn)而實(shí)時觀察上位機(jī)與FPGA通信動態(tài)。

      上位機(jī)UDP調(diào)試助手通過W5300以太網(wǎng)接口向FPGA下發(fā)“發(fā)送數(shù)據(jù)”命令,并設(shè)置發(fā)送字節(jié)數(shù)和延時時間,將6個字節(jié)的固定數(shù)“FF”下發(fā)給FPGA,如圖5所示;上位機(jī)發(fā)送“讀取數(shù)據(jù)”命令時,F(xiàn)PGA首先判斷接收到的數(shù)據(jù)是否為固定數(shù)“FF”,若接收到上位機(jī)發(fā)送的數(shù)據(jù)為固定數(shù)“FF”,則通過程序設(shè)置W5300,循環(huán)將32個字節(jié)的遞增數(shù)通過W5300接口上傳給上位機(jī),如圖6所示。上位機(jī)軟件查看數(shù)據(jù),導(dǎo)出FPGA通過W5300接口上傳的數(shù)據(jù)如圖7所示,分析數(shù)據(jù),結(jié)果是循環(huán)的32個字節(jié)遞增數(shù),與FPGA程序設(shè)置的上傳數(shù)據(jù)一致。通過UDP調(diào)試助手對本文設(shè)計的基于FPGA控制的W5300以太網(wǎng)接口進(jìn)行數(shù)據(jù)傳輸測試,實(shí)驗(yàn)結(jié)果表明該接口能夠可靠的實(shí)現(xiàn)上位機(jī)與FPGA之間的通信。

      圖7 上位機(jī)接收數(shù)據(jù)圖Fig.7 PC receives data diagram

      4 結(jié)語

      本文介紹了一種基于FPGA控制的W5300以太網(wǎng)接口設(shè)計方案,并通過實(shí)驗(yàn)驗(yàn)證了其通信的可靠性和準(zhǔn)確性。該接口結(jié)合了FGPA邏輯資源豐富,易于調(diào)用IP核,控制靈活的優(yōu)點(diǎn)和W5300內(nèi)部集成高速以太網(wǎng)控制器、TCP/IP協(xié)議棧等特性,通過簡單的配置和外部線路連接實(shí)現(xiàn)了以太網(wǎng)的數(shù)據(jù)傳輸功能,這種方法較于以太網(wǎng)通信傳統(tǒng)解決方案開發(fā)周期更短,難度更小,集成度更高,運(yùn)行更穩(wěn)定,該接口可以應(yīng)用到以太網(wǎng)數(shù)據(jù)采集、檢測等領(lǐng)域,具有很高的實(shí)用性。

      [1] LAN/MAN Standards Committee.IEEE Std.802.3-2005/Cor1-2006 Part 3:Carrier Sense Multiple Access with Collision Detection (CSMA/CD)Access Method and Physical Layer Specifications Corrigendum 1[S],2006.

      [2] 雒珊,尹崗.基于ARM的以太網(wǎng)通信控制器的設(shè)計[J].電子測量技術(shù),2009,32(10):133-135.

      [3] 謝希仁.計算機(jī)網(wǎng)絡(luò)[M].北京:電子工業(yè)出版社,2008.

      [4] WIZnet Device,Inc.High-performance internet connectivity solution-W5300[EB/OL].(2008).http:www.wiznet.co.kr.

      [5] 張勇,甄國涌,王麗莉,等.基于W5300的以太網(wǎng)數(shù)據(jù)傳輸硬件設(shè)計及優(yōu)化[J].化工自動化及儀表,2011,38(8):2-4.

      猜你喜歡
      發(fā)送數(shù)據(jù)寄存器以太網(wǎng)
      移動自組網(wǎng)中MAC層協(xié)議研究
      基于1500以太網(wǎng)養(yǎng)豬場的智能飼喂控制系統(tǒng)的設(shè)計與實(shí)現(xiàn)
      Lite寄存器模型的設(shè)計與實(shí)現(xiàn)
      基于馬爾科夫鏈的LoRaWAN網(wǎng)絡(luò)節(jié)點(diǎn)性能分析
      帶標(biāo)記方式的CRDSA++協(xié)議性能分析*
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      談實(shí)時以太網(wǎng)EtherCAT技術(shù)在變電站自動化中的應(yīng)用
      電子制作(2017年24期)2017-02-02 07:14:44
      使用IPSec安全傳輸數(shù)據(jù)
      一種90W高功率以太網(wǎng)供電系統(tǒng)的設(shè)計
      淺談EPON與工業(yè)以太網(wǎng)在貴遵高速公路中的應(yīng)用
      长武县| 尚义县| 铜山县| 逊克县| 临西县| 博乐市| 永丰县| 本溪市| 元朗区| 吉林市| 渭源县| 尚志市| 陵水| 沁水县| 永康市| 华宁县| 福贡县| 浦东新区| 收藏| 郯城县| 博野县| 洛宁县| 香格里拉县| 静宁县| 正镶白旗| 西安市| 兴隆县| 司法| 湘潭县| 泾川县| 博爱县| 德格县| 哈巴河县| 宁河县| 嘉鱼县| 宝兴县| 榕江县| 积石山| 新乐市| 北京市| 睢宁县|