概述
图像传感器使用的是美商半导体公司(omnivision)的CAMERACHIP图像传感器OV7670。该传感器的感光阵列式640×480,核电压为1.8VDV±10%,模拟电压为2.45VDV到3.0V,IO口电压为1.7V到3.0V。数据输出格式(8位)有四种,分别是YUV/YCbCr4:2:2、RGB565/555/444、GRB4:2:2和Raw RGB Data。最大帧率为30fpsVGA,性噪比为46dB,动态范围为52dB,像素面积为3.6um×3.6um,像素为30W。
实际应用中所用到,并引出的OV7670引脚有:八位的数据输出D0~D7,帧同步输出VSYNC,行同步输出HREF,像素时钟PCLK、系统时钟输入XCLK、POWER DOWN模式选择输入PWDN、SCCB数据口SIO_D、SCCB时钟口SIO_C、系统初始化口RESET,如下图。
图像传感器OV7670的接口时序包括两个部分,分别是SCCB接口时序和图像数据输出时序。
OV7670的初始化使用的就是SCCB接口时序。SCCB是欧姆尼图像技术公司(OmniVision)开发的一种总线,广泛应用与OV系列的图像传感器中。SCCB是一种三线的总线,有SCCB_E、SIO_C、SIO_D组成。为了减少引脚,在OV7670上缩减为两根线。SIO_C和SIO_D。
SCCB总线在启动传输过程中(如下图)有两个时间参数,tPRA和tPRC,tPRC被定义为SIO_D预充电时间,这说明,SIO_D要先于SCCB_E被拉高的时间,最小值15ns,tPRA是指在SIO_D拉低前,SIO_E被拉低的时间,不能小于1.25us。
数据传输终止,如下图,tPSC是SCCB_E上升沿,SIO_D保持高电平的时间,最小为15ns,tPSA是SIO_D上升沿,SCCB_E必须保持低电平的时间,最小为0ns。
SCCB的写时序由3相组成。首先写设备地址,再写寄存器地址,最后写寄存器的值,即ID-Address+SUB-Address+W-Data。OV7670的设备地址为0x42,最后一位用来判断读或者写,如下图。
每次发送八个数据,SDAT设置为输入,接收从机的反馈信号。
SCCB的读时钟有4相组成,分别是ID-Address+SUB-Address+ID-Address+ W-Data,如下图。通过查询OV7670的数据手册,发现在Read Data过程中,有一个NA,即第九位要驱动SIO_D为高电平。
SCCB的读写时序分别如下图。
SCCB的读取时序
SCCB的写入时序
OV7670图像的时序与VGA的时序非常的相似,不过VGA时序是有FOGA产生的,而OV7670的时序是有OV7670输出的。所以本设计中需要根据固定的时序,来准确的接收每个像素的数据。下图是RGB565的OV7670摄像头的图像时序图,PCLK是连续的信号,每一行有行的有效信号,每一场也有场的有效信号,在场有效信号开始,每一行有效信号的第一个数据是第一个像素的高八位数据,每个像素都要分两次发送。
另外,PCLK是否为连续的输出脉冲信号是可以通过配置寄存器配置的,如下图。在FPGA程序读取摄像头数据时,程序时钟是PCLK驱动,所以我们需要将Bit[5]设置成0,使其一直有脉冲输出。
在RGB565输出时序中,HREF高电平时候,图像数据有效,此时,FPGA可以在PCLK上升沿时候读取8位图像数据。如下图是HREF相关的寄存器功能。
FPGA的实现,我使用的是quartus Ⅱ编写。因为挺久没写这方面的驱动程序,所以这几天把以前写的程序进行梳理,重新复习下,正好写成学习报告。
最后
以上就是温暖纸飞机为你收集整理的OV系列CMOS图像传感芯片的接口时序的FPGA实现的全部内容,希望文章能够帮你解决OV系列CMOS图像传感芯片的接口时序的FPGA实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复