完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1 引言
近年来。多通道面阵CCD相机在气象观测、环境检测、海洋遥感和资源调查等领域获得了广泛的应用。而在CCD的应用技术中,尤其是高速、多通道CCD的应用中,CCD驱动时序的产生和信号的实时输出是两个非常关键的问题。高速、多通道CCD器件的驱动时序通常是一组周期性且关系比较复杂的脉冲信号,它是影响CCD器件性能的一个重要因素;而产生的多组像元信号如何正确的转换成一帧完整图像,也必须根据实际的硬件要求而采取不同的设计方案。 本文在分析了Sarnoff公司的VCCD512H型帧转移面阵CCD芯片的特性和工作过程后,结合整个CCD相机电子系统的要求,完成了基于FPGA技术的驱动时序发生器与数据缓存器的一体化设计。即在一块FPGA芯片上实现对时序与数据缓存系统的控制。最后针对Xiling公司的FPGA器件XQ2V3000对设计进行了配置及仿真,从而验证了该设计方案的可行性。 2 驱动时序发生器与数据缓存器一体化设计原理 2.1 CCD器件结构及工作原理 美国Sarnoff公司的VCCD512H是背照型帧转移面阵CCD,它由两个感光区、两个存储区和读出寄存器构成。每个感光区(或存储区)包含8个子阵列。每个子阵列含有256(行)x64(列)个有效像元,整个像面则由16个子阵列,共512x512个有效像元构成,我们在应用中,对像元做了水平方向‘二合一’处理,使得整个像面共由512x256个有效像元构成.最终16路信号并行输出。 1.gif 图1 VCCD512H芯片结 电荷移动方向如图1中箭头所示,先由感光区转移到存储区(AI,A2,A3为帧转移控制信号),再由存储区转移到读出寄存器(Bl,B2,B3为行转移控制信号).而后在读出控制信号(C1,C2,C3为像元转移控制信号)的作用下顺序读出。16个子阵列有各自独立的读出寄存器和CDS放大器。信号的输出方式是16个端口并行输出,送到后续的模拟、数字信号处理电路。 2.2 驱动时序分析 由芯片结构可知,CCD的一个丁作周期分两个阶段:感光阶段和转移阶段。在感光阶段,感光阵列接受外界光源照射产生电荷,帧转移控制信号A不变.感光阵列和帧存储区之间为阻断态,不会发生电荷转移现象;同时由行转移控制信号B控制,存储区中的电荷逐行转移到转移寄存器;行转移时.像元转移控制信号c不变,无像元信号输出;每行信号中,各像元电荷逐次经过输出放大器输出,每读出一行信号,进行一次行转移。三相CCD中,电荷的转移是通过:三相控制电压按一定顺序依次变化来实现的。此处,进行电荷转移时,三相控制时序依次变化;三相信号不变时,为阻断态。为保证信号电荷的完整转移, 各相时序问必须保证一定的电平交叠。 在帧转移阶段.帧转移控制信号A与行转移控制信号B相同,且一直有效。同时像元控制信号C也一直有效,但输出数据无效。进入感光阶段,首先进行一次行转移,开始信号的输出.同时感光区像元进入电荷积累。为保证信号读出的完整性,整帧转移的行数、输出的行数、像元数都进行了一定的冗余设置。 2.3数据缓存器工作原理 如图2所示,CCD传感器为16路并行输出,每路为256x32x12bit.即8192x12 bit,现采用VHDL硬件描述语言,设计实现了一种基于片上集成的双口RAM缓存器。 2.gif 图2 时序发生器和数据缓存器原理框 本设计中选用的控制器件FPGA为Xilinx公司XQ2V3000,其片内的共有96个双口RAM,每个RAM的深度为16K.而在该系统中为了实现帧缓存的功能。在设计中采用了两个双口RAM并行连接的方式,从而组合成了16Kx16bit的双口RAM缓存单元,共占用RAM资源34个。双口RAM的写入地址为14位,由写入地址发生器统一提供,与CCD的驱动波形相配合。具体实现时是将双口RAM分成上下两区(每个缓冲区共有64x266个像元),前一帕周期左边写上半区,右边读下半区;后一帧周期,左边写下半区时,右边读上半区。其写入过程为:首先由A、B 三相驱动脉冲(共266个波形)配合,完成A-》B的电荷转移;然后用B波形完成两次B-》C转移(两行合并),再用C波形完成72次串出,其中仅有64个有效(第3娟像元),其余为过扫描,用于行箝位。这一过程重复133次。(前5次丢弃)。 因为图像数据的读出要按预定顺序,即512行从上到下,每行256个像元从左到右。为此,将17个双口RAM的输出作为一个整体来考虑,其存储量为(512x256+128)x12 bit,即131,200x12 bit,需要18位地址,该读出地址的形成可以用一个18位计数器和一个译码器完成。 如图3所示,在帻正程期间,从数据缓存读出512x256x12bit 的图像数据,在帧逆程期间,缓存器中的辅助数据紧随其后被读出。 3.gif 图3缓存器输出数据时序图 3 一体化设计的FPGA实现及仿真结果 3.1 现场可编程门阵列(FPGA) 系统中采用容量比较大的FPGA,利用VHDL硬件描述语言完成CCD驱动时序的设计和数据的高速读写。这种实现方法可以使采集系统灵活、简单、方便.具有很强的可扩展性,可根据需要设计为不同数据宽度、不同容量的数字系统,接口电路简洁且不占用系统地址资源,系统移植或升级换代方便,而 且控制简单,易于实现。 3.2 时序仿真结果 在编程软件Quartus II集成设计环境下,用VHDL语言以自上而下的方式,对CCD驱动时序和数据缓存系统进行了描述,仿真后得到部分结果如下图所示。 4.gif 图4帧转移阶段的仿真图 图4为在帧转移过程中,通过对时钟CLK的计数而产生了频率相同、相位不同的A、B驱动脉冲信号,并且通过后续的示波器检测得知电平交叠达到了75%以上,满足技术手册的要求。 5.gif 图5 RAM选择地址仿真图 图5为RAM选择地址仿真图。系统总共有17个RAM缓存器。并且把每个RAM分为了上、下两个半区。设CEr为16位用来选择RAM的位置,其中高8位为上半区,低8位为下半区,并且交替选择(上半区读出时,下半区为写入,反之亦然)。从最终的仿真图中可以看出,时序复合设计要求。 4 结束语 本文的创新点在于采用了FPGA技术设计CCD驱动时序和缓存器电路,使原来复杂的电路设计变成只需1片FPGA就能完成。同时它能够很好地满足CCD应用向高速、小型化、智能化、低功耗发展的需求.从而提高了系统的集成度。从时序仿真结果来看,该一体化的设计能够较好的产生器件所需的时序脉冲及缓存器所需的读/写地址,并且由于使用了延迟量小的FPGA使得系统可以工作在百兆赫兹的工作频段,从而增强了电路的抗干扰能力,提高了系统的可靠性与稳定性。 |
|
|
|
只有小组成员才能发言,加入小组>>
772 浏览 0 评论
1148 浏览 1 评论
2527 浏览 5 评论
2858 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2709 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1060浏览 3评论
189浏览 2评论
453浏览 2评论
365浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
452浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 13:38 , Processed in 1.268717 second(s), Total 76, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号