基于OV7620和ARM开发的图像采集系统

发布者:丹青妙手最新更新时间:2011-11-03 关键字: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编程模式。本系统采用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)协议。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个参数为相应的寄存器设定值。
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个处理器指令周期,最小延迟时问为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数据只在偶数列出现。

    下面以一个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 结论

 与搭配OV511+或CPLD/FPGA的图像采集系统相比,此图像采集系统极大地简化了系统结构,降低了系统设计成本,缩短了开发周期;图像数据的采集与处理均由ARM芯片完成,因而降低了数据中转过程中传输错误的几率,提高了系统的可靠性。
    本系统的图像采集速度主要受限于LPC2210的中断响应时间,如果采用带有DMA控制器,并且具有更高处理速度的ARM芯片,可大大提高整个图像采集系统的速度。例如,采用具有ARM9内核的S3C2410,其最高系统频率达203 MHz,完成一次DMA传送的时间约为30 ns。小于默认的PCLK的周期74 ns,可以实现30 fps的图像采集速度。

关键字:ARM7  OV7620  图像传感器  SCCB协议  数据采集 引用地址:基于OV7620和ARM开发的图像采集系统

上一篇:爱特梅尔发布首款基于ARM Cortex-M4处理器
下一篇:使用RealView MDK进行SW调试和实时跟踪

推荐阅读最新更新时间:2024-03-16 12:45

多通道抗凝血药物筛选检测仪的研制
介绍一种以透射比浊法为设计原理,单片机89C52为核心的96通道高速抗凝血药物筛选平台。   该仪器自动完成血液(血浆)凝血时间的实时检测及数据采集,数据采集的精度、速度及灵敏度较传统的凝血时间测量仪器有较大的提高。提出了将凝血时间测量用于相关药物筛选的新途径。   血液凝固的过程非常复杂的。生物体在正常生理状态下,血液中的凝血系统与抗凝血系统处于自我调节的一种平衡状态,如果这种平衡被破坏,就会形成凝血系统疾病。现在临床上最常用的抗凝血类药物是肝素,这种药物虽然有很好的抗凝血效果,却伴随着血和血小板减少等副作用,而且当患者本身患有弥散性血管内凝血等疾病时便无法采用。现有的口服类抗凝血药物(如节丙酮香豆素 )的使用效果又不甚理想
[应用]
基于ARM7芯片S3C44BOX的嵌入式定量分析系统
 煤矸石是采煤和洗煤过程中排放的固体废物,是一种在成煤过程中与煤层伴生的黑灰色岩石。全国现有矸石山1500余座,堆积量30亿吨以上,占中国工业固体废物排放总量的40%以上。煤矸石的大量堆放,不仅占用土地资源,而且造成环境污染。用洗中煤和矸石混烧发电,是解决污染的有效途径。2009年,煤矸石综合利用量3.9亿吨以上,利用率达到70%以上。如何快速、精确地定量分析混合燃料中煤与矸石的搭配比例,就成为监管部门及企业需要解决的问题。为解决上述问题,本文基于ARM7芯片S3C44BOX,设计了一个集数据采集、处理、显示为一体的嵌入式定量分析系统,并可以通网络将数据传送到远程PC。    1 系统原理及总体方案设计   1.1 系统原理
