OV7670摄像头模块资料
实物案例
一、实物图和原理图
二、模块简介
OV7670 是 OV( OmniVision)公司生产的 CMOS VGA 图像传感器。该传感器体积小、工作电压低,提供单片 VGA 摄像头和影像处理器的所有功能。
通过 SCCB 总线控制,可以输出整帧、子采样、取窗口等方式的各种分辨率 8 位影像数据。该产品 VGA 图像最高达到 30 帧/秒。用户可以完全控制图像质量、数据格式和传输方式。所有图像处理功能过程包括伽玛曲线、白平衡、度、色度等都可以通过 SCCB 接口编程。
OV图像传感器应用独有的传感器技术,通过减少或消除光学或电子缺陷如固定图案噪声、托尾、浮散等,提高图像质量,得到清晰的稳定的彩色图像。
(1)CCD VS CMOS
CCD成像质量高,动态响应比较好,但制造工艺复杂,价格昂贵,比较重,电压12V。
CMOS质量轻,对电源电压的要求低,功耗比较低,成像质量差,噪声大。
目前市面上绝大多数的消费级别以及高端数码相机都使用CCD作为感应器;CMOS感应器则作为低端产品应用于一些摄像头上。
(2)图像分辨率
SXGA(分辨率1280x1024)又称130万像素;
XGA(分辨率1024x768)又称80万像素;
VGA,分辨率为 640*480 ;
CIF(分辨率352x288)又称10万像素
SIF/QVGA(分辨率320x240)
QCIF(分辨率176x144)
QSIF/QQVGA(分辨率160x120)
(3)摄像头OV7670特点
高灵敏度、低电压适合嵌入式应用;
标准的 SCCB 接口,兼容 IIC 接口;
支持 RawRGB、RGB(GBR4:2:2,RGB565 /RGB555 /RGB444),YUV(4:2:2)和 YCbCr(4:2:2)输出格式;
支持 VGA、QVGA、CIF,和从 CIF 到 40*30 的各种尺寸输出;
支持自动曝光控制、自动增益控制、自动白平衡、自动消除灯光条纹、自动黑电平校准等自动控制功能。同时支持色饱和度、色相、伽马、锐度等设置;
支持闪光灯;
支持图像缩放;
(4)SCCB总线
SCCB(OmniVision serial camera control bus),即串行摄像机控制总线。OmniVision 公司已经定义和采纳的SCCB总线是一种三线结构的串行总线,用于完成对绝大多数OmniVision 系列图像传芯片功能的控制。
SCCB_E(片选),SIO_D(数据线)和 SIO_C(时钟线)
(5)基本概念
PCLK,即像素时钟,一个 PCLK 时钟,输出一个像素(或半个像素)。
VSYNC,即帧同步信号。
HREF /HSYNC,即行同步信号。
OV7670 的图像数据输出(通过 D[7:0])就是在 PCLK,VSYNC 和 HREF/ HSYNC 的控制下进行的。
(6)行输出时序
图像数据在 HREF 为高的时候输出,当 HREF 变高后,每一个 PCLK 时钟,输出一个字节数据。比如我们采用 VGA 时序, RGB565 格式输出,每 2 个字节组成一个像素的颜色(高字节在前,低字节在后),这样每行输出总共有 6402 个 PCLK 周期,输出 6402个字节。
OV7670 在 VGA(分辨率为 640*480 )模式下的数据输出。
VSYNC,即帧同步信号。
HREF ,即行同步信号。
(7)FIFO暂存图像数据
因为 OV7670 的像素时钟( PCLK)最高可达 24Mhz,我们用 STM32F103ZET6 的 IO 口直接抓取,十分占耗 CPU(可以通过降低 PCLK 输出频率,来实现 IO 口抓取,但是不推荐)。
所以,本章并不是采取直接抓取来自 OV7670 的数据,而是通过 FIFO 读取,ALIENTEK OV7670 摄像头模块自带了一个 FIFO 芯片,用于暂存图像数据,有了这个芯片,就可以很方便的获取图像数据了,而不再需要单片机具有高速 IO,也不会耗费多少 CPU,可以说,只要是个单片机,都可以通过 ALIENTEK OV7670 摄像头模块实现拍照的功能。
(8)ALIENTEK OV7670 摄像头模块特点
1.自带了有源晶振,用于产生 12M 时钟作为 OV7670 的 XCLK 输入。
2.自带了稳压芯片( PAM3101DAB28 ),用于提供 OV7670 稳定的2.8V 工作电压。
3.自带一个 FIFO 芯片( AL422B),该 FIFO 芯片的容量是 384K 字节,足够存储 2 帧 QVGA 的图像数据。
4.自带感红外镜头(有滤光片),色彩鲜艳,可手动对焦(焦距3.6mm)。
5.体积小巧(27mm*26mm)。
(9)摄像头模块连接
ALIENTEK OV7670 摄像头模块通过一个 2*9 的双排排针( P1)与外部通信,与外部的通信信号如表:
注意: ATK OV7670 模块与MCU的连线不宜过长,否则容易受到干扰,导致不出图像(花屏/图像混乱),如果一定要延长,尽量使用排线,而不是单根杜邦线。