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

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

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

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

全硬件TCP/IP協(xié)議棧學(xué)習(xí)筆記 (第八天:W5500+FPGA實(shí)現(xiàn)tcp連接)

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

掃碼添加小助手

加入工程師交流群

經(jīng)歷了一個(gè)多月的調(diào)試,最終終于使用basys2將tcp模式配置成功了。

首先說一下思路吧,首先W5500的發(fā)送與接收與開發(fā)板的通信使用的是SPI協(xié)議,下降沿發(fā)送,上升沿接收。每次發(fā)送的數(shù)據(jù)格式為前十六位為地址位,之后五位為寄存器區(qū)的選塊,例如常用的為5‘b00000為通用寄存器區(qū),5’b00001為socket1寄存器區(qū)。接下來一位為讀寫操作位,0為讀數(shù)據(jù),1為寫數(shù)據(jù)。接下來兩位是SPI模式選擇,00代表使用SCSN信號(hào)確定位寬,01代表一位字長(zhǎng)(八個(gè)二進(jìn)制數(shù)),10代表兩位字長(zhǎng)(十六個(gè)二進(jìn)制數(shù)),11代表四位字長(zhǎng)(32個(gè)二進(jìn)制數(shù))。隨后便是和之前字長(zhǎng)相匹配的數(shù)據(jù)位。格式如下:

0000000000000000_ 00000__1_01_00000000

地址位 寄存器區(qū) 寫 一位字長(zhǎng) 數(shù)據(jù)

在發(fā)送數(shù)據(jù)與接收數(shù)據(jù)的時(shí)候,要保證數(shù)據(jù)位和SCK信號(hào)沿對(duì)其,同時(shí)要保證SCSN為低電平。具體的SPI發(fā)送可以參考之前的博客。

說完了發(fā)送的格式,接下來我們來說一說發(fā)送的數(shù)據(jù)。

首先我們要明確我們要配置數(shù)據(jù),我們要發(fā)送我們的IP,GATEWAY,MAC,端口以及目的IP,端口。實(shí)際上我們講的發(fā)送應(yīng)該是配置寄存器,我們是在將我們發(fā)送所必須的信息寫入寄存器中。在發(fā)送數(shù)據(jù)之前我們要首先將我們W5500通過外邊的接口硬復(fù)位,之后對(duì)模式寄存器進(jìn)行讀操作,直到模式寄存器的最低位為0時(shí),即復(fù)位完成,我們?cè)谶M(jìn)行其他的寫入操作。在復(fù)位結(jié)束之后,我們可以將IP,MAC,GATEWAY等數(shù)據(jù)寫入對(duì)應(yīng)的寄存器中,具體的寄存器地址和所屬寄存器區(qū)具體參看W5500的手冊(cè),里邊的東西都寫的非常清楚。

在配置完成這些之后,我們對(duì)socket1 mode即1端口的模式選擇寄存器進(jìn)行書寫,將W5500模式選擇為TCP模式。具體的操作為將對(duì)應(yīng)的后三位寫入為001。之后再對(duì)該寄存器進(jìn)行讀操作,以此來確定模塊卻是在TCP模式運(yùn)行。確認(rèn)之后開始配置目標(biāo)IP,端口,最大字長(zhǎng)等信息。之所以先配置TCP模式是因?yàn)槲覀兒筮吪渲玫募拇嫫鞫紝儆诙丝诩拇嫫鲄^(qū),而我們?cè)谂渲弥皯?yīng)先配置模式寄存器。

完成這些配置之后,我們來接觸兩個(gè)很特殊但是也很重要的寄存器,一個(gè)是CR寄存器,另一個(gè)是SR寄存器(原諒我平板打字實(shí)在不想寫全稱了)。在我們完成以上基礎(chǔ)的寄存器配置之后,我們對(duì)CR寄存器寫入對(duì)應(yīng)特定的值,該值可以讓模塊進(jìn)行對(duì)應(yīng)的操作。而我們要知道該操作是否完成,我們就要對(duì)SR寄存器進(jìn)行讀操作,讀出的對(duì)應(yīng)值代表模塊當(dāng)前所處在的模式狀態(tài)。如我們最初對(duì)CR寄存器寫入值0x01,表示我們將模塊設(shè)置為TCP,之后我們對(duì)SR寄存器進(jìn)行讀操作,如果讀出的值是0x13,那么代表模塊當(dāng)前處在TCP客戶端模式,我們即可進(jìn)行下一步操作。我們之后再進(jìn)行對(duì)應(yīng)的操作,例如要將模塊設(shè)置為偵聽狀態(tài)下,將CR寄存器寫入0x04,讀SR寄存器值為0x17即為處在偵聽狀態(tài)。接下來我們對(duì)發(fā)送區(qū)讀指針寄存器讀操作來獲取當(dāng)前讀指針,隨后根據(jù)讀指針讀出的數(shù)據(jù)將我們要發(fā)送的數(shù)據(jù)寫入到發(fā)送緩存即可。這樣就完成了數(shù)據(jù)的發(fā)送。

