基于CPLD的高精度CCD电气设计

2018-10-10 11:11吴延军
数字技术与应用 2018年7期

吴延军

摘要:文章针对传统采用组合逻辑电路驱动的CCD器件更换或升级后,需要重新进行电路设计的缺点,设计了一种采用CPLD代替组合逻辑电路的驱动方法。该方法利用CPLD与控制外端结合,通过外部控制端实现4档驱动主频切换,采用自顶向下的混合设计方法,顶层采用原理图设计基本架构,底层采用硬件描述语言设计时序。实验结果表明,该方法电路集成度较高、调试方便、输出信号稳定、受干扰小,可满足多种用户的需要,对基于线性CCD和面阵CCD的高速精确测量具有一定参考价值。

关键词:CCD驱动;组合逻辑电路;CPLD

中图分类号:TP391.4 文献标识码:A 文章编号:1007-9416(2018)07-0152-04

从芯片结构上划分,CCD(Charge Coupled Device 电荷耦合器件)可分为线性CCD和矩阵式CCD两种类型。时序驱动电路是CCD工作的基础,如何使CCD芯片的大小、成本、转换效率、信噪比等达到最优配比,是时序驱动电路设计要解决的关键问题。目前,CCD设计驱动电路的方法主要有普通数字芯片驱动法、EPROM驱动方法、单片机驱动方法、结合直接数字电路与单片机的驱动方法和专用IC驱动方法。基于这些方法得到的一般驱动设计,通用性差,要么体积大、电路设计复杂,要么产生的频率较低,无法用于高速领域。而且,只有通过更改软硬件才能达到改变CCD的某些功能的目的。尤其当频率较高、驱动时序关系复杂时,波形设计难度大,甚至无法实现。为了解决上述问题,实现电路的灵活多样性和输出信号的稳定性、可靠性,本文以线性CCD为例,提出一种基于CPLD(Complex Programmable Logic Device复杂可编程逻辑器件)的驱动电路设计方案。运用CPLD作为时序设计载体,将微控制器和外部控制电路相结合,可以在较宽的范围内对驱动时序频率进行改变,来实现不同的曝光时间,并结合全局时钟时序设计技术,令CCD电路板得到了稳定可靠的信号输出。该电路适用于线性CCD,可用于单轴或双轴CCD自准直光管和带有CCD自准直功能的光电瞄准仪等光电检测设备,对面阵CCD也有一定的参考价值。

1 CCD驱动时序分析

本设计选取东芝公司生产的TCD1501D高精度线性CCD。它是具有5000个像敏元的双沟道线性摄像器件,两列CCD模拟移位寄存器分布在像敏元阵列两边。

CCD工作时需要10路驱动脉冲信号:转移脉冲SH、移位驱动脉冲Φ1和Φ2、复位脉冲RS、钳位脉冲CP及采样保持脉冲SP。其中,Φ1和Φ2各包含3个脉冲信号。视频输出信号OS一个周期包括76个哑元信号和5000个有效信号和n个空驱动信号(n为任意数,可根据需要取值)。

TCD1501D一个完整的工作周期包括两个阶段:光积分阶段和电荷转移阶段。光积分阶段,SH为低电平,将模拟移位寄存器和存储栅分隔开,电荷不能发生转移。模拟移位寄存器和存储栅分别工作,存储栅进行光积分;在Φ1和Φ2的作用下,模拟移位寄存器串行的将之前移到此处的电荷向输出端移位,再由SP进行采样和保持,最后通过OS端输出。每当前一个信号电荷已输出,而后一个信号电荷还未输出时,RS就会把之前遗留的信号电荷抽走,为之后到来的信号电荷空出位置。电荷转移阶段,SH变未高电平,模拟移位寄存器和存储栅导通,CCD将光积分阶段积累的电荷按顺序转移到模拟移位寄存器中。在一个周期时间内,至少需要5076个移位驱动脉冲信号,工作模式为:64个哑元信号→5000个有效像元单元→12个哑元信号→空驱动。可根据光积分时间设置适当的空驱动,空驱动数目越多,光积分时间越长。

2 电路设计与实现

2.1 驱动电路工作原理

本设计工作原理框图如图1所示。主时钟由外部时钟提供,各驱动时序编译后通过JTAG端口下载至CPLD。CPLD和控制电路配合,将来自外部的控制命令转换成相应的I/O控制信号,再传递至CCD芯片。外部I/O控制由微控制器实现,将CCD芯片的弱小信号进行放大处理后输出。

2.2 驱动时序电路实现

设计平台选择的是Altera公司的Quartus II 9.0开发环境。Quartus II是Altera公司推出的FPGA/CPLD最新开发环境,其优点是功能强大,界面友好,使用便捷。CPLD选择的是Altera公司MAX II系列的EPM1270,除了为CCD提供驱动外,还为输出信号的采集提供时钟以及时序匹配。

以16MHz晶振作为CPLD的基准时钟信号,由微控制器设置2个控制输入s0和s1进行时钟分频选择。将16MHz主时钟通过s0s1组合进行分频得到四档驱动主频16MHz、4MHz、2MHz和1MHz,通过不同的驱动主频实现不同的曝光时间,以满足不同的外界环境需求。驱动电路还对外提供3路用来AD采样的接口信號:1路给AD9220提供采样时钟ADCLK_3.3;1路帧同步信号FC_CPU;1路像元同步信号SP_CPU提供给微控制器的外部中断作为采样时钟信号。时序设计时采用同步时钟来完成。同步时钟经CPLD全局时钟引脚输入,由CPLD分频后,通过全局时钟布线驱动,到达芯片内所有的时钟输入端。在组合逻辑产生的时钟后插入D触发器过滤毛刺,避免亚稳态。

