>
首页 » 业界动态 » 基于CPLD的CCD通用驱动电路设计方法

基于CPLD的CCD通用驱动电路设计方法

作者:张勇,唐本奇,肖志刚,王祖军,黄绍艳  时间:2006-12-03 13:41  来源:edi
摘要:建立CCD通用测试平台有助于系统研究各类CCD器件的辐射效应及损伤机理。探讨了一种基于CPLD的线阵CCD通用驱动电路设计方法与实现途径。利用MAX2PLUSII开发系统,选用MAX7000S系列CPLD芯片,设计实现了核心驱动主控制器,用于读取外部存储器驱动文件,设置相关参数寄存器,并产生符合参数要求的驱动时序脉冲。在此方法的基础上,完成了基本驱动模块电路的设计。基本驱动模块电路输出波形的测试结果表明,这种设计方法是完全可行的。

关键词:CPLD;CCD;驱动时序;电路设计

随着CCD器件在空间遥感、卫星侦察方面的应用,人们开始关注空间辐射环境对CCD器件辐射损伤效应。研制CCD通用测试平台有助于系统研究CCD在模拟辐射环境中的性能参数变化。精确的驱动时序是CCD器件正常工作的保证。由于CCD的系列种类很多,不同生产商的CCD器件的驱动时序往往是不同的,通常选用专用IC驱动、数字电路驱动、单片机I/O口驱动等方法产生驱动时序。这些方法存在着调试困难、柔性较差、驱动时钟低等缺点。本文探讨了一种基于CPLD的线阵CCD通用驱动电路设计方法。利用MAX-PLUSII开发系统,选用MAX7000S系列CPLD芯片,设计实现了核心驱动主控制器,用于读取外部存储器驱动文件,设置相关参数寄存器,并产生符合参数要求的驱动时序脉冲,适用于各种不同CCD驱动时序要求。在此基础上完成了基本驱动模块的设计。

1 设计思路

CCD是基于MOS电容器在非稳态下工作的器件,具有存储和转移信息电荷的能力。在偏置电压的作用下,MOS电容器的栅极下形成势阱,用于存储信息电荷。MOS电容器的金属栅极彼此足够靠近的情况下,间隙下的表面势由金属栅极的电位决定,从而形成两个MOS电容器下面耗尽层的耦合,使信息电荷从一个MOS电容器转移到另一个MOS电容器。电荷转移是利用耗尽层耦合原理,通过控制MOS电容器栅极偏压的大小来调节势阱的深度,使信号电荷由势阱浅的位置流向势阱深的位置。信号电荷的转移必须按照确定的方向,所以MOS电容器阵列上所加的偏压脉冲必须严格满足相位时序要求,使任何时刻势阱的变化总是沿着一个方向。

CCD器件需要3路以上驱动时序脉冲。例如,线阵TCD132D需要三路驱动脉冲(帧转移脉冲SH,主脉冲ΦM,驱动脉冲ΦCCD),线阵TCD1208AP需要四路驱动脉冲(帧转移脉冲SH,复位脉冲RS,驱动脉冲Φ1、Φ2)。各驱动脉冲必须严格满足相位时序要求,才能保证CCD器件正常工作。常规的驱动电路设计有以下几种方法:面阵CCD通常采用相应的专用驱动IC,但是难以调试,而且无法应用于其他CCD器件;线阵CCD可以采用数字电路驱动、单片机I/O口驱动,或者选用可编程逻辑器件针对特定器件的驱动时序,要求完成驱动电路设计,但是存在适用器件单一、脉冲频率低、设计烦琐等问题。因此有必要设计一种适用于各种CCD器件的通用驱动电路,简化驱动时序设计过程。

CCD的系列种类很多,不同生产商的CCD器件的驱动时序往往是差别很大。因此完成CCD通用驱动电路设计的关键在于区别各种不同的驱动时序。驱动脉冲可以用两个参数描述:1)脉冲宽度(描述驱动时序脉冲形状的参数,包括高电平宽度和低电平宽度);2)相位差(各个驱动脉冲之间的相位关系)。本文采用一种简单的方法可以满足要求:针对每一种CCD器件,编制其每一路驱动脉冲文件。驱动文件包括脉冲总数、延迟时间、脉冲宽度等三种参数。将驱动时序中的每一个脉冲的宽度数据依次写入驱动文件。主控制器读取驱动脉冲文件的相关参数,并设定好相应的寄存器组,就可以按照驱动文件的要求产生驱动脉冲。所以通用驱动电路的基本组成包括主控制器、存储器、寄存器组三个部分,如图1所示。

图1 通用驱动电路基本组成

1)主控制器
在通用驱动电路中,核心电路是主控制器。主控制器控制存储器数据输出,发出寄存器组读信号,配置相应的参数寄存器,并产生符合驱动脉冲参数的驱动时序。主控制器基本结构见图2。

