ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Zynq与PC间的以太网通信实验(一)——方案确定

2021-09-22 20:33:37  阅读:237  来源: 互联网

标签:PS DMA DDR PC Zynq 传输 以太网 PL


目标:将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传输……

标签:PS,DMA,DDR,PC,Zynq,传输,以太网,PL
来源: https://www.cnblogs.com/vvvvvvip-xxLiu/p/15321505.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有