智能车制作

标题: ov7620 [打印本页]

作者: sunnyfei    时间: 2011-8-1 21:15
标题: ov7620
http://www.elecfans.com 电子发烧友 http://bbs.elecfans.com 电子技术论坛
利用 ARM7(LPC2210)与CMOS 感光芯片(OV7620)实现了一个紧凑型
圈像采集、处理系统;通过夸理利用LPC2210 数据总线的工作方式,有
效地消除了OV7620 对系统数据总线的干扰。SCCB 控制,图像数据的
采集、处理以及传输都由一片LPC22lO 完成,特别适合于对功耗、体积
要求较严格的嵌入式应用。
关键词 ARM7 OV7620 图像传感器 SCCB 协议 数据采集
0V7620 是一种CMOS 图像传感器,它被广泛应用在网络摄像头、摄
像手机等产品中。由它组成的图像采集系统,比较常见的设计方法为
OV7620 搭配OV5ll+或CPLD/FPGA。OV511+或CPLD/FPGA 采
集的图像数据通过USB 总线或双端口RAM 输出到PC 或MCU(ARM、
DSP 等),由PC 或MCU 对图像数据进行进一步的处理。本文所设计的图
像采集系统仅用一个ARM芯片就实现了OV7620 的功能控制、时序同步、
数据采集与处理等功能,系统结构紧凑、实用。
1 硬件结构
OV7620 是CMOS 彩色/黑白图像传感器。它支持连续和隔行两种扫
描方式,VGA 与QVGA 两种图像格式;最高像素为664×492,帧速率
为30fp8;数据格式包括YUV、YCrCb、RGB 三种,能够满足一般图像
采集系统的要求。
OV7620 内部可编程功能寄存器的设置有上电模式和SCCB 编程模
http://www.elecfans.com 电子发烧友 http://bbs.elecfans.com 电子技术论坛
式。本系统采用SCCB 编程模式,连续扫描,16 位RGB 数据输出。系统
硬件结构框图如图1 所示。
ARM 芯片选用具有ARM7TDMI 内核的LPC2210,通过LPC2210
的GPIO 模拟SCCB 总线协议,控制OV7620 的功能寄存器。使用
LPC2210 的3 个中断引脚引入OV7620 的图像输出同步信号VSYNC、
HSYNC、PCLK,以中断方式同步图像数据输出。OV7620 的YUV 通道
输出的16 位并行数据通过LPC2210 的高16 位数据线接入。
SST39VF160 和IS61LV25616AL 为扩展的Flash 和SRAM,分别用
作程序存储器和数据存储器。
2 具体实现
2.1 OV7620 的功能控制
OV7620 的控制采用SCCB(SeriaI Camera ControlBus)协议。
http://www.elecfans.com 电子发烧友 http://bbs.elecfans.com 电子技术论坛
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 个参数为相应
http://www.elecfans.com 电子发烧友 http://bbs.elecfans.com 电子技术论坛
的寄存器设定值。
2.2 OV7620 时钟同步
OV7620 有4 个同步信号:VSYNC(垂直同步信号)、FODD(奇数场
同步信号)、HSYNC(水平同步信号)和PCLK(像素同步信号)。当采用连
续扫描方式时,只使用VSYNC 和HSYNC、PCLK 三个同步信号,如图l
所示。时为检测OV7620 扫描窗口的有效大小,还引入了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 增
加,同时采集一个像素点的图像数据。
2.3 图像数据的输出速度匹配
在 OV7620 的3 个同步信号中,PCLK 的周期最短。当OV7620 使
用27 MHz 的系统时钟时,默认的PCLK 的周期为74 ns。而LPC2210
的中断响应时间远远大于这个值。LPC2210 的最大中断延迟时问为27
http://www.elecfans.com 电子发烧友 http://bbs.elecfans.com 电子技术论坛
个处理器指令周期,最小延迟时问为4 个指令周期,再加上中断服务时间、
现场恢复时间等,完成一次中断响应的时问要大于7~30 个指令周期。当
LPC2210 使用最高系统频率60 MHz 时,它的中断响应时间远大于
O.2~0,6 μs,所以只能将OV7620 的PCLK 降频。通过设置时钟频
率控制寄存器,可将PCLK 的周期设为4μs 左右。
2.4 图像数据的接入
当 OV7620 工作于主设备方式时,它的YUV 通道将连续不断地向总
线上输出数据。如果将OV7620 的YUV 通道直接接在LPC2210 的DO~
D15 数据总线上,则会干扰数据总线,使LPC2210 不能正常运行;如果
使用74HC244 等隔离,分时使用数据总线的方法,则会大大降低系统的
运行速度,使得LPC2210 不能及时取走总线上的数据,造成图像数据不
完整。由于LPC2210 的数据总线宽度为32 位,而Flash 和SRAM 仅占
用了低16 位数据线D0~D15,困此可以采用图l 中的方法,将空闲的高
16 位数据线D16~D31 设为GPIO,用于采集OV7620 输出的16 位图
像数据。
2.5 图像数据的恢复
OV7620 采用16 位输出方式时,Y 通道和UV 通道的数据输出格式如
表l 所列。从表l 中可以看出,每一行Y 通道和UV 通道交替输出上一行
的重复数据和本行的新数据。而在一行之内,B 数据只在奇数列出现,R
数据只在偶数列出现。
http://www.elecfans.com 电子发烧友 http://bbs.elecfans.com 电子技术论坛
下面以一个5×5 的像素点阵为例,详细介绍图像数据的恢复。
首先定义一个5×15 的字节型数组,在Pclk_IRQ()中断服务程序中
读取5×5 个像素点的图像数据;然后对图像数据进行插值,奇数点则在
数组的连续3 个字节中存入B、G、0,偶数点则存入O、G、R;最后对
当前行的每一个字节与下一行对应列的每一个字节求平均值,即可算出当
前行的RGB 值。而在每一行内,奇数点的R 数据和偶数点的B 数据可通
过分别对其两侧的2 个点的R 和B 数据求平均值得到。
这样,一幅图像就恢复好了。可以直接存成二进制文件(本系统采用串
口输出到PC 进行显示),或者增加BMP 位图文件头信息,存成
biBitCouNt=24 的DIB 位图文件;也可用LPC2210 对此图像数据进行
进一步的处理,如指纹识别等。
3 结论
本系统的图像采集速度主要受限于 LPC2210 的中断响应时间,如果采
用带有DMA 控制器,并且具有更高处理速度的ARM 芯片,可大大提高
整个图像采集系统的速度。例如,采用具有ARM9 内核的S3C2410,其
http://www.elecfans.com 电子发烧友 http://bbs.elecfans.com 电子技术论坛
最高系统频率达 203 MHz,完成一次DMA 传送的时间约为30 ns。小
于默认的PCLK 的周期74 ns,可以实现30 fps 的图像采集速度。
与搭配OV511+或CPLD/FPGA 的图像采集系统相比,此图像采集
系统极大地简化了系统结构,降低了系统设计成本,缩短了开发周期;图
像数据的采集与处理均由ARM 芯片完成,因而降低了数据中转过程中传
输错误的几率,提高了系统的可靠性。
作者: jayce    时间: 2011-10-15 15:39
很猛的帖子!
作者: 海彬    时间: 2012-2-29 15:31
谢谢分享
作者: brenda    时间: 2012-3-27 21:42
谢谢分享
作者: wangsen    时间: 2012-6-3 21:41
好帖子!!
作者: 鸡蛋灌饼    时间: 2012-11-18 20:41





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2