OV7670摄像头模块资料

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的连线不宜过长,否则容易受到干扰,导致不出图像(花屏/图像混乱),如果一定要延长,尽量使用排线,而不是单根杜邦线。

STM32摄像头模块成像 #include "system.h" #include "SysTick.h" #include "led.h" #include "usart.h" #include "tftlcd.h" #include "key.h" #include "malloc.h" #include "sd.h" #include "flash.h" #include "ff.h" #include "fatfs_app.h" #include "key.h" #include "font_show.h" #include "exti.h" #include "time.h" #include "string.h" #include "math.h" #include "ov7670.h" extern u8 ov_sta; //在exit.c里面定义 extern u8 ov_frame; //在time.c里面定义 //更新LCD显示 void camera_refresh(void) { u32 j; u16 i; u16 color; u16 temp; if(ov_sta)//有帧中断更新? { //LCD_Set_Window((tftlcd_data.width-320)/2,(tftlcd_data.height-240)/2,320,240-1);//将显示区域设置到屏幕中央 LCD_Set_Window(0,(tftlcd_data.height-240)/2,320-1,240-1);//将显示区域设置到屏幕中央 OV7670_RRST=0; //开始复位读指针 OV7670_RCK_L; OV7670_RCK_H; OV7670_RCK_L; OV7670_RRST=1; //复位读指针结束 OV7670_RCK_H; /*for(i=0;i<240;i++) //此种方式可以兼容任何彩屏,但是速度很慢 { for(j=0;jIDR&0XFF; //读数据 OV7670_RCK_H; color<IDR&0XFF; //读数据 OV7670_RCK_H; LCD_DrawFRONT_COLOR(j,i,color); } }*/ for(j=0;jIDR&0XFF; //读数据 OV7670_RCK_H; color<IDR&0XFF; //读数据 OV7670_RCK_H; LCD_WriteData_Color(color); //printf("%x ",color); //if(j ==0)printf("\r\n"); //delay_us(50); } ov_sta=0; //清零帧中断标记 ov_frame++; } } const u8*LMODE_TBL[5]={"Auto","Sunny","Cloudy","Office","Home"}; const u8*EFFECTS_TBL[7]={"Normal","Negative","B&W","Redish","Greenish","Bluish","Antique"}; //7种特效 int main() { u8 i=0; u8 key; u8 lightmode=0,saturation=2,brightness=2,contrast=2; u8 effect=0; u8 sbuf[15]; u8 count; SysTick_Init(72); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中断优先级分组 分2组 LED_Init(); USART1_Init(9600); TFTLCD_Init(); //LCD初始化 KEY_Init(); EN25QXX_Init(); //初始化EN25Q128 my_m
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值