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 分工的要求各不相同。
工业数据采集网关。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 缓存保持一致。
四、设计时应先明确的几个问题
在动手搭建系统前,建议先回答以下问题,它们直接决定架构选型与资源分配:
- 数据源在 PS 还是 PL?速率与突发特性如何?
- 数据是否需要经过 CPU 处理,还是可以端到端直通?
- 网络协议栈由 PS 软件实现,还是由 PL 硬件卸载?
- 实时性要求是硬实时还是软实时?是否需要 RPU 或独立时钟域?
- PS 与 PL 之间用 GP、HP 还是 ACP?中断如何分配与优先级排序?