Zynq使用VDMA实现视频流的实时传输与显示

0. 设备说明

开发板:正点原子 领航者开发板V1
芯片型号:xc7z020clg400-2
摄像头:ov5640

1. 系统架构设计

系统架构设计是项目落地的第一步,Xilinx提供了许多应用参考文档(XAPP)供用户参考。针对不同的应用,我们可以参考XAPP文档进行系统架构设计。本系统在前一篇设计的基础上进行修改和补充完成。

参考文档:

AXI VDMA Reference Design Application Note (XAPP742)

在这里插入图片描述
系统架构:
在这里插入图片描述

2. Zynq配置

system
	-> EMIO // Width:2 用于配置ov5640寄存器

3. VMDA(AXI Video Direct Memory Access) IP核

  • IP核功能

AXI Video Direct Memory Access (AXI VDMA) 核是一款软 AMD IP 核,可在内存与 AXI4-Stream 类视频目标外设之间提供高带宽直接内存访问。
VDMA 可以实现AXI Stream 格式的数据流和Memory Map 格式的数据之间进行转换,在图像采集系统中,帧缓存一般设置为3,并采用动态同步锁相的模式。

  • 帧缓存可以解决图像输入和图像显示的传输速率不匹配的问题,但单帧缓存会带来的图像撕裂、图像叠加问题,而多帧缓存可以解决这个问题。
  • VMDA 配置成动态同步锁相模式,且帧缓存数量大于等于3,就可以避开读通道和写通道同时访问同一帧缓存的问题。
    链接: AXI VDMA
  • 配置界面
    在这里插入图片描述
    在这里插入图片描述
  • 配置参数
 - Basic  
 Address Witdth:32 // 存储映射端口地址总线宽度(DDR3地址总线宽度),可以访问2^32大小的内存空间)
 Frame Buffer:3 // 帧缓存的个数,一般设置为3。
 Enable Write Channel/Enable Read Channel
 Enable Write Channel:
 Memory Map Data Width:64 // AXI4数据通道的数据位宽,默认64.
 Read Burst Size:64 // AXI4突发传输的大小,默认64.
 Stream Data Width:24 // AXI4-Stream数据通道的数据位宽,与视频流的数据宽度一致. RGB888 -> 24
 Line Buffer Depth:2048 // 行缓冲区深度(行缓冲区宽度为Stream Data Width:24的大小),可以根据视频图像分辨率设置,,比一行像素大一些就可以. e.g.1920x1080 -> 2048
 Enable Read Channel:
 Memory Map Data Width:64 // AXI4数据通道的数据位宽,默认64.
 Read Burst Size:64 // AXI4突发传输的大小,默认64.
 Stream Data Width:Auto // AXI4-Stream数据通道的数据位宽,是软件自动设置的,其位宽由连接的IP核的Stream数据位宽确定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值