Back to Blog

基于ZYNQ MPSOC ARM+FPGA的超高清实时图像采集与压缩系统设计

#arm开发#fpga开发#服务器#运维#人工智能#嵌入式硬件#linux

3.1 总体硬件方案概述

根据 2.1 、 2.2 节对系统架构和方案的分析,本章针对系统硬件设计进行详细介

绍。本文所述高性能实时视频采集与压缩系统平台的硬件框图如图 3-1 所示,系统由

核心处理模块、视频采集模块、数据片外存储模块、视频压缩数据输出模块、电源模

块、时钟及复位模块和 MPSoC 其它外设接口组成。

板卡的视频采集模块四组 HDMI 2.0 图像接收端口,能够支持 4K ( 3840×2160 )

分辨率下 60Hz 的刷新率视频图像数据输入,视频高速差分信号通过去抖芯片和电平

转化芯片后传入系统核心 —ZYNQ MPSoC 处理芯片;硬件平台选用 Xilinx 公司的

XCZU4EV-2SFVC784 型号 ZYNQ Ultrascale+MPSoC EV 系列产品作为中央处理单元;

除此之外,处理器部分还整合了 JTAG 调试接口、双片 8 位宽 128 Mbit NOR Flash 存

储单元及 Micro SD 卡插槽与相关电路组件,构成系统的三种引导模式: JTAG 接口

主要用于 Vivado ILA 测试环节, Flash 负责程序固化存储, SD 卡在视频采集与压缩

系统中主要用来存放 BOOT.BIN 和文件系统。核心处理模块与数据片外存储模块相

连,其中 PL 逻辑端搭配一颗 2400 MHz 频率、总容量为 4 Gb 的 DDR4 内存颗粒,

用于缓存图像预处理阶段的视频数据; PS 处理器端则连接四颗同样频率为 2400 MHz 、

总容量达 4 Gb 的 DDR4 存储器,支持 Petalinux 操作系统运行并提供视频压缩数据

的缓存空间;与视频数据输出模块相连,结合 RS422 芯片、 LVDS 驱动器以及千兆

以太网接口实现与外部设备的数据交互。另外,外设接口中提供 UART 、按键、开关、

LED 、 GPIO 等外设辅助系统调试。

电源、时钟及复位模块保证整个系统的正常工作。供电部分采用分布式电源架

构,以单一 5V 电源为输入,通过多组 DC-DC 转换芯片生成 9 种不同电压等级、 23

路独立供电通道,满足系统各功能模块的供电需求。时序与复位模块集成了系统所需

各频率的石英晶体振荡器,同时支持外部按键触发的手动复位功能,便于系统调试过

程中的操作控制。

3.2 MPSoC 最小系统原理设计

3.2.1 核心处理器模块设计

根据系统方案,主控芯片选用 Xilinx 公司的 Zynq UltraScale+ MPSoC EV 系列芯

片, EV 系列所包含的三种不同规格芯片中 PS 端所支持接口及 VCU 容量完全一致,

PL 端的可编程逻辑、内存及集成 IP ( Intellectual Property Core )的资源量有所区别。

为避免造成芯片资源浪费增高成本,选用基础芯片即可,具体型号为 XAZU4EV-

2SFVC784 ,共包含 784 个引脚,将不同类别的 I/O 划分成若干个 Bank ,独立供电以

便于分配外设连接位置。引脚划分如图 3-2 所示。

如上图 3-2 所示, ZYNQ UltraScale+MPSoC EV 处理器系列中,输入 / 输出接口

单元 (I/O Bank) 可划分为 10 个不同类别:

( 1 ) HP Bank : High-performance Bank ,专为满足高速存储器与其他集成电路间

的接口性能需求而设计。该类接口最高支持 1.8V 工作电压, LVDS 信号传输速率上

限可达 1.6 Gbps [45] ;

( 2 ) HD Bank : High-density Bank ,表示支持高密度的 IO 标准。应用于低速 I/O

的场景,最高满足电压为 3.3V ,最高速率限制在 250Mb/s 以内,除此之外,还支持

LVDS 电平标准等 [46] ;

( 3 ) PS CONFIG 503 :处理系统配置 Bank 。用于启动 PS 端并配置 PL 端,支持

安全和非安全启动模式;

( 4 ) PS DDR 504 :处理系统 DDR 存储器接口。连接 DDR4 、 DDR3 、 DDR3L

或 LPDDR3 内存的 32 位或 64 位接口,以及连接 LPDDR4 内存的 32 位接口;

( 5 ) PS GTR 505 :处理系统多吉比特收发器接口。集成了四个专用 PS-GTR 收

发器,支持高达 6.0 Gb/s 的数据传输速率,支持 SGMII 三速以太网、 PCI Express®

Gen2 、串行 -ATA ( SATA )、 USB3.0 和 DisplayPort ;

