基于32位低端嵌入式系统的图像采集模块
摘 要:本文介绍了一个在低端嵌入式系统中增加图像采集功能的实现方案。MT9V011 CMOS数字图像传感器应用于基于飞利浦低端ARM7处理器的嵌入式系统中,系统通过1片CPLD读取MT9V011采集的图像,并缓存到存储器中以备后续处理,系统的图像采集功能在PC平台上得到了验证。
关键词:CMOS数字图像传感器;嵌入式系统;可编程逻辑器件;图像采集
引言
目前,在嵌入式系统中,图像采集可以采用模拟摄像头、CCD图像传感器或CMOS数字图像传感器来实现。CMOS数字图像传感器由于其高性价比和直接输出数字图像数据而得到最为广泛的应用。MT9V011就是一个这样的CMOS数字图像传感器。本文将介绍MT9V011 CMOS数字图像传感器在一个低端ARM7处理器系统中的应用。
在低端嵌入式系统中增加图像采集系统
实时图像采集系统已经广泛应用于手机、PDA、实时监控系统等高端嵌入式系统中。在这类系统中,处理器具有以下特点:具有较高的处理速度可以实时处理采集回来的大量图像数据;具有较大的内存可以存放若干帧完整的图像数据;具有丰富的外设接口可以比较容易地扩展大容量的存储设备如CF卡、SD存储卡等来备份一些图像数据。然而在一些测控领域也需要采集图像,以使管理人员能够直观地监控被测对象。由于被测量的变化比较缓慢,因此不需要实时采集图像,每隔一段时间传回监控中心一幅图像就能满足要求。在这类系统中,处理器主要面向控制领域,它们的特点是内存比较小,处理速度比较慢,外设接口也不多。因此在这类低端嵌入式系统中增加图像采集功能要面临处理器处理能力有限和硬件资源受限制的问题。
图1 CMOS摄像头芯片MT9V011工作时序
CMOS图像传感器MT9V011
基于创新的CMOS活跃像素技术,美光的超低功耗MT9V011图像传感器融合了VGA分辨率和CCD所不具备的很多优越功能。它能以高达30fps的帧频输出高质量的逐行扫描图像,同时,与CCD产品相比,其电池寿命得到了大幅度延长,因此成为手机、PDA和PC机USB摄像头的理想选择。MT9V011将多种相机功能(包括窗口化、行镜像变换、左右和上下图像翻转、电子旋转快门(ERS)、列镜像变换)直接集成到芯片上,从而减少了CCD通常需要的额外组件,最大程度地缩小了产品尺寸和主板空间。其变量功能如可编程增益、帧频和曝光控制等可以在默认模式下操作,也可由最终用户通过一个简单的两线I2C接口进行编程实现。
MT9V011默认输出的是一幅640×480像素的图像。MT9V011芯片的工作时序如图1所示。其中,LINE_VALID是行有效信号,PIXCLK是像素时钟信号,DOUT9~DOUT0是10位的图像数据,FRAME_VALID是帧有效信号。LINE_VALID有效期间共有640个PIXCLK时钟周期,FRAME_VALID有效期间共有480个LINE_VALID有效信号。默认情况下图像数据从第1行第1列开始在PIXCLK信号的上升沿顺序输出。MT9V011输出的图像格式是RGB Bayer类型。
系统设计方案
本图像采集系统基于飞利浦的低端ARM7嵌入式微处理器LPC2104,CMOS摄像头芯片采用美光公司的MT9V011。MT9V011的图像输出速率最大可达30fps,而LPC2104处理器的I/O口读写速度远远不够,循环将它的某一个I/O口置为高后,随即置低,输出的方波频率也不超过4MHz。另外,传输图像的数据量相对于资源有限的嵌入式系统来说太大了,MT9V011默认情况下输出一幅图像的数据量大小为300KB,而LPC2104处理器的内存大小仅为16KB,而且没有开放存储器扩展总线,在处理器外部扩展存储器很不方便。其它的低端控制处理器如AVR单片机、MCS51单片机等都存在这样的问题,但是由于它们具有较高的性价比、开发调试比较方便和能够比较快速地组建应用系统,因此它们在许多领域都有广泛的应用。
针对此类处理器的一些资源和性能限制,可以采取一些辅助措施来解决。由于可编程逻辑器件具有处理速度快和能够在线编程等诸多优点,十分适合与此类低端处理器相结合来解决一些纯处理器系统无法解决的问题。随着可编程逻辑器件技术的发展和相关技术的进步,此类系统得到了越来越广泛的应用。本文就是采用这种方案来解决单一处理器无法完成图像采集的问题。具体方案是由一片可编程逻辑器件来与MT9V011接口,控制图像数据缓存到一片SRAM中,然后通知处理器读取数据。这样就同时解决了处理器I/O传输速度慢和内存不足两个问题,能够组建系统,完成图像采集功能。图像采集系统框图如图2所示。系统由四大部分组成:CMOS摄像头电路、摄像缓存控制逻辑电路、SRAM存储器和32位嵌入式系统总线接口。系统摄像缓存控制逻辑电路由CPLD EPM7128S实现。
图2 嵌入式图像采集系统框图
CPLD控制逻辑设计
因为受到I/O传输速率和内存的限制,系统主处理器LPC2104无法完成采集图像并存储的功能。因而,只能借助于在系统中扩展1片CPLD来协作完成系统功能。由CPLD片内的控制逻辑电路完成读取图像数据并缓存到SRAM中的功能。因为系统不是实时图像采集与处理,可以改变输入时钟,来降低CMOS数字图像传感器输出图像的速率。系统中CPLD的时钟采用40MHz,将经过10分频后的时钟作为CMOS图像传感器的时钟。这样降低了图像输出的速率,减轻了处理器进行图像数据处理的负担,使处理器有空闲时间进行其它控制操作。由于CPLD要读取CMOS图像传感器输出的图像数据并缓存到SRAM中,因此CPLD的片内逻辑主要是根据图像传感器输出图像数据的时序和SRAM的读写时序来编写。CPLD片内的控制逻辑电路主要由Verilog语言编写的状态机实现。另外还有一些附加的门电路、多路选择器和加法器,它们和状态机共同组成了系统的摄像头缓存控制逻辑电路。CPLD控制逻辑流程图如图3所示。
图3 CPLD控制逻辑流程图
功能验证
为了验证系统的图像采集功能,需要对CPLD缓存的数据进行处理及显示。由于PC机具有丰富的软硬件资源,因此本文利用PC机来显示图像,验证图像采集功能的正确性。具体方法是:系统主处理器LPC2104读取SRAM中的图像数据并通过串口传送给PC机,在PC机上编写软件接收数据并做简单的处理就可以在PC机屏幕上显示出图像,从而能够验证系统的功能。
结语
本文通过在一个低端的嵌入式处理器系统中添加CMOS数字图像传感器,并编写硬件描述语言程序、嵌入式处理器程序,实现了采集图像的功能。文中给出了一个在低端嵌入式系统中增加图像采集功能的实现方案,该方案具有性价比高,通用性强等优点,可广泛应用于各种基于低端嵌入式处理器的监控系统中,使监控管理人员可以直观地了解被监控的对象。该方案还可以进一步实现许多扩展功能,如图像对比和图像识别等。
文章版权归西部工控xbgk所有,未经许可不得转载。