ZYNQ-AXI_VDMA IP简介

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据同步 1个月
简介: ZYNQ-AXI_VDMA IP简介

学习内容


本文主要介绍关于AXI4-Stream Video 协议和AXI_VDMA的IP核相关内容。为后文完成使用带有HDMI接口的显示器构建图像视频显示的测试工程做准备。

AXI4-Stream Video 协议


接口定义


对于使用AXI4-Stream Video 协议的IP,对于接口的功能会进行拓展或者裁剪。

下表列出了作为从机时,输入的接口信号名称和相关信息。

image.png

这里的SOF 是用于指示起始帧的传输信号,SOF实际上是在AXI4-Stream的USER信号上进行传输的;EOL用于指示一行数据传输完成。EOL实际上是在AXI4-Stream的TLAST信号上进行传输的,用于指示一行帧数据的传输完成。在这个协议中没有行场同步的信号,所以使用SOF和EOL用于进行同步视频数据信息。

TKEEP and TSTRB 这两个信号在使用AXI4-Stream视频协议的IP时不使用。当连接到需要TKEEP或TSTRB分配的IP时,可以使用默认值TKEEP=1和TSTRB = 1。

TID and TDEST 在使用AXI4-Stream视频协议的IP中不使用TID和TDEST,使用默认值TID=0和TDEST=0。

TUSER TUSER的第0位(TUSER[0])标记帧的开始。是唯一用于视频的AXI4-Stream信号。

AXI4-Stream Video协议时序


READY、VALID、ACLKEN和ARESETn信号,在ACLK上升沿时发生有效传输。在有效传输过程中,DATA只携带有效的视频数据。

握手机制和AXI DMA的握手机制相同。都是通过在在ACLK上升沿时,拉高VALID、READY,进行有效的数据传输。

下面给出使用握手机制信号进行一个起始帧的传输。在时序图中,在时钟上升沿,并且VALID、READY、SOF都为高电平时候表示有效数据传输。

image.png

下面给出利用握手机制信号使用EOL信号进行帧传输的例子。在时序图中,在时钟上升沿,并且VALID、READY、SOF都为高电平时候表示有效数据传输表示帧数据的起始。在Pn-1也就是一行数据的最后一个进行传输时,EOL信号拉高,和LAST信号相同。当完成一帧传输的最后一个数据传输后,在下次传输时,SOF信号将会再次拉高,指示下一帧的第一个信号的传输。

image.png

AXI_VDMA IP


简介


AXI VDMA IP提供了高带宽内存和内存之间的直接访问数据流视频类型的目标外设,包括支持AXI4-Stream video协议的外设。这里提到的AXI4-Stream video协议在视频IP核直接提供了一个简单、多功能、高性能、点对点的通信接口。也可以理解为AXI4-Stream 数据的一个子集。

下图展示了AXI VDMA IP的框图:

image.png

AXI VDMA提供了系统内存和AXI4-Stream类型目标外设之间的高性能直接内存访问。AXI VDMA还提供分散收集(SG)功能,允许CPU将传输控制和执行转移到硬件自动化。

AXI_VDMA提供了以下的功能:

  • 循环帧缓存区访问最多32帧缓存,并提供工具来传输视频帧的一部分或完整的视频帧。
  • 当前帧等待能力,允许相同的视频帧数据重复传输。
  • 独立的帧同步和独立的AXI时钟,允许每个频道在不同的帧速率和不同的像素速率上运行。为了维持两个独立功能的AXI VDMA通道之间的同步,有一个可选的Gen-Lock同步特性。Gen-Lock提供了一种将AXI VDMA从机自动同步到一个或多个AXI VDMA主机的方法,因此从机不像主机在相同的视频帧缓冲空间中操作。 在这种模式下,从通道自动跳过或重复帧。您可以将任一通道配置为Gen-Lock slave或Gen-Lock master。

对于视频数据传输,AXI4-Stream端口可以配置从8位到1024位宽(8的倍数)。对于AXI4- stream端口比相关的AXI4内存映射端口窄的配置,AXI VDMA会在内存映射端升级或缩小提供全总线宽度突发的数据。它还支持异步操作模式,其中所有时钟都是异步处理的。

VDMA 用于将 AXI Stream 格式的数据流转换为 Memory Map 格式或将 Memory Map 格式的数据转换为 AXI Stream 数据流, 也就是说 VDMA 内核旨在提供从 AXI4 域到 AXI4-Stream 域的视频读/写传输功能,反之亦然,从而实现系统内存(主要指 DDR3) 和基于 AXI4-Stream 的目标视频 IP 之间的高速数据移动。

VDMA 的框图如下图所示:

image.png

