1. Zynq平台与网络传输系统概览

Zynq 系列是 Xilinx(现 AMD)推出的全可编程片上系统(All Programmable SoC),其核心思想是把处理系统(PS,Processing System)与可编程逻辑(PL,Programmable Logic)集成在同一芯片内,通过片内高带宽互连实现紧耦合协同。理解这一架构,是后续设计嵌入式网络与数据传输系统的前提。本章围绕 Zynq-7000 与 UltraScale+ MPSoC 两代平台的架构差异、PS-PL 协同机制,以及嵌入式网络与数据传输的典型应用场景展开。

一、Zynq-7000 与 UltraScale+ MPSoC 的架构定位

Zynq-7000 的 PS 部分以双核 ARM Cortex-A9 为核心,配合 L1/L2 缓存、片上存储器(OCM)、DDR 控制器、DMA 控制器以及一组外设控制器(如 GEM 千兆以太网、USB、SD、UART、SPI、I2C 等)。PL 部分则是传统 FPGA 可编程逻辑资源,包含查找表、触发器、Block RAM、DSP Slice 以及可配置 IO。PS 与 PL 之间通过 AXI 互连连接,形成“处理器 + 可编程加速”的异构结构。

UltraScale+ MPSoC 在此基础上进一步演进:PS 内部不再是单一的同构双核,而是异构多处理单元,典型配置包含四核 ARM Cortex-A53 应用处理单元(APU)、双核 ARM Cortex-R5 实时处理单元(RPU)、Mali-400 GPU 以及平台管理单元(PMU)。PL 部分升级为 UltraScale+ 架构,逻辑密度、DSP 与存储资源显著提升。更重要的是,MPSoC 在 PS 内部引入了更完整的电源域、时钟域与隔离机制,使安全、实时与通用计算可以分区共存。

两代平台在“PS 负责控制与协议栈、PL 负责高吞吐与确定性处理”这一分工上是一致的,差异主要体现在处理能力、实时性分区、内存带宽与可扩展性上。对于网络与数据传输系统,Zynq-7000 适合中等带宽、成本敏感的嵌入式网关与采集节点;UltraScale+ MPSoC 更适合多路高速接口汇聚、需要硬实时响应或安全隔离的边缘计算设备。

二、PS-PL 协同的关键通路

PS 与 PL 的协同不是抽象概念,而是由几条明确的物理通路支撑的。理解这些通路的角色,才能在设计网络传输系统时做出正确的数据路径选择。

  • AXI GP(General Purpose)接口:PS 作为主机访问 PL 中的寄存器与轻量逻辑,适合控制、配置与状态读取,带宽较低但延迟可控。
  • AXI HP(High Performance)接口:PL 作为主机通过 HP 端口直接访问 PS 侧 DDR,是高速数据搬运的主通道,常用于把 PL 采集或处理后的数据写入内存供 CPU 或 DMA 使用。
  • AXI ACP(Accelerator Coherency Port):PL 访问可被 CPU 缓存一致性地看到,适合需要与 CPU 共享数据结构的加速场景,可减少显式缓存维护。
  • 中断与事件:PL 可通过中断控制器向 PS 发起中断,通知“数据就绪”“传输完成”或“异常发生”,是软硬件握手的核心机制。

在网络传输系统中,典型的数据路径是:PL 侧接口逻辑接收或发送数据,经 AXI HP 写入/读出 DDR,PS 侧运行协议栈与应用,通过 GEM 或 PL 侧以太网 MAC 完成网络收发。控制路径则走 AXI GP 与中断。两条路径分离,是保证吞吐与实时性的常见做法。

Zynq PS-PL 协同与网络数据传输通路 PS 处理系统 CPU 集群(A9 / A53 + R5) 协议栈 · 应用 · 控制逻辑 DDR 控制器 / OCM 数据缓冲 · 描述符 · 共享内存 GEM 千兆以太网控制器 MAC · DMA · 中断 DMA / 中断控制器 搬运调度 · 事件通知 外设接口(UART/SPI/I2C/SD) 配置 · 管理 · 低速数据 PL 可编程逻辑 自定义接口 / 采集前端 ADC · 传感器 · 高速串行 数据搬运 / 打包逻辑 FIFO · 位宽转换 · 校验 以太网 MAC / 交换逻辑 多路端口 · 时间戳 加速器 / 协议卸载 校验和 · 加密 · 过滤 寄存器 / 状态机 控制 · 状态 · 中断源 AXI GP(控制/配置) AXI HP(高速数据) AXI ACP(缓存一致) 中断 / 事件 外部网络 / 上位机 / 云端

三、嵌入式网络与数据传输的典型场景

Zynq 平台上的网络与数据传输系统,通常可以归入以下几类场景,它们对 PS-PL 分工的要求各不相同。

工业数据采集网关。PL 侧连接多路 ADC 或现场总线接口,按固定采样周期采集数据并做初步打包;PS 侧运行 TCP/IP 协议栈,把数据以 MQTT 或 Modbus TCP 形式上传。此时 PL 负责确定性采样与时间戳,PS 负责协议与网络管理。关键指标是采样抖动与端到端延迟,通常要求 PL 采集路径不经过 CPU 干预。

高速视频/图像传输节点。PL 侧接收 MIPI、LVDS 或 Camera Link 视频流,做裁剪、缩放或编码预处理,经 AXI HP 写入 DDR;PS 侧通过 GEM 或 PL 以太网 MAC 以 UDP 或 RTP 方式发送。此类场景对 DDR 带宽与 AXI HP 通道数量敏感,需要评估 PL 侧并发访问对 CPU 访存的影响。

多路以太网汇聚与交换。在 PL 中实现多端口 MAC 与交换逻辑,PS 负责管理平面、路由表维护与异常处理。UltraScale+ MPSoC 的 RPU 可承担实时转发控制,APU 承担管理任务,实现控制与转发分离。

边缘计算与协议卸载。把校验和计算、加密、包过滤等重复性网络处理放入 PL 加速器,PS 只处理控制面与复杂业务逻辑。此时 AXI ACP 或 HP 的选择取决于数据是否需要与 CPU 缓存保持一致。

四、设计时应先明确的几个问题

在动手搭建系统前,建议先回答以下问题,它们直接决定架构选型与资源分配:

  1. 数据源在 PS 还是 PL?速率与突发特性如何?
  2. 数据是否需要经过 CPU 处理,还是可以端到端直通?
  3. 网络协议栈由 PS 软件实现,还是由 PL 硬件卸载?
  4. 实时性要求是硬实时还是软实时?是否需要 RPU 或独立时钟域?
  5. PS 与 PL 之间用 GP、HP 还是 ACP?中断如何分配与优先级排序?
对于初次接触 Zynq 网络传输的读者,建议先用 Zynq-7000 搭建“PL 采集 + AXI HP 写 DDR + PS 通过 GEM 发送 UDP”的最小链路,观察吞吐与 CPU 占用,再逐步引入 PL 侧协议卸载与多路汇聚。这样能直观理解 PS-PL 协同中控制路径与数据路径的分离价值。