chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

W5500 若想Ping通的話需要保證以下2點(diǎn):

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

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

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

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

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

下面我們開(kāi)始動(dòng)手

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

根據(jù)W5500的說(shuō)明書(shū),我們通過(guò)SPI協(xié)議來(lái)完成與W5500的通信,共有SCSn,SCLK,MOSI,MISO4路信號(hào),且作為SPI從機(jī)工作。其工作方式有可變長(zhǎng)度模式和固定數(shù)據(jù)長(zhǎng)度

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

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

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

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

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

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

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

所以我們?cè)陂_(kāi)啟第一件事就是配置寄存器,而我們處理發(fā)送的順序?yàn)镻HY_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在每一個(gè)上升沿發(fā)送,在下降沿讀取。發(fā)送的內(nèi)容以及SPI_clk我們選擇使用有限狀態(tài)機(jī)來(lái)實(shí)現(xiàn)。那我們下一步就來(lái)理順一下?tīng)顟B(tài)轉(zhuǎn)移。

首先我們?cè)O(shè)置出幾個(gè)狀態(tài),按其功能進(jìn)行命名

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

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

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

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

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

狀態(tài)再次到達(dá)1,此種狀態(tài)一直重復(fù)直到將29個(gè)數(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之間的時(shí)候,由于相對(duì)于clk,spi_clk實(shí)質(zhì)上是clk的二分頻,所以對(duì)clk的上升沿的檢測(cè)就是對(duì)spi_clk的所有沿的檢測(cè),在上升沿 處讀取數(shù)據(jù),由高位到低位進(jìn)行讀取。在下降沿處發(fā)送數(shù)據(jù),每次發(fā)送一位一位,同樣從高位到低位進(jìn)行發(fā)送。將最后一組數(shù)據(jù)發(fā)送結(jié)束之后,waiting _for_socket賦值給1, 初始化的data_read為7個(gè)0,之后一直在等待套接字的狀態(tài)

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

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

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

完成之后進(jìn)行仿真,

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

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

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

這就證明ping通。

寄存器配置成功。

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

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

轉(zhuǎn)載注明地址

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

    關(guān)注

    9

    文章

    429

    瀏覽量

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

    關(guān)注

    8

    文章

    1418

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    為什么會(huì)有TCP/IP協(xié)議?

    見(jiàn)了面,完全不能交流信息。因而他們需要定義一些共通的東西來(lái)進(jìn)行交流,TCP/IP就是為此而生。TCP/IP不是一個(gè)協(xié)議,而是一個(gè)
    發(fā)表于 12-03 06:28

    STM32驅(qū)動(dòng)W5500作為客戶端進(jìn)行通訊

    SR-ES1內(nèi)嵌Wiznet的W5500芯片,使用硬件邏輯門(mén)電路實(shí)現(xiàn)TCP/IP協(xié)議的傳輸層及
    的頭像 發(fā)表于 10-14 17:19 ?1023次閱讀
    STM32驅(qū)動(dòng)<b class='flag-5'>W5500</b>作為客戶端進(jìn)行通訊

    w5500dhcp無(wú)法獲取ip怎么解決?

    spi驅(qū)動(dòng)w5500,mac地址寫(xiě)入讀取成功,但是獲取的ip、子網(wǎng)掩碼都是0;
    發(fā)表于 09-26 06:58

    rtthread網(wǎng)絡(luò)接口設(shè)備 輕量級(jí)tcp/ip 堆棧 這兩個(gè)沖突嗎?

    需要使用 lwip 上圖中 網(wǎng)絡(luò)接口設(shè)備 需要使能么? 上圖中 網(wǎng)絡(luò)接口設(shè)備 是干嘛用的?是一個(gè)比lwip 功能弱的tcp/ip 協(xié)議么?
    發(fā)表于 09-18 06:16

    GraniStudio : TCP/IP(Socket)協(xié)議深度剖析

    在工業(yè)自動(dòng)化與物聯(lián)網(wǎng)領(lǐng)域,TCP/IP(Socket)協(xié)議作為應(yīng)用最廣泛的網(wǎng)絡(luò)通信標(biāo)準(zhǔn),是實(shí)現(xiàn)設(shè)備間數(shù)據(jù)交互的核心技術(shù)。GraniStudio 軟件作為工業(yè)級(jí)零代碼開(kāi)發(fā)平臺(tái),其內(nèi)置的 TCP
    的頭像 發(fā)表于 08-03 22:20 ?933次閱讀
    GraniStudio : <b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b>(Socket)<b class='flag-5'>協(xié)議</b>深度剖析

    第十六章 W55MH32 PING示例

    本文講解了如何在 W55MH32?芯片上通過(guò) IPRAW?模式實(shí)現(xiàn) ICMP?協(xié)議中的 PING?命令,以進(jìn)行網(wǎng)絡(luò)連通性測(cè)試,通過(guò)實(shí)戰(zhàn)例程展示了從發(fā)送 PING?請(qǐng)求、接收并解析回復(fù)到
    的頭像 發(fā)表于 07-24 11:41 ?543次閱讀
    第十六章 <b class='flag-5'>W</b>55MH32 <b class='flag-5'>PING</b>示例

    什么是Modbus TCP協(xié)議

    TCP/IP協(xié)議,通過(guò)以太網(wǎng)進(jìn)行通信,并支持多個(gè)設(shè)備同時(shí)訪問(wèn)同一個(gè)Modbus TCP服務(wù)器。 一、
    的頭像 發(fā)表于 07-23 17:18 ?3426次閱讀
    什么是Modbus <b class='flag-5'>TCP</b><b class='flag-5'>協(xié)議</b>

    生物制藥自動(dòng)化升級(jí):Modbus TCP與Ethernet/IP協(xié)議轉(zhuǎn)換實(shí)踐

    Ethernet/IP),直接通信存在障礙。為此通過(guò)穩(wěn)聯(lián)技術(shù)的Modbus TCP與Ethernet/IP網(wǎng)關(guān),實(shí)現(xiàn)兩種協(xié)議的無(wú)縫轉(zhuǎn)換,確保數(shù)據(jù)實(shí)時(shí)交互和設(shè)備精準(zhǔn)控制。 1、打開(kāi)RSL
    的頭像 發(fā)表于 06-17 18:34 ?427次閱讀
    生物制藥自動(dòng)化升級(jí):Modbus <b class='flag-5'>TCP</b>與Ethernet/<b class='flag-5'>IP</b><b class='flag-5'>協(xié)議</b>轉(zhuǎn)換實(shí)踐

    w5500隨機(jī)出現(xiàn)接收問(wèn)題

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

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

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

    谷歌第七代TPU Ironwood深度解讀:AI推理時(shí)代的硬件革命

    谷歌第七代TPU Ironwood深度解讀:AI推理時(shí)代的硬件革命 Google 發(fā)布了 Ironwood,這是其第七代張量處理單元 (TPU),專為推理而設(shè)計(jì)。這款功能強(qiáng)大的 AI 加速器旨在處理
    的頭像 發(fā)表于 04-12 11:10 ?3039次閱讀
    谷歌<b class='flag-5'>第七</b>代TPU Ironwood深度解讀:AI推理時(shí)代的<b class='flag-5'>硬件</b>革命

    EtherNet/IP轉(zhuǎn)Modbus TCP:新能源風(fēng)電監(jiān)控與分析實(shí)用案例

    的控制系統(tǒng)、變流器等采用 MODBUS TCP 協(xié)議的設(shè)備以及基于 EtherNet/IP 協(xié)議的遠(yuǎn)程監(jiān)控系統(tǒng)和數(shù)據(jù)分析系統(tǒng)均已正常運(yùn)行且網(wǎng)絡(luò)連接正常。 二、
    的頭像 發(fā)表于 02-17 15:54 ?713次閱讀
    EtherNet/<b class='flag-5'>IP</b>轉(zhuǎn)Modbus <b class='flag-5'>TCP</b>:新能源風(fēng)電監(jiān)控與分析實(shí)用案例

    EtherNet/IP轉(zhuǎn)Modbus TCP在新能源風(fēng)力發(fā)電場(chǎng)遠(yuǎn)程監(jiān)控與數(shù)據(jù)分析的配置案例

    到風(fēng)電場(chǎng)的局域網(wǎng)。確保風(fēng)力發(fā)電機(jī)組的控制系統(tǒng)、變流器等采用 MODBUS TCP 協(xié)議的設(shè)備以及基于 EtherNet/IP 協(xié)議的遠(yuǎn)程監(jiān)控系統(tǒng)和數(shù)據(jù)分析系統(tǒng)均已正常運(yùn)行且網(wǎng)絡(luò)連接正常
    的頭像 發(fā)表于 02-10 15:54 ?633次閱讀
    EtherNet/<b class='flag-5'>IP</b>轉(zhuǎn)Modbus <b class='flag-5'>TCP</b>在新能源風(fēng)力發(fā)電場(chǎng)遠(yuǎn)程監(jiān)控與數(shù)據(jù)分析的配置案例

    ALINX發(fā)布100G以太網(wǎng)UDP/IP協(xié)議IP

    ALINX近日宣布,基于AMD 100G以太網(wǎng)MAC IP,成功開(kāi)發(fā)出全新的100G以太網(wǎng)UDP/IP協(xié)議IP核。該
    的頭像 發(fā)表于 01-07 11:25 ?1200次閱讀

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

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