主控制器由脉冲总数计数器P0、脉宽计数器P1、地址计数器PC、寄存器选择器、预读脉冲发生器、读信号发生器组成、延迟单元组成。主控制器的工作过程是这样的:启动信号(E)发出后,预读脉冲发生器产生3个预读脉冲(4PREPULSE),触发读信号发生器产生存储器读控制信号(OEN、CEN、WEN)、寄存器选择信号(CE[3..0])、寄存器读信号(READN)和地址偏移脉冲信号(PCMOVE),触发PC产生地址偏移量,分别预读脉冲总数、延迟时间、第1个脉冲宽度参数,设置相应的参数寄存器。参数寄存器设置完毕后,寄存器选择器产生开始信号(START),触发P1开始计数,同时预读脉冲发生器产生第4个预读脉冲,读入第2个脉冲宽度参数。P1计数结束后。产生脉冲结束信号(PULSEOVER),分别触发P0记录脉冲数,触发读信号发生器产生存储器读控制信号(OEN、CEN、WEN)、寄存器选择信号(CE[3..0])、寄存器读信号(READN)和地址偏移脉冲信号(PCMOVE),预读第3个脉冲宽度数据。如此顺序执行下去,直到P0计数完毕,产生地址复位信号(ADRRESET),使PC复位。

这里需要注意的是,接收到复位信号后,PC的地址偏移值不是地址0,而是第1个脉冲宽度参数值的地址。所以在PC设计中加入了一个控制端(X),当X为高,表示第1帧数据没有结束,PC输出的地址偏移值从地址0开始;当X为低,表示第一帧数据结束,PC输出的地址偏移值从第一个脉冲宽度参数地址开始。

图2 主控制器基本原理图

主控制器设计采用ALTERA公司的MAX+PLUSII开发系统,利用MAX+PLUSII提供的图元和LPM符号来设计基本驱动时序模块。ALTERA公司生产的MAX7000S系列是一种高性能的CMOSEEPROM器件,内置JTAGBST电路,可通过JTAG接口实现ISP功能。引脚逻辑延迟为5.0ns,计数器工作频率可达178.6MHz,是速度最快的可编程逻辑器件。逻辑设计过程中选用EPM7256SRC。图3是波形仿真的结果。其中,P_NODELAY是没有延迟的驱动时序波形,P_OUT是延迟620ns的驱动时序波形。

图3 驱动时序波形仿真

2)存储器
存储器的数据存储结构比较简单:地址0、1存储脉冲总数数据,地址2存储延迟时间数据,地址3开始顺序存储脉冲宽度数据。在主控制器的设计中,P1依次对驱动脉冲的高电平状态和低电平状态进行计数,所以存储器中的脉冲总数数据实际上是驱动时序中高电平状态数的两倍。

主控制器产生驱动脉冲的最高频率取决于存储器的读取速度。驱动时序的每个脉冲宽度必须大于存储器的读取时间,这样才能保证在P1计数完成之前,预读下一个脉冲宽度数据并写入脉冲宽度寄存器。因此,要提高系统工作速度,必须选择读取速度更快的存储器。

3)寄存器组
在主控制器的设计当中,脉冲总数寄存器是两个8位寄存器,脉冲计数总数最大为65536,可以满足一般CCD器件的光敏单元和模拟移位寄存器的驱动要求。延迟寄存器和脉冲宽度寄存器均为一个8位寄存器。

2 基本驱动模块的设计

在基本驱动模块的设计中,选用两片EPM 7128SLC84215设计主控制器,AT28C64B作为数据存储器,4片74HC374作为寄存器,50MHz有源晶振作为精确定时时钟源,定时脉冲周期为20ns。利用74HC74和74HC123设计模块启动和停止控制端。AT28C64B是E2PROM器件,尽管读取速度较慢(150~250ns),但利用其可反复写入的特性,便于用不同的驱动文件来调试模块功能。图4a是从示波器读取的基本驱动模块输出波形,脉冲总数为0005H,延迟时间单元数(定时脉冲周期数)为1FH,脉冲宽度数据依次为60H、18H、18H、18H、18H、18H。可以看到图4a的波形与图3中的P_OUT和P_NODELAY完全一致。图4b的脉冲总数为0007H,延迟时间单元数为1FH,脉冲宽度数据依次为30H、60H、80H、18H、18H、18H、18H、18H。

图4 基本驱动模块的输出波

3 结束语

本文探讨的基于CPLD的CCD通用驱动电路设计方法的基本思路是:针对每一种CCD器件,编制其每一路驱动脉冲文件。因此这种设计方法从理论上能够满足各种CCD驱动要求,但是其输出的驱动时序脉冲波形的最高频率取决于存储器的数据读取时间。如要满足较高工作速度的CCD器件,那就选择数据读取时间快的存储器。按照上述设计方法,完成了基本驱动模块的设计。测试结果表明,上述设计方法是完全可行的。因此,可以将若干个基本驱动模块组成一个驱动模块组,针对每一种特定的CCD器件,只需要编制好其每一路驱动时序脉冲的驱动参数文件,驱动模块组就可以提供满足要求的驱动时序。以此为基础,就可以建立CCD通用测试平台。

相关推荐

CCD传感器出新招 帧积累并非真“鸡肋”

CCD  传感器  2013-03-25

多元化整合:PCB抄板搭上尧顺科技顺风车

PCB  CPLD  2013-03-12

Altium与Altera发布全新在线元件资源和软件支持

Altium  FPGA  CPLD  2012-02-15

嵌入式系统的实时数据接口扩展

嵌入式系统  CPLD  2011-09-02

基于CPLD的USB总线的隔离接口实现

CPLD  USB总线  2011-08-17

基于MAX6675多路温度采集系统设计与实现

温度采集  MAX6675  CPLD  2011-07-07
在线研讨会
焦点