"CH01 DMA_LWIP批量传输.pdf"
这篇文档主要讲解了在Xilinx ZYNQ平台上使用DMA和LWIP进行以太网数据传输的方法,特别适用于MZ7X系列开发板。文档修订于2018年,基于VIVADO 2017.4版本,提供了详细的硬件系统构建和软件配置步骤。
1. 概述
该章节介绍了使用DMA和LWIP(Lightweight IP)库进行以太网批量传输的基本概念,LWIP是一个轻量级的TCP/IP协议栈,适合嵌入式系统,而DMA(Direct Memory Access)则能高效地处理大量数据传输,减少CPU的负担。
2. 搭建硬件系统
硬件系统构建包括以下几个步骤:
- **系统构架**:包含ZYNQ SoC的处理系统(PS)和可编程逻辑(PL)两部分,通过DMA连接实现数据交换。
- **启用HP接口**:高性能(HP)AXI接口用于高速数据传输。
- **启用PL到PS的中断资源**:确保PL侧的操作能够及时通知PS。
- **启动PS部分的以太网接口**:配置以太网控制器,例如Xilinx的EMAC。
- **时钟的设置**:确保正确的时钟频率以支持以太网和DMA操作。
- **DMAIP配置**:配置DMA引擎,设定传输模式和参数。
- **GPIO的配置**:可能用到GPIO来控制传输的开始和结束。
- **配置axi_data_fifo_0**:使用AXI数据FIFO作为缓冲区,提高传输稳定性。
- **设置S_AXIS接口**:配置DMA的输入(发送)接口。
- **地址空间映射**:确保PL和PS之间的内存映射正确,允许DMA访问PS的内存。
3. FPGA的发送代码
这部分详细解释了如何编写FPGA逻辑来驱动DMA进行数据发送,通常涉及初始化DMA模块、设置传输参数、触发传输等操作。
4. PS部分BSP设置
在处理器系统(PS)侧,需要进行以下配置:
- **SDK工程BSP设置**:在Xilinx Software Development Kit (SDK)中更新板级支持包(BSP),以支持以太网和DMA功能。
- **lwip函数库设置**:配置LWIP库,设置网络接口和TCP/IP堆栈参数。
5. PS部分程序分析
这部分深入解析了在PS端运行的程序,包括如何使用LWIP接口收发数据,如何与FPGA的DMA控制器交互,以及如何处理中断事件。
这份文档是针对ZYNQ平台上的以太网通信的一个实用教程,通过结合DMA和LWIP,为开发者提供了高效的数据传输方案,适用于各种基于ZYNQ的嵌入式系统设计。