OV7670摄像采集图像在VGA上显示的分析和实现,精确到每个时钟,每行代码。

时间:2021-12-20 19:23:17
OV7670使用RGB565模式,30FPS,采集分辨率为640X480,保存在ZYNQ7芯片7Z020的内部BRAM。VGA控制器在读出端读出数据,并用12BIT的色彩深度现在VGA接口屏幕上,VGA分辨率也是640X480。

1,纯粹FPGA逻辑实现,虽然用到硬件是ZEDBOARD上的7Z020芯片,但是没有用到PS(双核ARM处理器)部分。
2,7Z020内有丰富的BLOCK RAM 块,所以可以直接保存 640X480 = 307200 个12位数,因此没有用到外部存储器做视频缓存。
3,教程使用的软件开发环境是VIVADO 2015.4 ,所有的过程都视频记录,几乎手把手的。让大家感受VIVADO的强大,也能学到基本的操作步骤。
4,摄像头控制SCB总线部分,从分析时序入手,总结归纳时序特征,使用计数器来实现了时序的产生,“画”出了控制时序。
     之后编写测试激励,进行前仿真。并实际连接硬件使用集成逻辑分析仪ILA进行逻辑分析,验证设置的正确性。
5,尝试讲明白我所理解的TOP-DOWND的分析,以及DOWN-TOP的实现。内部分了5个部分,大家下载就可以看到,以这个思路贯穿这5大部分视频,使我们设计的时候有个整体感,站在系统角度实现具体细节。
6,VGA时序部分直接包含了我之前做的 ZEDBOARD的实现VGA显示的教程,从原理到时序,根据时序规定做出图,之后变换成可以直接编码的示意图,最后现场一行一行的和大家一起敲代码,应该是作为VGA的终结篇:看完了就彻底明白VGA控制时序和实现了。
7,对于视频以及教程的原理和细节有不明白的,大家可以跟帖询问,我可以给大家回复。就视频内涉及的内容啊,太多可能我不了解,呵呵。
8,当然还是存在可以改进的余地,就是缓存使用ZEDBOARD板子上的DDR3存储器。牵涉东西已经够多了,并且已经是很完整独立的一个项目了,就没有在这里继续根大家展开这方面。
9,我国庆假期做了这几集视频,很认真做的,融汇了时序设计经验,也基本概括VIVADO常见操作。
     贴在这里希望大家能有所收获。我觉得不管自己是否使用OV7670和VGA,看完都应该有所收获的,尤其对初学者。


视频时长总共4小时+,加上资料,项目代码,总共1G多,我直接上百度网盘链接:    链接: https://pan.baidu.com/s/1kU5r1P1 密码: 6w2m 


Zedboard全兼容购买店铺 sysclk.taobao.com

欢迎加QQ群探讨学习:414371872