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

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

經(jīng)歷了一個多月的調(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信號確定位寬,01代表一位字長(八個二進制數(shù)),10代表兩位字長(十六個二進制數(shù)),11代表四位字長(32個二進制數(shù))。隨后便是和之前字長相匹配的數(shù)據(jù)位。格式如下:

0000000000000000_ 00000__1_01_00000000

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

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

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

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

在配置完成這些之后,我們對socket1 mode即1端口的模式選擇寄存器進行書寫,將W5500模式選擇為TCP模式。具體的操作為將對應的后三位寫入為001。之后再對該寄存器進行讀操作,以此來確定模塊卻是在TCP模式運行。確認之后開始配置目標IP,端口,最大字長等信息。之所以先配置TCP模式是因為我們后邊配置的寄存器都屬于端口寄存器區(qū),而我們在配置之前應先配置模式寄存器。

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

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

設計模塊如下

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

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

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

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

合并之后波形如下

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

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

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

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

    關注

    9

    文章

    431

    瀏覽量

    28137
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1424

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

    TCP/IP協(xié)議作為互聯(lián)網(wǎng)通信的基礎架構,其核心機制Socket編程承載著全球數(shù)據(jù)交換的使命。本文將深入剖析這一協(xié)議的七層架構、三次握手與四次揮手的精妙設計、流量控制與擁塞控制的動態(tài)平
    的頭像 發(fā)表于 03-03 17:06 ?459次閱讀

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

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

    TCP和UDP的區(qū)別

    首先概括一下基本的區(qū)別: TCP是一個面向連接的、可靠的、基于字節(jié)流的傳輸層協(xié)議。 而UDP是一個面向無連接的傳輸層協(xié)議。(就這么簡單,
    發(fā)表于 12-09 07:24

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

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

    以太網(wǎng)通訊在FPGA上的實現(xiàn)

    一、介紹在本項目由于我們需要使用PC實時的向FPGA發(fā)送將要識別的圖片,所以我們最終選擇使用以太網(wǎng)來從PC向FPGA發(fā)送圖片并暫存在DDR中,下面是對以太網(wǎng)協(xié)議硬件
    發(fā)表于 10-30 07:45

    快速掌握TCP/IP?LuatOS新手入門指南

    想快速上手TCP/IP通信卻不知從何開始?LuatOS為開發(fā)者提供了簡潔高效的開發(fā)路徑。通過本指南的實操步驟,你將發(fā)現(xiàn),實現(xiàn)網(wǎng)絡連接其實比想象中更簡單。 提到網(wǎng)絡應用,就繞不開
    的頭像 發(fā)表于 10-15 17:27 ?663次閱讀
    快速掌握<b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b>?LuatOS新手入門指南

    STM32驅(qū)動W5500作為客戶端進行通訊

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

    EtherNet/IP轉(zhuǎn)Modbus TCP網(wǎng)關,讓設備對話更簡單!

    在工業(yè)自動化與物聯(lián)網(wǎng)飛速發(fā)展的今天,不同協(xié)議設備之間的互聯(lián)互通已成為企業(yè)提升生產(chǎn)效率、實現(xiàn)智能化升級的關鍵挑戰(zhàn)。如何讓支持EtherNet/IP的PLC、伺服系統(tǒng)與基于Modbus TCP
    的頭像 發(fā)表于 09-19 16:30 ?706次閱讀
    EtherNet/<b class='flag-5'>IP</b>轉(zhuǎn)Modbus <b class='flag-5'>TCP</b>網(wǎng)關,讓設備對話更簡單!

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

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

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

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

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

    在工業(yè)自動化與物聯(lián)網(wǎng)領域,TCP/IP(Socket)協(xié)議作為應用最廣泛的網(wǎng)絡通信標準,是實現(xiàn)設備間數(shù)據(jù)交互的核心技術。GraniStudio 軟件作為工業(yè)級零代碼開發(fā)平臺,其內(nèi)置的
    的頭像 發(fā)表于 08-03 22:20 ?1187次閱讀
    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)進行通信,并支持多個設備同時訪問同一個Modbus TCP服務器。 一、
    的頭像 發(fā)表于 07-23 17:18 ?4261次閱讀
    什么是Modbus <b class='flag-5'>TCP</b><b class='flag-5'>協(xié)議</b>

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

    Ethernet/IP),直接通信存在障礙。為此通過穩(wěn)聯(lián)技術的Modbus TCP與Ethernet/IP網(wǎng)關,實現(xiàn)兩種協(xié)議的無縫轉(zhuǎn)換,確保
    的頭像 發(fā)表于 06-17 18:34 ?614次閱讀
    生物制藥自動化升級:Modbus <b class='flag-5'>TCP</b>與Ethernet/<b class='flag-5'>IP</b><b class='flag-5'>協(xié)議</b>轉(zhuǎn)換實踐

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

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

    Modbus TCP轉(zhuǎn)Profibus DP網(wǎng)關的防撞雷達應用

    工業(yè)自動化領域中,Modbus TCP和Profibus DP分別代表了兩種廣泛使用的通訊協(xié)議。Modbus TCP是一種基于TCP/IP
    的頭像 發(fā)表于 03-31 16:18 ?879次閱讀
    Modbus <b class='flag-5'>TCP</b>轉(zhuǎn)Profibus DP網(wǎng)關的防撞雷達應用