OV7620 OV6620等CMOS摄像头图像采集的方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

OV7620OV6620等CMOS摄像头图像采集的方法

本文由九九原创,发表于《电子技术应用》2008年第9期,版权归作者与出版社所有,转载请务必注明作者出处,谢谢

九九小铺,供应:

MC9S12DG128、DG256、DT256、DP512、NE64等芯片

供应特价45元一只CCD黑白摄像头,适合智能车和图像采集处理,提供图像采集技术支持

智能车专用光电管:检测距离可达40-50CM!

供应8/16/32位通用Freescale BDM仿真器,Mini外形,低价优质。

基于S12单片机的循迹小车视觉系统设计与优化

时间:2009-03-1112:40:54来源:电子技术应用作者:刘大川,汪小澄

全国大学生智能汽车竞赛已经在国内顺利举行两年。随着智能车速度的提高,越来越多的参赛队开始采用摄像头作为道路辨识的主要传感器,而如何使用单片机进行数字图像信号采集,并识别赛道路径是该系统的设计重点。目前图像采集与处理技术已经得到了广泛的应用,但多数基于图像的控制系统都采用了DSP 等高速处理器,并不适合智能车竞赛所规定使用的单片机平台。本文利用CMOS图像传感器的可编程特性,设计了适用于中低速单片机的基于FIFO的数字图像采集处理系统,用MC9S12DG128单片机进行实时图像采集和控制。该系统结构简洁、成本低廉、通用性强,可方便地移植到各种类型的处理器。

1主要芯片

MC9S12DG128是Freescale公司出品的16位单片机,其采用增强型16位HCS12CPU,内部总线时钟最高可达25MHz;片内资源包括8KB RAM、128KB Flash、2KB EEPROM、8路10位A/D转换器、SCI、IIC、SPI串行通讯模块、PWM模块以及多路CAN总线模块等。同时它支持Freescale特有的背景调试模式(BDM),可以进行在系统调试,使开发效率大大提高。

OV7620[1]是美国OmniVision公司出品的彩色/黑白CMOS图像传感器。这是一种自带图像敏感阵列和A/D转换元件、能直接提供8/16位CCIR601、CCIR656等格式视频数字信号的彩色/黑白图像传感器,图像输出最高速度可达60S/s,最大图像分辨率为644×492,5V供电;它具有自动增益、自动曝光、自动白平衡、边缘增强、伽玛校正等控制功能;可以通过I2C总线进行设置;同时OV7620具有图像开窗输出的功能,即允许用户可根据实际使用需要设置其内部寄存器,使其只输出完整图像中的任意一矩形区域内的信号,其范围从4×2到644×492。这种功能从硬件上屏蔽了图像中不需要的部分,只保留用户需要的部分图像,大大减少了图像的数据量,提高了系统的效率。

FIFO存储器没有地址线,按照先入先出的顺序进行顺序读写,因此是接口电路十分简洁,读写速度快,允许读写动作同时进行。IDT7205是IDT公司生产的高速、低功耗异步FIFO,容量为8192×9bit,存取时间最小只有12ns,有空、半满、满三个标志位,最大功耗660mW,工作电压+5V;D0~D8为数据输入总线,Q0~Q8为数据输出总线,为读写控制端,分别在信号下降沿锁存、输出数据,是FIFO写满标志位,此外,IDT公司还提供256B~64KB不同容量的FIFO可供选择。

2系统硬件结构设计

由于所使用的MC9S12DG128单片机的频率较低,最高只有25MHz,而摄像头的图像输出速率一般至少有13.5MHz(以30万像素为例),每个像素的信号保持时间不到75ns,若使用单片机直接采集图像传感器输出的数字信号,则会受到其时钟频率的影响,难以将信号完整地采集进系统。

因此本系统使用FIFO芯片IDT7205作为图像传感器与单片机之间的数据缓存,通过设计一定的逻辑电路,使图像传感器自动地将图像数据写入FIFO,同时MCU开始从FIFO读出数据。图像采集系统结构框图如图1所示。

2.1摄像头同步信号分析

OV7620的同步信号时序如下:垂直同步信号VSYN为两个正脉冲之间扫描一帧的定时,即完整的一帧图像在两个正脉冲之间;水平同步信号HREF扫描该帧图像中各行像素的定时,即高电平时为扫描一行像素的有效时间;像素同步信号PCLK为读取有效像素值提供同步信号,高电平时输出有效图像数据,若当前图像窗口大小为320×240,则在VSYN两个正脉冲之间有240个HREF的正脉冲,即240行;在每个HREF 正脉冲期间有320个PCLK正脉冲,即每行320个像素。这就是VSYN、HREF、PCLK三个同步信号之间的关系[2]。OV7620同步信号时序如图2所示。

2.2数字图像信号的采集

为了将图像传感器输出的图像信号自动地存入FIFO,只需要通过一个“与非门”就能产生符合FIFO要求的写时钟脉冲,如图3所示。将帧同步信号VSYN引入单片机输入口,复位后V_EN置0,“与非门”关闭,输出1。当单片机检测到VSYN上跳后,V_EN输出1,打开“与非门”。当摄像头输出有效像素时,HREF 为高,PCLK高电平时像素数据有效,三者“与非”后输出为0,使信号产生一个下跳,触发FIFO锁存OV7620输出的图像数据。

经过图3电路处理后的系统时序如图4所示。写信号已符合脚的时序要求,经实际使用,功能正常。

当一帧图像写入FIFO后,单片机根据时序要求在FIFO的脚上产生相应脉冲,即可从FIFO中读出图像数据,按照一定格式存入内存,进行后续处理。图5为采集得到的黑线图像。

3单片机图像采集系统的优化

虽然单片机通过一定的硬件结构等可以实现图像信号的采集,但是由于内部结构的原因,其进行大数据量运算的能力有限,进行图像处理速度较慢。通过以下方法进行优化,可以使单片机进行一些简单的图像处理和实时控制任务。

3.1减小图像数据量

CMOS图像传感器具有图像开窗输出(Windowing)的功能,通过设置其内部相应寄存器,可以使CMOS 只输出特定区域内的图像数据。如设置CMOS使其只输出画面中用户所关心部分的图像信号,图像数据量则可大大减少,同时也减轻了后期进行图像处理的难度,提高了系统的性能。

在要求图像精度不高的情况下,为了进一步降低图像数据量、减轻单片机负担,可以采取隔行、隔像素采集的方法,即在PCLK和HREF信号上加入计数电路,每隔N行和M个像素采集一次,这样在保证图像可用的情况下数据量可减小为原来的1/(N×M)。

3.2FIFO异步读写图像数据

IDT7205具有两套独立的读写指针,可以同时进行读和写操作而互不干扰。当图像输出速度比单片机读入速度快许多时,为了提高采集效率,可以让图像读写同时进行,即当新的一帧图像开始写入FIFO后,单片机就开始读取图像数据,读写同时进行,以减少单片机等待数据写入FIFO完成的空闲时间。

3.3优化程序算法

单片机并不适合完成复杂的图像处理算法,如卷积等运算。因此在编写图像处理算法时应根据单片机特性,尽量避免使用浮点运算,要简化算式,或者可以牺牲一定精度来换取时间。以图像分割的大津算法(OTSU)为例,该算法遍历0~255个灰度值,以找出一个最小的灰度u,使得到的g最小。

OTSU原始算式:g=Wa×(u0-u)2+Wb×(u1-u)2

OTSU改进算式:g=Wa×Wb×(u0-u1)2

相关文档
最新文档