构建一个简单的显示通路的部件
在上一篇ZYNQ基础系列(二) IO口模拟HDMI中,介绍了VGA到HDMI输出的IP核的使用方法,本文将先介绍三个VIVADO自带的视频输出通路相关的重要IP核,搭建一个比较简单的视频通路,为不久之后的摄像头到显示屏通路打下基础:
1> Video Timing Controller
2> AXI4-Stream to Video Out
3> Video DMA
首先要对IP核的功能和配置有一个了解,才能做到肆无忌惮的去搭建通路
VTC核
这个IP核其实可以就看做是一个时序发生器,产生显示器输出所需要的时序信号,有了此核之后,那些各种显示消隐区也就不需要怎么考虑了,省心了很多
1>引脚
完整的引脚图如下:
Optional AXI4-Lite Control Interface : 用于通过AXI总线实时动态更换VTC核的参数
Detector Interface : 图中的Video Timing (input) Interface,探测器接口,用于捕捉视频时序然后处理
Generator Interface : 图中Video Timing (input) Interface,用于生成的视频时序
| 引脚 | I/O | 功能 |
|---|---|---|
| clk | I | 核的工作时钟 |
| clken | I | 时钟使能(高有效) |
| gen_aclken | I | 生成模式工作时钟使能(高有效) |
| det_aclken | I | 探测模式工作时钟使能(高有效) |
| resetn | I | 复位信号(低有效) |
| irq | O | 中断信号输出(高有效) |
| intc_if[31:0] | O | INTC接口:[31:8]和状态寄存器(0x0004)的[31:8]一样;[5:0]和异常寄存器(0x0008)的[21:16]一样;[7:6]为0 |
| fsync_in | I | 帧同步输入 |
| fsync_out[(fs-1):0] | O | 帧同步输出 |
如果需要通过AXI总线对核进行配置的话,还需要去查一下各个寄存器的功能,这里暂时不需要动态配置,配置过程仅通过GUI配置一次
2>GUI配置
第一页:
选项说明:
| 名称 | 功能 |
|---|---|
| Include AXI4-Lite Interface | 添加AXI控制 |
| Include INTC Interface | 添加intc_if接口 |
| Interlaced Video Support | 好像是支持视频混合吧,反正就是打了这个勾,输出就选择Field ID这个线了 |
| Synchronize Generator to Detector or to fsync_in | 时序生成自动同步到时序探测或帧同步 |
| 每行的最大时钟数和每帧的最大行数 | 决定GUI第二页数据的范围,在满足条件的前提下,要尽量小 |
| Frame Syncs | 帧同步的数量,同时决定了fsync_out的线宽 |
| 生成和探测的使能 | 就是生成和探测的使能 |
还是第一页:
现在只看时序生成的模式:
| 名称 | 功能 |
|---|---|
| Field ID Generation | 启用Field ID输出 |
| Vertical Blank Generation | 允许垂直空白输出 |
| Horizontal Blank Generation | 允许水平空白输出 |
| Vertical Sync Generation | 允许垂直同步输出 |
| Horizontal Sync Generation | 允许水平同步输出 |

本文介绍了如何利用VIVADO中的VTC、Vid_Out和VDMA核构建一个简单的视频输出通路。首先,VTC核作为时序发生器,简化了显示时序的处理;接着,Vid_Out核将AXI4-Stream格式的视频转换为视频接口,驱动显示屏;最后,VDMA核作为数据搬运工,实现了帧缓存和DDR之间的数据交换。
最低0.47元/天 解锁文章
1243





