嵌入式系统中CMOS图像传感器接口技术

发布者:落寞梦惊最新更新时间:2012-02-08 来源: dzsc关键字:CMOS  图像传感器  嵌入式Linux  嵌入式系统 手机看文章 扫描二维码
随时随地手机看文章

背 景 

  目前数字摄像技术,主要采用两种方式:一种是使用CCD(电容耦合器件)图像传感器,另一种是使用CMOS(互补金属氧化物半导体)图像传感器。 

  CCD图像传感器具有读取噪声低、动态范围大、响应灵敏度高等优点。但CCD技术难以与主流的CMOS技术集成于同一芯片之中。因而CCD图像传感器具有体积大、功耗高等缺点。 

  CMOS图像传感器是近些年发展较快的新型图像传感器,由于采用了CMOS技术,可以将像素阵列与外围支持电路(如图像传感器核心、单一时钟、所有的时序逻辑、可编程功能和模数转换器)集成在同一块芯片上。因此与CCD相比,CMOS图像传感器将整个图像系统集成在一块芯片上,具有体积小、重量轻、功耗低、编程方便、易于控制等优点。对于手持式设备来说,体积和功耗是进行软硬件设计时重点考虑的问题,因此CMOS图像传感器应用在手持式设备当中将会有广阔的前景。 

  文中将就嵌入式系统中设计CMOS图像传感器的图像采集设备硬件接口技术和软件驱动进行研究。 

系统硬件设计 

嵌入式系统硬件平台选择 

  摩托罗拉MC9328MX1处理器基于ARM920T嵌入式处理器内核,能工作于高达200MHz的主频。它集成了许多模块,支持接口模块、GPIO(General Purpose I/O)接口模块、时钟产生模块(CGM,Clock Generation Module)等,为各种外设提供了灵活的接口控制功能。摩托罗拉MC9328MX1处理器内置的CSI(CMOSSensor Interface)模块提供了时序控制模块,可以适应不同CMOS图像传感器的要求。 

COMS图像传感器的选择 

  ICM105C是IC Media公司生产的一种单芯片数字彩色图像器件,使用1/4英寸的光学系统。它内置了一个640×480(650×490物理像素)传感器阵列、数模转换器和相关双采样电路。它的控制部分使用I2C总线,只需要一个I2C总线的从设备地址就可以对其内部的控制和状态寄存器进行设置和读取。ICM105C输出的是贝叶尔格式的图像数据,其中的RGB颜色分量可以被数字增益所调整,可以反馈给嵌入式处理器进行色彩处理或压缩。 

接口电路的设计 

  接口电路设计主要应考虑图像传感器的电源驱动控制电路的接口以及数据输出电路的接口。ICM105C使用3V的电源驱动、24MHz的时钟频率,输出8位的数据,控制部分主要使用总线,要保证ICM105C正常工作必须提供这些条件。 

  (1)电源驱动电路的设计。由于CMOS图像传感器是电源敏感元件,如果电源不稳会给成像效果造成很大影响。ICM105C对于供电电压的要求为3V,最小2.8V,最大3.1V,并且分开了数字电源和模拟电源。但是主处理板只提供了单3V的电源,而且这个电源同时提供给主处理板芯片使用,所以必须采取相应的机制保证电源的稳定和数字电源和模拟电源的隔离,同时本系统的另一个设计目标是小型化和简单化。为了兼顾这两者的要求,电源设计舍弃了使用复杂的稳压芯片的方案,仅使用电容和电感来稳定电压和消除数字电源和模拟电源之间的干扰,其电路图如图1 所示。 

        图1  电源驱动原理图 

  VDD 3V是主板提供的电源,VCCD和VCCA分别是提供给ICM105C 的数字电源和模拟电源,其中L1,L4,C1,C3起到隔离数字电源和模拟电源及滤波的作用。数字地和模拟地也用电感消除干扰。 

   (2)数据输出接口电路设计。摩托罗拉MC9328MX1处理器内置的CSI 模块提供了时序控制模块,这样可以简化电路的设计,只需要将8位数据线和输出时钟还有场频、行频和像素时钟与CSI 模块连接即可保证处理器的正确采集数据。具体的逻辑连接关系如图2 所示。 

        图2  ICM105C和主处理板的逻辑连接图 

  其中时钟线是从MC9328MX1输入24MHz的时钟信号,PCLK是CMOS输出的像素时钟,VSYNC是场频,HSYNC是行频,DOUT[0-7]为输出的数据。其时序关系如图3所示。DOUT[7:0]在PCLK时钟上升沿有效,HSYNC和VSYNC处于低电平时有效。为了达到这种时序效果需要对芯片的某些引脚进行正确地初始化设置。ICM105C的引脚37控制数据的同步模式,用上拉电阻接高电平,这样可以使传感器输出HSYNC 和VSYNC 同步信号。 

        图3  ICM105C的数据输出时序图 

  HSYNC和VSYNC的极性也可以进行配置,将引脚46和47接地,这样HSYNC和VSYNC在有效时为低电平。引脚14为时钟选择信号,将其接地表示使用外部时钟,这样内部晶振输入引脚12、13就可以悬空。 

  (3)控制电路设计。要使传感器正常工作,必须对芯片内部的寄存器进行初始化。初始化的工作必须通过传感器的I2C接口进行。ICM105C提供了一种硬件初始化的方式,如果引脚33在芯片启动时为高电平,那么传感器的I2C接口将首先工作在主设备模式下,并且试图从外部的串行EEPROM中读取初始化数据。然后,传感器又回到正常的从设备工作模式下。为了使接口电路简单化,直接用主处理板的I2C 接口来控制传感器,将此引脚接地,使其工作在从模式,这样EEPROM 部分的电路就可以舍弃。 

