基于W3150A+的虛擬儀器通用以太網接口設計
3 數據傳輸的實現過程
通過控制器對寄存器進行讀寫訪問操作,W3150A+就可以進行網絡連接。下面介紹具體的操作過程。
首先應進行初始化。初始化設置包括基本設置、網絡信息設置,端口存儲器信息設置等,設置完后就可進行數據傳輸。數據傳輸可以
采用TCP、UDP、IP_RAW和MAC_RAW模式進行,并可在端口n模式寄存器(Sn_MR)的協議類型中選擇通信模式。其中,基本設置包括模式寄存器(MR)、中斷屏蔽寄存器(SIMR)、重發(fā)時間寄存器(RTR)、重發(fā)計數寄存器(RGR)等;設置網絡信息包括設定網關(GAR)、設定源硬件地址(SHAR)、設定子網掩碼(SUBR)、設定源IP地址(SIPR)等;而設置端口存儲器信息則主要是設定發(fā)送緩沖區(qū)和接收緩沖區(qū)的大小分配,具體可通過設置RMSR、TMSR寄存器實現。
本系統(tǒng)在FPGA芯片EPM570GT100C4的基礎上可利用軟件Quartus II來開發(fā)邏輯控制功能,從而實現對W3150A+的控制。其主要端口如下:
nrst:復位輸入鍵,低電平有效;
clk:時鐘輸入;
nwrst:復位輸出,可復位W3150A+和RTL8201;
nwr:對W3150A+寫使能信號,低電平有效;
nrd:對W3150A+讀使能信號,低電平有效;
ncs:W3150A+片選信號,低電平有效;
address:15位地址信號;
data:8位數據信號;
本接口通信設計采用的是UDP通信方式,其通信流程圖如圖5所示。本文引用地址:http://butianyuan.cn/article/195035.htm
端口初始化主要是對端口進行初始化,包括設置UDP模式、設置端口號,設置OPEN命令;通過Sn_RX_RSR寄存器的值可檢測是否收到數
據,若非零,即進入數據接收處理;接收處理時,首先讀取Sn_RX_RSR寄存器的值,即接收數據字節(jié)數,然后計算偏址和實際物理地址,再根
據物理地址讀取數據。在讀取數據過程中,如果物理地址到達該端口設定的高限地址,則先讀高限地址的數據,然后將物理地址改為基地址,然后再從基地址繼續(xù)讀取剩余的數據。讀完所有的數據后,可將Sn_RX_RR的值加上讀取的數據長度,然后寫入sn_RX_BASE,最后再向端口n的指令寄存器寫入RECV命令。
發(fā)送數據?/發(fā)送處理的實現過程是首先讀取S_TX_FSR寄存器的值以便能使用發(fā)送數據空間的大小來計算偏址和實際物理地址,然后再從
物理地址寫入要發(fā)送的數據。在發(fā)送數據過程中,如果物理地址已到達該端口設定的高限地址,則先將數據寫入高限地址,然后再將物理地
址改為基地址,接著從基地址繼續(xù)寫入數據。寫完所有的數據后,再將Sn_TX_WR的值加上發(fā)送的數據長度,然后寫入Sn_TX_BASE,最后向端
口n的指令寄存器寫入SEND命令。
發(fā)送完成的確定可在發(fā)送(SEND)命令后,通過檢測Sn_CR的值來判斷數據是否全部發(fā)送完成。
當遠程對端不存在或數據傳輸不正常時,將產生超時錯誤。此次可以通過對Sn_IR(TIMEOUT bit)檢測來判斷是否超時。
當操作全部完成時,應關閉窗口,即將Sn_CR寄存器置為CLOSE。
4 結束語
本文介紹了以太網接口的設計及其數據傳輸的實現過程。利用本文的方法可以使以太網接口正常運行,故可為后續(xù)的虛擬儀器開發(fā)奠定基礎。事實上,本方法已經過多次試驗證明:完全滿足工程需要。
tcp/ip相關文章:tcp/ip是什么
評論