CMOS图画传感器是近年来开展最为快速的新式固态图画传感器,它运用其本身的工艺和集成的特点将光电成像阵列与信号模仿扩大和数字图画处理电路集成于单芯片内,与CCD图画传感器比较,具有体积小、功耗低、操控简略、价格低廉等长处。随同CMOS工艺的不断进步和完善,以及其本身缺陷如noise、色彩复原度、动态规模等筹的改善,CMOS图画传感器的运用越来越广。以上CMOS图画传感器的许多缺陷大部分能够在其流片后经过调试战胜或许改善,所以对CMOS图画传感器的快速调理显得尤为重要。
USB(Universal Serial Bus)总线接口是一种PC机与外围设备间高速通讯接口,具有速率快,热插拔等特性,能够广泛运用于与核算机通讯;I2C(Inter-Integrated Circuit Bus)总线以两根连线完结全双工同步数据传送,操控办法简略,其接口可直接设置或读取CMOS图画传感器的寄存器。
文中详细介绍了依据USB2I2C接口完结对CMOS图画传感器的在线调试体系的规划进程,包含固件程序的规划办法,依据WDM模型的驱动程序规划和MFC的运用软件规划开发。
1 CMOS图画传感器
该图画传感器为自主规划、研制并流片的一款SoC(System—on—a—Chip)芯片——CUST1089。该款芯片集成了一个640X480的简化4T像素结构的感光阵列、模仿数据收集、模数转化、数字图画处理电路、SPI操控接口及寄存器I2C编程接口。CUST1089图画传感器选用了110 nm的CIS(CMOS图画传感器)工艺出产,以PLCC(Plastic Leaded Chin Carri er)进行封装。其图画选用D1格局输出,兼具模仿与数字输出功用,供电电压为3.3 V。
2 调试体系的组成和作业原理
为了调理CMOS图画传感器的图画,每个sensor的规划厂家都有自己的一套调试体系,该体系的硬件体系一般是由CMOS图画传感器成像板、FPGA开发板和USB接口转化版组成,在配上杂乱巨大的软件体系,能够对CMOS图画传感器进行详尽的、全面的调理。可是这种调试体系对CMOS图画传感器调试周期长、杂乱性高,一般人员难以下手。既延长了sensor的上市时刻,又对客户要求较高。从种种方面考虑,文中规划了一种依据USB2I2C接口的CMOS图画传感器在线调试体系,以USB2I2C开发板作为在线调试体系的硬件部分,如图1所示,结构简略,调试便利,旨在调理CMOS模仿输出图画质量。
2.1 USB2I2C芯片
USB2I2C是一个USB总线与I2C总线彼此转化的接口芯片。不需要单片机/DSP(数字信号处理)/MCU(微操控单元)等的监控就能完结PC上位机由USB接口与下位操控器之间数据的直接输入和输出,结构简略,运用广泛。USB2I2C芯片作为USB Device运用时,契合USB2.0协议规范,支撑4种数据传输类型:操控传输、同步传输、中止传输和批量传输;US B2I2C芯片作为I2C的主设备(Master)时,契合I2C串行接口协议规范,总线只能有一个主器材操控,从器材只要存总线空闲时才发动数据传输。USB2I2C具有的低挂起功耗能够履行总线供电功用。此外该芯片还集成了FlexWireTM,可编程时钟输出、低频晶振、多重功用终端等特性功用。所以,PC上位机界面运用程序可经过USB接口与USB2I2C芯片通讯,并运用USB2I2C芯片供给的SCL(Serial Clock)时钟线和SDA(Serial Data)数据线能够便利地对CMOS图画传感器的
寄存器进行读写。
2.2 体系原理
在线调试体系由传输、显现两部分构成。传输部分由USB2I2C开发板完结PC机与CMOS图画传感器数据交互,显现部分在PC机上用MFC开发完结的寄存器调理界面。体系构成框图如图1所示。
在体系上电前,USB2I2C开发板的I2C接口衔接以CMOS图画传感器为中心的成像板,其USB接口衔接到PC机。体系上电后,首要寄存器调理界面由USB接口经过USB2I2C芯片运用SDA线和SCL线对CMOS图画传感器进行初始化读取,以确认CMOS图画传感器的初始状况,包含主动曝光、增益、饱和度和亮度等参数的显现。
传输是由USB2I2C芯片来完结,USB2I2C芯片与PC机衔接时,作为USB Device运用;USB2I2C芯片转化出来的I2C总线衔接CMOS图画传感器时,作为I2C的主设备(Master)。当USB2I2C芯片作为USB Device时,担任USB2I2C芯片的初始化和与PC的通讯衔接。上位机软件与USB设备通讯时,USB2I2C芯片的串行接口引擎(SIE)完结USB协议层,经过管道在主机缓冲区与设备端点问传输数据,选用了块传输和中止传输;当USB2I2C芯片作为I2C的主设备时,SCL是单向输出同步时钟,向%&&&&&%器材发送时钟信号,SDA用于双向数据输入输出,用7位地址位作为从机地址和一位R/W(读/写)位向CMOS图画传感器发送地址,树立衔接。USB数据与I2C数据的转化是在USB2I2C芯片内部完结。
寄存器调理是整个调试进程中最杂乱的进程,要先确保CMOS图画传感器的正确读取初其始状况后,然后才是详细设置值的问题,而且要确保CMOS图画传感器的寄存器值与调试界面的对应项实时改动,如修正调试界面上对比度的值,则办理对比度的CMOS图画传感器的寄存器的值相应的改动;反之,亦然。寄存器调理界面能够手动调理增益、降噪、对比度、Gamma曲线校对等寄存器参数,还能够依据部分DSP算法,如色彩矩阵(CMX)、主动白平衡(AWB),主动生成相应的寄存器参数,替代了人工很多核算,完结对图画的主动调整,使图画质量挨近实在场景。
3 调试体系软件规划
3.1 设备固件规划
USB2I2C固件程序由3部分构成:主程序,I2C读写子程序和USB固件程序。USB2I2C别离作为USB device和I2C的Master时的同件程序规划可参考文献。主程序的使命能够中止,其间止服务完结USB数据与I2C数据彼此转化。所以,中止服务是同件程序规划的要点。由USB协议可知,任何传输都是由主机(host)开端的。主机经过USB接口先发送令牌包给USB2I2C芯片,USB2I2C芯片接收到令牌包后,并检测INT#引脚,当其变成高电平后主程序进入中止服务程序。固件程序读USB2I2C的中止寄存器,判别USB令牌包的类型,然后履行相应的业务操作,完结USB数据与I2C数据改动。中止服务程序流程图如图2所示。USB2I2C芯片可支撑3个端点(EP0~2),其间端点0用来对应缺省操控通道初始化和重新装备设备地址信息,一起又能读取没备装备信息和操控传输的输入输出。端点1~2则用于支撑块传输和中止传输。
3.2 设备驱动程序规划
设备驱动程序运转于内核层,是操作体系中操控和链接硬件的重要模块,它躲藏了硬件设备内部的详细完结细节,而且对操作体系透明。因而,在Windows操作体系中,运用层只能经过运转于内核层的驱动程序操控硬件。
USB设备驱动程序是一种典型的WDM驱动程序,选用分层结构。首要运用层程序经过调用WIN32API函数向设备宣布指令,由I/O办理器生成一个IRP,IRP被传输到USB设备驱动程序后,取出其间的操控码来找到对应的例程进口,然后USB设备驱动程序结构URB(USB恳求包),将URB作为IRP的一个参数传递给底层的总线驱动程序上,完结与硬件终究的通讯。在本体系开发中,驱动程序选用了WDK(Windows Driver Kit)和DDKWizards东西。在WDK的子目录的src\usb\usbsamp目录下,供给了一个usb驱动程序比如。该示例全面地支撑了即插即用IRP处理和电源办理,一起也很好地支撑了USB设备的bulk(批量)读写和中止读写。在项目开发中,对该示例的代码只需要指定何种管道,发送何种数据即可,然后编译链接后生成.sys驱动程序,再运用体系自带的GenInf东西来生成.inf安装文件的根本结构,终究对其进行恰当的修正即可生成安装文件。
3.3 运用程序规划
在Win32体系中,运用程序可经过文件操作API函数即可完结与设备的通讯。USB2I2C的并口驱动程序和动态链接库USBIOX.DLL向运用程序供给了运用层接口,包含:设备办理API、同步串口数据传输API、中止处理API。运用程序时只需调用USBIO_OpenDeviee,USBIO_StreamI2C等函数便可对USB2I2C设备进行翻开、读、写操作,完结了PC上位机与下位机的通讯。
3.3.1 运用程序实时呼应
因为该运用程序要相应键盘音讯,则运用程序经过重载虚函数PreTranslateMessage()对所关怀的音讯进行截取与呼应。经过对键盘音讯的截取和相应,完结了CMOS图画传感器的寄存器地址值与调试界面的对应项实时改动。
3.3.2 依据DSP算法主动生成寄存器参数
关于简略DSP算法(对比度、饱和度、Gamma曲线校对等)功用的完结,只需简略的调理寄存器值即可完结对相应功用的调整。可是关于一些杂乱的DSP算法如CMX、AWB等,就需要经过杂乱的调试,然后得出多个相应的寄存器参数,终究改动相应的寄存器值,才干完结对图画的调理。为了简化这种杂乱的调试,关于杂乱的DSP算法,该调试体系增加了其主动调试功用:依据详细的DSP算法及其功用确认其参数核算算法,取得参数后,把参数写入寄存器以完结该算法的功用调理。
下面以CMX(Color Matrix)算法为例简略介绍主动调试功用。
CMX(Color Matrix)算法主要是对图画色彩的旋转和拉伸,把某些色彩往左旋转,有些色彩往右旋转等等,到达自己喜爱的色彩或许与实在场景相差无几的图画。CMX算法是经过5*5改换矩阵与5*1色彩矩阵(包含R,G,B,A(Alpha透明度),W(虚拟位))相乘,对图画色彩进行的几许改换,转化、缩放RGB色彩,完结对任何色彩转化。
核算这个色彩矩阵,是个病态问题,或许会有多个解,有的成果或许会偏这个风格,有的成果或许会偏别的一种风格。CMX无法彻底把sensor的图画色彩复原到人眼的特性,只能是一种含糊的调理,挨近方针色彩。因为图画的每个像素只要3个重量,所认为简化CMX算法的杂乱性,选用了3X3的改换矩阵与3X1的输入矩阵相乘,得到一个3X1的输出色彩矩阵,如公式(1)所示:
其间所求矩阵为改换矩阵。
由上可知CMX算法中共用到9个参数,依据CMX算法功用,求解改换矩阵算法为:以规范色卡为测验场景,经过设置得到CMX的规范色卡的输出图画矩阵,而且色卡的规范输入矩阵已知,如公式(2);运用公式(1),可求出一组改换矩阵,如公式(3)。
其间输出图画矩阵和规范色卡的规范输入矩阵别离为:
同理,重复核算两次,再得到两组改换矩阵,如公式(4)所示。然后选用最小判别规范,如公式(5),能够求出改换矩阵的m00参数,同理可求出其他8个参数。
一般情况下,越小得到的变形矩阵参数越好,图画的质量也越好。如图3所示,为CMX主动算法得出的参数。
4 试验成果
该体系对CUST1089图画传感器进行了测验,从对比度、亮度、饱和度等方面便利快速地调整了图画质量。图4为在线调试体系的USB2I2C开发板和以CUST1089芯片为中心的成像板,其间CUST1089芯片成像板衔接电视,USB2I2C芯片衔接PC机。图5是对比度的寄存器值为164,饱和度的寄存器值为112;图6为调整后对比度的寄存器值为65,饱和度的寄存器值为100。
5 定论
本规划运用USB2I2C开发板和软件体系完结了对CUST1089图画传感器的在线调试。该体系运转安稳,结构简略,外围电路少。该体系验证了经过I2C总线对CMOS图画传感器的寄存器进行不同装备,可得到不同的成像作用。运用层程序能生成调试盯梢文件和寄存器装备文件。调试盯梢文件记载调试进程中寄存器更改进程,可便利追寻、检查调试进程;寄存器装备文件保存终究调试成果。
文中立异点:该体系完结了DSP(CMX、AWB等)算法主动生成相应的寄存器参数功用,完毕了人工很多运算,完结主动调理CMOS图画传感器的图画。关于不同的CMOS图画传感器,程序规划者只需改动在线调试体系的运用层程序的寄存器地址,即可完结对一切具有I2C接口的CMOS图画传感器的实时调理。