99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

全硬件TCP/IP協(xié)議棧學(xué)習(xí)筆記(第七天:FPGA+W5500 PING通)

學(xué)FPGA,慢慢來 ? 2017-12-18 10:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在一周多的時間,從軟件的協(xié)議到芯片接口最后到硬件描述,我覺得是時候試一試芯片了,看一看能不能ping通。兩天時間終于完成第一次ping,也挺不容易的。

首先想要ping通,要先知道ping是什么

它所利用的原理是這樣的:利用網(wǎng)絡(luò)上機器IP地址的唯一性,給目標(biāo)IP地址發(fā)送一個數(shù)據(jù)包,再要求對方返回一個同樣大小的數(shù)據(jù)包來確定兩臺網(wǎng)絡(luò)機器是否連接相通,時延是多少。

而對于W5500能夠ping通,官方博客的解釋是這樣:

W5500 若想Ping通的話需要保證以下2點:

1)物理信道通信正常:初步判定Link 燈及狀態(tài)燈指示正常。

2)配置了W5500的IP,網(wǎng)關(guān),子網(wǎng)掩碼,MAC地址這些特殊寄存器

由于W5500內(nèi)部硬件邏輯電路實現(xiàn)了ARP協(xié)議。所以,一旦收到ping包請求的話,會自動回復(fù)。以上的設(shè)置不過是為了保證基本信道及通訊能夠建立的而已。

反向而言,如果Ping不通,也可以先從這兩方面著手。

看上去并不是很難,如果想ping通的話只是需要配置好W5500的寄存器即可。

下面我們開始動手

器件選擇basys2,開發(fā)環(huán)境ISE,以及野火的W5500網(wǎng)絡(luò)擴展模塊

根據(jù)W5500的說明書,我們通過SPI協(xié)議來完成與W5500的通信,共有SCSn,SCLK,MOSI,MISO4路信號,且作為SPI從機工作。其工作方式有可變長度模式和固定數(shù)據(jù)長度

SPI協(xié)議定義了四種工作模式,每種模式的區(qū)別就是根據(jù)SCLK的極性和相位不同。W5500支持SPI模式0及模式3,數(shù)據(jù)都是在SCLK的上升沿鎖存,在下降沿輸出,而且無論發(fā)送與接收,均遵從最高標(biāo)志位(MSB)到最低標(biāo)志位(LSB)的傳輸序列。

W5500與外設(shè)主機的通信受SPI數(shù)據(jù)幀控制,W5500的幀分3段:地址段,控制端,數(shù)據(jù)段。

地址段為W5500寄存器或TX/RX 內(nèi)存指定了16位的偏移地址??刂贫沃付说刂范卧O(shè)定的偏移區(qū)域的歸屬,讀寫訪問模式以及SPI工作模式。數(shù)據(jù)段可以設(shè)置為任意長度或固定長度;如果SPI工作模式設(shè)置為可變數(shù)據(jù)長度模式,SPI的SCSn信號由外部主機SPI幀控制。

在可變數(shù)據(jù)長度模式,SCSn控制SPI幀的開始和停止:SCSn信號拉低,即代表W5500的SPI幀開始(地址段)SCSn信號拉高,即代表W5500的SPI幀結(jié)束(數(shù)據(jù)段的隨機N字節(jié)數(shù)據(jù)結(jié)尾)

SPI數(shù)據(jù)幀包括16位地址段的偏移地址,8位的控制段和N字節(jié)的數(shù)據(jù)段,8位的控制段可以通過修改區(qū)域選擇位(BSB[4:0]),讀寫訪問模式位(RWB)以及SPI工作模式位(OM[1:0])來重新定義。區(qū)域選擇選擇了屬于偏移地址的區(qū)域。

W5500支持?jǐn)?shù)據(jù)的連續(xù)讀寫。其流程為數(shù)據(jù)從偏移地址的基位會自增尋址加1傳輸接下來的數(shù)據(jù)。

在控制段中指定了地址段設(shè)定的偏移區(qū)域的歸屬,讀寫訪問模式以及SPI工作模式

