<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ò) 收藏

            為了在設(shè)計中使用總線來將數(shù)據(jù)采集系統(tǒng)納入局域網(wǎng)甚至Internet,從而實現(xiàn)的網(wǎng)絡(luò)化,文中給出了一款基于TCP/IP協(xié)議專用芯片的接口的設(shè)計方法。此接口選用Altera公司的FPGA芯片EPM570GT100C4,并配合專用協(xié)議集成芯片和物理層芯片RTL8201,可成功實現(xiàn)的數(shù)據(jù)傳輸。

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

            0 引言

            以其性價比高、開放性強等優(yōu)勢迅速占領(lǐng)了市場,并成為測控儀器新的經(jīng)濟增長點。步入信息化時代最顯著的標志就是信息網(wǎng)絡(luò)在各行業(yè)中的滲透和普及,其中以太網(wǎng)最為典型。以太網(wǎ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è)計

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

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

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

            1.2 以太網(wǎng)控制芯片簡介

            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é)議,同時,網(wǎng)絡(luò)接口層(包括MAC子層和DLC子層)也可在該芯片中實現(xiàn)。同時還能提供四路網(wǎng)絡(luò)連接,其內(nèi)部有16KB的雙口RAM可

            作為數(shù)據(jù)緩沖區(qū),并可支持全雙工模式,同時帶有標準的MD接口,可方便連接物理層接口芯片。此外,WIZnet公司還提供了Socket API程序包,可以加速應(yīng)用程序的開發(fā)。

            圖1所示是W3150A+芯片的結(jié)構(gòu)框圖。由圖1可見,W3150A+主要由4部分組成。其中第一部分是MCU接口。W3150A+提供有直接總線接口、

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

            

           

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

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

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

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

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

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

            Sn_TX_RR:端口n發(fā)送存儲器讀指針寄存器,該寄存器用于指示端口在發(fā)送過程完成后發(fā)送存儲器的當前位置。當端口n的命令寄存器收

            到SEND命令后,可隨即從當前Sn_TX_RR到Sn_TX_WR的數(shù)據(jù)中發(fā)送出去,發(fā)送完成后,Sn_TX_RR的值自動改變;

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

            Sn_RX_RSR:端口n接收數(shù)據(jù)字節(jié)數(shù)寄存器,該寄存器只是端口接收數(shù)據(jù)緩沖區(qū)接收數(shù)據(jù)的字節(jié)數(shù),通常可由Sn_TX_RR到Sn_TX_WR的值計

            算得出,向端口n命令寄存器寫入RECV命令后,寄存器的值將自動改變,并可以接收遠程對端的數(shù)據(jù);

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

            W3150A+內(nèi)部有4個獨立的端口(Socket),它們的狀態(tài)、控制分別映射在第二到第五寄存器區(qū)。主要用于實現(xiàn)端口工作模式的控制(TCP服

            務(wù)器、TCP客戶端、UDP或PPPOE等)、設(shè)置該端口的端口號,設(shè)置該端口目的主機IP地址和端口號,以及端口接收和發(fā)送數(shù)據(jù)控制等。

          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); })();