采用自顶向下的混合设计方法进行设计。由原理图进行基本架构的顶层设计,底层设计则采用Verilog HDL(Hardware Describe Language 硬件描述语言)进行描述。驱动CCD进行正常工作的10路脉冲信号,根据其功能分为三个模块,分别是生成移位脉冲的Φ1和Φ2的gen_fai模块,生成复位、采样与保持及钳位信号的gen_rs_sp_cp模块,生成转移脉冲SH和帧同步信号FC_CPU的gen_sh模块。

gen_fai模块设计。该模块生成6路移位驱动脉冲Φ1(E,O,B)和Φ2(E,O,B)。模块设计时,选取16MHz时钟作为设计基准,两个移位驱动脉冲频率相同,在相位上相差90°。为了减小信号受暗电流的影响,增加电荷包的传输效率,选取典型工作频率为0.5MHz,占空比为50%。设计时,对时钟进行了32分频,且Φ1、Φ2的第0个脉冲宽度必须大于SH的第0个脉冲宽度。

由Verilog HDL语言描述的设计流程如图2所示。

gen_rs_sp_cp模块设计。该模块生成3路脉冲信号:钳位脉冲CP、复位RS、采样和保持SP。CP的相位应稍落后于RS,SP应超前RS。选取典型工作频率为1MHz,占空比为1:3,设计时要确保1个RS,1个SP和1个CP同时包含在Φ1、Φ2脉冲的同一个脉宽时间内。

设计流程如图3所示。

gen_sh模块设计。该模块生成2路脉冲信号:1路转移脉冲SH和1路与之同频的帧同步信号FC_CPU。由于1个SH周期至少要有5064个移位驱动脉冲Φ1和Φ2,即。设计流程如图4所示。

2.3 仿真结果

通过Quartus II软件对CCD各路工作驱动时序进行设计,并进行了编译仿真,如图5所示(驱动频率0.5MHz)。然后将编译好的程序下载到CPLD芯片中。

图5中FAI_1_E、FAI_1_O和FAI_1_B(对应Φ1(E,O,B))频率为0.5MHz,RS、SP和CP频率为1MHz,SP超前于RS,RS超前于CP。第0个移位脉冲Φ1、Φ2的宽度大于第0个转移脉冲SH的宽度。可以看出脉冲间的关系满足时序要求。

由微控制器控制端s0s1组合实现主频选择控制,时序仿真结果如图6所示。

图6中,s1s0=00时16MHz基准时钟直接作为驱动主频即clk_drive为16MHz,与clk_in一致,s1s0=01时clk_drive为4MHz,s1s0=10时clk_drive为2MHz,s1s0=11时clk_drive为1MHz。

3 实验结果

在实验室条件下,使用示波器进行波形测量,测量结果与仿真结果吻合,严格遵照各自的相位关系,采集卡采集到的原始CCD灰度图像信号效果见图7。

由图可见,采集到的原始CCD灰度图像信号为平滑的一维曲线,4个鼓包对应光学结构上的四个狭缝,说明本驱动电路能够正常工作,有较高的精度。通过示波器实际测量CCD有效信号的峰值约为2.5V,信号宽度约为64us。电路中采用12位AD进行采样,由图可见CCD信号峰值灰度值约为2000,通过计算灰度值对应的电压值为2.44V,与实际测量的峰值2.5V吻合。根据频率为1MHz的采样与保持脉冲SP可以推算CCD信号输出的被激光照射的光斑有效像元个数约为64个,与图7中有效像元序号覆盖的范围吻合。

4 结语

CCD时序驱动电路设计的研究重点在于:各时序间应保证严格的相位关系;通用性强,能够适用不同用户需要;输出精度高。将控制外端与CPLD相结合,设置了外部时钟主频选择控制端,方便根据需要选取不同的时钟主频。同时,结合全局时钟进行设计,降低了电路的不稳定性。实验结果表明,CCD工作正常,测量到的信号曲线稳定平滑,噪声小。

本文提出的CCD电气设计,工作稳定,易于调整,集成度较高,不仅能用于线性CCD也能应用于矩阵式CCD,对今后应用更高精度的CCD进行了有益的探索,有一定通用性。

參考文献

[1]谭露雯,李景镇,等.基于CPLD工作模式可调的线性CCD驱动电路设计[J].光子学报,2010,39(3):436-440.

[2]张殿富,赵源.基于FPGA的线性CCD驱动时序及模拟信号处理的设计[J].电子设计工程,2009,17(1):41-13.

[3]喻川,邹建.基于CPLD的可调积分时间线性CCD驱动的设计[J].四川兵工学报,2008,29(3):94-96.

[4]石鲁凡,李俊.基于FPGA的线性CCD TCD1501D驱动时序电路设计[J].PLC&FA;,2011,(6):49-51.

[5]刘仁伟,郑坚,等.基于CPLD的线性CCD驱动和数据采集处理系统[J].兵工自动化,2007,26(7):49.