所以我們在開啟第一件事就是配置寄存器,而我們處理發(fā)送的順序為PHY_MODE,MAC address,IP address,gateway_address(網(wǎng)關(guān)地址),Set the subnet mask,Set socket 0's mode,Set the size of socket 0's TX buffer,Set the source port for socket 0,Send the command to open the socket, Set the destination IP address for socket 0,Send the command to read the socket state。

好了,我們現(xiàn)在配置的協(xié)議了解了,順序也已經(jīng)了解了,而按順序發(fā)送即使用SPI在每一個上升沿發(fā)送,在下降沿讀取。發(fā)送的內(nèi)容以及SPI_clk我們選擇使用有限狀態(tài)機來實現(xiàn)。那我們下一步就來理順一下狀態(tài)轉(zhuǎn)移。

首先我們設(shè)置出幾個狀態(tài),按其功能進行命名

1.狀態(tài)初始在STATE_INITIALIZING狀態(tài),該狀態(tài)內(nèi)將spi_clk拉低,下一狀態(tài)轉(zhuǎn)入STATE_SENDING_COMMAND,同時將initialization_progress加一,case他來選擇initialization_progress(mosi的數(shù)組集合)的賦值,首先是PHY_MODE,spi_chip_select_n賦值給零,spi_clock_count賦值給零,忙信號給1;此狀態(tài)結(jié)束

2.狀態(tài)轉(zhuǎn)入STATE_SENDING_COMMAND,spi_clk信號取反,即拉高,狀態(tài)沒有變化。

3.狀態(tài)依然是STATE_SENDING_COMMAND,spi_clk信號取反,即拉低,此時滿足下邊的條件,執(zhí)行將spi_clk_count加1,

反復(fù)執(zhí)行這兩個狀態(tài),到spi_clk_count 加到32時,各項狀態(tài)仍和3是一樣,經(jīng)過了32x2個系統(tǒng)時鐘

4.狀態(tài)依然在STATE_AEND_COMMAND,只是將spi_chip_select_n拉高為1;此時is_initialized信號為初始值0,,此時將狀態(tài)轉(zhuǎn)換為STATE_INITIALIZING

狀態(tài)再次到達1,此種狀態(tài)一直重復(fù)直到將29個數(shù)據(jù)全部發(fā)送完畢。依次發(fā)送的是PHY_MODE,MAC address,IP address,gateway_address(網(wǎng)關(guān)地址),Set the subnet mask,Set socket 0's mode,Set the size of socket 0's TX buffer,Set the source port for socket 0,Send the command to open the socket, Set the destination IP address for socket 0,Send the command to read the socket state。

根據(jù)spi協(xié)議spi_clk 為低,狀態(tài)處在STATE_SENDING_COMMAND且spi_clk_count 在24到31之間的時候,由于相對于clk,spi_clk實質(zhì)上是clk的二分頻,所以對clk的上升沿的檢測就是對spi_clk的所有沿的檢測,在上升沿 處讀取數(shù)據(jù),由高位到低位進行讀取。在下降沿處發(fā)送數(shù)據(jù),每次發(fā)送一位一位,同樣從高位到低位進行發(fā)送。將最后一組數(shù)據(jù)發(fā)送結(jié)束之后,waiting _for_socket賦值給1, 初始化的data_read為7個0,之后一直在等待套接字的狀態(tài)

這就是狀態(tài)轉(zhuǎn)移的基本思路

