OV7670 + AL422B(FIFO) Camera Module(V2.0) PCB PIN
OV7670 视频显示系统整体架构
OV7670 视频显示系统整体架构v sdram_ov7670_yuv 模型解析顶层模块主要可以划分为4 个模块,完成了整个电路的设计,如下所示。
序号模块功能介绍1 System_ctrl 异步复位,PLL 等的同步处理,模块2 Sdram_vga_top 基于SDRAM 的显示控制器3 I2C_AV_Controller CMOS 摄像头I2C 初始化模块4 CMOS_Cputure CMOS 摄像头数据采集模块整个系统的数据流,就是在CMOS 摄像头初始化完成以后,通过CMOS_Capter 模块捕获CMOS 输出的图像数据,写入到sdram_vga_top 模块。
Sdram_vga_top 模块通过相关存储以及处理,最后实时输出于VGA 显示器上。
,sdram 显示控制器从接口上主要完成了异步数据的处理,sdram存储器的控制,以及VGA 显示器的显示Sdram_vga_top 内部相关模块以及功能如下表所示序号模块功能1 sdram_2fifo_top sdram 控制器的异步缓存顶层模块。
2 sdbank_switch 单片sdram 的内部乒乓实现。
3 video_image_processing 视频图像处理单元,完成YUV 的解码4 lcd_display Lcd 显示图像控制模块5 lcd_top Lcd 接口时序控制电路1) lcd_top:作为VGA 显示器的时序电路,主要完成VGA 的驱动。
module lcd_top(//global clockinput clk, //system clockinput rst_n, //sync reset//lcd interfaceoutput lcd_dclk, //lcd pixel clockoutput lcd_blank, //lcd blankoutput lcd_sync, //lcd syncoutput lcd_hs, //lcd horizontal syncoutput lcd_vs, //lcd vertical syncoutput lcd_en, //lcd display enableoutput [15:0] lcd_rgb, //lcd display data//user interfaceoutput lcd_request, //lcd data requestoutput lcd_framesync, //lcd frame syncoutput [10:0] lcd_xpos, //lcd horizontal coordinateoutput [10:0] lcd_ypos, //lcd vertical coordinateinput [15:0] lcd_data //lcd data);//-------------------------------------lcd_driver u_lcd_driver(//global clock.clk (clk),.rst_n (rst_n),//lcd interface.lcd_dclk (lcd_dclk),.lcd_blank (lcd_blank),.lcd_sync (lcd_sync),.lcd_hs (lcd_hs),.lcd_vs (lcd_vs),.lcd_en (lcd_en),.lcd_rgb (lcd_rgb),//user interface.lcd_request (lcd_request),.lcd_framesync (lcd_framesync),.lcd_data (lcd_data),.lcd_xpos (lcd_xpos),.lcd_ypos (lcd_ypos));endmodule2) lcd_display:作为VGA 显示控制电路,主要完成数据流的选择,同时可以在该模块完成字幕,半透明等操作。
OV7670带FIFO的CMOS摄像头使用说明
OV7670带FIFO的CMOS摄像头使用说明OV7670是一款带有FIFO的CMOS摄像头芯片,广泛应用于各种嵌入式系统中。
它具有低功耗、高灵敏度和高图像质量等特点,适合于图像采集和处理应用。
以下是OV7670带FIFO的CMOS摄像头的使用说明。
一、硬件连接1.连接供电:将模块的VCC引脚连接到3.3V的电源,GND引脚连接到地。
2.数据传输:-使用I2C协议进行配置:将模块的SDA引脚连接到主控芯片的SDA 引脚,SCL引脚连接到主控芯片的SCL引脚。
-使用FIFO模式进行数据传输:将模块的FIFO_WR引脚连接到主控芯片的写使能引脚,FIFO_RD引脚连接到主控芯片的读使能引脚,FIFO_WE 引脚连接到主控芯片的写时钟引脚,FIFO_OE引脚连接到主控芯片的读时钟引脚,FIFO_RST引脚连接到主控芯片的复位引脚,DATA引脚连接到主控芯片的数据引脚。
二、软件配置1.I2C配置:通过I2C协议对OV7670进行配置。
首先初始化I2C总线,然后发送配置指令给OV7670的I2C地址,通过写入特定的寄存器来配置图像参数,如分辨率、亮度、对比度等。
2.FIFO配置:通过FIFO模式进行数据传输。
首先对OV7670进行FIFO模式的配置,设置FIFO的像素格式、帧率等参数。
然后初始化主控芯片的访问FIFO的接口,设置读写使能信号并根据需要配置写时钟和读时钟。
最后,在读取FIFO数据之前,先进行FIFO的复位以确保数据的正确读取。
三、数据采集和处理1.数据采集:通过FIFO模式进行数据采集,将摄像头拍摄到的图像数据存储到FIFO缓存中。
2. 数据处理:从FIFO缓存中读取图像数据,并进行相关的图像处理操作,如图像解码、颜色空间转换、图像滤波等。
可以使用各种图像处理算法和库来实现不同的功能,如OpenCV等。
四、常见问题和解决方案1.图像质量问题:如果发现图像质量差,可以尝试调整摄像头的参数,如增加亮度、对比度等,或者使用图像后处理算法进行图像增强。
OV7670 摄像头模块介绍
OV7670 摄像头模块介绍OV7670 摄像头模块简介OV7670是OV(OmniVision)公司生产的一颗1/6寸的CMOS VGA 图像传感器。
该传感器体积小、工作电压低,提供单片VGA摄像头和影像处理器的所有功能。
通过SCCB 总线控制,可以输出整帧、子采样、取窗口等方式的各种分辨率8位影像数据。
该产品VGA图像最高达到30帧/秒。
用户可以完全控制图像质量、数据格式和传输方式。
所有图像处理功能过程包括伽玛曲线、白平衡、度、色度等都可以通过SCCB接口编程。
OmmiVision 图像传感器应用独有的传感器技术,通过减少或消除光学或电子缺陷如固定图案噪声、托尾、浮散等,提高图像质量,得到清晰的稳定的彩色图像。
OV7670 摄像头模块特点1、高灵敏度、低电压适合嵌入式应用。
2、标准的SCCB接口,兼容IIC接口。
3、支持RawRGB、RGB(GBR4:2:2,RGB565/RGB555/RGB444),YUV(4:2:2)和YCbCr(4:2:2)输出格式。
4、支持VGA、CIF,和从CIF到40*30的各种尺寸输出。
5、支持自动曝光控制、自动增益控制、自动白平衡、自动消除灯光条纹、自动黑电平校准等自动控制功能。
同时支持色饱和度、色相、伽马、锐度等设置。
6、支持闪光灯。
7、支持图像缩放。
OV7670 摄像头模块功能框图OV7670传感器包括如下一些功能模块。
1、感光整列(Image Array)OV7670总共有656*488个像素,其中640*480个有效(即有效像素为30W)。
2、时序发生器(Video Timing Generator)时序发生器具有的功能包括:整列控制和帧率发生(7种不同格式输出)、内部信号发生器和分布、帧率时序、自动曝光控制、输出外部时序(VSYNC、HREF/HSYNC和PCLK)。
3、模拟信号处理(Analog Processing)模拟信号处理所有模拟功能,并包括:自动增益(AGC)和自动白平衡(AWB)。
OV7670
OV7670
OV7670图像传感器:OV7670是美国OmniVision 公司的彩色/黑白CMOS 图像传感器。
这是一种自带图像敏感阵列和A/D 转换元件、能直接提供8位RGB/YUV等格式视频数字信号的彩色/黑白图像传感器,图像输出最高速度可达30帧/s,最大图像分辨率为640×480,3.3V 供电;它具有自动增益、自动白平衡、边缘增强、伽玛校正等控制功能;可以通过SCCB(兼容I2C总线)总线进行设置;同时OV7670 具有图像开窗输出的功能,即允许用户可根据实际使用需要设置其内部寄存器,使其只输出完整图像中的任意一个矩形区域内的信号,支持VGA,CIF和从CIF到40×30的各种尺寸。
OV7670摄像头彻底解读
4 / 23
2013‐2‐21
[艾曼电子技术文档 HTTP:// ]
二、 OV7670 摄像头怎么用
1. 摄像头硬件电路
数据传输的终止
图 8 SCCB 终止信号 tPSC 是 SCCB——E 上升沿,SIO_D 保持逻辑高电平的时间,最小为 15ns; tPSA 是 SIO_D 上升沿,SCCB_E 必须保持低电平的时间,最小为 0ns。
2.3 SCCB 写时序
写时序由 3 相构成。先写设备地址,再写寄存器地址,最后写寄存器的值,即 ID‐Address + SUB‐Address + W‐Data。OV7670 的设备地址为 0x42,最后一位用来判断读写,即读的时候为 0x43。
2 / 23
2013‐2‐21
[艾曼电子技术文档 HTTP:// ]
15
DVDD
Power
Power supply (VDD-C= 1.8 VDC + 10%) for digital output drive
16
HREF
Output
HREF output
Power Down Mode Selection - active high, internal
U1
A1 A2 A3 A4 A5 B1 B2 B3 B4 B5 C1 C2 D1 D2 E1 E2 E3 E4 E5 F1 F2 F3 F4 F5
AVDD SIO_D SIO_C D1 D3 PWDN VREF2 AGND D0 D2 DVDD VREF1 VSYNC HREF PCLK STROBE XCLK D7 D5 DOVDD RESET# DOGND D6 D4
OV7670照相模组硬件应用指南1.01 OVT
O
V
Co
修改日期:2007-12-12 版本: 1.06
nf
OmniVision 公司机密
id e
nt
ia l
OV7670 照相模组硬件应用指南
Table of Contents
1. OV7670 模组参考设计................................................................................................................... 3 注:...................................................................................................................................................... 3 1.PWDN 和 RESET 不用时,应接地.................................................................................................3 2. OV7670 模组接口参考设计........................................................................................................... 4 2.1 引脚定义...............................................................................................................................
OV7670摄像头彻底解读
4 / 23
2013‐2‐21
[艾曼电子技术文档 HTTP:// ]
二、 OV7670 摄像头怎么用
1. 摄像头硬件电路
13
Y7
Output
14 DOVDD
Power
功能定义 Output bit[0] - LSB for 10-bit RGB only
Output bit[1] - for 10-bit RGB only Output bit[4] Output bit[3] Output bit[5]
Output bit[2] - LSB for 8-bit YUV Output bit[6]
END <= 0;
end
//Start
6'd1 : begin
SCLK <= 1;
I2C_BIT <= 1;
ACKW1 <= 1; ACKW2 <= 1; ACKW3 <= 1;
END <= 0;
end
6'd2 : I2C_BIT <= 0;
//I2C_SDAT = 0
6'd3 : SCLK <= 0;
6'd8 : I2C_BIT <= I2C_WDATA[19]; //Bit4
6'd9 : I2C_BIT <= I2C_WDATA[18]; //Bit3
6'd10 : I2C_BIT <= I2C_WDATA[17]; //Bit2
6'd11 : I2C_BIT <= I2C_WDATA[16]; //Bit1
ov7670寄存器配置调试总结
废话后面说,先直接上OV7670寄存器的配置部分const uint8_t OV7670_Reg[][2]={//Frame Rate Adjustment for 24Mhz input clock//30fps PCLK=24MHz{0x11, 0x80},//软件应用手册上设置的是0x80,例程设置的是0x00{0x6b, 0x0a},//PLL控制,软件应用手册上设置的是0x0a,例程设置的是0x40,将PLL调高的话就会产生花屏{0x2a, 0x00},{0x2b, 0x00},{0x92, 0x00},{0x93, 0x00},{0x3b, 0x0a},//Output format{0x12, 0x14},//QVGA(320*240)、RGB//RGB555/565 option(must set COM7[2] = 1 and COM7[0] = 0){0x40, 0x10},//RGB565,effective only when RGB444[1] is low{0x8c, 0x00},//Special effects - 特效//normal{0x3a, 0x04},{0x67, 0xc0},{0x68, 0x80},//Mirror/VFlip Enable - 水平镜像/竖直翻转使能{0x1e, 0x37},//修改配置值将产生图像显示上下或左右颠倒//Banding Filter Setting for 24Mhz Input Clock - 条纹滤波器//30fps for 60Hz light frequency//{0x13, 0xe7},//banding filer enable//{0x9d, 0x98},//50Hz banding filer//{0x9e, 0x7f},//60Hz banding filer//{0xa5, 0x02},//3 step for 50Hz//{0xab, 0x03},//4 step for 60Hz//{0x3b, 0x02},//select 60Hz banding filer//Simple White Balance - 白平衡//{0x13, 0xe7},//AWB、AGC、AGC Enable and ...//{0x6f, 0x9f},//simple AWB//AWBC - 自动白平衡控制(Automatic white balance control)//{0x43, 0x14},//用户手册里这些寄存器的值都是保留(Reserved),不用设置的呀?//{0x44, 0xf0},//{0x45, 0x34},//{0x46, 0x58},//{0x47, 0x28},//{0x48, 0x3a},//AWB Control//{0x59, 0x88},//用户手册连寄存器都是保留,初始值都没提供//{0x5a, 0x88},//{0x5b, 0x44},//{0x5c, 0x67},//{0x5d, 0x49},//{0x5e, 0x0e},//AWB Control//{0x6c, 0x0a},//{0x6d, 0x55},//{0x6e, 0x11},//{0x6f, 0x9f},//AGC/AEC - Automatic Gain Control自动增益补偿/Automatic exposure Control自动曝光控制//{0x00, 0x00},//{0x14, 0x20},//{0x24, 0x75},//{0x25, 0x63},//{0x26, 0xA5},//AEC algorithm selection - AEC公式选择//{0xaa, 0x94},//基于平均值的AEC算法Average-based AEC algorithm/基于直方图的AEC算法Histogram-based AEC algorithm//基于直方图的AGC/AEC的控制//{0x9f, 0x78},//{0xa0, 0x68},//{0xa6, 0xdf},//{0xa7, 0xdf},//{0xa8, 0xf0},//{0xa9, 0x90},//Fix Gain Control - 固定增益控制//{0x69, 0x5d},//Fix gain for Gr channel/for Gb channel/for R channel/for B channel//Color saturation 颜色饱和度+ 0//{0x4f, 0x80},//{0x50, 0x80},//{0x51, 0x00},//{0x52, 0x22},//{0x53, 0x5e},//{0x54, 0x80},//{0x58, 0x9e},//Brightness - 亮度+ 0//{0x55, 0x00},//Contrast - 对比度+ 0//{0x56, 0x40},//Gamma Curve - 伽马曲线//{0x7a, 0x20},//{0x7b, 0x1c},//{0x7c, 0x28},//{0x7d, 0x3c},//{0x7e, 0x55},//{0x7f, 0x68},//{0x80, 0x76},//{0x81, 0x80},//{0x82, 0x88},//{0x83, 0x8f},//{0x84, 0x96},//{0x85, 0xa3},//{0x86, 0xaf},//{0x87, 0xc4},//{0x88, 0xd7},//{0x89, 0xe8},//Matrix Coefficient - 色彩矩阵系数//{0x4f, 0x80},//{0x50, 0x80},//{0x51, 0x00},//{0x52, 0x22},//{0x53, 0x5e},//{0x54, 0x80},//Lens Correction Option - 镜头补偿选项 //{0x62, 0x00},//{0x63, 0x00},//{0x64, 0x04},//{0x65, 0x20},//{0x66, 0x05},//{0x94, 0x04},//effective only when LCC5[2] is high//{0x95, 0x08},//effective only when LCC5[2] is high//注释这些配置的话,就倾斜显示,并显示多块,这到底是控制什么的?跟时序图有关?{0x17, 0x16},//行频Horizontal Frame开始高八位(低三位在HREF[2:0]){0x18, 0x04},//行频Horizontal Frame结束高八位(低三位在HREF[5:3]){0x19, 0x02},//场频Vertical Frame开始高八位(低二位在VREF[1:0]){0x1a, 0x7b},//场频Vertical Frame结束高八位(低二位在VREF[3:2]){0x32, 0x80},//HREF{0x03, 0x06},//VREF//注释这个配置的话,就显示花屏了{0x15, 0x02},//配置PCLK、HREF、VSYNC相关//Automatic black Level Compensation - 自动黑电平校正{0xb0, 0x84},//调试时注释这项配置时,颜色显示不正常了,红色练绿色,绿色变红色,但用户手册对这寄存器是保留RSVD//{0xb1, 0x0c},//{0xb2, 0x0e},//{0xb3, 0x82},//{0xb8, 0x0a},//SCALING_xx寄存器//{0x70, 0x00},//{0x71, 0x00},//{0x72, 0x11},//{0x73, 0x08},//{0x3e, 0x00},//ADC//{0x37, 0x1d},//ADC控制ADC Control//{0x38, 0x71},//ADC和模拟共模控制ADC and Analog Common Mode Control//{0x39, 0x2a},//ADC偏移控制ADC Offset Control//零杂的寄存器//{0x92, 0x00},//空行低八位Dummy Line low 8 bits//{0xa2, 0x02},//像素时钟延时//{0x0c, 0x0c},//{0x10, 0x00},//{0x0d, 0x01},//{0x0f, 0x4b},//{0x3c, 0x78},//{0x74, 0x19},//用户手册里这几个寄存器都是保留RSVD//{0x0e, 0x61},//{0x16, 0x02},//{0x21, 0x02},//{0x22, 0x91},//{0x29, 0x07},//{0x33, 0x0b},//{0x35, 0x0b},//{0x4d, 0x40},//{0x4e, 0x20},//{0x8d, 0x4f},//{0x8e, 0x00},//{0x8f, 0x00},//{0x90, 0x00},//{0x91, 0x00},//{0x96, 0x00},//{0x9a, 0x80},};刚开始学OV7670摄像头,我想大家跟我一样心里很毛躁吧,一个模块需要你配置100多个寄存器,但用户手册对寄存器的介绍却草草的一笔带过,自己无从下手啊,只能看开发板给的例程和上网找一些大虾的帖子了。
OV7670调试的问题
2012-03-24 20:42OV7670调试的问题拿出来请大家共同解决硬件:STM32+OV7670+AL422B (电路参照zidong404的)软件思路也是参考zidong404的,现在图像显示基本出来了,但是效果很不好,最关键的是不知道从哪修改。
液晶ssd1289显示的图片如下:输出格式:QVGA RGB565 320*240出现的问题:1、图像分块,而且三块显示的是同一幅图片,不知道是缓存指针读写复位不正常的是不,程序和zidong404的一样的?2、图像重叠,一次显示不是全屏,只是半屏?好像写入的数据不够?我现在很模糊的几个问题是:1、配置QVGA RGB565格式写入缓存AL422的数据是不是320*240*2个字节?如果是,那为何一次显示只有半屏呢?2、还有窗口设置我不是太懂OV7660_config_window(272,16,320,240);// set 240*320 ,谁能帮忙解释一下,272和16这几个数据是怎么得到的?3、还有__nop();这条指令的运用,是直接用吗?需要包含什么文件吗? 51里面用它不是包含一个文件才能使用它吗?弄了半天终于弄出来了!在这里要感谢zidong404的指点。
现在分享一下我的调试结果:1、上面第一和第二个问题出现的原因很简单,摄像头配置出来的图片数据是横屏格式240行,每行320个点,每个像素2个字节,而我的液晶屏配置是竖屏显示的,所以图像分块。
这一点虽然没问题了,但我感觉这样的话图像分块应该是不规则的,而结果是三块一样的图像。
2、还有读写指针复位,如果写指针复位延时不够也会图像分块。
3、还有XCLK时钟我的是8M,这个我试了36M的影响不大,但是不能超过50M,STM32系统时钟72M直接加上也能显示图像,但是有一层绿色的背景色。
4、还有PLL倍频选择旁路PLL图像也会分块,图像发生畸变,大于输入时钟*4就OK了。
5、显示的时候有时液晶背景颜色会是淡黄的不知为何?图像显示正常。
OV7670带FIFO的CMOS摄像头使用说明
OV7670-CMOS摄像头使用说 明2014.2.10 参赛平台1.OV7670带FIFO 模块1.简介:OV7670带FIFO 模块,是针对慢速的MCU 能够实现图像采集控制推出的带有缓冲存储空间的一种模块。
这种模块增加了一个FIFO (先进先出)存储芯片,同样包含30w 像素的CMOS 图像感光芯片,3.6mm 焦距的镜头和镜头座,板载CMOS 芯片所需要的各种不同电源(电源要求详见芯片的数据文件),板子同时引出控制管脚和数据管脚,方便操作和使用。
图1.OV7670带FIFO模块 2.管脚定义:参赛平台如图,控制传感器所需的管脚定义如下:3V3-----输入电源电压(推荐使用3.3,5V 也可,但不推荐)GDN-----接地点SIO_C---SCCB 接口的控制时钟(注意:部分低级单片机需要上拉控制,和I2C 接口类似)SIO_D---SCCB 接口的串行数据输入(出)端(注意:部分低级单片机需要上拉控制,和I2C 接口类似) VSYNC---帧同步信号(输出信号)HREF----行同步信号(输出信号)PCLK----像素时钟(输出信号)XCLCK---时钟信号(输入信号)D0-D7---数据端口(输出信号)RESTE---复位端口(正常使用拉高)PWDN----功耗选择模式(正常使用拉低)STROBE—拍照闪光控制端口(正常使用可以不需要)FIFO_RCK---FIFO 内存读取时钟控制端FIFO_WR_CTR----FIFO 写控制端(1为允许CMOS 写入到FIFO,0为禁止) FIFO_OE----FIFO 关断控制FIFO_WRST—FIFO 写指针服务端FIFO_RRST—FIFO 读指针复位端 参赛平台图7.FIFO摄像头接口定义3.控制方式说明由于采用了FIFO 做为数据缓冲,数据采集大大简便,用户只需要关心是如何读取即可,不需要关心具体数据是如何采集到的,这样可减小甚至不用关心CMOS 的控制以及时序关系,就能够实现图像的采集。
STM32 OV7670 开发套件
STM32 OV7670开发套件Zidong404一、OV7670模块(V2)1.1 概要OV7670模块板载了有源晶振和视频FIFO,FIFO最大容量为384KB (3M位),可以存放一帧640*480(30万像素)RGB RAW格式的图片,演示代码将摄像头配置为了320*240 RGB565格式输出,这样像素大小和数据格式刚好对应2.8寸TFT 彩屏,数据不用经过转换便能直接使用。
另外OV7670还支持YVU422和RGB RAW的输出格式,详细寄存器配置请参考相关的数据手册。
V2版本有P1和P2两个接口,两个接口引脚功能是相同的,P1是2.54mm间距,方便在没有STM32主板的情况下通过跳线与其他单片机系统连接调试,P2是2.0mm间距的,可以直接插在STM32主板上的P2插槽(注意摄像头应该面向屏的一方)。
其中有两个引脚XCLK和PWDN是扩展功能,由于模块上已经有有源晶振给摄像头提供时钟,所以XCLK不用再提供时钟;PWDN用来配置摄像头进入低功耗模式,默认情况下不进入该模式。
通常情况下,只有这两个引脚悬空,其他的引脚都是需要使用的。
1.2 LDO电路V2版本增加了一个LDO(U4)电路提供摄像头内核电压,由于OV7670内部具有LDO功能,所以默认情况下该LDO没有焊接。
提供一个LDO电路是为了能兼容其他内部不带LDO电路的摄像头。
1.3 模块工作原理OV7670与FIFO的组合要需要注意一定的时序。
一个简单而有效的组合是这样的:OV 的场同步接入MCU的外部中断(上升沿触发),这样当一个场同步的到来时(在较窄的高电平到来后,接着就是有效的场同步了【低电平】)开启FIFO的写时使能,这样数据就在行同步与MCU的控制下按照像素时钟依次写入FIFO。
当一场图像数据已经进入了FIFO以后,也标志着下一场数据将要来到,也即下一个场同步的上升沿即将到来,当下一个上升沿触发并进入中断后,MCU应该关掉FIFO的写使能,然后开始读FIFO的数据,知道数据读完以后再开始下一次的数据采集。
摄像头模块使用_AN1202
图 1.4 ALIENTEK OV7670 摄像头模块外观图
2012-11-02
ALIENTEK MiniSTM32开发板
模块原理图如图 1.5 所示:
AN1202
图 1.5 ALIENTEK OV7670 摄像头模块原理图
从上图可以看出,ALIENTEK OV7670 摄像头模块自带了有源晶振,用于产生 12M 时
WEN VSYNC
MiniSTM32 开发板
2、硬件连接
通过前面的介绍,我们知道,ALIENTEK OV7670 摄像头模块与 MCU 连接需要 16 根
信号线,以及 2 根电源线。这 16 根信号线与 ALIENTEK MiniSTM32 开发板的连接关系如
表 2.1 所示:
摄像头模块与开发板连接关系
OV7670 摄像头模块
D0~D7
SCL SDA WRST RCLK RRST OE
2012-11-02
ALIENTEK MiniSTM32开发板
AN1202
图 1.3 OV7670 帧时序 上图清楚的表示了 OV7670 在 VGA 模式下的数据输出,注意,图中的 HSYNC 和 HREF 其实是同一个引脚产生的信号,只是在不同场合下面,使用不同的信号方式,这里我们用到 的是 HREF。 因为 OV7670 的像素时钟(PCLK)最高可达 24Mhz,我们用 STM32F103RBT6 的 IO 口直接抓取,是非常困难的,也十分占耗 CPU(可以通过降低 PCLK 输出频率,来实现 IO 口抓取,但是不推荐)。所以,这里我们并不是采取直接抓取来自 OV7670 的数据,而是通 过 FIFO 读取,ALIENTEK OV7670 摄像头模块自带了一个 FIFO 芯片,用于暂存图像数据, 有了这个芯片,我们就可以很方便的获取图像数据了,而不再需要单片机具有高速 IO,也 不会耗费多少 CPU,可以说,只要是个单片机,都可以通过 ALIENTEK OV7670 摄像头模 块实现拍照的功能。 接下来我们介绍一下 ALIENTEK OV7670 摄像头模块。该模块的外观如图 1.4:
ov6620 ov7670 ov7620 各自优点
ov6620与普通模拟摄像头需要9~12V供电不同,OV6620仅需5V供电,因飞思卡尔智能车比赛提供的电池电压是7.2~8.2V,所以用OV6620省去了做升压电路这一环节,仅仅需要做一个5V 供电就可以,可以采用7805芯片或2940芯片,电路简单。
OV6620采用PAL制式(国内的普通电视机制式),每秒25帧,分辨率为356*292,内部集成了AD转换模块和视频分离模块,省去了1881视频分离芯片。
当然,也可以当模拟摄像头来使用,比如调焦时,这时可以将视频信号端接至OV6620的VTO端即可。
OV6620的优点:供电电压低,简化电路;内部集成AD和视频分离模块,简化电路,并且使得采集程序简单,采集质量高;视频信号转换在内部进行,减轻单片机负担。
OV6620共有32个引脚,但我们真正能用到的不多。
我在做智能车时仅仅用到13个引脚,其他引脚并未使用,但是其他学校也有使用其他引脚的。
现在把常用的引脚列出来:Y0~Y7(数据输出端,接单片机IO口)、VSYNC(场中断信号端)、HREF(行中断信号端)、VCC(接5V)、GND(接地)、VTO(接视频采集卡调焦),其他可能会使用到的引脚:PCLK (像素同步信号端)、FODD(奇偶场信号端)。
摄像头的工作原理在这里不在进行说明,但需要说明的是:因为OV6620场中断上升沿时间很短,单片机可能捕捉不到上升沿中断,所以判断OV6620一场是否开始选择使用下降沿判断;行中断使用上升沿判断,而且采集的有效点都是在上升沿范围内,下降沿则表示已经进入行消隐区,此时采集的都是废数据(在使用OV6620采集时都为0X10)。
利用这个可以通过测试判断一行所能采集到的有效点个数。
关于中断触发,行中断(HREF)接单片机的T0口,场中断(VSYNC)接单片机的T1口,保证图像采集不会被打断。
市场上提到可以应用在智能车上的摄像头,多如牛毛。
到底那一款最适合用在智能车上呢,这里DEMOK选取了2款典型的摄像头OV7670与OV7620,从其特性和性能等角度,剖析摄像头的特点,为大家揭开迷雾。
基于机器视觉的玻璃尺寸测量系统
开发研究基于机器视觉的玻璃尺寸测量系统陆啸龙I,解家月2(1 •东风(十堰)林泓汽车配套件有限公司,湖北 十堰442000;2.湖北工业大学,湖北武汉430068)摘要:利用机器视觉技术进行尺寸测量可以降低劳动 强度,提高效率与一致性,得到了广泛应用。
由于玻璃自 身的特点,采用机器视觉测量存在一定的难度,成本较高。
为了解决上述问题,本文设计了一种基于STM32的图像采集及玻璃尺寸测量系统,以STM32为主控单元控制OV7670图像传感器采集输出RGB565 QVGA 的图像数据,经过图像处理后计算出玻璃尺寸,实现对玻璃尺寸的非接触式测量。
同时本系统可将图像实时显示在TFT LCD 上,并用BMP 文件的形式保存供后期检索。
本系统成本低、测量快速、准确,具有高性价比,可推广应用于玻璃行业的尺寸测量。
关键词:STM32;机器视觉;玻璃尺寸测量0引言随着微电子技术的发展和集成电路集成度及工艺的提高,嵌入式处理器的性能也得到了快速发展与提高。
基于嵌入式系统的图像采集处理平台不仅价格低廉,功耗低,还 具有体积小、易安装的优点。
针对当前玻璃行业尺寸测量的需要,选用STM32F103ZET6为系统控制单元、OV7670 图像传感器为图像采集单元、LCD 显示屏为图像显示单元、 标准存储卡为图像存储单元,实现了对玻璃图像的获取,并 通过对图像分析处理得到玻璃的实际尺寸。
1 硬件系统4/I 总体方案基于机器视觉的玻璃尺寸测量系统主要由系统控制单元、图像采集单元、图像显示单元、图像存储单元等组成。
玻璃尺寸测量系统的总体框图如图1所示。
ffii 系统总体框图其中STM32微控制器是整个系统的控制中心,图像 数据的处理以及各模块的控制都由STM32控制,通过对OV7670寄存器的读写从而实现图像采集。
基于机器视觉的玻璃尺寸测量系统选择STM32F103ZET6微控制器。
OV7670图像传感器负责图像数据的采集,但该传感器的像素时钟为24 MHz,如果直接通过STM32的I/O 口获取,不仅会造成数据丢失,还会对CPU 造成很大的负担,所以使用AL422B 作为先进先出队列(FIFO),当一帧图像 缓存完后,STM32再将这一帧图像数据传入显存或暂存到 内存中。
ov6620ov7670ov7620各自优点
ov6620ov7670ov7620各自优点ov6620与普通模拟摄像头需要9~12V供电不同,OV6620仅需5V供电,因飞思卡尔智能车比赛提供的电池电压是7.2~8.2V,所以用OV6620省去了做升压电路这一环节,仅仅需要做一个5V 供电就可以,可以采用7805芯片或2940芯片,电路简单。
OV6620采用PAL制式(国内的普通电视机制式),每秒25帧,分辨率为356*292,内部集成了AD转换模块和视频分离模块,省去了1881视频分离芯片。
当然,也可以当模拟摄像头来使用,比如调焦时,这时可以将视频信号端接至OV6620的VTO端即可。
OV6620的优点:供电电压低,简化电路;内部集成AD和视频分离模块,简化电路,并且使得采集程序简单,采集质量高;视频信号转换在内部进行,减轻单片机负担。
OV6620共有32个引脚,但我们真正能用到的不多。
我在做智能车时仅仅用到13个引脚,其他引脚并未使用,但是其他学校也有使用其他引脚的。
现在把常用的引脚列出来:Y0~Y7(数据输出端,接单片机IO口)、VSYNC(场中断信号端)、HREF(行中断信号端)、VCC(接5V)、GND(接地)、VTO(接视频采集卡调焦),其他可能会使用到的引脚:PCLK (像素同步信号端)、FODD(奇偶场信号端)。
摄像头的工作原理在这里不在进行说明,但需要说明的是:因为OV6620场中断上升沿时间很短,单片机可能捕捉不到上升沿中断,所以判断OV6620一场是否开始选择使用下降沿判断;行中断使用上升沿判断,而且采集的有效点都是在上升沿范围内,下降沿则表示已经进入行消隐区,此时采集的都是废数据(在使用OV6620采集时都为0X10)。
利用这个可以通过测试判断一行所能采集到的有效点个数。
关于中断触发,行中断(HREF)接单片机的T0口,场中断(VSYNC)接单片机的T1口,保证图像采集不会被打断。
市场上提到可以应用在智能车上的摄像头,多如牛毛。
OV7670摄像头 入门基础知识
颜色空间指不同波长的电磁波谱与不同物质相互作用所构成的色谱空间。
颜色空间也称色彩模型(又称彩色空间或彩色系统),它的用途是在某些标准下用通常可接受的方式对彩色加以说明。
色彩模型是描述使用一组值(通常使用三个、四个值或者颜色成分)表示颜色方法的抽象数学模型。
本质上,色彩模型是坐标系统和子空间的阐述。
通俗地说,自然界的多彩空间是复杂变换的,在不同的应用领域人们在这个复杂的色彩空间中采用的色彩范围或者说是选取的色彩范围有所不同或者是表述方法不同。
因此就出现了多种多样的空间色彩描述方法,即不同的颜色空间。
颜色空间有许多种,常用有RGB,CMY,YUV,HSV,HSI等。
RGB颜色空间根据三基色原理,用基色光单位来表示光的量,则在RGB颜色空间,任意色光F都可以用R、G、B三色不同分量的相加混合而成:F=r [ R ] + g [ G ] + b [ B ]RGB颜色空间还可以用一个三维的立方体来描述,如下图。
这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。
实际应用中RGB存在系列标准。
RAW RGBSensor的感光原理是通过一个一个的感光点对光进行采样和量化,但,在Sensor中,每一个感光点只能感光RGB中的一种颜色。
所以,通常所说的30万像素或130万像素等,指的是有30万或130万个感光点。
每一个感光点只能感光一种颜色。
但是,要还原一个真正图像,需要每一个点都有RGB三种颜色,所以,对于CCIR601或656的格式,在Sensor模组的内部会有一个ISP 模块,会将Sensor采集到的数据进行插值和特效处理,例如:如果一个感光点感应的颜色是R,那么,ISP模块就会根据这个感光点周围的G、B感光点的数值来计算出此点的G、B值,那么,这一点的RGB值就被还原了,然后在编码成601或656的格式传送给Host。
而RAW RGB格式的Sensor则是将没个感光点感应到的RGB数值直接传送给Host,由Host来进行插值和特效处理。