AXI4-Lite 可以对寄存器进行编程(配置),从而实现软件动态配置 VDMA 的功能。 通过 AXI4-Lite 接口对寄存器进行编程后,控制/状态逻辑块会为 DataMover 生成适当的命令,以在 AXI4 主接口上启动写入和读取命令。可配置的异步 line buffer 用于在将像素数据写入 AXI4-Memory Map 接口或 AXI4-Stream 接口之前临时保存像素数据。

VDMA 数据接口可以分为读、写两个通道,且写入和读取独立运行。 用户可以通过写通道将 AXI-Stream类型的数据流写入系统存储器(主要指 DDR3) 。在读通道中, VDMA 使用 AXI4 主接口从系统存储器读取数据并在 AXI4-Stream 主接口上输出。 可以看到, VDMA 本质上是一个数据搬运的 IP, 可以看作是为视频图像处理做特殊优化的带有帧缓冲功能的高性能 DMA, 为数据进出系统存储器提供了一种便捷的方案。

帧缓存


许多视频应用程序需要帧缓存来处理帧速率的变化或图像尺寸的变化(缩放或裁剪)。帧缓存存储器( Frame Buffer),简称帧缓存,也常被称作显存,是为显示设备(如 HDMI 显示器等)提供数据缓存的一片存储区域。一般图像输入源和图像显示的传输速率不匹配(如图像输入源传输速度较快或者图像显示端传输速度较快),这个时候需要一片存储区域来缓存输入的数据,以便显示设备读取数据,同时也方便后续对视频数据做图像处理。帧缓存的每一个存储单元对应屏幕上的一个像素,整个帧缓存对应一帧图像。

比如视频输入的设备是30帧的数据,而经过视频处理后实现了60帧的视频数据显示,这时候VDMA的帧缓存功能,就可以进行动态处理帧速度的变化。

VDMA AXI4 接口


image.png

读写时序


读时序


下面给出VDMA在读取数据时的时序图,并进行简单的分析,对于接口信号大致可以分为两组,一组是存储器映射接口,进行数据传输,另外一组是stream接口,将读取到的数据在line buffer里进行缓存。下图时序的大致传输过程为:

  1. SOF拉高使能,进行帧同步。
  2. 握手信号进行握手并传输视频数据。
  3. EOL信号拉高表示一行数据传输完成,这里LAST信号被拉高5次,也就是传输了一帧图像的五行。
  4. 传输完成的数据移动到line buffer缓存区,然后通过stream接口发送输出。

image.png

写时序


下面给出VDMA在写入数据时的时序图,并进行简单的分析,这里的流程和读取的过程刚好相反。下图时序的大致传输过程为:

  1. SOF拉高使能,进行帧同步。
  2. 握手信号进行握手并写入视频数据。
  3. EOL信号拉高表示一行数据传输完成,这里LAST信号被拉高5次,也就是传输了一帧图像的五行。
  4. 这里写入的数据是写完先缓存在line buffer中,然后再经过stream流数据传输到存储器映射的存储单元中。

image.png

Reference


正点原子ZYNQ开发视频教程

UG585

UG1037

PG020



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
目录
相关文章
|
存储 缓存 测试技术
ZYNQ-AXI Interconnect IP介绍
ZYNQ-AXI Interconnect IP介绍
1611 0
ZYNQ-AXI Interconnect IP介绍
|
7月前
|
开发工具 芯片 Perl
【ZYNQ】裸机 PS + PL 双网口实现之 ZYNQ 配置
【ZYNQ】裸机 PS + PL 双网口实现之 ZYNQ 配置
997 0
|
7月前
|
传感器 开发工具 芯片
【ZYNQ】ZYNQ7000 XADC 及其驱动示例
【ZYNQ】ZYNQ7000 XADC 及其驱动示例
192 0
|
7月前
|
存储 芯片 异构计算
|
缓存 网络性能优化 SoC
ZYNQ-AXI_GP接口和AXI_HP接口的异同
ZYNQ-AXI_GP接口和AXI_HP接口的异同
838 0
ZYNQ-AXI_GP接口和AXI_HP接口的异同
|
存储 网络性能优化 vr&ar
深入理解AMBA总线(十七)AXI是如何提高性能的
深入理解AMBA总线(十七)AXI是如何提高性能的
2161 1
|
存储 SoC
深入理解AMBA总线(十一)AXI协议导论
深入理解AMBA总线(十一)AXI协议导论
1777 0
|
安全 物联网 数据安全/隐私保护
深入理解AMBA总线协议(AXI总结篇)
深入理解AMBA总线协议(AXI总结篇)
1637 1
|
网络性能优化
深入理解AMBA总线(十九)AXI4新增信号以及AXI4-lite
深入理解AMBA总线(十九)AXI4新增信号以及AXI4-lite
771 0
|
存储 数据处理 计算机视觉
深入理解AMBA总线(十五)AXI-stream
深入理解AMBA总线(十五)AXI-stream
943 0

热门文章

最新文章