精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

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

學FPGA,慢慢來 ? 2017-12-18 10:28 ? 次閱讀

經歷了一個多月的調試,最終終于使用basys2將tcp模式配置成功了。

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

0000000000000000_ 00000__1_01_00000000

地址位 寄存器區 寫 一位字長 數據

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

說完了發送的格式,接下來我們來說一說發送的數據。

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

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

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

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

設計模塊如下

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

8位發送數據波形如下

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

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

合并之后波形如下

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

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

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

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

    關注

    9

    文章

    428

    瀏覽量

    26485
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1350

    瀏覽量

    78986
收藏 人收藏

    評論

    相關推薦

    什么是socket編程 socket與tcp/ip協議的關系

    基于TCP/IP協議族,這是一組用于網絡通信的協議,包括傳輸控制協議TCP)和互聯網
    的頭像 發表于 11-01 16:01 ?165次閱讀

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

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

    TCP協議是什么

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

    EtherNet/IP主站轉Modbus-TCP協議網關

    捷米特JM-EIPM-TCP網關實現連接EtherNet/IP設備和網絡到Modbus TCP網絡系統。該網關可
    的頭像 發表于 09-25 11:49 ?208次閱讀
    EtherNet/<b class='flag-5'>IP</b>主站轉Modbus-<b class='flag-5'>TCP</b><b class='flag-5'>協議</b>網關

    EtherNet/IP轉Modbus-TCP協議網關(EtherNet/IP轉Modbus-TCP

    /IP轉Modbus TCP從站協議網關,可以實現對這些設備的集中管理和控制。 二,典型應用拓撲圖 三,設備技術參數 捷米特JM-EIP-TCP
    的頭像 發表于 09-04 11:09 ?320次閱讀
    EtherNet/<b class='flag-5'>IP</b>轉Modbus-<b class='flag-5'>TCP</b><b class='flag-5'>協議</b>網關(EtherNet/<b class='flag-5'>IP</b>轉Modbus-<b class='flag-5'>TCP</b>)

    串口服務器和TCP/IP協議是什么關系

    串口服務器與TCP/IP協議之間存在著緊密而復雜的關系。這種關系主要體現在串口服務器如何利用TCP/I
    的頭像 發表于 08-25 17:35 ?1445次閱讀

    一文了解TCP/IP協議

    TCP/IP協議是現代計算機網絡通信的基礎,是互聯網及局域網廣泛使用的一套協議TCP/IP
    的頭像 發表于 08-07 15:38 ?1264次閱讀
    一文了解<b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b><b class='flag-5'>協議</b>

    華納云:TCP IP協議的發展和優勢

    TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協議/互聯網協議)是互聯網和現代計算機網絡的基礎
    的頭像 發表于 07-25 16:49 ?448次閱讀

    TCP IP協議屬性設置中的IP配置

    在現代網絡中,TCP/IP協議是基礎架構的重要組成部分。掌握TCP/IP協議屬性設置中的
    的頭像 發表于 07-23 10:10 ?448次閱讀

    TCP/IP協議的設計與實現_中文

    電子發燒友網站提供《TCP/IP協議的設計與實現_中文.pdf》資料免費下載
    發表于 07-03 11:28 ?4次下載

    LwIP協議源碼詳解—TCP/IP協議實現

    電子發燒友網站提供《LwIP協議源碼詳解—TCP/IP協議實現.pdf》資料免費下載
    發表于 07-03 11:22 ?3次下載

    Microchip TCP/IP 協議應用筆記

    電子發燒友網站提供《Microchip TCP/IP 協議應用筆記.pdf》資料免費下載
    發表于 04-17 14:16 ?1次下載

    ethernetif_input和tcpip協議線程的作用

    tcpip協議線程是lwIP協議的核心線程,負責處理TCP/IP
    的頭像 發表于 03-20 10:01 ?1210次閱讀

    利用 MPLAB? Harmony v3 TCP/IP協議在SAM E54 MCU 上實現文件傳輸協議

    電子發燒友網站提供《利用 MPLAB? Harmony v3 TCP/IP協議在SAM E54 MCU 上實現文件傳輸
    發表于 12-18 11:03 ?0次下載
    利用 MPLAB? Harmony v3 <b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b><b class='flag-5'>協議</b><b class='flag-5'>棧</b>在SAM E54 MCU 上<b class='flag-5'>實現</b>文件傳輸<b class='flag-5'>協議</b>

    tcp/ip協議包含哪幾層?tcp和udp有什么區別?

    tcp/ip協議包含哪幾層?tcp和udp有什么區別? TCP/IP
    的頭像 發表于 11-29 17:40 ?1073次閱讀