這樣,我們將配置的大概思路講完了。

設(shè)計(jì)模塊如下

在具體書寫時(shí),我將SPI發(fā)送與接收寫在了一個(gè)模塊,而且發(fā)送與接收都只是發(fā)送8位和接收8位。SCSN信號(hào)是在該模塊中產(chǎn)生,具體發(fā)送與接收都是使用狀態(tài)機(jī)來書寫,SCSN信號(hào)在發(fā)送第一位的時(shí)候拉低,最后一位發(fā)送結(jié)束之后拉高。(注意,是發(fā)送結(jié)束之后不是發(fā)送最后一位時(shí)就拉低。)SPI發(fā)送與接收部分就結(jié)束了,在書寫時(shí)要注意接收條件為SCSN信號(hào)為低信號(hào)同時(shí)SCK信號(hào)的上升沿,發(fā)送的條件是SCSN信號(hào)為低同時(shí)SCK信號(hào)的下降沿。

8位發(fā)送數(shù)據(jù)波形如下

我們將要發(fā)送的信息寫在一個(gè)狀態(tài)機(jī)模塊中,通過狀態(tài)機(jī)來實(shí)現(xiàn)發(fā)送信息的按順序發(fā)送。我們將每次發(fā)送的信息按照8位來拆解,想對(duì)應(yīng)的想發(fā)送一位時(shí)就要發(fā)送總共32位,和下來就是發(fā)送四段。兩位時(shí)發(fā)送五段,四位時(shí)發(fā)送7段。相應(yīng)的讀操作也是一樣,由于我在我所做的項(xiàng)目中所需讀的數(shù)據(jù)均為一個(gè)字長(zhǎng),即為8位,所以我只寫了讀一個(gè)字長(zhǎng)的操作。拆解的過程就是移位加取高8位,另加一個(gè)計(jì)數(shù)器即可完成。而每次發(fā)送的觸發(fā)信號(hào)即為上邊的SPI控制模塊在接受或者發(fā)送結(jié)束后發(fā)送的結(jié)束信號(hào)。當(dāng)接收到發(fā)送或接收的結(jié)束信號(hào),即可將下一個(gè)8位數(shù)據(jù)傳輸給SPI控制模塊。

最后我寫了一個(gè)同步FIFO來將幾個(gè)拆分的幾位數(shù)據(jù)合并。

合并之后波形如下

其實(shí)最初這個(gè)FIFO是用來救場(chǎng)的,由于最初書寫的時(shí)候沒有認(rèn)真的研究說明書,想成每次發(fā)送8位,后來意識(shí)到這件事情的時(shí)候時(shí)間有些緊張,就想寫一個(gè)FIFO來救個(gè)場(chǎng),就過再后來做的時(shí)候,發(fā)現(xiàn)實(shí)際上是因禍得福,這種書寫方式可以有效的減少資源,而且在SPI控制模塊也會(huì)更加簡(jiǎn)單,在最后糾錯(cuò)時(shí)也好找錯(cuò)誤字段。

到此,設(shè)計(jì)思路和配置思路均結(jié)束。這幾天還是有些忙,稍后把仿真圖補(bǔ)一下吧。等到元旦后期末結(jié)束了認(rèn)認(rèn)真真的將W5500數(shù)據(jù)傳輸從硬件連接到網(wǎng)絡(luò)編程寫一篇大報(bào)告分享出來。

