基于W3150A的虛擬儀器通用以太網(wǎng)接口設(shè)計(jì) 2011-05-12 16:17:25來(lái)源:互聯(lián)網(wǎng)
  0 引言

  虛擬儀器以其性價(jià)比高、開放性強(qiáng)等優(yōu)勢(shì)迅速占領(lǐng)了市場(chǎng), 并成為測(cè)控儀器新的經(jīng)濟(jì)增長(zhǎng)點(diǎn)。步入信息化時(shí)代最顯著的標(biāo)志就是信息網(wǎng)絡(luò)在各行業(yè)中的滲透和普及, 其中以太網(wǎng)最為典型。以太網(wǎng)作為一種成本低廉、吞吐能力強(qiáng)、適應(yīng)性好、網(wǎng)絡(luò)管理能力日益提高的網(wǎng)絡(luò), 它可以方便地將數(shù)據(jù)采集系統(tǒng)納入局域網(wǎng)甚至Internet。

  而以太網(wǎng)總線則有可能代替現(xiàn)行的其他總線方式而成為虛擬儀器數(shù)據(jù)采集系統(tǒng)的首選接口。

  1 以太網(wǎng)接口的總體設(shè)計(jì)

  1.1 以太網(wǎng)接口設(shè)計(jì)方案選擇

  以太網(wǎng)接口的設(shè)計(jì)通常有三種方案: 其一是采用FPGA實(shí)現(xiàn)物理層、網(wǎng)絡(luò)層、接入層和傳輸層等各層的描述, 該方案要自行實(shí)現(xiàn)復(fù)雜的TCP/IP協(xié)議, 難度較大; 二是基于物理層網(wǎng)絡(luò)控制器和微處理器來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)傳輸, 該方案的優(yōu)點(diǎn)是靈活性強(qiáng), 可以針對(duì)不同的系統(tǒng)采用不同的協(xié)議,可實(shí)現(xiàn)協(xié)議的精簡(jiǎn); 三是采用專用的協(xié)議處理芯片實(shí)現(xiàn)以太網(wǎng)數(shù)據(jù)傳輸, 該方案的硬件電路相對(duì)簡(jiǎn)單, 開發(fā)周期短, 并有越來(lái)越多的芯片可供選擇, 且集成了多種協(xié)議, 使用十分方便。

  本設(shè)計(jì)采用第三種接口方案, 即采用專用的TCP/IP協(xié)議集成芯片, 并由FPGA實(shí)現(xiàn)對(duì)協(xié)議處理芯片的控制, 從而實(shí)現(xiàn)以太網(wǎng)數(shù)據(jù)傳輸。協(xié)議處理芯片選用內(nèi)部固化了TCP/IP協(xié)議的W3150A+并配合物理層芯片RTL8201, 該方法硬件電路相對(duì)簡(jiǎn)單, 并可利用邏輯硬件實(shí)現(xiàn), 從而使系統(tǒng)設(shè)計(jì)更加簡(jiǎn)單、緊湊。

  1.2 以太網(wǎng)控制芯片W3150A+簡(jiǎn)介

  W3150A+是WIZnet公司專門為以太網(wǎng)互聯(lián)和嵌入式系統(tǒng)推出的TCP/IP協(xié)議棧芯片。W3150A+能夠?qū)崿F(xiàn)TCP、UDP、IP Ver.4、DHCP、ARP和ICMP等協(xié)議, 同時(shí), 網(wǎng)絡(luò)接口層(包括MAC子層和DLC子層) 也可在該芯片中實(shí)現(xiàn)。同時(shí)還能提供四路網(wǎng)絡(luò)連接, 其內(nèi)部有16KB的雙口RAM可作為數(shù)據(jù)緩沖區(qū), 并可支持全雙工模式, 同時(shí)帶有標(biāo)準(zhǔn)的MII接口, 可方便連接物理層接口芯片。

  此外, WIZnet公司還提供了Socket API程序包,可以加速應(yīng)用程序的開發(fā)。

  圖1所示是W3150A+芯片的結(jié)構(gòu)框圖。由圖1可見, W3150A+主要由4部分組成。其中第一部分是MCU接口。W3150A+提供有直接總線接口、間接總線接口和SPI 總線接口。既適合與類似8051單片機(jī)的總線連接, 也非常適合與只有IO口而沒(méi)有總線接口的控制器連接; 第二部分是TCP/IP協(xié)議棧。W3150A+已經(jīng)完全固化了從MAC層、網(wǎng)絡(luò)層到傳輸層所需要的協(xié)議, 因此, 用戶無(wú)需了解這些協(xié)議的具體實(shí)現(xiàn)方法和實(shí)現(xiàn)代碼; 第三部分是接收和發(fā)送緩沖區(qū), 通過(guò)以太網(wǎng)進(jìn)行通信的數(shù)據(jù)就是通過(guò)這些緩沖區(qū)來(lái)交換的; 第四部分是以太網(wǎng)物理層接口(MII接口)。W3150A+可以與物理層芯片RTL8201無(wú)縫連接, 從而實(shí)現(xiàn)10/100BaseT以太網(wǎng)物理接口。


