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