ov7620是一款CMOS摄像头器件,是一款彩色CMOS型图像采集集成芯片,提供高性能的单一小体积封装,该器件分辨率可以达到640X480,传输速率可以达到30帧。
OV7620
HQ7620摄像头模块是基于Omnivision公司的CMOS图像传感器--- OV7620的方案设计;1/3英寸数字式CMOS图像传感器OV7620,总有效像素单元为664(水平方向)×492(垂直方向)像素;内置10位双通道A/D转换器,输出8位图像数据;具有自动增益和自动白平衡控制,能进行亮度、对比度、饱和度、γ校正等多种调节功能;其视频时序产生电路可产生行同步、场同步、混合视频同步等多种同步信号和像素时钟等多种时序信号;5V电源供电,工作时功耗<120mW,待机时功耗<10μW。可应用于数码相机、电脑摄像头、可视电话、第三代网络摄像机、手机、智能型安全系统、汽车倒车雷达、玩具,以及工业、医疗等多种用途。
OV7620是1/3”CMOS彩色/黑白图像传感器。它支持连续和隔行两种扫描方式,VGA与QVGA两种图像格式;像素为664×492,帧速率为30fps;数据格式包括YUV、YCrCb、RGB三种,能够满足一般图像采集系统的要求。
基本参数:
大 小:33x27x24(mm)
电 源:DC+5V ±5%
扫描方式:逐行/隔行扫描
照度:2.5 lux at f1.4 (3000k)
信 噪 比:> 48 dB
像素:(H)664 x (V)492; 缺省有效像素:(H)640 x (V)480
数据输出格式:
YCrCb 16bit/8bit selectable
60Hz 16 Bit YCrCb 4:2:2 - 640x480
60Hz 8 Bit YCrCb 4:2:2 - 640x480
RGB Raw Data Digital Output 16Bit/8Bit selectable
CCIR601, CCIR656, ZV 端口:支持8/16 位视频数据
SCCB接口:速率支持400 kBit/s
YCrCB或YUV输出格式:支持TV或监视器显示
OV7620扫描方式
OV7620是CMOS彩色/黑白图像传感器。它支持连续和隔行两种扫描方式,VGA与QVGA两种图像格式;像素为664492,帧速率为30fp8;数据格式包括YUV、YCrCb、RGB三种,能够满足一般图像采集系统的要求。
OV7620内部可编程功能寄存器的设置有上电模式和SCCB编程模式。
OV7620的控制采用SCCB(SeriaI Camera ControlBus)协议。SCCB是简化的I2C协议,SIO-l是串行时钟输入线,SIO-O是串行双向数据线,分别相当于I2C协议的SCL和SDA。SCCB的总线时序与I2C基本相同,它的响应信号ACK被称为一个传输单元的第9位,分为Don’t care和NA。Don’t care位由从机产生;NA位由主机产生,由于SCCB不支持多字节的读写,NA位必须为高电平。另外,SCCB没有重复起始的概念,因此在SCCB的读周期中,当主机发送完片内寄存器地址后,必须发送总线停止条
件。不然在发送读命令时,从机将不能产生Don’t care响应信号。
由于I2C和SCCB的一些细微差别,所以采用GPIO模拟SCCB总线的方式。SCL所连接的引脚始终设为输出方式,而SDA所连接的引脚在数据传输过程中,通过设置IODIR的值,动态改变引脚的输入/输出方式。SCCB的写周期直接使用I2C总线协议的写周期时序;而SC-CB的读周期,则增加一个总线停止条件。
OV7620功能寄存器的地址为0x00~0x7C(其中,不少是保留寄存器)。通过设置相应的寄存器,可以使OV7620工作于不同的模式。例如,设置OV7620为连续扫描、RGB原始数据16位输出方式,需要进行如下设置:
I2CSendByte()为写寄存器函数,它的第1个参数OV7620为宏定义的芯片地址0x42,第2个参数为片内寄存器地址,第3个参数为相应的寄存器设定值。
OV7620有4个同步信号:VSYNC(垂直同步信号)、FODD(奇数场同步信号)、HSYNC(水平同步信号)和PCLK(像素同步信号)。当采用连续扫描方式时,只使用VSYNC和HSYNC、PCLK三个同步信号,还引入了HREF水平参考信号。
LPC2210的3个外部中断引脚分别作为3个同步信号的输入,相应的中断服务程序分别为Vsync_IRQ()、Hsync_IRQ()和Pclk_IRQ()。在内存中定义一个二维数组存储图像数据,一维用变量y表示,用于水平同步信号计数;二维用变量x表示,用于像素同步信号计数。图像采集的基本流程
当用SCCB初始化好OV7620后,使能VSYNC对应的中断,在Vsync_IRQ()中断服务程序中判断是否已取得一帧数据。若是,则在主程序的循环体中进行数据处理;若不是,则使能HSYNC对应的中断,并将y置为O。在Hsync_IRQ()中断服务程序中,判断HREF的有效电平,若有效,则y加1,x置为O,并使能PCLK对应的中断。在Pclk_IRQ()中断服务程序中,判断HREF的有效电平,若有效,则z增加,同时采集一个像素点的图像数据。
在OV7620的3个同步信号中,PCLK的周期最短。当OV7620使用27 MHz的系统时钟时,默认的PCLK的周期为74 ns。而LPC2210的中断响应时间远远大于这个值。LPC2210的中断延迟时问为27个处理器指令周期,最小延迟时问为4个指令周期,再加上中断服务时间、现场恢复时间等,完成一次中断响应的时问要大于7~30个指令周期。当LPC2210使用系统频率60 MHz时,它的中断响应时间远大于O.2~0,6 μs,所以只能将OV7620的PCLK降频。通过设置时钟频率控制寄存器,可将PCLK的周期设为4μs左右。
OV7620作为主设备的工作方式
当OV7620工作于主设备方式时,它的YUV通道将连续不断地向总线上输出数据。如果将OV7620的YUV通道直接接在LPC2210的DO~D15数据总线上,则会干扰数据总线,使LPC2210不能正常运行;如果使用74HC244等隔离,分时使用数据总线的方法,则会大大降低系统的运行速度,使得LPC2210不能及时取走总线上的数据,造成图像数据不完整。由于LPC2210的数据总线宽度为32位,而Flash和SRAM仅占用了低16位数据线D0~D15,因此可以采用图l中的方法,将空闲的高16位数据线D16~D31设为GPIO,用于采集OV7620输出的16位图像数据。
OV7620采用16位输出方式时,Y通道和UV通道的数据输出格式如表l所列。从表l中可以看出,每一行Y通道和UV通道交替输出上一行的重复数据和本行的新数据。而在一行之内,B数据只在奇数列出现,R数据只在偶数列出现。
OV7620应用举例
下面以一个55的像素点阵为例,详细介绍图像数据的恢复。
首先定义一个515的字节型数组,在Pclk_IRQ()中断服务程序中读取55个像素点的图像数据;然后对图像数据进行插值,奇数点则在数组的连续3个字节中存入B、G、0,偶数点则存入O、G、R;对当前行的每一个字节与下一行对应列的每一个字节求平均值,即可算出当前行的RGB值。而在每一行内,奇数点的R数据和偶数点的B数据可通过分别对其两侧的2个点的R和B数据求平均值得到。
这样,一幅图像就恢复好了。可以直接存成二进制文件(本系统采用串口输出到PC进行显示),或者增加BMP位图文件头信息,存成biBitCouNt=24的DIB位图文件;也可用LPC2210对此图像数据进行进一步的处理,如指纹识别等。
如果采用带有DMA控制器,并且具有更高处理速度的ARM芯片,可大大提高整个图像采集系统的速度。例如,采用具有ARM9内核的S3C2410,其系统频率达203 MHz,完成一次DMA传送的时间约为30 ns。小于默认的PCLK的周期74 ns,可以实现30 fps的图像采集速度。 与搭配OV511+或CPLD/FPGA的图像采集系统相比,此图像采集系统极大地简化了系统结构,降低了系统设计成本,缩短了开发周期;图像数据的采集与处理均由ARM芯片完成,因而降低了数据中转过程中传输错误的几率,提高了系统的可靠性。