软件驱动 

  CMOS图像传感器需要嵌入式系统的软件驱动才能正常工作,并输出正确的图像数据。由于处理端的嵌入式系统采用的是嵌入式Linux 操作系统,I2C接口的驱动程序已经集成在操作系统内部,中断资源可以作为资源来申请,操作系统还提供了调用其它资源的接口函数,这极大地方便了驱动程序的编写。在本次设计中采用了Linux系统下模块形式的字符设备驱动程序的编写方法。整个软件驱动需要完成两个功能模块:接口的初始化模块和接收输出的数据。 

初始化 

   (1) CSI模块的初始化。根据ICM105C芯片的数据手册,CSI 的重置信号需要保持有效直至输入电压保持恒定大于两个时钟周期,图4是时序图。 

        图4 软重置信号时序图 [page]

  由于主处理板是一上电就开始工作,而ICM105C的驱动程序必须在处理板上的操作系统启动后才开始工作。尤其是时钟信号只有在驱动加载后才开始提供给ICM105C ,要造成重置信号的时序效果,必须使用一个软件控制的重置信号,在时钟输出到传感器后至少两个时钟周期保持有效,然后拉高电平使之无效。在设计中,采用了摩托罗拉MC9328MX1处理器一个GPIO端口来实现软重置信号。 

   (2)设置时钟,初始化I2C接口。ICM105C需要24MHz的时钟,摩托罗拉的MC9328MX1处理板的外频是96MHz ,因此需要四分之一的主频。只需要设置相应的时钟产生模块寄存器的值即可保证输出24MHz。I2C总线的两个信号线SDA,SCL 需要设置相应GPIO的两个引脚,使其用来进行I2C传输。还需要挂载Linux操作系统的I2C驱动,编写I2C读和写的功能函数。需要注意的是ICM105C的I2C地址值为21H。 

  (3)初始化CMOS传感器。ICM105C内部控制和状态寄存器通过I2C 总线来初始化CMOS,初始化序列(寄存器的地址、值序列)由IC Media公司提供,初始化完成后,就可以接收到数据和时序信号了。 

接收数据 

  接收数据是驱动程序中最重要的一个部分,它需要协调好中断和DMA 传输,保证数据的正确接收,并且在出错时能够正确地恢复。这一部分的软件流程如图5所示。 

        图5  接收数据软件流程图 

   其中在开始阶段申请中断和DMA资源并申请内存空间存放接收的数据。中断的主要任务是在每一帧开始时,开始DMA传输。DMA传输主要将从FIFO中读出数据保存在内存中,并处理可能出现的错误。本例中一旦出现DMA传输错误就丢弃该帧。 

 数据处理 

  下面就是数据的处理模块。由于接收到的数据还是原始数据,需要处理才能形成最终的图像数据。 

  具体的处理过程如下: 

  (1)线性插值。由于制作工艺的问题,CMOS图像传感器中的感光点只能放置一种滤色片,也就是说它的每个物理像素点只能感应R 或G或B一种颜色,这就是贝叶尔格式的数据(如图6所示)。它必须经过插值运算才能得到每个像素的RGB值。 

        图6  贝叶尔格式(Bayer pattern) 

  由上图可以看出,每个像素点都有8个相邻的像素点,而且这8个像素点的颜色分量与此像素点不同。插值算法就是依据相邻的像素点的颜色值的空间相关性原理进行的。其处理方法如下: 

  a. 只有R颜色分量的像素点,其G颜色分量由周围4个G的平均值计算得出。B颜色分量由周围4个B的平均值计算得出。 

   b. 只有B颜色分量的像素点,其R颜色分量由周围4个R的平均值计算得出,G颜色分量由周围4个G平均值计算得出。 

  c. 只有G颜色分量的像素点,其R颜色分量由上下2个R的平均值计算得出,B颜色分量由左右2个B平均值计算得出。经过插值运算,每个像素点的RGB都得出了,这就形成了完整的图像数据。 

  (2)白平衡。任何物体在不同的光线下具有不同的色温。所谓色温,简而言之,就是定量地以开尔文温度表示色彩。色温越高,物体的蓝色分量就越多;色温越低,物体的红色分量就越多。由于人眼具有自调节性,所以即使物体色温不同,也能正确识别出颜色。但是CMOS图像传感器没有自调节性,所以当在户外日光下拍摄物体时,物体的颜色就会因为色温高而偏蓝。而在室内的荧光灯下拍摄物体时,物体的颜色就会因为色温低而偏红。要得到正确的颜色,必须进行白平衡。白平衡的基本原理是调整颜色的色温,使其保持在一个特定的范围内。在此接口的应用中采用了一个较简单的白平衡方法,其处理过程如下: 

  a. 首先求出一幅图像的数据每个颜色分量的平均值: 
        
  b. 求出最大的平均值: 
        
  c. 求出每个颜色数据的白平衡后的校正值: 
                
   经过这样的运算就得到了白平衡后的数据。目前白平衡还没有很好的算法来处理一切情况,这只是一个简单的算法。 

