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

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

3天內不再提示

ZYNQ SOC案例開發(fā):網(wǎng)絡調試助手+W5500協(xié)議棧芯片

電子設計 ? 來源:博客園 ? 作者:沒落騎士 ? 2020-12-31 11:54 ? 次閱讀

在上一篇該系列博文中講解了MATLAB待處理數(shù)據(jù)寫入.bin二進制數(shù)據(jù)文件的過程,接下來需要將數(shù)據(jù)通過以太網(wǎng)發(fā)送到ZYNQ驗證平臺。之前了解過Xilinx公司面向DSP開發(fā)的System Generator可以通過硬件協(xié)仿真的方式,進行算法板級驗證。一個是本人不熟悉這種方式,再一個缺乏通用性,也無法在系統(tǒng)層面進行硬件驗證。當然方案有很多,熟悉上位機的朋友完全可以自己寫個軟件完成數(shù)據(jù)傳輸和算法結果對比等功能。

這里選擇最簡單的方案:在上位機通過網(wǎng)絡調試助手將數(shù)據(jù)打包并發(fā)送至以太網(wǎng)端口,ZYNQ端利用W5500硬件協(xié)議棧芯片解析數(shù)據(jù)。有人可能會說用ZYNQ這么高端的設備還使用外接協(xié)議棧芯片連接以太網(wǎng)真是浪費,這里就算是開個頭吧,只能說根據(jù)能力和現(xiàn)有條件選擇傳輸方案。如果數(shù)據(jù)量較大的場合,可考慮用LWIP開源協(xié)議?;蛑苯永?a href="http://ttokpm.com/tags/verilog/" target="_blank">verilogHDL編寫UDP/IP協(xié)議和MAC控制器的方式實現(xiàn)1000Mbps速率傳輸。

本文主要總結內容包括:TCP協(xié)議基礎 網(wǎng)絡調試助手應用事項,以及W5500的驅動移植。為了保證數(shù)據(jù)正確性,選用TCP這一可靠傳輸協(xié)議。以下介紹兩個比較淺顯易懂的博文,供沒有網(wǎng)絡和TCP協(xié)議基礎的朋友參考。(見參考鏈接1 2)

有了以上基礎知識,我們就可以正確配置網(wǎng)絡參數(shù)了。查看W5500驅動中網(wǎng)絡參數(shù)配置部分代碼:
void Load_Net_Parameters(void) {
//加載端口0的工作模式,TCP客戶端模式
S0_Mode = TCP_CLIENT; //UDP_MODE

Gateway_IP[0] = 192; //加載設備網(wǎng)關參數(shù)
Gateway_IP[1] = 168;
Gateway_IP[2] = 90;
Gateway_IP[3] = 1;

Sub_Mask[0] = 255; //加載設備子網(wǎng)掩碼
Sub_Mask[1] = 255;
Sub_Mask[2] = 255;
Sub_Mask[3] = 0;

Phy_Addr[0] = 0x0c; //加載設備物理地址(mac)
Phy_Addr[1] = 0x29;
Phy_Addr[2] = 0xab;
Phy_Addr[3] = 0x7c;
Phy_Addr[4] = 0x00;
Phy_Addr[5] = 0x01;

IP_Addr[0] = 192; //加載本設備(FPGA端)IP地址
IP_Addr[1] = 168;
IP_Addr[2] = 90;
IP_Addr[3] = 199;
//加載設備端口0(socket 0)的端口號5000
S0_Port[0] = 0x13; //十六進制 1388轉換成十進制為5000
S0_Port[1] = 0x88;

//設定的是客戶端模式
if(S0_Mode == TCP_CLIENT)
{
//加載端口0的目的(如調試用的pc機)IP地址
S0_DIP[0] = 192;
S0_DIP[1] = 168;
S0_DIP[2] = 90;
S0_DIP[3] = 188;

//加載端口0的目的(如調試用的pc機)端口號6000
S0_DPort[0] = 0x17;
S0_DPort[1] = 0x70;
}

//設定的是UDP模式,初始化給一個目的IP和端口號。
if(S0_Mode == UDP_MODE)
{
//加載端口0的目的(如調試用的pc機)IP地址
UDP_DIPR[0] = 192;
UDP_DIPR[1] = 168;
UDP_DIPR[2] = 90;
UDP_DIPR[3] = 188;
//加載端口0的目的(如調試用的pc機)端口號6000
UDP_DPORT[0] = 0x17;
UDP_DPORT[1] = 0x70;
}
}

