vision calculator——带FIFO的OV7670模块控制学习

原理图

vision calculator——带FIFO的OV7670模块控制学习_第1张图片

引脚

vision calculator——带FIFO的OV7670模块控制学习_第2张图片

控制

我们选用的摄像头模块是带FIFO存储的,因此不需要实时采集数据,只需要解决四个问题:
1. 如何将数据存储到FIFO中?
2. 如何将FIFO中的数据读出?
3. 像素数据格式是什么样子?
4. 如何配置摄像头模块?

Question1

将数据存储到FIFO中利用的是行同步信号的时序。

vision calculator——带FIFO的OV7670模块控制学习_第3张图片

以及AL422B的FIFO芯片的写时序综合进行控制。
vision calculator——带FIFO的OV7670模块控制学习_第4张图片

vision calculator——带FIFO的OV7670模块控制学习_第5张图片

由时序图可以看到, 当输出的HREF为高电平时,输出的data有效,同时若写使能置高,则可以存入FIFO。因此对应到硬件上, 原理图中的U3为一个SN74LVC1G00的与非门,将HREF信号与输入的FIFO写信号做与非运算,这样就可以让FIFO只在数据有效且发出写信号时进行写操作,再将场同步信号作为一帧数据的起始就可以进行完整的数据读写了。因此这样下来的话进行FIFO写操作的控制流程就可以表示为:
检测场同步信号-->复位写操作信号-->使能写FIFO信号-->检测下一个场同步信号-->1帧数据存储完毕

Question2

将FIFO中的数据读出利用的是场同步信号的时序。

vision calculator——带FIFO的OV7670模块控制学习_第6张图片

以及AL422B的FIFO芯片的读时序综合进行控制。
vision calculator——带FIFO的OV7670模块控制学习_第7张图片

vision calculator——带FIFO的OV7670模块控制学习_第8张图片

由时序图可以看到,当有完整数据时,我们只需要使能读FIFO信号,就可以读了,但注意的是像素信息是通过 两个字节进行存储,后续还需要注意对应。因此进行FIFO读操作控制流程就是:
复位读操作信号-->使能FIFO读信号-->直到读取结束

Question3

OV7670模块可以配置成RGB565格式,也就是采用16bit存储像素信息,如下图所示:


vision calculator——带FIFO的OV7670模块控制学习_第9张图片

Question4

对于摄像头的配置主要是需要参照参考文章中的官方手册以及已有的配置程序,这个不做深究。


参考文章

  1. 带FIFO的OV7670模块使用手册
  2. 骑飞电子CMOS摄像头使用说明
  3. OV7670_中文版数据手册1.01
  4. AL422B Datasheet
  5. 转:RGB565、RGB888互相转换原理和代码

Something In the End

总体上对于带FIFO的OV7670摄像头模块的控制已经摸清楚了,后面会逐步编写FPGA程序进行实践,还会持续更新!


2018.1.5 晚

你可能感兴趣的:(vision calculator——带FIFO的OV7670模块控制学习)