结 论 

  文中提出的ICM105C图像传感器的接口技术已经成功应用在二维条码识读器当中,为了实际应用的需要,ICM105C的电路模块被设计成只有35mm×35mm大小,通过一个20芯的排线与主处理板连接。正常工作时功耗低于50mW,采集的图像数据良好,而且可以通过软件来控制图像传感器的工作方式,非常适用于手持式设备的应用。

关键字:CMOS  图像传感器  嵌入式Linux  嵌入式系统 引用地址:嵌入式系统中CMOS图像传感器接口技术

上一篇:TMS320VC5402 HPI接口与PCI总线接口设计
下一篇:基于LVDS为汽车应用提供可靠的视频接口

推荐阅读最新更新时间:2024-05-02 21:53

运用石墨烯与CMOS技术 这个图像传感器逆天了!
硅基CMOS技术是当今大多数电子产品依赖的主要技术。然而,为了电子行业的进一步发展,新技术必须开发具有能将CMOS与其他半导体器件集成的能力。欧洲最大的一项研究计划石墨烯旗舰项目(Graphene Flagship),即以10亿欧元的预算将实验室石墨烯转向市场,参与市场化竞争。 现在,来自巴塞罗那光电科学研究所ICFO的石墨烯旗舰项目研究人员,宣称已经可以将石墨烯整合到CMOS集成电路中。这项工作在“Nature Photonics”上发表。 该团队将石墨烯CMOS器件与量子点相结合,以形成一个阵列的光电探测器,产生高分辨率 图像传感器 。当作数码相机使用时,该设备能够同时感测紫外光、可见光和红外光。科学家们说,这只是这个器件可能
[家用电子]
汽车图像传感器的应用
近年来,在政府对汽车安全法令的贯彻和实施、消费者驾乘体验及自动驾驶的趋势推动下,汽车图像传感器领域呈爆发式增长。汽车图像传感有着广泛的应用领域,具有卓越性能和先进的图像处理能力的图像传感器在提高行车安全的同时还提升用户驾乘体验,成为近年来汽车领域的炙手可热的技术。预测显示,2014-2018年间汽车CMOS传感器市场的收入年复合增长率(CAGR)将达到28%。下面就随汽车电子小编一起来了解一下相关内容吧。 汽车图像传感器主要应用领域 汽车图像传感器的应用非常广泛,包括用于视觉应用如倒车影像、前视、后视、俯视、全景泊车影像、车镜取代,用于车舱内如乘客监控、疲劳驾驶监测、仪表盘控制、行车记录仪(DVR)、气囊,用于先进驾驶辅助系统
[汽车电子]
汽车<font color='red'>图像传感器</font>的应用
基于嵌入式系统的手机编程开发平台
引 言 随着移动通信技术的飞速发展,手机已经从单一的电话通信设备转变为信息网络终端,因此,近年来手机编程已经成为一项重要的技术。手机是一个高新技术的集合体,包含了移动终端、嵌入式系统、数字信号处理以及通信协议设置等多项技术。手机编程开发平台是集合了通信技术、嵌入式技术、电子技术、软件工程、操作系统等理论的软硬件的教学与研究开发平台。在这个开发平台上开发相应的程序,可以掌握嵌入式系统设计的流程与方法;可以根据使用者的需求,设计并实现手机的基本功能和扩展功能。 1 手机编程开发平台总体结构 作为专业技术课程,手机编程技术的教学内容包括系统设置、操作系统使用以及应用软件开发,因此,手机编程平台必须支持各项教学内容。另外,作为教学仪
[单片机]
嵌入式系统设计中组件技术的研究及应用
   0  引  言   基于组件的开发(Component Based Development,CBD)技术在软件工程中占有举足轻重的地位,并且在许多工程应用领域已经取得了重大的成功。在通用计算机软件、电子商务、Internet和分布式计算环境中CBD技术已经得到了成熟的应用。但是,在其他一些领域,如嵌入式系统中,CBD的应用还及其有限。由于不同嵌入式系统的需求和硬件平台各异,要开发出适用于所有系统的通用组件是极其困难的,目前只能够针对特定应用领域和平台研究开发适用的组件。正是由于嵌入式系统的差异性、专门性与组件技术的通用性之间的矛盾,所以要利用组件进行嵌入式软件开发,就必须采取适用的组件技术和系统开发方法。   在此,
