线阵CCD低噪声测量系统设计
2015-12-30张俊汪涛
张俊汪涛
(重庆大学物理学院,中国 重庆401331)
0 引言
CCD(Charge-coupled Device,电荷耦合元件)图像传感器体积小、重量轻、功耗小、寿命长,同时具有灵敏度高、响应速度快、自扫描和光谱响应宽等优点,被广泛应用于各个领域,包括航空航天、传媒摄像、工业生产等。随着光电子技术的不断发展,测量系统快速采样、存储、处理和传输是系统新的发展方向。由于线阵CCD实时控制较为容易,而且价格便宜,所以广泛应用于非接触的尺寸测量、质量检验、自动化及机器人视觉精确定位等等[1]。
1 系统整体结构
本系统由光源、光学镜头、被测物、线阵CCD、数据采集与传输单元和数据显示单元构成。当光源的光通过光学镜头照射在被测物体上,被测物体的相关信息被线阵CCD记录下来,由后续的数据采集单元将模拟信号转换为数字信号,再将数字信号进行处理,最后传输显示在上位机上。
本文设计的重点是数据采集与传输单元,具体设计如图1所示。线阵CCD将光强信号转换为模拟电信号输出,再送入模数转换器中转换为12位并行数字信号。用Matlab软件设计一个低通滤波器,并结合FPGA将数字信号进行滤波处理。滤波后的数字信号送入FPGA内嵌的存储器中进行缓存,再通过并口转串口模块将12位并行数据转换成串行数据,通过串口上传至上位机中显示。
图1 数据采集与传输结构图
2 系统硬件结构
2.1 图像采集模块
本系统选用的图像传感器为东芝公司的TCD1209D,这是一款两相的CCD,主要用于传真、图像扫描和OCR(Optical Character Recognition光学字符识别)技术[2]。这款CCD灵敏度较高、暗信号电压较小、动态范围较大,非常适合用于尺寸测量。共有2048个有效像元,像元尺寸为14μm×14μm,相邻两个光敏单元的中心距为14μm。该CCD工作需要6路驱动脉冲,由FPGA产生,包括移位脉冲φ1、φ2,信号输出脉冲φ2B,转移脉冲SH,复位脉冲RS和箝位脉冲CP。
2.2 模数转换模块
CCD输出的信号为模拟信号,在将信号输入到微处理器前,要将信号转换为数字信号。本系统选用的模数转换器为AD公司生产的AD9945,该芯片最高采样频率为40MHz,而本系统CCD信号频率为1MHz,完全能满足设计需要。其信号链主要由相关双采样(Correlated Double Sample),数控可变增益放大器(Variable Gain Amplifier)和12位A/D转换器组成。
为了降低CCD信号中的复位噪声,模拟信号先经过CDS处理[3]。在复位电平SHP和像元信号电平SHD的上升沿,对模拟信号进行采集,并将得到的两个信号相减,从而降低复位噪声。接着通过一个VGA增益放大器来调节信号的大小,可以通过一个10位的串行数字接口编程来设置增益的大小。最后CCD信号经过12位的AD转换器转换后,输出数字信号,并且延迟了10个像素的时钟。
2.3 FPGA模块
本系统使用的FPGA芯片为Altera公司的Cyclone 2系列EP2C8Q208C8,通过设计产生CCD和AD的驱动信号,并结合Matlab软件对数字信号进行低通滤波处理,处理后的信号经过缓存和传输,显示在上位机上。
3 系统软件设计
根据系统的硬件设计,软件程序主要包括三个功能模块:时序功能模块、滤波功能模块和数据传输功能模块。
3.1 时序功能模块
为了使CCD正常工作,必须设计出符合CCD正常工作的时序脉冲。将两相时钟频率φ1、φ2设为1MHz,则RS和CP的频率也为1MHz。AD9945需包含三个方面的时序设计:(1)串行数字接口SDATA、SCK和SL,对内部寄存器进行配置;(2)相关双采样信号SHP、SHD,以及数据像素同步时钟DATACLK;(3)光学暗电平钳制脉冲,减少暗电平噪声。
3.2 滤波功能模块
本系统设计了低通滤波器对数字信号滤波,是结合Matlab和FPGA实现的[4]。系统设计的滤波器为有限脉冲响应(Finite Impulse Response,FIR)滤波器,使用窗函数设计方法。CCD输出信号频率为1MHz,经AD转换后数字信号频率仍为1MHz,所以我们将低通滤波器的截止频率设为1.2MHz,采样频率设为5MHz。通过Matlab设计了一个32阶的低通滤波器,系数的量化位数为12比特。量化后得到的滤波器系数为:FF8、001、00D、000、FE3、FFB、03B、015、F95、FC8、0B7、084、EBF、EB4、2F2、7FF、7FF、2F2、EB4、EBF、084、0B7、FC8、F95、015、03B、FFB、FE3、000、00D、001、FF8,系数呈现出对称性。
通过Matlab软件得到滤波器系数后,利用FPGA对数据进行滤波。本系统使用FIR滤波器直线型结构,相当于一个乘累加运算,且乘累加运算的次数由滤波器阶数决定。同时累加运算由串行结构来实现,即每级延时单元与相应系数的乘积结果进行累加后输出,因此整个滤波器实际上只需要一个乘法器运算单元。由于FIR滤波器系数具有对称性,所以进行对称系数的加法运算也由一个加法器串行实现。
3.3 数据传输功能模块
经过滤波后的数字信号先经过存储器进行缓存,我们设计一个FPGA内嵌的异步FIFO对数据进行缓存处理。由于CCD的信号频率为1MHz,所以写时钟频率设为1MHz。将串口传输速率设为9600bps,则FIFO读时钟频率应大于9600/12Hz,将读时钟频率设为0.8MHz。同时设置空、满标志信号来判断何时将数据写入和读出FIFO。
从FIFO中传输出来的12位并行数据需要转换为串行数据,才能通过串口上传至上位机中。需要在FPGA内部设计一个移位寄存器,并行数据传输至移位寄存器后,在通过数据缓冲寄存器输出。
4 系统测试与分析
搭建实验平台,进行系统测试。将被测物选为双缝,其衍射条纹投射在线阵CCD上,通过系统数据采集与传输,传输至上位机中。我们将未加低通滤波器时采集到的数据保存为txt格式,并用Matlab进行仿真,图2所示为CCD信号滤波前后的频谱图,从图中我们可以看出,原信号中频率成分大于1.2MHz的信号被滤除,仿真证明滤波效果较好。图3中显示了实验中得到的CCD时域信号,通过对比我们可以看出经过滤波后的条纹更加平滑,毛刺也相应减少了。
图2 Matlab仿真CCD信号滤波前后的频谱图
图3 双缝衍射光强分布图
5 结论
本文设计的低噪声测量系统是基于FPGA技术的,由于FPGA具有运算速度快、配置灵活等诸多优点,提高了系统的运算速度和集成度。本文从硬件和软件两方面对CCD噪声进行了处理,提高了系统的测量精度。该测量方法可以推广到具有更高工作频率的CCD测量系统中,例如无接触位移测量和振动测量等领域。
[1]王鑫,陈骥,曹久大,等.线阵CCD高速数据采集与实时处理系统[J].光电子·激光,2008,19(2):174-177.
[2]王庆有.CCD应用技术[M].天津:天津大学出版社,2000:30-45.
[3]王华伟,刘波,曹剑中.CCD信号处理电路设计研究[J].科学技术与工程,2007,7(16):4153-4156.
[4]杜勇.数字滤波器的Matlab与FPGA实现[M].北京:电子工业出版社,2014:101-150.