一种高速CMOS相机成像系统的制作方法

文档序号:11056025阅读:1564来源:国知局
一种高速CMOS相机成像系统的制造方法与工艺

本实用新型涉及一种高速CMOS相机成像系统,该系统在视频监控、工件检测、机器视觉等领域有较高的实用价值。



背景技术:

图像传感器是摄像机的前端釆集元件,其成像质量好坏对系统性能影响很大。目前应用于高速摄像机上的感光器件主要有CCD和CMOS两种。这两种类型的传感器各有优劣,分别适合不同的应用场合。CCD传感器画质较好,噪声较小,灵敏度较高,但是功耗较大,帧频很难做到特别高,并且一般需要外加复杂的控制时序和模数转换器件。由制造工艺决定,CMOS传感器的画质略差于CCD,噪声较大。但是,经过多年的工艺上的改进,现在CMOS传感器基本能达到CCD传感器的画面质量,同时能够提供远高于CCD传感器的帧频和数据输出速率。为了实现CMOS相机的高速输出,通常将一帧图像通过多个读出通道同时输出,为此,就会引起各通道之间数据与采集时钟的偏移,导致采集位置与数据对齐的问题。



技术实现要素:

本实用新型的目的是提供一种高速CMOS相机成像系统,实现在一帧图像通过多个读出通道同时输出时,各读出通道自动寻找最佳数据采集位置,自动完成数据对齐。

本实用新型的技术解决方案是提供一种高速CMOS相机成像方法,包括以下步骤:

步骤一:数据生成

1)CMOS图像传感器采集图像,生成多个通道的图像数据和图像数据控制信号;

步骤二:生成锁存数据序列

2.1)空闲状态的CMOS图像传感器根据自身输出像素位数的不同,CMOS图像传感器各通道输出与之对应的原始训练数据序列;

2.2)以(2*N-1)bit为基本长度,训练数据序列,所述训练数据序列在每个采集时钟周期更新一次;在每个采集时钟周期具有一个Nbit长度的完整训练序列;其中N为CMOS图像传感器输出图像数据的量化位数;

2.3)在每段存储的训练数据序列中任取Nbit长度的连续数据,形成N个待锁存数据序列;

2.4)将N个待锁存数据序列分别和完整训练序列对比,若对比结果一致,则以图像数据的像元时钟频率为锁存周期,将该待锁存数据序列锁存作为锁存数据序列;

步骤三:图像数据的输出

当得到所有通道的锁存数据序列,CMOS图像传感器完成曝光和图像数据的输出,按照像元时钟频率读取锁存数据序列,并将锁存数据序列发送至主机。

本实用新型还提供一种高速CMOS相机成像系统,包括FPGA控制单元、CMOS图像传感器和通道,其特别之处在于:

上述FPGA控制单元包括多个数据采集模块、数据对齐模块和数据处理模块;上述数据采集模块采集CMOS图像传感器发送的数据;上述数据对齐模块的输入端和数据采集模块的输出端连接;上述数据对齐模块的输出端和数据处理模块的输入端连接;

上述数据采集模块包括第一寄存器,上述第一寄存器的存储深度为2*N-1,上述数据对齐模块包括N个第二寄存器;上述第二寄存器的存储深度为N,其中N为CMOS图像传感器输出图像数据的量化位数;

上述数据采集模块用于采集CMOS图像传感器发送的串行数据,并将串行数据存储在第一寄存器内;在每个时钟周期,第一寄存器内的数据仅有一个完整的训练数据序列;

上述数据对齐模块按照采集时钟周期读取第一寄存器的数据;并将数据存储在第二寄存器内;

上述数据对齐模块自动识别第二寄存器的值并和完整训练数据序列比较找出目标第二寄存器;

上述数据处理模块按照像元时钟周期锁存目标第二寄存器进行数据读取;

上述数据采集模块、数据对齐模块和数据处理模块对应于各个通道。

上述CMOS图像传感器为CMV4000传感器。

上述N等于10。

本实用新型的有益效果是:

本实用新型针对高速CMOS相机多通道LVDS串行数据对齐的难题,在FPGA内部实现了基于寄存器的滑动窗口数据流自动数据对齐模块,在空闲状态,该模块自动识别串行通道发送的训练数据,并锁定滑动窗口。后续数据处理模块可以按像元时钟频率对该滑动窗口寄存器进行数据读取,实现了数据串并转换和数据采集。

附图说明

图1为CMOS相机系统功能框图;

图2为CMV4000传感器结构图;

图3为实施例传感器空闲状态时状态通道采集寄存器reg[18:0]数据状态转移图。

具体实施方式

以下结合附图及实施例对本实用新型做进一步的描述。