[工业控制]
基于<font color='red'>ARM7</font>芯片S3C44BOX的嵌入式定量分析系统
CMOS图像传感器步入划时代
作者:Teledyne e2v 公司, Pierre Fereyre,Gareth Powell I. 引言 早于上世纪九十年代初,有意见认为电荷耦合器件(Charge Coupled Device,CCD) 日渐式微,最终将成为“科技恐龙” 。如果用索尼公司(Sony) 2015年的发布来看待,这个预言好像也有点道理:当时索尼公司正式发布终止量产CCD 时间表,并开始接收最后订单。虽然多年前业界已预计这是迟早出现的举措,但是索尼这一发布仍然震惊了专业成像社群 。值得一提的是很多工业或专业应用(就是CMOS 图像传感器 (CIS) 的重点市场)到现在仍然基于CCD传感器技术。到底CCD有什么特点优于CIS,使其更具吸引力呢?
[家用电子]
CMOS<font color='red'>图像传感器</font>步入划时代
线束测试仪系统的组成、原理及应用
1.应用背景 近些年,伴随中国高铁产业迅猛发展,对高速电动车组需求源源不断;电动车组设计生产是个复杂的生产过程,其中电气线路的布置和检测是其生产的重要环节。电动车组电气线路布置有线束众多、各回路交叉、连接器和接线端子复杂多样等特点,这都给电动车组电气线路导通测试带来困难。传统的线路导通测试依赖人工,利用讯响器进行导通测试,工作效率低,易出现人为因素导致施工质量问题。利用安泰线束测试仪对电动车组线路导通测试能大大提高生产自动化程度和测试准确率。 2.系统组成 安泰线束测试仪系统主要由上位计算机、测试主机、从机(分布机)、电源总线及通讯总线和转接线缆组成。其中上位计算机和测试主机集成于一个机箱,统称主机,从机(分布机)通过转接线缆
[测试测量]
图像传感器选型中容易踩的坑
如今,我们比大多数人意识到的更依赖图像传感器。 它们在我们的车辆中,帮助我们避免碰撞,在建筑物上监视入侵者,在生产线上检查商品的质量。 有趣的是,它们通常按非常简单的指标进行分类,例如像素大小或分辨率,但为特定应用选择最佳传感器要复杂得多。 解决方法 图像质量至关重要,因为我们依靠传感器来检测危险或发现制成品中的缺陷。 系统设计人员(和最终用户)通常认为更高的分辨率(图像中的更多像素)会提高图像质量。 然而,并非总是如此。 更高的分辨率确实会在图像中保留更清晰的边缘和更精细的细节,这有助于物体识别——但还有其他考虑因素。 更高的分辨率会影响关键参数,包括捕获速度/帧速率、传感器尺寸和传感器功率。 它还会影响其他系统元素,因
[传感器]
基于LabVIEW与凌阳SPCE061A实现串口数据采集
引言 LabVIEW是一个划时代的图形化编程系统,应用于数据采集与控制、信号分析等方面,它为不熟悉文本语言编程的专业科技工作者在测控领域建立计算机仪器系统——虚拟仪器,提供了一个便捷、轻松的图形化设计环境。由于其灵活、简单易用、开发效率高等特点,正逐渐成为科技工作者进行仪器应用与开发的得力工具。数据采集是开发过程中一个重要的环节,NI公司提供了各种不同类型的基于LabVIEW的数据采集卡,但是其价格昂贵,对于小型企业、实验教学等方面仍存在着不可避免的资金问题。而市面上销售的第三方开发的数据采集卡,由于不具备对LabVIEW的直接支持,需要用户开发其驱动程序,使用也不方便。如果采用以凌阳16位单片机SPCE061A作为前端数据采集,
[测试测量]
基于LabVIEW与凌阳SPCE061A实现串口<font color='red'>数据采集</font>
快速和低速工作-使用新的KAF-09001图像传感器
当用一个新的进行初始设计时,关键一步是了解该新器件的预期用途– 描述客户希望产品如何工作的“用例”。客户主要想器件以高帧率工作,还是在低光照条件下工作?或者它们将被优化以实现低功耗,或低读出噪声?有时,似乎只 要列出客户对所设计的新产品的兴趣所在即可。但是产品通常不只用于一方面,当新产品的目标用例似乎将设计推向相反的方向时,事情可能变得复杂。 以新的K-09001图像传感器为例。该全帧CCD像我们现有的KAF-09000图像传感器,提供捕获数字X光系统中图像所需的高性能。这两款器件都提供900万像素分辨率及大的12微米像素,提供高灵敏度、高动态范围和低噪声–这些特性支持捕获关键细节,同时有助于限制使用的X射线剂量。
[机器人]
基于ADmC812和DSP的实时数据采集系统设计
引言 ADmC812是ADI公司的以8051(8052)内核为控制核心的新型微转换器。由于ADmC812内部集成了大量的外围设备。它本身就是一个完全可编程、自校准、高精度的数据采集系统,可以取代传统的MCU+A/D+ROM+RAM高成本、大体积产品,尤其是它的高精度和高速度A/D模块,特别适应于智能传感、瞬时获取、数据采集和各种通信系统。但是,对于需要采集数据量大、运算复杂、实时性又要求较高的场合,由于在结构和速度上的限制,往往是无法满足要求的。本文针对这种情况,提出了基于ADmC812和DSP的数据采集系统。在这个系统中,ADmC812作为主机,完成ADC、DAC、显示、键盘等功能,而DSP作从机,专注于复杂的数据运算,两者通过通
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved