fpga摄像头模块_【FPGA视频通路00】一切过往,皆为序章

20200525更新

因为一些原因,经过半年多还没有更新,其实东西做完了,但是因为各种原因一直没有更新,现在各种视频文档介绍也越来越全面,继续写下去虽然没有什么意义,但本着有始有终的想法还是写完吧。

更新一:其实现在有很多别人很好的资料了,B站上就有好多,水平也很好,搜一下就可以看到了。

更新二:参考资料:

1.PYNQ-Z2开发板和Arty-Z7极为接近,所以可以直接使用 Arty-Z7资料

2.本系列的目的就是逐步搭建一个HDMI视频通路,按照整个系列走下来大概可以实现 Arty Z7 HDMI Out Demo 的简化版本

3.如果需要摄像头输入、HDMI输出的通路,可以参考 Pynq-CV-OV5640

4.其实只要是FPGA芯片,整体流程大概都是一样的,除了PYNQ-Z2、黑金和米联的开发板,还可以尝试性价比比较高的ZU3EG芯片板子,例如Ultra96和黑金的Edgeboard,然后还有十分便宜的zynq 7010的矿渣板子EBAZ4205。芯片其实都差不多,多花点钱买点资料和服务,Debug的时候省心点。

=======分割线=======

常言道,写东西要开宗明义。不过没有什么崇高的目标,也没有什么特别的目的,就是随便写点什么,就还是一如既往的碎碎念吧。

毕业季来咯,自己要准备找工作了,然后最近也在Zynq上搭图像处理系统,没看到太多参考,特别是成系列的,所以想留下点笔记吧,自己留个念想,如果刚好能帮到人,也挺好,无所谓啦。

这几个月在Pynq下折腾了一段时间,觉得里面视频输入输出框架挺好的,学到了一些东西。其实Zynq 7000系列视频框架都是那样搭的,视频输入,无论是HDMI还是摄像头,有一个数据源,然后Video转Axi Stream,过VDMA进,再过VDMA出,最后stream转video,直接行场信号VGA或者再用下DVI2RGB的IP通过HDMI输出。这样,通路就通了。

之后再把通路中间打断,相当河上的水坝一样加一个处理IP,现在推荐都是说HLS去写,大概就这样了。

看着其实也没多少东西,但是做起来总是会有这样那样的坑,自己写这个也是为了帮助自己把这几个模块手册都看看,各种细节都挖掘一下。

板子用的是自己感觉学习FPGA最实在的PYNQ Z2,其实Zybo或者米联黑金无所谓了,都是一样的。

嗯,哪都打算写点啥子呢?

从后往前推,首先是第一层,HDMI,VTC(Video Timing Controller),产生一个输出的模拟图像,HDMI一开始用Digilent的DVI2RGB的IP,然后再介绍一下HDMI的接口,TMDS信号,以及视频的行场时序,自己去写一个纯verilog的HDMI输出吧。

之后加上VDMA输出,带上Zynq那块PS,用SDK软件生成模拟图像显示吧,顺便再把AXI总线介绍一下。把VDMA以及AXI这几个的手册也介绍一下。

接下来就该输入了,先还是HDMI直接到VDMA输入吧,或者摄像头,都可以了,加个IIC配置,然后和之前的输出联合起来,打通通路。

最后就是DMA加HLS的处理部分了,这个其实也有参考,不过还没仔细研究,但是也是要做的。

对于FPGA设计其实到此就为止了,但是对于系统还有两点,一个是在Linux下的使用,刚才提到的只是SDK下裸机程序,Linux的DMA驱动之前测试过,但是没有实际用过,之后就是PYNQ框架下的系统使用,其实只要硬件按照PYNQ参考设计的去做,这个应该没有需要要自己做的地方,但是如果PYNQ框架下没提供,工作量就大咯。

这套框架没什么新鲜的,主要目的就是把框架打碎,一个一个点先都能理解,然后再一点点串起来,可以的话再让每个点都有意义,就是最好的啦。

其实无论说的纯FPGA、Zynq以及PYNQ框架了,都是那样,本质都是一部分可定制硬件或软件的处理模块相连,可是为什么还要从传统FPGA到Zynq到PYNQ呀,自己做一遍,几种方案比较一下,能够体会到那种开发效率的提升,为了更好解决问题所做的努力,就很棒啦。

好了,到此为止,这个系统大概就是这个样子,只是一个初步打算,还要准备看笔试题和手册咯,抓紧时间多学点东西啦。

你可能感兴趣的:(fpga摄像头模块)