( 6 ) PS MIO :处理系统多路复用 I/O 。可灵活配置为多种通信标准,包括 SPI

与 Quad-SPI 闪存控制器、 NAND 存储接口、 USB 数据传输、以太网通信、 SDIO 卡

控制、 UART 串行通信、标准 SPI 及通用 GPIO 等多种功能模式。该接口组的最大工

作电压支持达到 3.3V 水平。

( 7 ) GT Bank : Gigabyte Transce ,表示高速收发器。在 UltraScale 架构中实现为

能耗优化型 GTH 收发器。这种接口支持的数据传输速率范围从 500Mb/s 延伸至

16.375Gb/s ,主要应用于多种高速通信标准的实现,如 PCIe 总线连接、 SFF 小型光

纤接口、 SFP+ 增强型光纤模块、 XAUI 扩展连接及 SATA 存储接口等高带宽数据交换

设计。

( 8 ) SYSMON Configuration :负责系统监控。用于监测 FPGA 片内温度、片内

供电电压,同时也可用于接入模拟信号,当做 ADC 使用。

( 9 ) Configuration :负责 PL 端的配置功能。如加载 PL 的配置比特流、初始化

过程、配置接口以及 PL 侧 IO 的一些属性等。

( 10 ) PCIE4 集成块: PL 侧 PCIE 集成块。用于枚举 PCIe 设备并分配对应的地

址。

结合上述不同类型 Bank 单元的性能参数进行系统功能划分。在实际引脚规划与

电路构建阶段,需全面权衡多项因素,包括可用引脚数量、信号电平规范、数据传输

速率以及布局的便利程度。本系统核心处理器的引脚分配如图 3-3 所示。

在系统设计完成后需要对其性能进行验证,以确保设计满足性能指标要求。因此

本章主要对该系统各功能进行了软件调试和上板验证,包括视频采集测试、 H.265 压

缩到本地存储测试、压缩码流实时播放测试、时间戳处理、压缩码流 PL 端数据再处

理输出测试。为此搭建一套图像采集与处理系统的测试与调试系统,系统包含专用计

算机、硬件板卡、测试线缆及网线等。测试方法:利用专用上位机软件进行命令下发

控制命令和接收图像数据,使用 Vivado 软件内嵌的逻辑分析仪( ILA )对上电设备

进行抓取分析及调试,实时播放视频的通路则直接使用上位机软件进行播放。

5.1 系统环境搭建

视频采集与压缩系统的硬件围绕 ZynqUltraScale+ MPSoc 搭建一个完整的测试系

统。系统使用到的有:

( 1 )带有 Windows10 系统和虚拟机的 PC 机:构建 Vivado 及 Petalinux 工程,

编译运行环境、部署上位机软件与板卡通信;

( 2 )硬件板卡及线缆:根据第三章的硬件设计进行板卡制作,为系统的实验提

供硬件平台; KJ30J 线缆(用于接收 4K@60Hz 高清视频)、 CPCI 接插件(传输 LVDS

数据)、 J30J 线缆(用于传输 PCM 数据);

( 3 )启动条件:电源 5V 输入、 SD 卡(用于 Petalinux 系统存储)。系统的整体

测试环境搭建如图 5-1 所示。

5.3.3 PS-PL 交互测试

(一) AXI-BRAM 交互测试

在实际功能中, AXI-BRAM 主要传输小批量数据,如时间戳的请求与传输,控

制命令的接收与回令,因此本节主要对时间的交互以及命令的交互进行测试。当图像

压缩流水线管道检测到一帧图像后,通过 AXI-BRAM 接口向 PL 端发送固定请求命

令 PS2PL_DATA ,并产生请求脉冲 PS2PL_DATA_VALID ,表示当前时间请求命令有

效。外部授时模块接收到后,返回当前的同步时间数据 PL2PS_DATA ,并产生中断

信号告知 PS 端进行读取 AXI-BRAM 中的有效数据。 PL 端使用 ILA 抓取 AXI-BRAM

时间戳数据交互如图 5-12 所示。

AXI-BRAM 时间戳数据交互在 PS 端执行顺序为:发送时间请求、等待 PL 端中

断触发接收进程、 PS 端中断接收并解析时间戳数据。如图 5-13 所示,系统日志详细

记录了 PS 端初始化过程和数据交互流程。 PS 端首先初始化各种内存映射,分别成

功映射了 PL 到 PS 的 BRAM (地址 0xffff92f3c000 )、 PS 到 PL 的 BRAM (地址

0xffff92f3a000 )以及 PL BRAM 控制寄存器(地址 0xffff92f39000 )。随后启动了 BRAM

监控线程,负责监控 BRAM 中的控制命令。当图像压缩流水线管道建立后,系统立

即通过 BRAM 向 PL 端发送了时间戳请求命令。