[X]关闭
0

(LINUX)S04-CH07 PCIE的传图应用方案(基于VDMA)

摘要: 这一章主要讲述基于PCIE XDMA IP实现的一个图像传输应用,图像的数据流控制主要用到了VDMA IP,后面章节我们给出了基于FDMA自定的IP,进行传图应用,FDMA的方案要比VDMA要简单一些。本节课程的知识点点比较多,包括了 ...

软件版本:VIVADO2017.4

操作系统:Ubuntu16.4 64bit

硬件平台:XILINX FPGA MK7160FA

米联客(MSXBO)论坛:www.osrc.cn答疑解惑专栏开通,欢迎大家给我提问!!

7.1 概述

       这一章主要讲述基于PCIE XDMA IP实现的一个图像传输应用,图像的数据流控制主要用到了VDMA IP,后面章节我们给出了基于FDMA自定的IP,进行传图应用,FDMA的方案要比VDMA要简单一些。本节课程的知识点点比较多,包括了中断部分知识,而中断部分内容前面的课程并没有涉及。

      本节课主要包括FPGA端设计和Ubuntu系统下应用程序设计。FPGA端主要实现如下功能

  • XDMA与DDR数据通信
  • VDMA实现视频数据搬运
  • 可编程VTC(Video Timing Control)模块,提供视频时序功能
  • AXIS to Video模块,实现axis到视频时序的转换
  • 图像处理模块,用户可自定义图像处理功能,例程中实现彩色图像的饱和度调整算法
  • Video to AXIS模块,实现视频时序到AXIS的转换
  • 用户逻辑寄存器模块,可桥接到XDMA,实现上位机通过XDMA对FPGA的寄存器控制

Ubuntu下应用程序实现如下功能:

  • 读取本地图像生成图像传输链表
  • 通过VDMA的MM2S中断来从Ubuntu传输图像到FPGA DDR
  • 通过VDMA的S2MM中断来从FPGA DDR获取图像数据
  • 将图像保存到本地

7.2 FPGA端设计

     首先来介绍一下整个图像数据通路

        由上图可以看出,图像数据是由PC端产生,然后用过XDMA传输到ZYNQ的DDR3(通过HP接口),数据再经过一个MM2S的VDMA从ZYNQ的DDR(通过HP接口)读出到AXIS接口,经过AXIS to VIDEO转换到视频时序,可以做视频处理,之后再经过VIDEO to AXIS转换到AXIS接口,经过MM2S的VDMA存入DDR,XDMA再从DDR将图像数据读出到底PC。这里面实际上包含了两条传输路径,一条是PCIE到视频,一条是视频到PCIE,一个工程,两个操作例子,很有参考意义。

       下面开始在Block Design里面搭建基本互联系统。主要设计就是IP例化,配置以及连接。

7.2.1 VDMA配置

       为了系统结构比较清晰,我们使用两个VDMA,一个负责S2MM,一个负责MM2S。为了提供比较充足的缓存,这里每个VDMA都采用16帧缓存模式。

MM2S VDMA配置

将Memory Map Data Width设置为64,增加AXI4接口位宽

Read Burst Size 选择32

以上两个参数用户可以自行选择,这里面只是提供参考,但是设置数值过低可能会影响性能。

Frame Buffers 选择16

Stream Data Width 选择24 传输RGB888数据

在 Advanced 选项里面同步方式选择 None,也就是靠AXIS Slave 端来控制。

Allow Unaligned Transfers 不勾选

S2MM VDMA 配置

7.2.2 XDMA 配置

关于XDMA 配置在第一课中已经有提及,这里面是针对第二课的设计进行一些配置。 

首先对下图地址进行配置,这个地址是 pcie 控制接口 bar 地址到 axi 地址的映射关系,由于工程中 vdma 寄存器 基地址,用户寄存器基地址都以 0x44a00000 开始,这里面就将 pcie 控制接口到 axi 总线的地址映射到 0x44a00000,空间大小为1MB,1MB 足够了。


路过

雷人

握手

鲜花

鸡蛋

最新评论

本文作者
2019-11-2 15:22
  • 1
    粉丝
  • 3019
    阅读
  • 0
    回复

关注uisrc网络

扫描关注,了解最新资讯

电话:0519-80699907
EMAIL:270682667@qq.com
地址:常州溧阳市天目云谷3号楼北楼
热门评论
排行榜