国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

2)配置了W5500的IP,網關,子網掩碼,MAC地址這些特殊寄存器

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

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

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

下面我們開始動手

器件選擇basys2,開發環境ISE,以及野火的W5500網絡擴展模塊

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

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

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

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

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

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

W5500支持數據的連續讀寫。其流程為數據從偏移地址的基位會自增尋址加1傳輸接下來的數據。

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

所以我們在開啟第一件事就是配置寄存器,而我們處理發送的順序為PHY_MODE,MAC address,IP address,gateway_address(網關地址),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。

好了,我們現在配置的協議了解了,順序也已經了解了,而按順序發送即使用SPI在每一個上升沿發送,在下降沿讀取。發送的內容以及SPI_clk我們選擇使用有限狀態機來實現。那我們下一步就來理順一下狀態轉移。

首先我們設置出幾個狀態,按其功能進行命名

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

2.狀態轉入STATE_SENDING_COMMAND,spi_clk信號取反,即拉高,狀態沒有變化。

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

反復執行這兩個狀態,到spi_clk_count 加到32時,各項狀態仍和3是一樣,經過了32x2個系統時鐘

4.狀態依然在STATE_AEND_COMMAND,只是將spi_chip_select_n拉高為1;此時is_initialized信號為初始值0,,此時將狀態轉換為STATE_INITIALIZING

狀態再次到達1,此種狀態一直重復直到將29個數據全部發送完畢。依次發送的是PHY_MODE,MAC address,IP address,gateway_address(網關地址),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。

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

這就是狀態轉移的基本思路

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

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

完成之后進行仿真,

訂對后發現和我們想要的都一樣,仿真即通過。

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

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

這就證明ping通。

寄存器配置成功。

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

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

轉載注明地址

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA設計
    +關注

    關注

    9

    文章

    431

    瀏覽量

    28138
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1424

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    TCP/IP(Socket)協議深度剖析

    TCP/IP協議作為互聯網通信的基礎架構,其核心機制Socket編程承載著全球數據交換的使命。本文將深入剖析這一協議層架構、三次握手與四
    的頭像 發表于 03-03 17:06 ?461次閱讀

    零知IDE——基于STM32與W5500的UDP通信實現溫濕度監控

    ,網關和DNS強制指向PC的以太網IP;同時網段檢測邏輯 一、系統硬件部分1.1 元件清單[td]硬件名稱數量備注 零知增強板(STM32F407VET6)1主控核心板 W5500
    發表于 02-28 16:08

    疆鴻智能一鍵打通EtherCAT轉Modbus TCP/IP,汽車制造鏈透明

    疆鴻智能一鍵打通EtherCAT轉Modbus TCP/IP,汽車制造鏈透明 一、案例背景 在現代汽車制造體系中,各生產環節常采用異構的工業網絡協議。以某新能源汽車焊裝車間為例,其機
    的頭像 發表于 01-06 15:37 ?199次閱讀

    為什么會有TCP/IP協議?

    見了面,完全不能交流信息。因而他們需要定義一些共通的東西來進行交流,TCP/IP就是為此而生。TCP/IP不是一個協議,而是一個
    發表于 12-03 06:28

    STM32驅動W5500作為客戶端進行通訊

    SR-ES1內嵌Wiznet的W5500芯片,使用硬件邏輯門電路實現TCP/IP協議的傳輸層及
    的頭像 發表于 10-14 17:19 ?1338次閱讀
    STM32驅動<b class='flag-5'>W5500</b>作為客戶端進行通訊

    w5500dhcp無法獲取ip怎么解決?

    spi驅動w5500,mac地址寫入讀取成功,但是獲取的ip、子網掩碼都是0;
    發表于 09-26 06:58

    rtthread網絡接口設備 輕量級tcp/ip 堆棧 這兩個沖突嗎?

    需要使用 lwip 上圖中 網絡接口設備 需要使能么? 上圖中 網絡接口設備 是干嘛用的?是一個比lwip 功能弱的tcp/ip 協議么?
    發表于 09-18 06:16

    自動駕駛中常提的“”是個啥?有必要“”嗎?

    和應用,涵蓋從底層硬件、感知算法、高精地圖、定位與融合,到決策規劃、控制執行、軟件平臺,乃至整車集成與云端服務的完整鏈條。對于希望在激烈的市場競爭中占據一席之地的車企和科技公司來說,似乎代表了掌握核心競爭
    的頭像 發表于 08-27 09:43 ?1145次閱讀
    自動駕駛中常提的“<b class='flag-5'>全</b><b class='flag-5'>棧</b>”是個啥?有必要“<b class='flag-5'>全</b><b class='flag-5'>棧</b>”嗎?

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

    在工業自動化與物聯網領域,TCP/IP(Socket)協議作為應用最廣泛的網絡通信標準,是實現設備間數據交互的核心技術。GraniStudio 軟件作為工業級零代碼開發平臺,其內置的 TCP
    的頭像 發表于 08-03 22:20 ?1188次閱讀
    GraniStudio : <b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b>(Socket)<b class='flag-5'>協議</b>深度剖析

    第十六章 W55MH32 PING示例

    本文講解了如何在 W55MH32?芯片上通過 IPRAW?模式實現 ICMP?協議中的 PING?命令,以進行網絡連通性測試,通過實戰例程展示了從發送 PING?請求、接收并解析回復到
    的頭像 發表于 07-24 11:41 ?974次閱讀
    第十六章 <b class='flag-5'>W</b>55MH32 <b class='flag-5'>PING</b>示例

    什么是Modbus TCP協議

    TCP/IP協議,通過以太網進行通信,并支持多個設備同時訪問同一個Modbus TCP服務器。 一、
    的頭像 發表于 07-23 17:18 ?4271次閱讀
    什么是Modbus <b class='flag-5'>TCP</b><b class='flag-5'>協議</b>

    生物制藥自動化升級:Modbus TCP與Ethernet/IP協議轉換實踐

    Ethernet/IP),直接通信存在障礙。為此通過穩聯技術的Modbus TCP與Ethernet/IP網關,實現兩種協議的無縫轉換,確保數據實時交互和設備精準控制。 1、打開RSL
    的頭像 發表于 06-17 18:34 ?614次閱讀
    生物制藥自動化升級:Modbus <b class='flag-5'>TCP</b>與Ethernet/<b class='flag-5'>IP</b><b class='flag-5'>協議</b>轉換實踐

    w5500隨機出現接收問題

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

    51+單片機TCP-IP+協議ZLIP源碼

    概述 單片機上網技術,是當前的一個熱門技術。單片機上網技術中的一個重要部分是在單片上實現 TCP/IP 協議?,F在可獲得的 TCP/
    發表于 04-22 15:11

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

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