此處將PC端作為TCP協(xié)議中服務器,ZYNQ驗證平臺視為客戶端,即為“呼叫端”。由代碼看出PC端IP地址為192.168.90.188,子網(wǎng)掩碼應設為:255.255.255.0,這樣ZYNQ與PC端在一個子網(wǎng)內,可直接通過網(wǎng)線連接。 端口號為6000。驅動中包含W5500 SPI用戶接口時序部分代碼,可簡單修改調用本人的博文《ZYNQ EMIO使用及可重用封裝》中的EMIO接口函數(shù)(見參考鏈接3)。

根據(jù)上面參數(shù)配置好PC端的IP地址 子網(wǎng)掩碼后,我們來看下網(wǎng)絡調試助手的“坑”。

o4YBAF9uKYWAYGM7AAG3E_-d-Iw518.png

基本使用沒什么可說的,網(wǎng)上教程很多。關鍵是畫紅框的部分。這里的發(fā)送周期要盡量設置大些,因為整個數(shù)據(jù)文件會被切割成多個數(shù)據(jù)包,每個包的發(fā)送和允許重傳時間由總的發(fā)送周期分配得到。如果文件較大,發(fā)送周期又設置的較小,會導致后半部分被丟棄(所設置時間只夠傳輸文件的前半部分)。RX方向接收數(shù)據(jù)時選擇接收轉向文件,注意兩點:1 接收文件的擴展名同樣要為.bin 2 不要選擇十六進制顯示,否則接收數(shù)據(jù)會變成字符串(可能是軟件bug)。

W5500的C語言驅動基于網(wǎng)上流傳的STM32版本代碼。其中應用API為Process_Socket_Data中的發(fā)送和接收函數(shù):Write_SOCK_Data_Buffer Read_SOCK_Data_Buffer。兩者內部控制讀寫指針偏移以及調用SPI接口函數(shù)完成數(shù)據(jù)傳輸,此處不進行詳述,關于W5500的C語言驅動可看教程視頻(見參考鏈接4)。最后附上環(huán)回數(shù)據(jù)的demo效果:

pIYBAF9uKYeAbG1OAAKTv_cMx78744.png

對于網(wǎng)絡傳輸部分的總結就到這里,后邊可能會考慮利用LWIP完成高速傳輸。數(shù)據(jù)傳到ZYNQ了,下一步當然是先緩存起來,再發(fā)送到PL端驗證算法模塊,這樣做的好處是可以模擬實時數(shù)據(jù)流,比如驗證通信算法和視頻處理算法時尤為適用。華麗分割線

編輯:hfy


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

    關注

    71

    文章

    2155

    瀏覽量

    120859
  • C語言
    +關注

    關注

    180

    文章

    7595

    瀏覽量

    135894
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1347

    瀏覽量

    78934
  • 子網(wǎng)掩碼

    關注

    2

    文章

    39

    瀏覽量

    11009
  • 網(wǎng)絡傳輸

    關注

    0

    文章

    135

    瀏覽量

    17360
