基于MC9328MX1处理器实现ICM105C图像采集设备的接口设计

发布时间:2023-05-05  

背 景

目前数字摄像技术,主要采用两种方式:一种是使用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 所示。

基于MC9328MX1处理器实现ICM105C图像采集设备的接口设计

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

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

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

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是时序图。

由于主处理板是一上电就开始工作,而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所示。

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

数据处理

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

具体的处理过程如下:

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

由上图可以看出,每个像素点都有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图像传感器没有自调节性,所以当在户外日光下拍摄物体时,物体的颜色就会因为色温高而偏蓝。而在室内的荧光灯下拍摄物体时,物体的颜色就会因为色温低而偏红。要得到正确的颜色,必须进行白平衡。白平衡的基本原理是调整颜色的色温,使其保持在一个特定的范围内。在此接口的应用中采用了一个较简单的白平衡方法,其处理过程如下:

经过这样的运算就得到了白平衡后的数据。目前白平衡还没有很好的算法来处理一切情况,这只是一个简单的算法。


结 论

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


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    噪声和抑制零点漂移。 Xout、Yout:输出。 图2为ADXL202传感器的内部结构原理图。 ADXL202传感器由振荡器,X、Y方向传感器,相位检波电路以及占空比调制器组成,具有数字输出接口和模拟电压信号输出接口......
    51单片机编程环境的搭建及代码编写的方法;1. 51单片机概述 51单片机是对所有兼容Intel 8031指令系统的单片机的统称。目前教科书基本都是以早期的MCS-51为原型,讲解微机的原理及其接口技术......
    -121. [2] 黄克亚.ARM Cortex-M3嵌入式原理及应用——基于STM32F103微控制器[M].北京:清华大学出版社,2020. [3] STEVENS W R.TCP/IP详解 卷1......
    语言了解;2、微机原理与接口技术了解;想要提升开发能力,就必须要不断地实践,建议小白可以在网上(某宝)买一块51单片机开发板,自己参照课程研究研究 下面我把我的经历给大家说一下,希望......
    基于LPC2103微控制器实现LED数码管的显示设计;SPI( Serial Peripheral Interface) 总线是Motorola公司提出的一个同步串行外设接口, 允许MCU与各......
    的医疗器械之路》。作为中国科学院深圳先进技术研究院的正高级工程师以及脑机接口领域的领军人物,李博士深入剖析了植入式脑机接口技术的最新进展和应用前景,展现了这一前沿技术......
    基于STM32F417的物联网嵌入式网关的设计;1、引言 随着物联网技术的飞速发展,物联网技术中一个重要的实现就是要将各类传感器控制节点采集到的数据通过Internet网上传到用户手机或者PC机......
    的成就,无疑证明了脑机接口技术的巨大潜力和市场前景。 王浩冲分享了脑机接口技术的核心原理。如果说传统的脑电是数码相机,那么脑机接口就像一个AI相机,并且已经发展到单反相机的级别,而马斯克在做的就是AI......
    的学习。日后在工作上,仿真器也大有用处。还有,一般光有仿真器是不行,还得有一个实际的电路,即学习板,即为,单片机最小系统。 学习板以强大的接口为主,单片机的学习分两方面,一方面是单片机的原理及......
    人员需要注意各种设置项的正确性和选择,小心谨慎的通过嵌入式调试软件进行断点调试、程序输出、查看变量等操作。 综上所述,GD32单片机和STM32单片机的概念、工作原理及内部结构相似,并且......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>