點(diǎn)擊看大圖

圖1 W3150A+芯片結(jié)構(gòu)圖

  W3150A+內(nèi)部的寄存器分為兩個(gè)存儲(chǔ)器和兩類寄存器。兩個(gè)存儲(chǔ)器分別用于數(shù)據(jù)傳輸?shù)妮斎牒洼敵觯?兩類寄存器分別是通用寄存器和端口寄存器, 每類寄存器都含有大量的狀態(tài)字控制寄存器。下面簡(jiǎn)要介紹比較重要的狀態(tài)字控制寄存器。

  Sn_MR: 端口n模式寄存器, 該寄存器用于設(shè)置端口的選項(xiàng)或協(xié)議類型;

  Sn_CR: 端口n命令寄存器, 該寄存器用來(lái)設(shè)置端口的初始化、關(guān)閉、建立連接、斷開連接、數(shù)據(jù)傳輸以及命令接受等;

  Sn_IR: 端口n中斷寄存器, 該寄存器用于顯示建立和中止連接、接收數(shù)據(jù)、發(fā)送完成以及時(shí)間溢出等信息;

  Sn_PORT: 端口n的端口號(hào)寄存器, 該寄存器可在TCP或UDP模式下設(shè)定對(duì)應(yīng)的端口號(hào);

  S_TX_FSR: 端口n發(fā)送存儲(chǔ)器剩余空間寄存器, 該寄存器用于指示用戶可以使用的發(fā)送數(shù)據(jù)空間的大小, 在發(fā)送數(shù)據(jù)前, 用戶必須先檢查剩余空間的大小, 然后控制發(fā)送數(shù)據(jù)的字節(jié)數(shù);

  Sn_TX_RR: 端口n發(fā)送存儲(chǔ)器讀指針寄存器, 該寄存器用于指示端口在發(fā)送過(guò)程完成后發(fā)送存儲(chǔ)器的當(dāng)前位置。當(dāng)端口n的命令寄存器收  到SEND 命令后, 可隨即從當(dāng)前Sn_TX_RR 到Sn_TX_WR 的數(shù)據(jù)中發(fā)送出去, 發(fā)送完成后,Sn_TX_RR的值自動(dòng)改變;

  Sn_TX_WR: 端口n傳輸寫指針寄存器, 該寄存器可指示向TX存儲(chǔ)器寫入數(shù)據(jù)時(shí)的地址;

  Sn_RX-RSR: 端口n接收數(shù)據(jù)字節(jié)數(shù)寄存器,該寄存器只是端口接收數(shù)據(jù)緩沖區(qū)接收數(shù)據(jù)的字節(jié)數(shù), 通常可由Sn_TX_RR到Sn_TX_WR的值計(jì)算得出, 向端口n命令寄存器寫入RECV命令后,寄存器的值將自動(dòng)改變, 并可以接收遠(yuǎn)程對(duì)端的數(shù)據(jù);

  Sn_RX_RD: 端口n接收緩沖區(qū)讀指針寄存器, 該寄存器只是端口接收過(guò)程完成后的讀地址信息。