新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 一種虛擬儀器通用以太網接口設計

        一種虛擬儀器通用以太網接口設計

        作者: 時間:2011-08-11 來源:網絡 收藏
        3 數據傳輸的實現過程
          通過控制器對寄存器進行讀寫訪問操作,W3150A+就可以進行網絡連接。下面介紹具體的操作過程。
          首先應進行初始化。初始化設置包括基本設置、網絡信息設置,端口存儲器信息設置等,設置完后就可進行數據傳輸。數據傳輸可以采用TCP、UDP、IP_RAW和MAC_RAW模式進行,并可在端口n模式寄存器(Sn_MR)的協議類型中選擇通信模式。其中,基本設置包括模式寄存器(MR)、中斷屏蔽寄存器(SIMR)、重發時間寄存器(RTR)、重發計數寄存器(RGR)等;設置網絡信息包括設定網關(GAR)、設定源硬件地址(SHAR)、設定子網掩碼(SUBR)、設定源IP地址(SIPR)等;而設置端口存儲器信息則主要是設定發送緩沖區和接收緩沖區的大小分配,具體可通過設置RMSR、TMSR寄存器實現。
          本系統在FPGA芯片EPM570GT100C4的基礎上可利用軟件Quartus II來開發邏輯控制功能,從而實現對W3150A+的控制。其主要端口如下:
          nrst:復位輸入鍵,低電平有效;
          clk:時鐘輸入;
          nwrst:復位輸出,可復位W3150A+和RTL8201;
          nwr:對W3150A+寫使能信號,低電平有效;
          nrd:對W3150A+讀使能信號,低電平有效;
          ncs:W3150A+片選信號,低電平有效;
          address:15位地址信號;
          data:8位數據信號;
          本通信采用的是UDP通信方式,其通信流程圖如圖5所示。

        本文引用地址:http://www.104case.com/article/155922.htm

        UDP通信流程圖


          端口初始化主要是對端口進行初始化,包括設置UDP模式、設置端口號,設置OPEN命令;通過Sn_RX_RSR寄存器的值可檢測是否收到數據,若非零,即進入數據接收處理;接收處理時,首先讀取Sn_RX_RSR寄存器的值,即接收數據字節數,然后計算偏址和實際物理地址,再根據物理地址讀取數據。在讀取數據過程中,如果物理地址到達該端口設定的高限地址,則先讀高限地址的數據,然后將物理地址改為基地址,然后再從基地址繼續讀取剩余的數據。讀完所有的數據后,可將Sn_RX_RR的值加上讀取的數據長度,然后寫入sn_RX_BASE,最后再向端口n的指令寄存器寫入RECV命令。
          發送數據?/發送處理的實現過程是首先讀取S_TX_FSR寄存器的值以便能使用發送數據空間的大小來計算偏址和實際物理地址,然后再從物理地址寫入要發送的數據。在發送數據過程中,如果物理地址已到達該端口設定的高限地址,則先將數據寫入高限地址,然后再將物理地址改為基地址,接著從基地址繼續寫入數據。寫完所有的數據后,再將Sn_TX_WR的值加上發送的數據長度,然后寫入Sn_TX_BASE,最后向端口n的指令寄存器寫入SEND命令。發送完成的確定可在發送(SEND)命令后,通過檢測Sn_CR的值來判斷數據是否全部發送完成。
          當遠程對端不存在或數據傳輸不正常時,將產生超時錯誤。此次可以通過對Sn_IR(TIMEOUT bit)檢測來判斷是否超時。當操作全部完成時,應關閉窗口,即將Sn_CR寄存器置為CLOSE。
          4 結束語
          本文介紹了及其數據傳輸的實現過程。利用本文的方法可以使正常運行,故可為后續的開發奠定基礎。事實上,本方法已經過多次試驗證明:完全滿足工程需要。

        W3150A+與FPGA的接口電路


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 新邵县| 芷江| 呼图壁县| 莲花县| 浮梁县| 宣化县| 嵩明县| 平安县| 山阴县| 利津县| 潍坊市| 霍山县| 正安县| 龙川县| 宝丰县| 方山县| 闵行区| 固阳县| 聂荣县| 南乐县| 柏乡县| 库车县| 巴东县| 额尔古纳市| 汉沽区| 威远县| 靖宇县| 临高县| 义乌市| 关岭| 依安县| 沙田区| 锡林郭勒盟| 石首市| 航空| 高邮市| 通江县| 云南省| 古蔺县| 万盛区| 会同县|