《武汉工程大学学报》  2012年1期 61-64   出版日期:2012-02-28   ISSN:1674-2869   CN:42-1779/TQ
快速图像数据采集与显示控制器的设计


0引言随着集成电路技术的发展,集成图像传感器已进入数字式时代[1],输出数据为一定格式的数据流,不受外部控制.因此,由于处理器的运行速率有限,直接应用数据总线采集数据已不可能,因此大多采用先进先出存储器先缓存处理[1-2],如文献[2]在设计中通过现场可编程门阵列实现双时钟先进先出存储器模块,仍需要通过内部总线进行数据存储,采集速率将受到内部总线的限制;文献[3]采用现场可编程门阵列器件设计的控制器亦需要通过内部总线存储采集的数据,并利用静态随机存储器缓冲,? 因此,数据速率也受到内部总线速率的限制.如果传感器数据速率增大,数据流将要求大容量的先进先出存储器,使得成本上升.本文提出采用现场可编程门阵列器件设计专用数据采集控制器,在采集数据时直接接管静态随机存储器的数据总线,数据采集速率将与内部总线无关,仅与传感器和静态随机存储器的工作速率有关,采集完数据后利用软核处理和显示采集的图像,非常适合视频图像的实时采集.1系统组成与控制器设计? 根据实际需要,系统由专用数字摄像头、控制器和显示器组成,数字摄像头选用OV6620数字图像传感器[3],液晶显示器,控制器为DE2系统,内有3.5万逻辑单元的可编程逻辑器件Altera Cyclone II 2C35、512 kbyte 静态随机存储器和1Mbyte FLASH存储器,VGA(Video Graphics Array)显示接口等,其中,Cyclone II支持NIOSII软核微处理器,内置32位Avalon总线. 考虑NIOSII处理速率的限制,图像采集控制器由现场可编程门阵列模块构成,接收传感器数据,并根据地址发生器的地址写入至静态随机存储器,控制器模块只由处理器给定地址发生器的起始地址,已经启动/终止采集命令,当处理器处理数据时,通过Avalon总线读取数据处理,系统的结构如图1所示.
1.1OV6620图像传感器与时序OV6620为专用数字图像传感器[3],内含总像素为101 376,以及双8位模/数转换器,两种工作模式为16bit/YUV和8bit/YUV,对应的摄像头分辨率分别为QCIF(176×144 像素)和CIF(352×288像素).OV6620采用模块化,与外围接口只有场同步信号VSYN、行同步信号HREF、像素同步信号PCLK(像素同步信号)和数据总线DATA,逐行数据读出,数据格式为YCrCb4∶2∶2、GRB4∶2∶2或RGB原始数据,通过串行控制总线可编程,可实现图像增强处理,如色彩饱和度、亮度、对比度、白平衡、曝光时间、增益控制等,常用于视频会议、视频电话、视频监控和多媒体等场所.OV6620的工作时序如图2所示,图2中VSYN为场同步信号,HREF为行同步信号,像素同步信号PCLK为读取有效像素值提供同步信号,高电平时输出有效图像数据. 图1图像数据采集与显示结构框图Fig.1Image data acquisition and display block diagram
图2OV6620工作时序Fig.2Timing of OV6620
在CIF状态下,OV6620的工作时序如图2所示,VYNSC为帧信号,周期是20 ms, 其中高电平持续时间很短;HREF是为行脉冲信号,周期为63 μs左右,其中高电平持续时间为40 μs,低电平持续时间 23 μs,对照时序图可以计算OV6620的分辨率为:20 ms/63 μs=317,但实际并没有这么多,除去消隐和无效信号后只有292行;每一行的像素为40 μs/110 ns=363个, 去掉消隐和无效信号后为356个,因此,OV6620的分辨率为356×292.通过实际测量,PCLK的周期只有150 ns,因此,不能直接采用处理器的中断或查询采集图像数据.第1期熊俊俏,等:快速图像数据采集与显示控制器的设计
武汉工程大学学报第34卷
1.2数据采集控制器设计根据OV6620的工作时序,帧信号决定了数据流的起始点,行脉冲决定了每一行数据的起始位置和长度,像素同步信号提供了数据读时钟,但需要考虑的是:数据读时钟持续有效,而实际有效数据个数由帧脉冲和行脉冲决定.因此,数据采集控制器的写信号为PCLK,地址发生器实际为地址累加器,初始地址通过NIOSII预置,PCLK为地址发生器的时钟.具体的程序流程和内部结构如图3所示.考虑到错误冗余,在每一行的数据存储地址空间为360,比实际的352大,每一帧的空间为360×295,因此,每一帧的首地址由处理器预置,每一个像素的存储地址为A=Q0+Q1·360+Q2
式中, Q0为每一帧的起始地址,由处理器预置,Q1为行脉冲计数器值,Q2为地址累加器的值,每个PCLK时钟自动加一.该控制器模块采用Verilog描述,经过编译下载执行,可获得稳定的采样数据.这里需要注意的是,由于数据采集开始的指令与帧脉冲信号不一致,因此每帧数据的采集时间应超过2帧的时间,才能保证完整的一帧数据存储在指定的空间,这是由于只有第一帧的振脉冲下降沿才能确定存储起始地址的缘故,本系统取40 ms完成一帧数据采集.??
2系统软件设计系统软件主要完成控制器的初始地址预置、图像数据处理与显示.由于采集的数据为YUV格式,需要转化为RGB格式才能由VGA显示.图3控制器时序与内部结构
Fig.3Controller processes and internal structureYUV与RGB的转换关系为Y = 0.59G + 0.31R + 0.11BU = R-YV = B-Y首先系统初始化,设置数据存储空间首地址,为开始图像采集作准备,进入主循环,启动采集控制器工作.根据需要完成采集图像帧数目,开始进行图像处理和显示[4].程序流程如图4所示. 图4系统软件流程Fig.4System software program flow
显示模块是将采集的图片对比,VGA显示为640×480,将采集的图片裁剪置入640×480矩阵中,改变图片在矩阵中的坐标存放,并一起在VGA屏上显示.根据实际需要,对图像传感器采集的彩色图像做灰度处理,并采用阈值分割法,对目标和背景占据不同灰度级范围的图像,压缩数据量,并设定阀值将采集的图像作二值化处理,获得边界轮廓.3结果分析与结论 将设计的控制器与内核NIOSII一并编译下载,并装配程序执行.根据需要,系统连续采集多帧图像,并显示在VGA显示屏上,如图5所示.利用现场可编程门阵列芯片的高速特性实现高速数据采集与存储,并采用片上系统NIOSII进行数据处理和显示,全部设计在一片Altera Cyclone II 2C35上完成,节省了硬件开销,提高了数据采集的速度,不占用处理器的资源,其在线可编程功能提高设计应用的灵活性.所设计的采集控制器为硬件模块,也适用于其它高速数据采集场合.高速图像采集与显示的实现,为下一步图像识别和控制提供了基础,在此特别感谢Altera公司提供的DE2平台和技术指导.图5实物与采集的图片显示Fig.5The Actual Object and its Display