1.1 基本概述
OV5640是OV(OMNIVISION)公司设计的一款CMOS图像传感器,最高输出500万像素的图像,最高分辨篇格式为QSXVGA(2592×1944),数据接口采用DVP,控制接口为SCCB。可以输出RGB565/RGB555/RGB444、YUV(422/420)、YCbCr422和JPEG格式,可以对图像进行白平衡、饱和度、色度、锐度、Gamma曲线等调节。图像分辨率、帧率可调。
OV5640支持LED补光、MIPI(移动产业处理器接口,常用于手机摄像头)输出接口和 DVP(数字视频并行,本次实验使用这个接口) 输出接口选择、ISP(图像信号处理)以及AFC(自动聚焦控制)等功能。
控制OV5640的核心在于了解它的时序电路和数据输出之间的关系,在FPGA端需要注意以下标黄的端口,它们都是OV5640的控制输入引脚。下面对时序生成和系统逻辑控制电路的引脚作一些说明:
-
PWDN
:休眠控制 -
RESETB
:复位信号 -
FREX
:帧曝光控制 -
GPIO[3:0]
:和自动聚焦和防震动相关配置有关(本次实验没有用到) -
PCLK
:像素同步时钟(由模块板载晶振提供) -
HREF
:行同步信号,可以理解为像素数据有效信号 -
VSYNC
:场同步信号 -
STROBE
:闪光灯控制(连接到模块板载LED)
OV5640支持2592×1944(QSXVGA)及以下任意分辨率图像的输出。它是通过缩放和修改相关像素定位寄存器实现的。相关配置寄存器的配置地址及意义由下图给出。
-
X/Y_ADDR_ST/END
:输出像素的开始位置和结束位置。 -
X/Y_OFFSET
:缩放前输出场的偏移。 -
X/Y_OUTPUT_SIZE
:输出像素大小。
1.2 工作时序
1.2.1 DVP Timing(数据传输时序)
上图表示了OV5640在DVP模式下的数据输出时序,同时列出了以VGA(640×480)分辨率为例的不同区间的时间。
-
tp
:在RGB565格式下,一个 t p tp tp等于两倍的 t P C L K t_{PCLK} tPCLK,因为一个像素的有效数据需要两个时钟周期传输。
1.2.2 帧曝光工作模式
OV5640拥有三种曝光模式,在模式0下,帧曝光控制引脚FREQ
作输入,曝光脉冲请求通过FPGA发出;在模式1下,曝光请求通过I2C(SCCB)总线发出,帧曝光控制引脚FREQ
作输出,通知外部主机(FPGA)将要开始曝光,LED功能只有在模式0和模式1下才会工作;滚动曝光模式下曝光控制功能失效。
1.3 OV5640 闪光灯工作模式
在了解闪光灯信号strobe
信号之前,需要注意,闪光灯的所有工作模式只在帧曝光模式0和模式1下有效。滚动帧曝光下闪光灯不工作。
1.3.1 Xenon Flash(氙灯闪烁)模式
"Xenon"是指氙灯(xenon flash)模式。氙灯是一种基于氙气放电的强光源,当电流通过充满氙气的灯管时,氙气被激发产生亮白色的光。在摄影和摄像中,氙灯闪光灯被广泛用于提供短时间内的高强度照明,以便在拍摄照片或视频时,尤其是在低光环境下,获得更好的曝光效果。在脉冲请求strobe request
信号到来后,经历三帧时间,strobe pulse
将输出一个极短的脉冲。该功能需要通过寄存器配置。上电后默认工作在该模式下。
1.3.2 LED 1&2 模式
LED1和LED2模式均为LED闪烁模式,在LED曝光期间的帧数据会跳过输出。该功能需要寄存器配置。
1.3.3 LED 3模式
在LED3模式下,LED灯会保持常亮。
1.3.4 手动开启闪光灯
与LED工作模式无关,我们可以通过SCCB总线发送指令修改寄存器的值,手动开启或关闭闪光灯。通过依次配置寄存器0x3016
、0x301C
、0x3019
的Bit[1]
即可打开或关闭闪光灯。