最后,說個(gè)心聲吧,從ping通到今天完成,足足過了5,6這五六周,有躊躇滿志,更多的是茫然無措。但是我就決定一定要做出來。現(xiàn)在完成之后激動(dòng)的都不想睡覺了抓緊時(shí)間總結(jié)發(fā)出來。代碼量對(duì)于我來說感覺仿佛突破了自己,風(fēng)格可能還很稚嫩,但是真的很有成就感。尤其是在一個(gè)問題卡住了2周多的時(shí)間結(jié)果一個(gè)偶然發(fā)現(xiàn)是配置管腳的UCF錯(cuò)了但時(shí)候,恨透了愚蠢的自己。這段時(shí)間的學(xué)習(xí)真的收獲了太多了,感謝這段時(shí)間的自己。

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

    關(guān)注

    9

    文章

    429

    瀏覽量

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

    關(guān)注

    8

    文章

    1412

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

    實(shí)現(xiàn)EtherNet/IP網(wǎng)絡(luò)與Modbus TCP網(wǎng)絡(luò)之間數(shù)據(jù)互通

    硬件連接與配置 使用工業(yè)以太網(wǎng)網(wǎng)關(guān)(如ENE-350)作為橋接設(shè)備,通過以太網(wǎng)交換機(jī)實(shí)現(xiàn)硬件互聯(lián)。 網(wǎng)關(guān)需根據(jù)應(yīng)用場(chǎng)景配置為EtherNet/IP
    的頭像 發(fā)表于 08-06 13:48 ?413次閱讀
    <b class='flag-5'>實(shí)現(xiàn)</b>EtherNet/<b class='flag-5'>IP</b>網(wǎng)絡(luò)與Modbus <b class='flag-5'>TCP</b>網(wǎng)絡(luò)之間數(shù)據(jù)互通

    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í)零代碼開發(fā)平臺(tái),其內(nèi)置的
    的頭像 發(fā)表于 08-03 22:20 ?740次閱讀
    GraniStudio : <b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b>(Socket)<b class='flag-5'>協(xié)議</b>深度剖析

    什么是Modbus TCP協(xié)議

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

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

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

    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 ?587次閱讀
    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實(shí)現(xiàn)三菱變頻器與制造執(zhí)行系統(tǒng)連接通訊的配置案例

    EtherNet/IP轉(zhuǎn)Modbus TCP實(shí)現(xiàn)三菱變頻器與制造執(zhí)行系統(tǒng)連接通訊的配置案例 一、案例背景 在一家汽車零部件生產(chǎn)工廠,有一批三菱變頻器用于控制生產(chǎn)設(shè)備的電機(jī)轉(zhuǎn)速,如車床、
    的頭像 發(fā)表于 02-11 10:26 ?900次閱讀
    EtherNet/<b class='flag-5'>IP</b>轉(zhuǎn)Modbus <b class='flag-5'>TCP</b><b class='flag-5'>實(shí)現(xiàn)</b>三菱變頻器與制造執(zhí)行系統(tǒng)<b class='flag-5'>連接</b>通訊的配置案例

    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 ?513次閱讀
    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ù)分析的配置案例

    調(diào)試TCP協(xié)議連接的常用工具

    Wireshark 是一個(gè)開源的網(wǎng)絡(luò)協(xié)議分析器,它可以捕獲和分析網(wǎng)絡(luò)上的數(shù)據(jù)包。Wireshark 支持多種協(xié)議,包括TCP/IP、HTTP、FTP等,是調(diào)試
    的頭像 發(fā)表于 01-22 09:59 ?4834次閱讀

    如何優(yōu)化TCP協(xié)議的性能

    優(yōu)化TCP協(xié)議的性能可以從多個(gè)方面入手,以下是一些關(guān)鍵的策略和方法: 一、調(diào)整TCP參數(shù) TCP窗口大小 : 重要性 :TCP窗口大小是衡量
    的頭像 發(fā)表于 01-22 09:52 ?1256次閱讀

    TCP協(xié)議與UDP協(xié)議的區(qū)別

    1. 連接TCP(傳輸控制協(xié)議) : 面向連接 :在數(shù)據(jù)傳輸之前,TCP需要建立一個(gè)連接,這
    的頭像 發(fā)表于 01-22 09:44 ?1400次閱讀

    什么是TCP協(xié)議及其工作原理

    協(xié)議之一。它提供了一種可靠的、有序的、基于字節(jié)流的數(shù)據(jù)傳輸服務(wù)。TCP協(xié)議的主要特點(diǎn)包括: 面向連接 :在數(shù)據(jù)傳輸之前,TCP需要在通信雙方
    的頭像 發(fā)表于 01-22 09:41 ?1823次閱讀

    什么是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 ?1541次閱讀

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

    10GBe/40GBe UDP 協(xié)議 IP 核、10GbE TCP/IP 協(xié)議
    的頭像 發(fā)表于 10-30 17:39 ?1184次閱讀
     芯驛電子 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ū)別呢?今天我們從以下幾個(gè)方面來探討一下。
    的頭像 發(fā)表于 10-18 17:44 ?2459次閱讀