我們基礎(chǔ)設(shè)置IP為222.24.16.3(由于我的主機IP為222.24.16.163,所以設(shè)置了這個IP),子網(wǎng)掩碼為255.0.0.0(最?。?/p>

根據(jù)我們的思路,下邊就是代碼的書寫了

完成之后進行仿真,

訂對后發(fā)現(xiàn)和我們想要的都一樣,仿真即通過。

(P.S.由于spi是系統(tǒng)時鐘的二分頻,是發(fā)送接受的時鐘線。spi_clock_count是發(fā)送的計數(shù)器,他的數(shù)值即為當(dāng)前發(fā)送到所給數(shù)據(jù)的位數(shù)。通過仿真可以發(fā)現(xiàn)狀態(tài)在010和011之間變換,即為位數(shù)的變化和發(fā)送內(nèi)容的更新。)

完成仿真之后就可以在開發(fā)板上實現(xiàn)一下,即下好之后將電腦和模塊之間用網(wǎng)線連接好,(我同時將無線,網(wǎng)絡(luò)等都關(guān)閉了,以保證此網(wǎng)絡(luò)之中只有模塊和主機兩個設(shè)備),打開cmd,ping一下我的模塊

這就證明ping通。

寄存器配置成功。

ping通只是開始,但僅僅一個ping通就已經(jīng)....這段時間的學(xué)習(xí)確實走了不少的彎路,博客,說明書,論壇,甚至到淘寶去找資料。就連C51,STM32的例程也學(xué)了一些。踉踉蹌蹌的完成了配置。

而要為了實現(xiàn)我們希望的功能咨詢了一下軟件大佬,首先是web服務(wù)器,web服務(wù)器是留在因特網(wǎng)上的程序,可以向瀏覽器等web用戶提供文檔,也可以放置文件,讓全世界瀏覽。就是網(wǎng)絡(luò)環(huán)境下的為客戶提供某種服務(wù)的專用計算機。所以我們向web服務(wù)器上發(fā)送HTTP包裝的協(xié)議,他解析分析之后再完成其他你想讓他完成的任務(wù),或者是操作。但是W5500只是整合到傳輸層,所以感到還是前路慢慢啊。

轉(zhuǎn)載注明地址

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA設(shè)計
    +關(guān)注

    關(guān)注

    9

    文章

    428

    瀏覽量

    27341
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1402

    瀏覽量

    81023
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    w5500隨機出現(xiàn)接收問題

    我現(xiàn)在用STM32F103CBT6與W5500作為TCP Server,多臺PC與服務(wù)器連接上后,服務(wù)器會實時傳輸數(shù)據(jù)到PC上,并且PC隨時能通過控制軟件發(fā)送數(shù)據(jù)至服務(wù)器。但是運行一段時間后,PC上
    發(fā)表于 05-15 09:45

    51+單片機TCP-IP+協(xié)議ZLIP源碼

    概述 單片機上網(wǎng)技術(shù),是當(dāng)前的一個熱門技術(shù)。單片機上網(wǎng)技術(shù)中的一個重要部分是在單片上實現(xiàn) TCP/IP 協(xié)議。現(xiàn)在可獲得的 TCP/
    發(fā)表于 04-22 15:11

    洲明科技榮獲第七鴿獎“年度影響力企業(yè)獎”

    近日,第七屆“鴿獎”頒獎典禮在洲明福永總部XR虛擬棚圓滿落幕。
    的頭像 發(fā)表于 12-17 11:05 ?620次閱讀

    什么是socket編程 socket與tcp/ip協(xié)議的關(guān)系

    基于TCP/IP協(xié)議族,這是一組用于網(wǎng)絡(luò)通信的協(xié)議,包括傳輸控制協(xié)議TCP)和互聯(lián)網(wǎng)
    的頭像 發(fā)表于 11-01 16:01 ?1199次閱讀

    芯驛電子 ALINX 推出全新 IP 核產(chǎn)品線,覆蓋 TCP/UDP/NVMe AXI IP

    10GBe/40GBe UDP 協(xié)議 IP 核、10GbE TCP/IP 協(xié)議
    的頭像 發(fā)表于 10-30 17:39 ?891次閱讀
     芯驛電子 ALINX 推出全新 <b class='flag-5'>IP</b> 核產(chǎn)品線,覆蓋 <b class='flag-5'>TCP</b>/UDP/NVMe AXI <b class='flag-5'>IP</b> 核

    Modbus RTU協(xié)議與Modbus TCP/IP協(xié)議的區(qū)別

    Modbus RTU和Modbus TCP/IP的本質(zhì)都是Modbus協(xié)議,都是通過Modbus寄存器地址來交換數(shù)據(jù)的,那么它們之間有什么區(qū)別呢?今天我們從以下幾個方面來探討一下。
    的頭像 發(fā)表于 10-18 17:44 ?1936次閱讀

    w5500 作為tcp server,客戶端異常發(fā)送【RST,ACK】斷開連接問題

    測試1 w5500 作為tcp server,上位機labveiw程序作為clinet,正常第二次交互結(jié)束后,客戶端發(fā)送一個【RST,ACK】報文斷開了連接; (1)使用wireshark抓取
    發(fā)表于 10-14 14:01

    TCP協(xié)議是什么

    在網(wǎng)絡(luò)通信的廣闊領(lǐng)域中,TCP(Transmission Control Protocol,傳輸控制協(xié)議)扮演著舉足輕重的角色。作為TCP/IP協(xié)議
    的頭像 發(fā)表于 10-09 13:54 ?1789次閱讀

    Linux網(wǎng)絡(luò)協(xié)議的實現(xiàn)

    網(wǎng)絡(luò)協(xié)議是操作系統(tǒng)核心的一個重要組成部分,負(fù)責(zé)管理網(wǎng)絡(luò)通信中的數(shù)據(jù)包處理。在 Linux 操作系統(tǒng)中,網(wǎng)絡(luò)協(xié)議(Network Stack)負(fù)責(zé)實現(xiàn)
    的頭像 發(fā)表于 09-10 09:51 ?691次閱讀
    Linux網(wǎng)絡(luò)<b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b>的實現(xiàn)

    EtherNet/IP轉(zhuǎn)Modbus-TCP協(xié)議網(wǎng)關(guān)(EtherNet/IP轉(zhuǎn)Modbus-TCP

    /IP轉(zhuǎn)Modbus TCP從站協(xié)議網(wǎng)關(guān),可以實現(xiàn)對這些設(shè)備的集中管理和控制。 二,典型應(yīng)用拓?fù)鋱D 三,設(shè)備技術(shù)參數(shù) 捷米特JM-EIP-TCP設(shè)備在Et
    的頭像 發(fā)表于 09-04 11:09 ?856次閱讀
    EtherNet/<b class='flag-5'>IP</b>轉(zhuǎn)Modbus-<b class='flag-5'>TCP</b><b class='flag-5'>協(xié)議</b>網(wǎng)關(guān)(EtherNet/<b class='flag-5'>IP</b>轉(zhuǎn)Modbus-<b class='flag-5'>TCP</b>)

    串口服務(wù)器和TCP/IP協(xié)議是什么關(guān)系

    串口服務(wù)器與TCP/IP協(xié)議之間存在著緊密而復(fù)雜的關(guān)系。這種關(guān)系主要體現(xiàn)在串口服務(wù)器如何利用TCP/I
    的頭像 發(fā)表于 08-25 17:35 ?2126次閱讀

    嵌入式學(xué)習(xí)-常見的shell命令之網(wǎng)絡(luò)相關(guān)命令

    介質(zhì),通信端點之間的硬件物理接口,設(shè)備之間以比特流進行傳輸。該層主要與硬件相關(guān),確定了與物理接口的一些特性,如電氣特性、功能特性等。2)TCP/IP四層模型
    發(fā)表于 08-21 09:41

    一文了解TCP/IP協(xié)議

    TCP/IP協(xié)議是現(xiàn)代計算機網(wǎng)絡(luò)通信的基礎(chǔ),是互聯(lián)網(wǎng)及局域網(wǎng)廣泛使用的一套協(xié)議。TCP/IP
    的頭像 發(fā)表于 08-07 15:38 ?3516次閱讀
    一文了解<b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b><b class='flag-5'>協(xié)議</b>

    華納云:TCP IP協(xié)議的發(fā)展和優(yōu)勢

    TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議)是互聯(lián)網(wǎng)和現(xiàn)代計算機網(wǎng)絡(luò)的基礎(chǔ)
    的頭像 發(fā)表于 07-25 16:49 ?839次閱讀

    TCP IP協(xié)議屬性設(shè)置中的IP配置

    在現(xiàn)代網(wǎng)絡(luò)中,TCP/IP協(xié)議是基礎(chǔ)架構(gòu)的重要組成部分。掌握TCP/IP協(xié)議屬性設(shè)置中的
    的頭像 發(fā)表于 07-23 10:10 ?1025次閱讀