Zynq与PC间的以太网通信实验(一) 您所在的位置:网站首页 笔画顺序的正确写法视频教程连 Zynq与PC间的以太网通信实验(一)

Zynq与PC间的以太网通信实验(一)

2023-11-06 16:17| 来源: 网络整理| 查看: 265

目标:将PL侧的数据通过以太网接口传给PC。

Zynq板卡选用的是ZC706,上面有板载的以太网PHY芯片,因此需要在Zynq上(至少)实现一个MAC层的功能。

最初的想法是直接用vivado的IP核(Tri mode Ethernet MAC)在PL侧实现一个以太网的MAC层功能,这样实时性比较高,如果使用千兆以太网协议的话,应该可以达到接近于1Gbps的传输速率。

但是后来发现我所使用的板卡ZC706应该是不支持PL侧的以太网接口的。因为原理图上可以看出,ZC706将PHY芯片的相关引脚直接连接到了PS侧的MIO:

所以只能通过在PS侧编写程序来实现与PC机的以太网通信。

因此方案更改为:

将PL侧的数据通过DMA传输到DDR中,然后PS侧从DDR中读取数据,再通过以太网协议传输到PC机,PC上通过网络调试助手(因此这就需要在PS侧形成完整的以太网帧)来接收数据。其中,为了防止DDR的读写冲突,在DDR中开辟一段双缓冲存储结构,DMA向其中一块缓冲写数据的同时,以太网应用程序从另一块缓冲里读数据。

本次设计主要来自于米联客教学视频。

PL侧设计:

 

 ctrl是数据产生模块,将产生的数据写入FIFO中,然后通过DMA写入到DDR中,PS侧可以通过GP接口控制GP通过GPIO开启数据的产生。

PS侧参照了SDK自带的LWIP例程,对应PS侧设计的思想应该是:

初始化DMA和LWIP,使能DMA中断,开启数据产生,开启DMA传输。

在DMA传输完成中断产生时,启动以太网传输,然后再开启另一段缓冲的DMA传输……

 

参考:

米联客视频教程及《Zynq SOC修炼秘籍》



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有