高帧频CCD数据采集处理系统的设计
引 言
电荷耦合器件CCD(Charge Coupled Devices)可以将光信号的强弱转化为势阱中电荷量的多少,从而实现光电转换。它在图像获取领域中的应用必然要对CCD输出数据进行采集处理。针对该高帧频相机设计要求,CCD器件选用Sarnoff公司的VCCD512H。结合CCD多路输出的特点,选用高速双通道A/D芯片AD9942对输出模拟信号进行分时转换,并利用FPGA系统资源丰富的特点,将CCD的系统控制和数据缓存集成在一片FPGA内,简化了系统逻辑设计。
1 系统组成
完整的成像系统由光学系统、焦平面电路和数据采集处理电路三部分组成。这里就数据采集处理分为:A/D转换电路和缓存及控制时序设计电路。输入图像经光源照射后,通过物镜成像在CCD光敏元件阵列上,CCD通过驱动电路完成电信号的读出。在控制电路的作用下,CCD输出信号进行缓冲放大,并经A/D转换电路进行数字化处理。通常同步采样的数据由控制信号控制双口RAM实现数据存取,为了简化电路,以Xilinx公司的FPGA(XQ2V3000)作为数据采集控制的核心,由其产生CCD驱动信号、A/D控制信号并实现数据存取。系统组成方框图如图1所示。
2 焦平面电路设计
2.1 VCCD512H结构
VCCD512H是美国Sarnoff公司生产的一款背照式帧转移面阵CCD,像元数为512×512,光谱范围为400~950 nm。VCCD512H图像传感器由感光区、存储区、水平移位寄存器和输出电路等部分组成。感光区和存储区都包含有16个子阵列,每个子阵列含有256×64个有效像元,每个子阵列对应一组读出寄存器,整个像面则由16个子阵列,共512×512个有效像元构成,实际应用中根据工程需要采用两行合为一行的工作方式,即有效像元为512×256,每一路的有效像元数为128×64个,像元读出速率为2 MHz。
2.2 缓冲放大电路
光信号经VCCD512H传感器后输出的电信号有如下特点:负极性信号;包含有周期性的复位脉冲串扰;有效信号幅度值较小;像元读出速率快。
CCD输出信号的上述特点决定了它不能直接送入A/D转换器,必须从硬件上进行一系列的预处理,包括信号前置反向、阻抗匹配、放大、滤波即消除信号中的复位脉冲、噪声等所造成的干扰。
在电路设计中,由CCD读出的未经相关双采样的电信号,首先经过一级射极跟随器,并在输出端接一级RC滤波器滤除噪声,然后交流耦合至差动输出放大器,由110 Ω屏蔽双绞电缆连接至差动接收、缓冲,到采样保持电路。
2.3 驱动电路
VCCD512H正常工作时需要11路驱动信号,这包括加在感光区的三相时钟脉冲A1,A2,A3;加在存储区的三相时钟B1,B2,B3;加在读出寄存器的三相时钟C1,C2,C3;清除残留电荷的复位脉冲RET;箝位脉冲CLAMP。以上驱动信号均由FPGA产生时序,但其时序不能直接输送给CCD芯片,一方面因为CCD驱动电平比较特殊;另一方面,CCD各移位寄存器等效于容性负载,而且各级容性负载不尽相同,所要求的驱动电流也不相同。所以在驱动电路的选择上,应选择具有较高电容负载驱动能力和较高工作频率,该设计选用EL7212。
3 数据采集处理
3.1 A/D变换电路
3.1.1 A/D芯片介绍
A/D芯片是数据采集系统的核心器件,数据采集系统性能在很大程度上取决于A/D芯片的性能。根据项目要求A/D器件的分辨率应为12位,转换速率为16 MHz,共16路,故选用高速A/D芯片AD9942。因它可实现两路模拟信号的40 MHz速率相关双采样(CDS),0~18 dB 9 b可变增益放大(VGA),40 MSPS模/数转换器(ADC),多极暗电平箝位控制。AD9942功能框图如图2所示。 3.1.2 A/D功能实现
多路模拟信号的同步采样一般有两种实现方法:一种为多个A/D转换器同时进行转换;另一种为仅有一个A/D转换器,各通道同时采样,然后分时转换。针对该系统,AD9942的像素时钟可以达到40 MHz,且为双通道同时转换,故采用分时转换即可实现系统要求,且可以节省成本。实际应用中将CCD的16通道分成上下两个半帧,上半帧8个通道分时复用AD9942的A通道进行A/D转换,下半帧8个通道分时复用B通道进行A/D转换。
硬件电路实现时,需要将CCD输出的每一路模拟信号通过采样保持电路,对模拟输入信号准确采样,并将采样结果保持一定时间,通过两个8选1模拟开关,分别送到A/D变换器的A通道和B通道。分时复用实现原理图如图3所示。 根据采样保持电路的时钟可以将该电路工作分为采样和保持两个阶段。在采样阶段,采样得到的电压以电荷的形式存储在采样电容上,输出端处于短路状态,采样阶段即将结束的时候,输入端处于开路状态,存储电荷不再改变;在保持阶段,输入采样信号通过保持电容转移到输出端,由FPGA控制模拟开关分时选通每一路CCD信号,从而通过两个阶段的交替完成A/D变换全过程。
VCCD512H每一路的有效像元数为128×64。由于每行有8个过扫描像元(用于行箝位),故设计中要保证使每行最少输出72个像元,则上下半帧的像元数都为128×576个。由此可以确定AD9942的主时钟CLI_X(CLI_A,CLI_B)即像素时钟为40 MHz,行同步信号HD_X,帧同步信号VD_X,并由FPGA分频产生其波形。它的时序图如图4所示。
3.1.3 高速A/D与FPGA接口实现
AD9942采样率达到40 MHz,由FPGA提供像素时钟、行同步、帧同步信号,但是这么高的时钟在线路板中是一个潜在的威胁,它既容易干扰其他器件,又容易被其他器件干扰。AD9942的数字输出属于并行,2个40 MSPS、12位数据流,如此高速数据传输与存储容易使数字系统中出现竞争冒险和亚稳态,因此首先在A/D的数据输出引脚和FPGA的输入引脚之间串联100 Ω的电阻,用来削弱高速数据线在0,1之间变换产生的毛刺和数据线之间的干扰。其次,在FPGA内部对A/D的数据线和锁存时钟的使用应严格按照器件手册上的建立时间和保持时间来设计,否则容易产生亚稳态。
3.2 FPGA实现A/D控制、数据缓存
3.2.1 FPGA器件选择
现场可编程门阵列FPGA(Field Programmable Gate Array)集采样控制、处理、缓存、传输控制、通信于一个芯片内,编程配置灵活,开发周期短,系统简单,具有高集成度、体积小、功耗低、高速、I/O端口多、在线系统编程等优点,在只需要简单数据处理的情况下,FP-GA能够提供比专用高速DSP更好的解决方案,并且特别适用于对时序有严格要求的高速多通道数据采集系统。特本设计在实际应用中以FPGA作为数据采集的控制核心,实现CCD多通道模拟信号的采集和处理。为实现系统控制与数据缓存一体化的设计,该系统采用的XQ2V3000是Xilinx公司推出的Virtex-Ⅱ系列的FPGA,它内部有丰富的资源,包括三百万个门,448 Kb的分布RAM,96个乘法器,96×18 Kb的Block RAM,12个数字时钟管理器(DCM),720个可配置I/O引脚,最高内部工作频率达300 MHz。 3.2.2 ADC控制信号
AD9942内部寄存器由6条外部配置线进行写入,分别为两条32位数据线SDATA_X(SDATA_A,SDATA_B)包括8位地址、24位数据(用于AD工作状态控制);两条位同步信号SCK_X(SCK_A、SCK_B);两条控制有效信号SL_X(SL_A、SL_B)。数据信号在A/D变换前,即帧同步和行同步信号开始前,SL—X为低电平时由FPGA写入A/D寄存器,并控制其工作状态。仿真时序图如图5所示。
3.2.3 FPGA实现数据缓存
经过A/D器件转换之后的数据,首先通过FPGA内部高速缓冲,然后再转存到片外存储器中。该系统中FPGA内部Block RAM阵列的控制采用乒乓传输结构,它可以保证采样和传输各自不间断的进行。具体做法是将96个:Block RAM分成两组(RAM1,RAM2),时钟和控制信号均独立。系统工作时,输入数据分为两路,流向由VHDL语言编程控制写地址来实现RAM1和RAM2的选择,当地址指向第一组的48块Block RAM时,RAM1进行数据写入,与此同时,第二组的48块BlockRAM则进行数据读出;RAM1存储结束后,切换到RAM2写入而RAM1读出的模式,如此循环。 XQ2V3000每一个Block RAM的容量为18 Kb,总容量为1 728 Kb(18 Kb×96),CCD输出的一帧图像数据量为1 572.864 Kb(256行×512列×12 b),可见完全可以实现帧存储。具体实现时由RAM1和RAM2各存取半帧图像,用VHDL语言在对读/写地址进行编程时,计数器计数满128行数据后,读/写地址分别指向另一个RAM,部分写地址仿真图如图6所示。
最终经过对AD9942的各项控制信号和FPGA数据缓存地址的仿真,仿真结果正确并符合技术手册的各项要求。
4 结 语
这里介绍了一种基于FPGA控制的CCD高速数据采集处理系统的原理和实现。由于创新性的将系统控制和数据缓存集成在一片FPGA内,并将多路CCD模拟信号通过分时复用一片AD9942实现了模/数转换。从而提高了系统的集成度,而且采用FPGA完成整个系统的主体设计具有速度快、设计灵活、保密性好和维护方便等优点,有效地解决了全系统控制同步问题。通过仿真结果测试,该系统可以稳定的工作,A/D转换速率可以达到40 Mb/s,帧频实现300帧/s,可以为CCD应用向高速、小型化、智能化、低功耗方向发展提供借鉴意义。
|