亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于W5300的以太網(wǎng)數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2012-02-15 03:29:24吳昊嚴(yán)勝剛薛雙喜
        電子設(shè)計(jì)工程 2012年9期
        關(guān)鍵詞:接收數(shù)據(jù)發(fā)送數(shù)據(jù)存儲(chǔ)器

        吳昊,嚴(yán)勝剛,薛雙喜

        (西北工業(yè)大學(xué) 航海學(xué)院,陜西 西安 710072)

        現(xiàn)代數(shù)據(jù)采集領(lǐng)域中,越來(lái)越多的現(xiàn)場(chǎng)采集設(shè)備需要擴(kuò)展網(wǎng)絡(luò)功能以實(shí)現(xiàn)遠(yuǎn)程控制和數(shù)據(jù)傳輸。以太網(wǎng)以其成本低、易于集成和傳輸距離較遠(yuǎn)的優(yōu)勢(shì)得到了廣泛應(yīng)用[1]。傳統(tǒng)的以太網(wǎng)解決方案是利用主控芯片連接物理層接口,在主控芯片內(nèi)編寫(xiě)以太網(wǎng)協(xié)議來(lái)實(shí)現(xiàn)的,這種方法開(kāi)發(fā)周期較長(zhǎng),難度較大,且由于以太網(wǎng)協(xié)議程序比較繁瑣,運(yùn)行起來(lái)不太穩(wěn)定。而利用硬件協(xié)議棧芯片,只需要通過(guò)簡(jiǎn)單的配置和外部線路連接就可以實(shí)現(xiàn)以太網(wǎng)的數(shù)據(jù)傳輸功能,這種方法開(kāi)發(fā)難度小、集成度高且運(yùn)行穩(wěn)定,已成為實(shí)現(xiàn)以太網(wǎng)數(shù)據(jù)傳輸?shù)氖走x方案[2]。

        鑒于此,文中設(shè)計(jì)了一個(gè)利用可編程邏輯器件控制W5300以TCP/IP為協(xié)議進(jìn)行以太網(wǎng)數(shù)據(jù)傳輸?shù)南到y(tǒng)。其中,TCP/IP協(xié)議棧的處理交由硬件協(xié)議棧芯片W5300來(lái)完成,F(xiàn)PGA只需控制W5300即可[3]。

        1 芯片介紹

        W5300是WIZnet公司的一款單芯片器件,采用0.18μm CMOS工藝,內(nèi)部集成10/100M以太網(wǎng)控制器、MAC層協(xié)議和TCP/IP協(xié)議棧,主要應(yīng)用于高集成、高穩(wěn)定、高性能和低成本的嵌入式系統(tǒng)中。其主要性能特點(diǎn)[4-5]如下:

        1)支持硬件 TCP/IP 協(xié)議棧:TCP、UDP、ICMP、IPv4、ARP,IGMP、PPPoE;

        2)支持8路獨(dú)立的網(wǎng)絡(luò)連接端口SOCKETs同時(shí)工作;

        3)內(nèi)部擁有128 k字節(jié)TX/RX存儲(chǔ)器用于數(shù)據(jù)通信,并可根據(jù)端口數(shù)據(jù)吞吐量靈活分配TX/RX存儲(chǔ)器空間大小;

        4)支持2種主機(jī)接口模式(直接尋址模式和間接尋址模式);

        5)支持16/8 bit數(shù)據(jù)總線,傳輸速率高達(dá)50 Mbps;

        6)支持第三方物理(PHY)接口。

        2 系統(tǒng)硬件設(shè)計(jì)

        在硬件設(shè)計(jì)時(shí)選擇利用FPGA做為主控芯片,實(shí)現(xiàn)對(duì)W5300寄存器的讀寫(xiě)及功能配置,其系統(tǒng)硬件結(jié)構(gòu)如圖1所示。

        圖1 系統(tǒng)硬件結(jié)構(gòu)圖Fig.1 Structure diagram of the hardware system

        W5300與FPGA的接口信號(hào)有數(shù)據(jù)總線、地址總線以及一些控制信號(hào)線(如/RESET、/CS、/RD、/WR、/INT)。 W5300 工作在直接尋址模式下,F(xiàn)PGA通過(guò)地址總線可直接訪問(wèn)W5300內(nèi)部的各個(gè)寄存器或存儲(chǔ)器,直接尋址模式比間接尋址模式具有更高的訪問(wèn)速度。BIT16EN引腳決定數(shù)據(jù)總線模式:BIT16EN拉高時(shí)為16位寬數(shù)據(jù)總線模式,BITI6EN拉低時(shí)為8位寬數(shù)據(jù)總線模式。本設(shè)計(jì)將BIT16EN懸空,即拉高,使其工作在16位寬數(shù)據(jù)總線模式下。TEST_MODE[3:0]4個(gè)引腳用于配置PHY模式和廠商測(cè)試模式,這里將其都接地,設(shè)置成使用內(nèi)部集成的PHY模式。在內(nèi)部PHY運(yùn)行控制模式的多種選擇中,將OP_MODE[2:0]3個(gè)引腳接地,固定地選擇了一種模式:自動(dòng)握手模式。這樣W5300是通過(guò)媒體接口的兩路差分信號(hào)(RXIP/RXIN和TXOP/TXON)與網(wǎng)絡(luò)隔離變壓器連接。這些差分信號(hào)引腳都必須接一個(gè)50Ω(±1%)的電阻和一個(gè)0.1μF的電容,以達(dá)到良好的阻抗匹配效果。匹配電阻和匹配電容應(yīng)該盡可能靠近W5300,以減少傳輸線上的阻抗和容抗。同時(shí)為了有良好的傳輸效果,兩路差分信號(hào)的走線長(zhǎng)度應(yīng)相等且盡量靠近[1-6]。

        圖中的網(wǎng)絡(luò)隔離變壓器采用的是CYL公司PH16系列的PH163539集成芯片,它的作用有3點(diǎn):1)傳輸數(shù)據(jù),它把PHY送出來(lái)的差分信號(hào)用差模耦合線圈耦合濾波以增強(qiáng)信號(hào),并且通過(guò)電磁場(chǎng)的轉(zhuǎn)換耦合到不同電平的連接網(wǎng)線的另外一端;2)隔離網(wǎng)絡(luò)上不同網(wǎng)絡(luò)設(shè)備間的不同電平,以防止不同電壓通過(guò)網(wǎng)線傳輸損壞設(shè)備;3)能夠?yàn)V除空間的電磁干擾,能對(duì)設(shè)備起到一定的防雷保護(hù)作用[7]。

        本系統(tǒng)工作在內(nèi)部PHY模式下,只能用25M的無(wú)源晶振來(lái)提供W5300的工作時(shí)鐘。在工作過(guò)程中,W5300需要2種電源:3.3 V和1.8 V,其中1.8 V的內(nèi)核工作電壓由W5300自己產(chǎn)生,不需要外部提供,需要注意的是這種電壓不能提供給W5300以外的其它器件。

        3 系統(tǒng)軟件設(shè)計(jì)

        系統(tǒng)軟件設(shè)計(jì)的主要任務(wù)是在Quartus II環(huán)境下用硬件描述語(yǔ)言VHDL實(shí)現(xiàn)FPGA對(duì)硬件協(xié)議棧芯片W5300的控制,以實(shí)現(xiàn)W5300與上位機(jī)的數(shù)據(jù)傳輸。在本系統(tǒng)的軟件設(shè)計(jì)中,僅選用W5300的8個(gè)SOCKET中的SOCKET0進(jìn)行通訊。W5300軟件流程圖如圖2所示,首先復(fù)位W5300,再依次對(duì)W5300、SOCKET0進(jìn)行初始化,然后進(jìn)入數(shù)據(jù)通信狀態(tài)。

        3.1 W5300復(fù)位

        W5300在工作之前需要進(jìn)行上電復(fù)位,且復(fù)位信號(hào)/RESET至少要保持2μs的低電平,然后變?yōu)楦唠娖?,等待至?0 ms使得W5300內(nèi)部鎖相環(huán)穩(wěn)定后,再進(jìn)行W5300初始化等操作。

        軟件設(shè)計(jì)時(shí),系統(tǒng)設(shè)置復(fù)位信號(hào)的低電平時(shí)間為6μs,通過(guò)對(duì)30 MHz的時(shí)鐘進(jìn)行計(jì)數(shù)來(lái)實(shí)現(xiàn),當(dāng)計(jì)數(shù)值達(dá)到30×6=180時(shí),便將復(fù)位信號(hào)拉至高電平;然后接著計(jì)數(shù),當(dāng)計(jì)數(shù)值達(dá)到30×20×103=600 000時(shí),便實(shí)現(xiàn)等待20 ms的要求;最后給出W5300復(fù)位完成信號(hào),啟動(dòng)下一步工作。

        3.2 W5300初始化

        圖2 系統(tǒng)軟件流程圖Fig.2 Flow chart of the software system

        初始化W5300就是將相應(yīng)的參數(shù)按照寫(xiě)時(shí)序要求寫(xiě)入寄存器即可,初始化分3個(gè)步驟:主機(jī)接口設(shè)置、網(wǎng)絡(luò)信息設(shè)置和內(nèi)部TX/RX存儲(chǔ)器的分配。

        在設(shè)置主機(jī)接口時(shí),模式寄存器MR保持默認(rèn)值0xB800,這樣W5300便工作在16位總線寬度的直接訪問(wèn)模式;中斷屏蔽寄存器IMR寫(xiě)入0xFFFF,不屏蔽任何中斷。

        在設(shè)置網(wǎng)絡(luò)信息時(shí),重復(fù)發(fā)送超時(shí)寄存器RTR與重復(fù)發(fā)送計(jì)數(shù)寄存器RCR采用默認(rèn)值,默認(rèn)值分別為0x07D0和0x0008,即重復(fù)發(fā)送超時(shí)時(shí)間為200 ms,重復(fù)發(fā)送次數(shù)為9次;本機(jī)硬件地址寄存器SHAR、網(wǎng)關(guān)IP地址寄存器GAR、子網(wǎng)掩碼寄存器SUBR和本機(jī)IP地址寄存器SIPR配置參數(shù)如表1所示。

        表1 網(wǎng)絡(luò)參數(shù)配置Tab.1 Configuration of network parameters

        在分配存儲(chǔ)空間時(shí),存儲(chǔ)器單元類型寄存器MTYPER采用默認(rèn)值0x00FF,即將前8個(gè)8k字節(jié)存儲(chǔ)單元分配為TX存儲(chǔ)器,后8個(gè)8k字節(jié)存儲(chǔ)單元分配為RX存儲(chǔ)器;通過(guò)TX存儲(chǔ)器大小配置寄存器TMSR和RX存儲(chǔ)器大小配置寄存器RMSR將SOCKET0的發(fā)送和接收存儲(chǔ)器大小都配置為32 kB。

        3.3 SOCKET0建立連接

        完成 W5300初始化以后,W5300可以以 TCP、UDP、IPRAW或MACRAW的方式打開(kāi)SOCKET發(fā)送或接收數(shù)據(jù)。在本設(shè)計(jì)中,W5300工作在TCP服務(wù)器模式下。

        為了實(shí)現(xiàn)TCP通信,需要對(duì)SOCKET0進(jìn)行初始化設(shè)置,然后進(jìn)行偵聽(tīng)設(shè)置,完成TCP服務(wù)器建立,最后等待建立連接。通過(guò) SOCKET0模式寄存器 S0_MR(P3:P0)和SOCKET0端口寄存器S0_PORTR分別設(shè)置通信協(xié)議和本機(jī)端口號(hào)(在TCP服務(wù)器模式,稱之為偵聽(tīng)端口號(hào)),然后向SOCKET0控制寄存器S0_CR中寫(xiě)入0x0001執(zhí)行OPEN命令,執(zhí)行完OPEN命令后,如果SOCKET0狀態(tài)寄存器S0_SSR改變?yōu)镾OCK_INIT,則SOCKET0的初始化設(shè)置完成;再向S0_CR中寫(xiě)入0x0002執(zhí)行偵聽(tīng)命令,若S0_SSR改變?yōu)镾OCK_LISTEN,則偵聽(tīng)完成,W5300設(shè)置為TCP服務(wù)器;最后等待S0_SSR改變?yōu)镾OCK_ESTABLISHED,若S0_SSR變?yōu)轭A(yù)期值,則建立了SOCKTE0連接,可以進(jìn)行數(shù)據(jù)通信。

        3.4 W5300接收數(shù)據(jù)

        當(dāng)W5300控制器收到接收數(shù)據(jù)控制命令時(shí),進(jìn)入接收數(shù)據(jù)狀態(tài)。W5300接收數(shù)據(jù)的程序流程如圖3所示。首先要判斷SOCKET0的RX存儲(chǔ)器中是否有接收到的數(shù)據(jù),即讀取SOCKET0接收數(shù)據(jù)報(bào)長(zhǎng)度寄存器S0_RX_RSR的值,并判斷該值是否等于零。如果S0_RX_RSR的值等于零,則繼續(xù)判斷,否則說(shuō)明SOCKET0的RX存儲(chǔ)器接收到數(shù)據(jù),則進(jìn)入下一步接收數(shù)據(jù)操作。當(dāng)存儲(chǔ)器中接收到數(shù)據(jù)時(shí),要進(jìn)一步判讀SOCKET0模式寄存器S0_MR的對(duì)齊控制位,若S0_MR(ALIGN)=0,則從 SOCKET0的 RX FIFO寄存器 S0_RX_FIFOR讀取需要接收的數(shù)據(jù)字節(jié)長(zhǎng)度(這樣做是由TCP模式數(shù)據(jù)格式來(lái)確定的),否則從S0_RX_RSR中讀取數(shù)據(jù)字節(jié)長(zhǎng)度。得到數(shù)據(jù)字節(jié)長(zhǎng)度信息后要將其轉(zhuǎn)換為數(shù)據(jù)字長(zhǎng)度,作為讀取S0_RX_FIFOR中接收內(nèi)容的循環(huán)控制量。最后,要在向S0_CR寫(xiě)入0x0040,執(zhí)行REVC命令,告知主機(jī)W5300已經(jīng)完成數(shù)據(jù)的讀取。

        圖3 W5300接收數(shù)據(jù)流程圖Fig.3 Flow chart of W5300 receiving data

        3.5 W5300發(fā)送數(shù)據(jù)

        當(dāng)W5300控制器收到發(fā)送數(shù)據(jù)控制命令時(shí),進(jìn)入發(fā)送數(shù)據(jù)狀態(tài)。W5300發(fā)送數(shù)據(jù)程序流程如圖4所示。首先要將需要發(fā)送數(shù)據(jù)字通過(guò)S0_TX_FIFOR復(fù)制到SOCKET0的TX存儲(chǔ)器中,然后再將發(fā)送數(shù)據(jù)字節(jié)長(zhǎng)度值寫(xiě)入SOCKET0的寫(xiě)長(zhǎng)度寄存器S0_TX_WRSR,告知W5300需要向上位機(jī)發(fā)送數(shù)據(jù)的字節(jié)數(shù)。最后向S0_CR寫(xiě)入0x0020執(zhí)行SEND命令,W5300收到此命令后對(duì)接收到的數(shù)據(jù)進(jìn)行協(xié)議處理,并發(fā)送到網(wǎng)絡(luò)中。數(shù)據(jù)發(fā)送完成后,SOCKET0的中斷寄存器S0_IR會(huì)產(chǎn)生發(fā)送完成(SENDOK)中斷,中斷值為0x0010,軟件清除該中斷后表示完成一次發(fā)送。

        圖4 W5300發(fā)送數(shù)據(jù)流程圖Fig.4 Flow chart of W5300 sending data

        4 系統(tǒng)功能驗(yàn)證

        為了測(cè)試網(wǎng)絡(luò)的連通性,最直接的方式就是使用ping命令,向目標(biāo)端發(fā)送ICMP回送請(qǐng)求報(bào)文,看目標(biāo)端是否可達(dá)[8]。在主機(jī)端的DOS命令環(huán)境下輸入命令:ping192.168.0.3(主機(jī)lP地址為192.168.0.2),從圖5可以看出主機(jī)端收到了ICMP回送應(yīng)答,證明目標(biāo)端的IP層以下已經(jīng)連通。

        圖5 DOS操作環(huán)境下測(cè)試結(jié)果Fig.5 Test results in DOSoperation system

        在測(cè)試了連通性后,就可以進(jìn)行通信測(cè)試了,可通過(guò)TCP&UDP測(cè)試工具向W5300發(fā)送網(wǎng)絡(luò)控制指令,并接收W5300回傳的數(shù)據(jù)數(shù)據(jù)。如圖6所示TCP&UDP測(cè)試工具與W5300通信結(jié)果,通過(guò)上位機(jī)的TCP&UDP測(cè)試工具向系統(tǒng)網(wǎng)絡(luò)接口發(fā)送一組數(shù)據(jù),系統(tǒng)網(wǎng)絡(luò)接口將收到的數(shù)據(jù)載回傳給上位機(jī),從圖中可以看出,通信測(cè)試成功。

        圖6 TCP&UDP測(cè)試工具與W5300通信結(jié)果Fig.6 Communication results between TCP&UDP testing tools and W5300

        5 結(jié) 論

        經(jīng)實(shí)驗(yàn)驗(yàn)證,系統(tǒng)運(yùn)行穩(wěn)定,實(shí)現(xiàn)了以太網(wǎng)的數(shù)據(jù)傳輸功能。系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、可靠性強(qiáng)、成本低廉,在無(wú)需引入操作系統(tǒng)的條件下,實(shí)現(xiàn)單芯片與Internet的連接,有很高的實(shí)用價(jià)值,可應(yīng)用于現(xiàn)場(chǎng)采集設(shè)備的遠(yuǎn)程控制和數(shù)據(jù)傳輸?shù)阮I(lǐng)域。

        [1]王少克.基于W5300的高速硬件以太網(wǎng)解決方案[J].電子設(shè)計(jì)應(yīng)用,2009,7(4):95-96.WANG Shao-ke.Solution of high-speed hardware Ethernet based on W5300[J].Electronic Design&Application,2009,7(4):95-96.

        [2]謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)[M].北京:電子工業(yè)出版社,2008.

        [3]胡為.基于FPGA的嵌入式系統(tǒng)Internet接入方案[D].西安:西安電子科技大學(xué),2006.

        [4]WIZnet.W5300 Datasheet Ver1.2.2[R].2008.

        [5]High-Performance Internet Connectivity Solution W5300[S].WIZnet Inc,2008.

        [6]柏軍,張爭(zhēng)氣,王奇,等.基于網(wǎng)卡的某型聲納目標(biāo)模擬系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2010,18(4):854-856.PAI Jun,ZHANG Zheng-qi,WANG Qi,et al.Design of sonar target simulation system based on net card[J].Computer Measurement&Control,2010,18(4):854-856.

        [7]吳金星.某雷達(dá)數(shù)據(jù)通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2011.

        [8]胡達(dá).基于嵌入式平臺(tái)的USB和以太網(wǎng)技術(shù)研究[D].哈爾濱:哈爾濱工程大學(xué),2009.

        猜你喜歡
        接收數(shù)據(jù)發(fā)送數(shù)據(jù)存儲(chǔ)器
        移動(dòng)自組網(wǎng)中MAC層協(xié)議研究
        沖激噪聲背景下基于幅度預(yù)處理的測(cè)向新方法*
        靜態(tài)隨機(jī)存儲(chǔ)器在軌自檢算法
        低復(fù)雜度多輸入多輸出雷達(dá)目標(biāo)角度估計(jì)方法
        基于馬爾科夫鏈的LoRaWAN網(wǎng)絡(luò)節(jié)點(diǎn)性能分析
        帶標(biāo)記方式的CRDSA++協(xié)議性能分析*
        使用IPSec安全傳輸數(shù)據(jù)
        單片機(jī)模擬串口數(shù)據(jù)接收程序的實(shí)現(xiàn)及優(yōu)化
        存儲(chǔ)器——安格爾(墨西哥)▲
        基于Nand Flash的高速存儲(chǔ)器結(jié)構(gòu)設(shè)計(jì)
        国产亚洲一区二区精品| 亚洲AV无码一区二区三区日日强 | 三上悠亚免费一区二区在线| 亚洲乱色视频在线观看| 新久久国产色av免费看| 99无码熟妇丰满人妻啪啪| 一本一本久久a久久精品综合麻豆 国产va免费精品观看 | 国产麻豆极品高清另类| 国语自产精品视频在线看| 久久人人爽人人爽人人av| 福利视频一二区| 日韩国产自拍视频在线观看 | 亚洲七七久久综合桃花| 国产精品亚洲精品日韩动图 | 国产熟女露脸大叫高潮| 又黄又爽又色视频| 福利视频一二三在线观看| 国产成人久久精品激情91| 精品人妻一区二区三区狼人| 99久热在线精品视频观看| 亚洲精品自产拍在线观看| 国产美女亚洲精品一区| 日本一区二区视频在线| 人妻av鲁丝一区二区三区| 国产91在线免费| 国产一区二区在线观看av| 欧美奶涨边摸边做爰视频| 国产精自产拍久久久久久蜜| 国产粉嫩高清| 亚洲精品在线视频一区二区| 亚洲国产av精品一区二区蜜芽| 国产成人一区二区三中文| 国产三级c片在线观看| 欧美性生交活xxxxxdddd| 久久天天躁狠狠躁夜夜96流白浆| 亚洲日产国无码| 国产精品亚洲二区在线看| 精品淑女少妇av久久免费| 乱人伦中文字幕在线不卡网站| 亚洲熟女熟妇另类中文| 亚洲图片日本视频免费|