高帧频CMOS图像采集系统由高帧频CMOS成像单元、串行通信单元、高速缓存单元、数据采集单元以及系统软件组成,如图1所示高帧频CMOS成像单元主要由CMOS图像传感器与FPGA控制芯片组成,CMOS图像传感器是系统的成像部件,能够捕获高速运动物体的图像,其输出为数字信号图像数据;FPGA控制芯片主要完成对CMOS图像传感器参数配置,用以协调整个系统的工作;串行通信单元的设计主要是针对CMOS图像传感器功能参数的多样性来实现图像传感器的自动化参数配置;高速缓存单元主要利用FPGA内部提供的FIFO IP核,将高速图像经过FIFO的缓存处理后,通过图像采集卡采集到计算机;数据采集单元主要由数据采集卡与采集接口电路组成,它完成对高速存储单元存储的图像数据的采集与传输控制指令的工作。

本实施例以CMOSIS公司的CMV4000为例,说明如何基于FPGA实现图像传感器多通道输出时,实现各通道自动寻找最佳数据采集位置和数据自动对齐。

CMV4000传感器结构图如图2所示,主要由序列发生器、像素阵列、SPI接口电路、模拟前端、温度传感器以及差分收发器构成。

像素阵列由2048X 2048个大小为5.5μm X 5.5μm的像元构成,像元由流水式全局电子快门控制,该结构能够使传感器在输出图像的同时进行下一幅图像的曝光,从而实现提高帧频的目的。

传感器模拟前端电路由12-bit ADC、偏置电路和可编程增益放大器构成。

CMV4000传感器图像输出按照每个像素位数的不同分成两种模式:10-bit模式和12-bit模式。在10-bit模式下,数据输出通道有16路、8路、4路、2路可选;在12-bit模式下,数据输出通道有4路和2路可选。本实施例选用10bit模式下8通道差分输出模式,图像传感器在工作时,每个差分通道以最高400Mbps的速度输出串行数据流,每10bit数据组成一个完整像素数据。整个CMV4000传感器数据率为3200Mbps。

FPGA为整个系统的控制器,是本实用新型的核心器件,其作用贯穿于整个系统。主要功能为:(1)首先要进行自身的I/O口和有关功能控制寄存器的初始化;(2)当主机通过串口接口芯片向FPGA发送CMOS图像传感器成像参数时,FPGA内部的串口数据功能模块接收这些成像参数,并将它们保存在其内部相应的存储区域内;(3)当主机发出开始采集命令后,从主机接收到的成像参数通过SPI总线接口传入CMOS数字图像传感器,完成CMOS数字图像传感器内部寄存器的初始化,同时要向CMOS图像传感器发出启动图像采集命令,以控制图像采集单元的工作完成图像采集功能;(4)在数据上传阶段,FPGA接收从CMOS图像传感器采集到的图像数据,传送到内部FIFO进行缓存处理,最后将数据传给图像采集卡采集到计算机,实现系统图像的存储与显示。

CMV4000传感器在供电稳定后,至少经过lus时间才可以进行复位操作。再经1us后,通过SPI总线配置传感器内部寄存器。配置完成后,经过settling-time时间后才能给出帧请求信号,settling-time的作用是确保SPI配置的寄存器在图像采集之前起效的时间。settling-time的主要影响因素是ADC_gain寄存器的值,ADC_gain随传感器输入时钟变化做非线性改变。在本实施例中10-bit模式输入时钟为40MHz,ADC_ggain值设置为41,settling-time设定为20ms。

传感器曝光模式有内部曝光和外部曝光两种方式,这取决于Exp_ext寄存器的值。当选择内部曝光时,曝光时间通过Exp_time寄存器进行设置,传感器在收到帧请求信号后,立即开始曝光,曝光结束后,进入帧开销时间FOT,在FOT时间内,像素数据采集并准备读出。一个帧请求对应的帧数是通过配置Numberframes寄存器实现的,默认帧数为1,最大帧数为65548。当选择外部曝光时,曝光时间由T_EXP1管脚出现高电平和Frame_REQ管脚出现高电平的间隔时间决定,在检测到帧请求信号后进入FOT时间,然后输出数据。

CMV4000传感器数据通道和控制通道不论在空闲状态还是工作状态都有串行数据流以差分形式输出。传感器时钟输出通道同步输出差分时钟,用于FPGA接收端同步接收数据差分信号和控制差分信号。但是在VHDL编程下并不支持差分时钟上升沿和下降沿同时采样,为此,对差分时钟pixclk进行倍频。PLL是FPGA内部倍频电路。传感器在40MHz、10-bit、4数据通道、400Mbps模式下Clk_bit频率为200MHz,因此PLL需要倍频出400MHz时钟,将Clk_bit双边沿采样等效转换为400MHz单边沿采样,并将Clk_bit时钟5分频,即可产生40MHz的用于数据采集的像元时钟Clk_pixel。

CMV4000传感器有一路控制差分输出通道,与图像数据同步,表征数据通道状态信息。该通道用于FPGA接收端识别数据通道上的信息是否是有效的图像数据。该差分控制通道的状态信息为12-bit制式。每一位的功能描述如表1所示。

