V5640是一款1/4英寸单芯片图像传感器,使用的是两线式SCCB接口总线。
OV5640的写时序:
SCCB的写传输协议如下图所示:
上图中的ID ADDRESS是由7位器件地址和1位读写控制位构成(0:写,1:读),OV5640的器件地址为7’h3c,所以在写传输协议中,ID Address(W)= 8’h78(器件地址左移 1 位,低位补 0);Sub-address(H)为高8位寄存器地址,Sub-address(L)为低8位寄存器地址,在OV5640众多寄存器中,有些寄存器是可改写的,有些是只读的,只有可改写的寄存器才能正确写入;Write Data为8位写数据,每一个寄存器地址对应8位的配置数据。
在OV5640正常工作之前,必须先对传感器进行初始化,即通过配置寄存器使其工作在预期的工作模式,以及得到较好画质的图像。因为 SCCB 的写传输协议和IIC几乎相同,因此我们直接使用IIC的驱动代码来配置摄像头。
OV5640的图像输出时序:
QSXGA,这里指:分辨率为25921944的输出格式,类似的还有:QXGA(20481536)、UXGA(16001200)、SXGA(12801024)、WXGA(1440900)、WXGA(1280800)、XGA(1024768)、SVGA(800600)、VGA(640480)、QVGA(320240)和 QQVGA(160120)等。
PCLK:像素时钟,一个 PCLK 时钟输出一个像素或者半个像素(像素数据的高8位或者低8位)。
VSYNC:帧同步信号。
HREF/HSYNC:行同步信号。
D[9:0]:像素数据,在RGB565格式中,只有高8位是有效的。
tPclk:一个时钟周期 。
tp:一个像素点的周期,在RGB565和YUV422输出格式下,tp=2tPclk;Raw 输出格式下,tp=tPclk。
下图为 OV5640 输出图像数据的行时序图
从上图可以看出,传感器在HREF为高电平的时候输出图像数据,当HREF变高后,每一个PCLK时钟,输出一个8位或者10位像素数据。比如我们采用QSXGA时序,RGB565格式输出,tp=2tPclk,每2个字节组成一个像素的颜色,这样每行总共输出25922个PCLK,也就是25922个字节。再来看看帧时序(QSXGA模式,分辨率25921944),如下图所示:
上图可知,VSYNC的上升沿作为一帧的开始,高电平同步脉冲的时间为 5688tp,紧接着等待48276tp时间后,HREF开始拉高,此时输出有效数据;HREF 由2592tp个高电平和252tp个低电平构成;最后一行图像数据输出完成之后等待14544tp时间,一帧数据传输结束。所以输出一帧图像的时间实际上是tFrame = 5596992tp。