XILINX FPGA OV5640 摄像头驱动(一)

时间:2023-01-24 15:51:41

影像行业是一个值得深耕的方向,废话不多说

先看输入和输出

输入是光照,输出是光照的数字信号
XILINX FPGA OV5640 摄像头驱动(一)
image area:说的是感光矩阵,CMOS图像传感器的最核心部分,接收光照产生电信号的部分。决定了图像质量的好坏
矩阵就会行列,就会有行列相关的控制部分。colcmn、rom

AMP:是一个放大器,放大来自感光矩阵的模拟信号。感光矩阵的信号是模拟的所以也会同比例的放大噪声信号。AMP是一把双刃剑,放大的信号的同时会引入跟多的噪声,降低信噪比。信噪比是图像传感器永恒的主题,几乎所有的优化都是围绕信噪比。

10-BIT ADC:模拟数字转换器,经过AMP放大的模拟信号通过ADC转换为数字信号。数字信号后的数据称为RAW,每个像素的细节呈现和ADC深度关系最大。

到这里影像传感器的原始信号采集已经完成,通过引脚接口输送给外部器件进行图像数据处理即可。但是在OV5640 上额外的集成了一些附加功能

ISP:附加模块,高度定制化的图像处理器,使用各种寄存器控制图像参数处理ADC的RAW数据。
能够提供相当多的图像处理功能。这样做的目的是省去了后端图像处理设备的开销,OV5640可以直接提供可供使用的图像。
打一个比方,我想吃烧鸭,那么我去菜场买一只屠宰好的鸭子买上配菜调料回家花几个小时做一盘烧鸭。屠宰好的鸭子就是RAW。最后盘子里面的烧鸭是最后要的图像。烹饪的过程就是图像处理。当然,我可以直接去卤味店买一只烧鸭,多省事。这个额外的ISP就是卤味店做的事情。这样就相对好理解这个ISP的作用。
ISP包括图像处理压缩,格式转换。
FIFO:这部分也是卤味店的工作,提供一个缓存储存数据。
接口:DVP/MIMP。特定的接口,用于传输影像数据。

下面看一下接口
XVCLK : H11 XVCLK input system input clock
系统时钟输入引脚, 图像传感器作为一个芯片就会有时钟输入。就像MCU,SOC的晶振输入一样。
PLL主要是把XVCLK输入的时钟变成内部需要的频率。

PWND:D1 PWDN input power down (active high with internal pull-down resistor)
高有效(内部接了下拉电阻)。有效的时候sensor出于power down状态

RESETB :E2 RESETB input reset (active low with internal pull-up resistor)

FREX :F2 FREX I/O frame exposure / mechanical shutter
所有图像传感器上的像素需要打开时间窗口才能接受光照,就像把杯子的盖打开才能注水到杯子里面。
这个信号控制所有像素的感光时间窗口。也就是一帧FRAME。

PCLK : I1 PCLK I/O DVP PCLK output
DVP接口数据传输的同步时钟。

HREF ,VSYNC :详细看DVP时序。

SICO,SIDO : OV公司自己的控制命令发送总线和IIC几乎一样。

整个框图部分到此结束,传感器是一个很复杂的器件,对之抱有敬畏之心。

OV5650 是一个带有ISP的图像传感器,大部分接口都通过寄存器的方式开放出来。所以要使用自带ISP免不了去看那庞大的寄存器设置。

DVP时序
XILINX FPGA OV5640 摄像头驱动(一)
XILINX FPGA OV5640 摄像头驱动(一)
DVP 时序起始也很简单,如果接触过VAG,LCD,HDMI类似图像显示驱动,基本上看一眼就能知道怎么回事。

VSYNC:帧同步信号。表示一副完成的图像传输开始和结束。
HSYNC:行同步信号,表示一帧图像当中一行的数据传输开始和结束。
HREF :表示数据传输有效。
D][9:0] :数据传输线。