光学仪器  2014, Vol. 36 Issue (1): 67-71   PDF    
基于FPGA的面阵CCD驱动时序设计
韩军, 杨少华, 尚小燕    
西安工业大学 光电工程学院, 陕西 西安 710025
摘要:针对柯达公司的前照明行间转移型面阵CCD KAI-0340,对它的驱动时序进行详细的分析,设计满足CCD工作脉冲的驱动时序。采用Altera公司的可编程逻辑器件(FPGA)作为核心控制器件,完成自顶而下的模块设计,实现了硬件电路设计的软件化,开发效率得到了提高,软件程序可重复编程和修改。实验的仿真结果表明,设计的驱动时序能够满足CCD KAI-0340的正常工作。
关键词面阵CCD     行间转移     驱动时序     FPGA    
The design of drive timing generation of array CCD based on FPGA
HAN Jun, YANG Shaohua, SHANG Xiaoyan    
School of Optoelectronic Engineering, Xi'an Technological University, Xi'an 710025, China
Abstract: A detailed analysis was carried out of the requirements of the driving timing sequence of the progressive scan interline CCD KAI-0340 produced by Kodak Company. The programmable logic device(FPGA)of Altera Company was used for designing CCD driving timing sequence, which could enable the use of software in the designing of hardware circuit and improve development efficiency because the software was reprogrammable and modifiable. Results of experimental simulation showed that the designed sequence could meet the demand of the CCD KAI-0340.
Key words: area CCD     Interline transfer     driving timing sequence     FPGA    
引 言

CCD具有信号输出噪声低、动态范围大、量子效率高等优点[1],随着CCD器件本身工艺的改进,其成像质量和器件本身可靠性也得到了进一步的提高[2],因此CCD在科研、运动领域获得了广泛的应用。就目前而言,提高帧频有两种方法:(1)提高CCD的像素时钟;(2)将CCD分成多个通道同时输出。前者受器件极限参数的限制,效果不明显[3]。因此,本文选用CCD KAI-0340,采用双通道同时输出的方法,从而达到提高帧频的目的。

1 行间转移型面阵CCD的结构和工作原理

KAI-0340是柯达公司的一款行间转移型面阵CCD图像传感器,其结构如图 1所示,最下方的4行是挡光的黑像元行,上方的488行是感光像元行;在这488行像元中,最上方和最下方的4行作为缓冲行,因此实际有用的像元为480行;最大的像素时钟频率为40 MHz,并在双输出通道工作方式下工作,每行输出CCD信号,其中包括12个哑像素、24个黑像素和324个感光像素[4]

图 1 KAI-0340 结构示意图 Fig. 1 Schematic diagram of KAI-0340 structure

KAI-0340的工作原理是:感光区内的电荷在电子快门的作用下被清除掉,然后在电子快门时钟结束后开始新的光积分,当光积分阶段结束后,电荷开始从成像区转移到存储区,垂直转移时钟把电荷从存储区逐行转移到水平寄存器中,最后在水平转移时钟的作用下电荷转移到CCD的输出端,到此CCD完成了一个工作的周期。

2 行间转移型面阵CCD KAI-0340的驱动电路的设计

KAI-0340的驱动电路主要包括:供电模块、驱动器电路、驱动时序产生模块三部分。其中最主要的是驱动时序的产生模块,本文使用现场可编程门阵列(FPGA)作为设计驱动时序的核心器件,产生CCD正常工作的时序信号[5],包括水平时序信号、垂直时序信号、电子快门时序信号和复 位时钟信号四部分。

图 2 CCD驱动电路模块 Fig. 2 CCD drive circuit module

本文采用的FPGA是Altera公司生产的CycloneⅡ系列的EP3C16240C8,由此产生CCD正常工作的时序,包括垂直时序(V1、V2)、水平时序(H1、H2)、复位时钟(REST),如图 2所示。现场可编程门阵列(FPGA)输出的驱动电压为0~3.3 V,由于它的负载能力较低,不能直接驱动CCD图像传感器正常工作,因此水平和垂直时序驱动模块的功能是把FPGA产生的驱动脉冲转化成CCD正常工作所需的电压。

水平时序驱动的模块功能主要是完成电荷在水平寄存器方向上的转移,控制信号包括H1A、H2A、H1B、H2B,它们的电压要调制在5 V(-5~0 V),水平驱动信号H2B的驱动电路原理图如图 3所示。

图 3 水平驱动电路 Fig. 3 The horizontal drive circuit

垂直时序驱动的模块功能主要是完成电荷在垂直寄存器方向上的转移,控制信号包括V1、V2C、V2,它们的电压要调制在(-9~+9 V),水平驱动信号V1的驱动电路原理图如图 4所示。