[嵌入式]
嵌入式Linux系统中使用的摄像头
1).目前越来越多的嵌入式系统采用摄像头应用,其中主要有下面几种方式 远程监控:如闭路电视系统,操作人员通过摄像头远程监控某个特定区域,小到一个小区,达到市政公共场所,都可能有这样的应用。 监控视频录制:另外一些监控系统不一定有操作人员一直监控,则会通过录制监控视频的方式在需要的时候调出相关视频进行查阅。 嵌入式视觉系统:嵌入式视觉系统会对视频图片进行处理并提取更多复杂信息,如雷达和城市智能交通应用。 视频传感器:如临床诊断设备会对采集的视频图像进行分析来诊断,智能购物设备通过采集视频图像分析使用者特征来定向推广销售等等。 2).环境配置 ./ ARM嵌入式模块系统:Toradex VF61以及 Colib
[单片机]
在<font color='red'>嵌入式Linux</font>系统中使用的摄像头
大容量NAND Flash TC58DVG02A1FT00在嵌入式系统中的应用
摘要:随着嵌入式系统产品的发展,对存储设备的要求也日益增强。文章以东芝的NAND E2PROM器件TC58DVG02A1F00为例,阐述了NAND Flash的基本结构和使用方法,对比了NAND和NOR Flash的异同,介绍了容量NAND Flash在嵌入式系统中的应用方法,以及如何在Linux操作系统中加入对NAND Flash的支持。 关键词:嵌入式 NAND Flash Linux 内核 TC58DVG02A1F00 1 NAND和NOR flash 目前市场上的flash从结构上大体可以分为AND、NAND、NOR和DiNOR等几种。其中NOR和DiNOR的特点为相对电压低、随机读取快、功耗低、稳定性高,而NAND
[缓冲存储]
高速CMOS图像传感器及发展趋势
  传感器架构可由两分式、四分式或一个像素阵列组成。输出可为并行模拟输出, 或一个10位数字输出或数字串行 LVDS输出。每个输出可高达每秒5,000万次的采样速度,这样就能实现每秒55亿像素的吞吐量。迄今为止,该图像传感器是具有最高连续像素吞吐量的一款。图像质量至少达到10位精度,因此摄像头数字化之后,数据吞吐量可为每秒55Gbit。这样高速的应用通常需要6个电晶体快照像素,且需要较高的灵敏度和动态范围。图像传感器的灵敏度很大程度上取决于像素尺寸,而大的像素尺寸就需要大面积特定应用的定制图像传感器。内部多路复用技术可支持更高帧速率的随机窗口。如果将窗口大小缩至较小的ROI(圈选目标区域),那么最快速度器件的帧速率可达每秒170,0
[医疗电子]
高速<font color='red'>CMOS</font><font color='red'>图像传感器</font>及发展趋势
基于DSP与双目CMOS摄像头的数字图像处理系统
传统的数字图像处理通常采用图像采集卡,将模拟电视信号转换成数字信号,然后由PC机进行软处理。这样不仅不够灵活,处理能力也受到PC机和软件的限制。随着CMOS成像芯片工艺的改进和数字信号处理器功能的提升,使得数据量与计算量较大的图像硬处理成为可能。本文详细介绍了通过两路CMOS摄像头采集图像,以浮点DSP为核心处理器,采用60万门FPGA实现逻辑控制的数字图像采集处理系统的设计原理和实现方法。本系统所采用的芯片与器件,在保证性能的同时,兼顾低功耗,整个系统可以由1394线缆供电。    1 原理概述   整个系统的原理框图如图1所示。系统上电后,FPGA配置子板把配置文件加载到FPGA中。DSP由外部 FLASH引导,通过F
[网络通信]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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