可编程逻辑
引言
在CCD图像采集中,需要对图像采集系统的性能进行评估,而由于CCD相机的研制时间长,研制成本高,并且不易于控制,因此,研制出开发周期短、易于控制的图像目标发生器成为评估图像采集系统中很重要的一步。
图像目标发生器的设计主要是根据数字图像的知识,利用FPGA的大容量、高集成度、数据稳定等优点来设计图像数据流,实现CCD相机的大部分功能。
该图像目标发生器利用可编程逻辑器件的优良性能,采用VHDL语言编程,并且在流行的FPGA芯片上实现,它能产生灰度阶图像、静态目标图像和运动目标图像。在静态目标图像和运动目标图像中,背景区域和目标区域的对比度反差很大。输出的图像的像素采用12位灰度级表示,产生的图像大小是2K×1K。
1、设计原理
在图像信号的生成中,最重要的是时序关系,主要的信号有:像素时钟、帧信号、行信号和数据信号。以6×6大小的图像为例,它们和像素数据构成的时序关系如下。在图1中,帧信号(frame)包括6个行(line)有效信号,同时行信号又包括6个有效的时钟信号,这样便可以生成简单的6×6大小的图像。利用这个原理,便可以生成2K×1K大小的图像。
2、硬件设计描述
整个系统的结构框图如图2所示。
在图2中,工作模式选择用来决定系统是工作在灰度阶图像、静态目标图像还是运动目标图像的模式;FPGA选用Xilinx公司的XC2S200,该芯片的最高工作频率为200MHz,集成系统门为20万门,5292个逻辑单元,用来产生所有的图像数据信号;该图像目标发生器的接口选用两种方式:LVDS接口和Camera Link接口,其中LVDS接口芯片是美国国家半导体公司的DS90C031,Camera Link接口芯片是该公司的DS90CR283。
3、图像数据的设计
该设计采用模块化设计方法,先用VHDL生成底层模块:灰度阶图像产生模块、静态目标图像产生模块和运动目标图像产生模块等,然后利用原理图输入法将各底层模块调入顶层中,构成整个图像目标发生器,最后的图像目标发生器的顶层原理图如图3所示。
图像目标发生器主要由以下几个模块组成:
1) 时钟计数模块
该模块是一个模2147计数器,在对时钟计数的过程中计数器计到2047,就会产生一个低电平,表明产生一行图像,低电平维持100个时钟周期,即行消隐期是100个时钟周期。
2) 行计数模块
行计数模块是一个模1123计数器。对行信号计数的过程中,计到1023,输出一个低电平,说明产生一帧完整的图像,该低电平维持50个行周期,即场消隐期是50个行周期。
3) 灰度阶图像产生模块
当m《3:0》=“0000”时,图像目标发生器工作在灰度阶图像输出的模式下。灰度阶图像即图像像素的灰度值逐次加1,加至最大(212),再返回至0,然后逐次循环。
4) 静态目标图像产生模块
当m《3:0》=“0001”时,图像目标发生器工作在产生静态目标图像模式下。
静态目标图像产生模块的输入主要是行计数器模块和时钟计数模块的输出,输出主要是图像灰度值数据。静态目标图像采用时钟计数模块和行计数模块产生的地址(行数和列数)来界定每一目标的大小,每一个图像目标块的大小是100×100,在该区域内,图像灰度值全为1,在该区域外为背景区域,图像灰度值全为0。
5)图像帧数判断模块
图像帧数判断模块主要是依据本设计的要求设计的一个模11计数器,保证11幅图像循环出现。图像帧数判断模块的主要输入信号是图像的帧信号,帧信号是一幅完整图像的标志,当检测到帧信号的高电平跳变沿,说明开始一帧新的图像数据。
6) 运动目标图像产生模块
运动目标图像产生模块以图像帧判断模块模块、时钟计数模块、行计数模块的输出做为输入,其中,时钟计数模块和行计数模块的输出产生列地址和行地址,图像帧数判断模块的输出可以保证11帧图像循环出现,每一帧图像的目标区域都不相同,这样便可以产生运动目标图像。在每一帧图像中,由时钟计数器和行计数器产生的地址来界定目标区域的范围,在该区域内,像素灰度值全为1,为目标区域,在该区域外,像素灰度值全为0,为背景区域。输出是12位图像灰度值数据。该模块产生的目标区域大小是100×50 。
最后,我们用原理图输入法将上述生成的模块调入顶层原理图编辑器中,最后完整的图像目标发生器如上面的图3所示。
结论
将本图像目标发生器和CL160图像采集卡相连,在上位机采集得到灰度阶图像、静态图像和第一、第三帧动态图像如图4所示。
基于FPGA的图像目标发生器具有结构简单,开发周期短,数据稳定等优点,能迅速投入实际应用之中。该图像发生器具有CCD相机常用的LVDS和Camera Link接口,能和很多常用的具有这两种接口的图像采集卡连接,具有很大的通用性,只需要修改部分时序就可以满足其他的需要,具有很好的可移植性。
在实际的图像采集系统的评估中,利用该目标发生器验证了图像采集系统并不存在丢帧、丢点等现象,在图像存储中,还通过该目标发生器来检测存储速度是否能满足要求,在实际应用中,发现由于数据传输速率大,发现存储速度不能满足要求,后通过改进存储器存储区组织来满足存储速度的要求。
责任编辑:gt
全部0条评论
快来发表一下你的评论吧 !