收藏 人收藏

    評論

    相關推薦

    使用W5500模塊實現(xiàn)DHCP協(xié)議,請教一個問題

    W5500模塊發(fā)送DHCP協(xié)議中的Discovery數(shù)據(jù),抓包工具抓到了Offer數(shù)據(jù),但模塊卻收不到。使用網(wǎng)絡調試助手,UDP模式下,收
    發(fā)表于 10-16 15:40

    新華龍電子推出最新網(wǎng)絡開發(fā)板(W5100&W5500方案)

    方案?! ≤浖矫嫔钲谛氯A龍電子有限公司提供了豐富的代碼資源供用戶評估?! ?b class='flag-5'>網(wǎng)絡開發(fā)板布局:芯片特性:1、W5500全硬件TCP/IP協(xié)議
    發(fā)表于 12-17 17:22

    WIZnet W5500的特點和應用介紹

    ),使得用戶使用單芯片就能夠在他們的應用中拓展網(wǎng)絡連接。支持TCP,UDP,IPv4,ICMP,ARP,IGMP以及PPPoE協(xié)議。W5500內嵌32K字節(jié)片上緩存以供以太網(wǎng)包處理。
    發(fā)表于 05-05 13:28

    什么是網(wǎng)絡卸載?W5500中文資料

    。因此, WIZnet網(wǎng)絡芯片可以被視作為一個MCU的協(xié)處理器。即:幫助主芯片處理一部分工作,從而降低主系統(tǒng)負載,降低開發(fā)難度,提高穩(wěn)定性。W550
    發(fā)表于 06-11 14:30

    W5500模塊的使用

    以太網(wǎng)芯片w5500是WIZnet公司研發(fā)的一款超高性價比的芯片,是新一代全硬件協(xié)議的專用芯片
    發(fā)表于 05-25 17:10

    基于FPGA和W5500的以太網(wǎng)傳輸系統(tǒng)實現(xiàn)

    區(qū)和接收緩存區(qū)存儲用于數(shù)據(jù)傳輸。無需考慮協(xié)議內部各層關系,不涉及操作系統(tǒng),只需要正確配置就可以實現(xiàn)網(wǎng)絡連接,接口電路簡單、編程靈活方便。本設計從成本控制和實現(xiàn)周期來考慮,采用了以W5500芯片
    發(fā)表于 08-07 10:10

    w5500 UDP模式網(wǎng)絡調試助手發(fā)送數(shù)據(jù)>1472,收不到數(shù)據(jù)??

    設置UDP模式,socket接收和發(fā)送設置2k,使用網(wǎng)絡調試助手,單次發(fā)送數(shù)據(jù)1472個字節(jié),W5500接收不到數(shù)據(jù)。比如我單次發(fā)送1473個字節(jié),上位機應該是分成2幀發(fā)送,還是說現(xiàn)在
    發(fā)表于 10-12 17:24

    W5500以太網(wǎng)芯片分享!

    w5500 集成硬件TCPIP協(xié)議,內置MAC/PHY,開發(fā)容易,使用簡單。適用于,醫(yī)療、安防、工業(yè)、智能家居、智能電表等物聯(lián)網(wǎng)領域。特點及優(yōu)勢全硬件TCP/IP
    發(fā)表于 09-26 19:33

    w5500 UDP

    w5500 UDP模式下用網(wǎng)絡調試助手發(fā)送數(shù)據(jù)>1472,收不到數(shù)據(jù)?
    發(fā)表于 12-19 16:54

    使用w5500芯片網(wǎng)絡通信

    W5500網(wǎng)關芯片 隨筆最新在使用w5500芯片網(wǎng)絡通信時 ,遇到一個問題,如果創(chuàng)建兩個線程,一個線程 創(chuàng)建一個socket 進行局域網(wǎng)
    發(fā)表于 01-13 07:33

    W5500數(shù)據(jù)手冊(中文資料PDF版免費下載)

    w5500是WIZnet公司研發(fā)的一款超高性價比的芯片,是新一代全硬件協(xié)議的專用芯片,不需要進行植入的軟件
    發(fā)表于 10-23 13:56 ?0次下載

    w5500原理圖_w5500電路圖

    W5500是WIZnet推出的高性能以太網(wǎng)接口芯片系列之一,內部集成全硬件TCP/IP協(xié)議+MAC+PHY。全硬件協(xié)議
    發(fā)表于 10-23 19:14 ?5.4w次閱讀
    <b class='flag-5'>w5500</b>原理圖_<b class='flag-5'>w5500</b>電路圖

    W5500以太網(wǎng)控制芯片的數(shù)據(jù)手冊免費下載

    以太網(wǎng)控制芯片 W5500 在內部利用硬件實現(xiàn)了 TCP/IP 協(xié)議,即內部結構包含了物理層、數(shù)據(jù)鏈路層、網(wǎng)絡層和傳輸層。全硬件 TCP/
    發(fā)表于 09-02 08:00 ?3次下載
    <b class='flag-5'>W5500</b>以太網(wǎng)控制<b class='flag-5'>芯片</b>的數(shù)據(jù)手冊免費下載

    W5500芯片數(shù)據(jù)手冊

    W5500芯片數(shù)據(jù)手冊
    發(fā)表于 12-10 16:29 ?65次下載

    W5500 數(shù)據(jù)手冊中文資料

    W5500是一款全硬件 TCP/IP 嵌入式以太網(wǎng)控制器,為嵌入式系統(tǒng)提供了更加簡易的互聯(lián)網(wǎng)連接方案。W5500集成了TCP/IP 協(xié)議,10/100M以太網(wǎng)數(shù)據(jù)鏈路層(MAC)及物
    發(fā)表于 01-06 16:58 ?18次下載