Table 1.Function of the individual bits of control channel

在系统上电复位且系统时钟稳定以后,传感器进入空闲状态,等待帧请求指令。此时传感器会通过数据通道和状态通道自动、不间断向外发送特定序列,称为“training”模式。在10bit工作模式下,数据通道上默认序列为”00 0101 0101”(可通过配置61-62号寄存器修改),控制通道默认序列为”10 0000 0000”。

为了利用“training”模式实现数据通道和状态通道的数据对齐,本实施例在FPGA控制单元中与各通道对应的设置数据采集模块、数据对齐模块及数据处理模块。首先,设计一个数据采集模块,该模块通过FPGA内部的PLL将pixclk双边沿采样等效转换为单边沿采样,在10bit工作模式下,采集CMOS图像传感器发送的串行数据,并转换成并行数据,为了配合数据对齐模块,将串行数据以19bit为一段,存在19bit第一寄存器reg[18:0]中。当传感器进入空闲状态时,与状态通道对应的数据采集模块中的第一寄存器reg[18:0]的值如图3所示,可以看出,每个时钟周期,第一寄存器reg[18:0]的值有且仅包含一个完整的训练序列”10 0000 0000”,而且第一寄存器reg[18:0]更新的频率为像元时钟Clk_pixel。这样就实现了类似于一个查看数据流的滑动窗口,该窗口内数据的更新频率就是像元时钟频率。

为了从滑动窗口(数据对其模块)第一寄存器reg[18:0]中读出10bit有效数据,需要另外10个10bit第二寄存器,该第二寄存器位于数据对齐模块中,且分别赋值如下:

temp_reg1[9:0]<=reg[18:9];temp_reg2[9:0]<=reg[17:8];

temp_reg3[9:0]<=reg[16:7];temp_reg4[9:0]<=reg[15:6];

temp_reg5[9:0]<=reg[14:5];temp_reg6[9:0]<=reg[13:4];

temp_reg7[9:0]<=reg[12:3];temp_reg8[9:0]<=reg[11:2];

temp_reg9[9:0]<=reg[10:1];temp_reg10[9:0]<=reg[9:0];

从滑动窗口第一寄存器reg[18:0]的数据更新可以知道,10个10bit第二寄存器也按像元时钟Clk_pixel更新,且仅有一个第二寄存器的值与训练序列"1000000000"相同,通过比较找出该第二寄存器,该通道的后续数据处理模块按像元时钟Clk_pixel的上升沿锁存该第二寄存器,即可实现数据对齐。其他数据通道也按同样方式完成数据对齐,只是训练数据为"0001010101"。当所有通道都对齐后,系统控制模块将转移到下一个状态,即相机将进入工作模式,开始曝光和图像数据读出。

本实用新型高速CMOS相机成像系统通过以下步骤完成成像:

步骤一:首先对FPGA控制单元的I/O口及CMOS相机的相关功能参数进行初始设置;

步骤二:主机向FPGA控制单元发送CMOS图像传感器成像参数,FPGA将成像参数保存在FPGA内部的存储区域内;

步骤三:主机向FPGA控制单元发送开始采集命令,FPGA控制单元接收采集命令并将步骤二中的成像参数发送至CMOS图像传感器;同时,FPGA控制单元向CMOS图像传感器发送启动图像采集命令;

步骤四:CMOS图像传感器接收FPGA控制单元发送的启动图像采集命令;CMOS图像传感器完成图像采集;

CMOS图像传感器通过数据通道和控制通道将图像数据和图像数据控制信号发送到FPGA控制单元的数据采集模块;

控制CMOS图像传感器处于空闲状态,并发送训练数据序列至FPGA控制单元的数据采集模块,数据采集模块的第一寄存器以2*N-1bit为一段存储训练数据序列,训练数据序列在每个时钟周期仅有一个为完整的训练序列;

步骤五:数据对齐模块读取第一寄存器的值并给N个第二寄存器赋值,第二寄存器以Nbit为一段存储训练数据序列;数据对齐模块自动识别N个第二寄存器的值,通过和第一寄存器比较找出具有完整训练序列的第二寄存器;

步骤六:FPGA中的数据处理模块按照像元时钟频率锁存具有完整训练序列的第二寄存器,当所有通道的数据完成对齐后,CMOS图像传感器在FPGA控制单元的控制下,完成曝光和图像数据的输出过程,实现图像数据的采集,并将图像数据发送至主机。

本实用新型针对高速CMOS相机多通道LVDS串行数据对齐的难题,在FPGA内部实现了基于寄存器的滑动窗口数据流自动对齐模块,在空闲状态,该模块自动识别串行通道发送的训练数据,并锁定滑动窗口。后续数据处理模块可以按像元时钟频率对该滑动窗口寄存器进行数据读取,实现了数据串并转换和数据采集。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1