图 4 垂直驱动电路 Fig. 4 The vertical driving circuit

3 行转移型面阵CCD KAI-0340驱动时序的分析

CCD KAI-0340图像传感器的一个工作周期分三个阶段:曝光阶段、水平转移阶段、垂直转移阶段。工作需要以下几路驱动信号:复位时钟RL,水平时钟H1和H2,垂直时钟V1和V2,电子快门时钟VSUB[6]

CCD工作时,首先底层出现电子快门脉冲,将感光区的电荷清除,然后再开始光信号的积分阶段,积分阶段完成后,V2上的高电平把感光区的电荷移到挡光的存储区;然后通过V1和V2时钟把存储区中的电荷转移到水平寄存器上,再通过H1和H2一组互补时钟把水平寄存器上的电荷包转移出,同时CCD准备进行下一次的曝光。

4 应用Verilog HDL语言的驱动时序设计

QuartusⅡ软件的输入有多种方式:原理图输入法、状态图输入法、Verilog HDL语言输入法。其中原理图方式类似于硬件电路的原理图设计,利用基本的门电路符号或模块完成设计;Verilog HDL作为一种硬件描述语言,其编程结构类似于计算机中的C语言,在描述复杂逻辑设计时非常简洁,具有很强的逻辑描述和仿真能力,是当前系统硬件设计语言的主流[7]。运用Verilog语言设计系统能够高效直接地描述设计,直观、快速建立设计,并高效地调整和修改设计的整体和细节。

在Altera公司的QuartusⅡ开发环境下,采取自顶向下的设计方法,图 5为设计原理图。在完成程序的输入后,由Quartus软件平台进行编译和仿真,从而验证设计的功能和时序特性是否符合设计目标,同时进行逻辑优化;反复上述过程完成设计过程,通过JTAG 接口为硬件芯片进行编程,进入到实体电路功能验证阶段。

图 5 QuartusⅡ环境下的原理图 Fig. 5 Principle diagram in Quartus environment
5 行转移型面阵CCD KAI-0340时序的仿真

本文的时序仿真是在Altera公司的QuartusⅡ集成开发环境下进行的,使用Verilog程序的输入[8],在QuartusⅡ软件平台进行编译和仿真[9],从而验证设计的功能和时序特性是否符合设计的目标,同时可进行逻辑优化。

垂直转移是垂直寄存器中的电荷向水平寄存器转移,转移过程由控制信号V1和V2控制,垂直转移控制信号的仿真如图 6所示。

图 6 垂直转移信号的仿真时序 Fig. 6 Simulation of vertical transfer of signal timing

水平转移是水平寄存器中的电荷向输出放大器转移,转移过程由水平时钟H1和H2控制,水平转移过程控制信号的逻辑仿真如图 7所示,从中截取一部分。

图 7 水平转移信号的仿真时序 Fig. 7 Simulation of horizontal transfer of signal timing
6 结 论

本文详细地研究了CCD KAI-0340的时序,使用FPGA器件作为设计驱动时序的核心,其时序的设计方法可以使CCD同时支持2路输出,提高了帧频,由于驱动时序的设计是可再编程的,所以如果想要改变其中的部分功能,可以在不改变硬件电路的情况下,只需要重新编程就可以达到实现功能的改变。

参考文献
[1] 王庆有.图像传感觉器应用技术[M].北京:电子工业出版社, 2006:30-60.
[2] 刘金国, 余 达, 周怀得, 等.面阵CCD芯片KAI-1010M的高速驱系统设计[J].光学 精密工程, 2008, 16(9):1622-1628.
[3] 张 达, 徐抒岩.高速多通道CCD信号并行处理系统[J].吉林大学学报(信息科学版), 2008, 26(3):281-286.
[4] 余 达, 郭永飞, 周怀得, 等.面阵CCD KAI-0340高速相机的设计[J].光学 精密工程, 2011, 19(11):2791-2799.
[5] 许秀贞, 李自田, 李长乐.基于CPLD的可选输出CCD驱动时序的设计[J].光子学报, 2004, 33(12):1504-1507.
[6] 李 余, 刘金国, 张明宇, 等.基于FPGA的行间转移面阵CCD驱动电路设计[J].微计算机信息, 2009, 25(5-2):274-275.
[7] 兰荣清.线阵CCD驱动设计新方法[J].光电子 激光, 1997, 8(4):295-297.
[8] 刑建平.Verilog HDL程序设计教程[M].北京:清华大学出版社, 2005:31-191.
[9] 周润景.基于QuartusⅡ的FPGA/CPLD数字系统设计实例[M].北京:电子工业出版社, 2007:336-392