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数据位宽确定。