<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于W3150A+的虛擬儀器通用以太網(wǎng)接口設(shè)計

          基于W3150A+的虛擬儀器通用以太網(wǎng)接口設(shè)計

          作者: 時間:2014-12-02 來源:網(wǎng)絡(luò) 收藏

            3 數(shù)據(jù)傳輸?shù)膶崿F(xiàn)過程

          本文引用地址:http://www.ex-cimer.com/article/266268.htm

            通過控制器對寄存器進(jìn)行讀寫訪問操作,就可以進(jìn)行網(wǎng)絡(luò)連接。下面介紹具體的操作過程。

            首先應(yīng)進(jìn)行初始化。初始化設(shè)置包括基本設(shè)置、網(wǎng)絡(luò)信息設(shè)置,端口存儲器信息設(shè)置等,設(shè)置完后就可進(jìn)行數(shù)據(jù)傳輸。數(shù)據(jù)傳輸可以

            采用TCP、UDP、IP_RAW和MAC_RAW模式進(jìn)行,并可在端口n模式寄存器(Sn_MR)的協(xié)議類型中選擇通信模式。其中,基本設(shè)置包括模式寄存器(MR)、中斷屏蔽寄存器(SIMR)、重發(fā)時間寄存器(RTR)、重發(fā)計數(shù)寄存器(RGR)等;設(shè)置網(wǎng)絡(luò)信息包括設(shè)定網(wǎng)關(guān)(GAR)、設(shè)定源硬件地址(SHAR)、設(shè)定子網(wǎng)掩碼(SUBR)、設(shè)定源IP地址(SIPR)等;而設(shè)置端口存儲器信息則主要是設(shè)定發(fā)送緩沖區(qū)和接收緩沖區(qū)的大小分配,具體可通過設(shè)置RMSR、TMSR寄存器實現(xiàn)。

            本系統(tǒng)在FPGA芯片EPM570GT100C4的基礎(chǔ)上可利用軟件Quartus II來開發(fā)邏輯控制功能,從而實現(xiàn)對的控制。其主要端口如下:

            nrst:復(fù)位輸入鍵,低電平有效;

            clk:時鐘輸入;

            nwrst:復(fù)位輸出,可復(fù)位和RTL8201;

            nwr:對W3150A+寫使能信號,低電平有效;

            nrd:對W3150A+讀使能信號,低電平有效;

            ncs:W3150A+片選信號,低電平有效;

            address:15位地址信號;

            data:8位數(shù)據(jù)信號;

            本接口通信設(shè)計采用的是UDP通信方式,其通信流程圖如圖5所示。

            

           

            端口初始化主要是對端口進(jìn)行初始化,包括設(shè)置UDP模式、設(shè)置端口號,設(shè)置OPEN命令;通過Sn_RX_RSR寄存器的值可檢測是否收到數(shù)

            據(jù),若非零,即進(jìn)入數(shù)據(jù)接收處理;接收處理時,首先讀取Sn_RX_RSR寄存器的值,即接收數(shù)據(jù)字節(jié)數(shù),然后計算偏址和實際物理地址,再根

            據(jù)物理地址讀取數(shù)據(jù)。在讀取數(shù)據(jù)過程中,如果物理地址到達(dá)該端口設(shè)定的高限地址,則先讀高限地址的數(shù)據(jù),然后將物理地址改為基地址,然后再從基地址繼續(xù)讀取剩余的數(shù)據(jù)。讀完所有的數(shù)據(jù)后,可將Sn_RX_RR的值加上讀取的數(shù)據(jù)長度,然后寫入sn_RX_BASE,最后再向端口n的指令寄存器寫入RECV命令。

            發(fā)送數(shù)據(jù)?/發(fā)送處理的實現(xiàn)過程是首先讀取S_TX_FSR寄存器的值以便能使用發(fā)送數(shù)據(jù)空間的大小來計算偏址和實際物理地址,然后再從

            物理地址寫入要發(fā)送的數(shù)據(jù)。在發(fā)送數(shù)據(jù)過程中,如果物理地址已到達(dá)該端口設(shè)定的高限地址,則先將數(shù)據(jù)寫入高限地址,然后再將物理地

            址改為基地址,接著從基地址繼續(xù)寫入數(shù)據(jù)。寫完所有的數(shù)據(jù)后,再將Sn_TX_WR的值加上發(fā)送的數(shù)據(jù)長度,然后寫入Sn_TX_BASE,最后向端

            口n的指令寄存器寫入SEND命令。

            發(fā)送完成的確定可在發(fā)送(SEND)命令后,通過檢測Sn_CR的值來判斷數(shù)據(jù)是否全部發(fā)送完成。

            當(dāng)遠(yuǎn)程對端不存在或數(shù)據(jù)傳輸不正常時,將產(chǎn)生超時錯誤。此次可以通過對Sn_IR(TIMEOUT bit)檢測來判斷是否超時。

            當(dāng)操作全部完成時,應(yīng)關(guān)閉窗口,即將Sn_CR寄存器置為CLOSE。

            4 結(jié)束語

            本文介紹了接口的設(shè)計及其數(shù)據(jù)傳輸?shù)膶崿F(xiàn)過程。利用本文的方法可以使接口正常運行,故可為后續(xù)的開發(fā)奠定基礎(chǔ)。事實上,本方法已經(jīng)過多次試驗證明:完全滿足工程需要。

          tcp/ip相關(guān)文章:tcp/ip是什么


          存儲器相關(guān)文章:存儲器原理



          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();