ZYNQ的PL端口不利用DDR进行图像数据采集传输至其它地方

ZYNQ7020的PL板子上面没有DDR3,不能直接调用MIG的IP核用来缓存OV5640采集到的数据,看能不能换一种方案。比如ZYNQ纯FPGA里面的以太网传输OV5640图像数据,是通过FIFO的方案。还有一种是在网上搜索到的,利用BRAM去缓存数据。

今日收获:其实不通过DDR也可以进行图像数据的缓存,今天了解到的内容就是以异步FIFO的方式进行少量数据的缓存,通过跨时钟域的方式实现数据的传输。主要是参考正点原子的UDP以太网数据传输摄像头数据,摄像头一行的数据会持续的存储进设置的FIFO里面,当FIFO写满了以后将会产生一个待满信号,那么根据这个信号我们可以在写满以后对FIFO进行数据的读取,读取到的数据就通过HDMI接口进行传输,那么这里就涉及到一个问题,到底什么是快时钟域,什么是慢时钟域。我认为OV5640属于慢时钟域的数据,而HDMI则属于快时钟域数据。所以OV5640的数据可以缓慢存储,HDMI可以在采集数据无效期(也可以说是消隐期)进行一个数据的处理和采集。另外需要注意的是,由于HDMI或者是RGB屏幕都是用的RGB888的数据,因此要对RGB565的数据进行一个处理,转换成RGB888的数据。

附RGB565-RGB888的量化补偿原理:
ZYNQ的PL端口不利用DDR进行图像数据采集传输至其它地方_第1张图片

你可能感兴趣的:(调试遇到的问题合集,fpga开发)