Zynq与PC间的以太网通信实验(一) | 您所在的位置:网站首页 › 笔画顺序的正确写法视频教程连 › Zynq与PC间的以太网通信实验(一) |
目标:将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 实验室设备网 版权所有 |