基于FPGA的CCD驱动设计

时间:2022-08-30 01:14:09

基于FPGA的CCD驱动设计

摘 要:以Atmel公司的面阵CCD-TH7888A图像传感器为例,在研究了CCD结构和驱动时序图的基础上提出基于FPGA的驱动脉冲设计方法和硬件电路实现。使用VHDL语言对驱动时序发生器进行了硬件描述,并采用Quartus 5.0对设计的驱动时序发生器进行仿真。试验结果表明,涉及的驱动电路可以满足面阵CCD-TH7888A的各项驱动要求。

关键词:CCD; 信号处理; VHDL; 图像传感器

中图分类号:TP3681 文献标识码:A

文章编号:1004-373X(2010)12-0157-03

Design of CCD Driving Circuit Based on FPGA Technology

WU Qi-jing1,2, LI Zi-tian1, HU Bing-liang1, PI Hai-feng1

(1. Xi’an Institute of Optics and Precision Mechanics, Chinese Academy of Sciences, Xi’an 710119, China;

2. Graduate Student College, Chinese Academy of Sciences, Beijing 100039, China)

Abstract:The design and implementation of CCD image sensor digital system is introduced. Taking CCD image sensor TH7888A produced by ATMEL as an example, the FPGA-based hardware driving design is proposed by studying the structure and driver schedule of CCD device. The hardware module and its circuit diagram of the driver are studied, the hardware description is given for the driving schedule generator by VHDL, and then the pulse signal needed by CCD is generated, the designed generator is simulated with Quartus 9.0. The experimental results show that the designed generator can meet the demand of the CCD-TH7888A.

Keywords: CCD; signal processing; VHDL; image sensor

电荷耦合器件(CCD)作为新兴的固体成像器件即图像传感器,具有体积小,重量轻,分辨力高,噪声低,自扫描,工作速度快,灵敏度高,可靠性好等优点,受到人们的高度重视,广泛应用于图像传感、景物识别、非接触无损检测、文件扫描等领域[1] 。CCD驱动电路的实现是CCD应用技术的关键问题。以往大多是采用普通数字芯片实现驱动电路,CCD电路复杂,为了克服以上方法的缺点,利用VHDL硬件描述语言.运用FPGA技术完成驱动时序电路的实现。该方法开发周期短,并且驱动信号稳定、可靠。系统功能模块完成后可以先通过计算机进行仿真,再实际投入使用,降低了使用风险性。

1 硬件设计

CCD的硬件驱动电路系统的核心器件是SPARTAN系列芯片XC3S50;CCD采用Atmel公司的CCD-TH7888A图像传感器;CCD驱动脉冲由XC3S50提供,脉冲信号产生后由驱动模块对脉冲电压进行变换使其符合TH7888A的驱动电压要求。CCD像素输出电压经过A/D转换模块处理电路VSP2272芯片的处理得到数字信号,最后为了方便传输和方便后续模块对数字信号的处理将数字信号由TTL电平转换成LVDS电平进行输出[2] ,整个系统如图1所示。

图1 系统硬件结构图

1.1 TH7888A简介

CCD图像传感器采用THOMSON公司生产的TH7888A。它是一种高性能的帧转移面阵CCD器件,采用四相脉冲驱动工作,并提供电子快门的功能;同时,它具有2种输出的模式:单路输出和双路输出[3] 。其主要的性能参数如下:

光敏区和存储区均为1 024×1 024像素;速度可以达到30 images/s以上;像元尺寸为14 mm×14 mm;感光区面积为14.34 mm×14.34 mm;光谱波长范围在400~700 nm之间;像元输出频率为20 MHz。

1.2 XC3SC50简介

XC3S50属于XILINX公司SPARTAN3系列的FPGA(现场可编程逻辑门阵列),是一种高性能器件,其特点是:器件运用90 μm加工技术;具有高性能低功耗的特点;逻辑密度达1 728个可用门;3路电源供电即I/O端口供电为1.2~3.3 V,核心供电1.2 V,辅助功能供电2.5 V;带有2 KB容量分布式RAM和7 KB容量的BLOCK RAM,高级的逻辑时钟管理功能[4] 。Ahera公司Quartus Ⅱ开发系统提供应用设计支持。

2 软件设计

CCD驱动时序用VHDL描述。VHDL是可以描述硬件电路功能、信号连接关系的语言,其具有比电路原理图更有效地表示硬件电路的特点。由于它与硬件电路无关等优点,用来设计电路时可大大提高开发效率[5] 。

由芯片的结构可以知道,CCD的1个周期分成感光和转移2个阶段,如图2所示。

图2 感光阶段时序图

感光阶段即A的上升沿阶段,主要实现3个功能:感光阵列的电荷积累,帧存储区到转移寄存器的电荷转移以及转移寄存器向输出放大器的电荷输出(即行转移);转移阶段即A的下降沿阶段,主要完成感光阵列所积累的电荷向帧存储区的转移(即帧转移),同时清空帧存储区的无效电荷[6] 。其具体的工作过程分析如下:

在感光阶段即A的上升沿阶段,P1,P2,P3,P4保持不变,感光阵列和帧存储区之间为阻断态,两者之间不会发生电荷转移现象。但感光阵列接受外界光源照射会积累电荷,在电荷积累的同时,在读出寄存器时钟L1,2的控制下,会首先读出一行电荷。当读完第1行信号之后,会进行1次行转移。在寄存器时钟的控制下,寄存器时钟M1中的信号会转移给寄存器M2,然后再次转移到寄存器M3,M4。行转移时,读出寄存器时钟L1,L2不变,无像元信号输出。在行转移结束之后,进行第2行电荷的读出;每读出1行信号,进行1次行转移,如图3所示,如此循环1 056次则感光阶段完成。

转移阶段即为门控时钟A的下降沿阶段,如图4所示。帧转移控制信号P1,P2,P3,P4与行转移控制信号M1,M2,M3,M4相同,且一直有效。读出寄存器时钟L1,L2无效,不输出数据。在帧转移结束之后,进人感光阶段,存储区首先进行1次行转移,开始信号的输出,同时感光区像元进入电荷积累。这样就构成了TH7888A工作的1个周期。

图3 感光阶段的行转移时序图

图4 帧转移阶段的时序图

主时钟脉冲周期定为50 ns,然后主时钟通过4分频产生L和R。L作为基础波形会在以后产生和控制L1,L2和M类波形时使用,L的占空比为2∶2,R的占空比为3∶1。给L建一个循环记数器CL,它的范围为0~1 065,在感光阶段即A的上升沿阶段当CL小于1 057的时候L1=L其余阶段L1为低电平,L1取反为L2;当1 057

3 驱动的实现及仿真结果

Max+Plus Ⅱ是Altera公司推出的一种开发设计平台,他功能强大,可以生成文本文件和波形文件。并支持层次设计和从顶至底的设计方法,支持VHDL语言[8] 。可以编译并形成各种能够下载到各种FPGA器件的文件,还可以进行仿真以检验设计的可行性。

硬件描述语言(VHDL)是用来描述集成电路的结构和功能的标准语言,设计人员无需通过门级原理图,而是针对设计目标进行功能描述,从而加快设计周期,VHDL元件的设计与工艺无关,方便工艺转换[9] 。基于以上优点和上述的时序分析,该系统采用VHDL语言实现CCD驱动时序电路。由于系统的一次周期比较长大概在200 ms,所以波形仿真时的END TIME比较大,图5所示为感光阶段的波形仿真,图6所示为转移阶段的波形仿真图。

图5 感光阶段的波形仿真图

图6 转移阶段的波形仿真图

由图可知设计所产生的波形与TH7888A的技术 手册上的驱动要求所需脉冲完全吻合,能够达到TH7888A的驱动要求。

4 结 语

用XILINX公司系列FPGA-SPARTAN芯片,在Quartus Ⅱ5.0开发环境下采用VHDL语言输入方法开发设计出了高分辨率全帧CCD TH7888A的驱动电路,能够产生满足TH7888A要求的驱动脉冲。与以往常采用的驱动方法相比其面积大大减小了,采用FPGA进行设计,简化了CCD驱动电路的电路系统。整个设计编程完毕后进行仿真、时序验证正确后再下载到器件中,然后进行电路的测试校验直到达到预期效果。这样的设计修改起来较为方便,只要修改程序即可,不需要像传统的设计方法要更换器件修改设计电路等,实验证明,把VHDL 应用于CCD驱动电路的设计,可以满足系统的高速性和电路的集成度等要求[10] 。

参考文献

[1]王庆有.CCD应用技术[ M] .天津:天津大学出版社,2000.

[2]许秀贞,李自田.基于CPLD的可选输出CCD驱动时序设计[ J] .光子学报,2004,33(12):1505-1507.

[3]ETC.TH7888A技术应用手册[ EB/OL] .[ 2008-03-02] ..

[4]Spartan-3 FPGA Family:Complete Data Sheet.

[5]高志国.VHDL 在CCD驱动电路中的应用[ J] .光学仪器,2006,28(3):21-27.

[6]李连鸣,冯延,冯军,等.2.5 Gb/s 0.35 μm CMOS激光驱动器[ J] .东南大学学报:自然科学版,2004,34(4):423-425.

[7]黎向阳,高伟.基于VHDL的面阵CCD图像传感器的驱动设计[ J] .科学技术工程,2007,14(3):3584-3586.

[8]王开军,姜宇柏.面向CPLD/FPGA的VHDL设计[ M] .北京:机械工业出版社,2007.

[9]雷伏容.VHDL电路设计[ M] .北京:清华大学出版社,2006.

[10]曹昕燕.CPLD在CMOS图像传感器驱动电路中的应用[ J] .仪表技术与传感器,2005(4):33-35.

[11]叶焕玲,叶松.基于CPLD的CIS积分时间软调节[ J] .现代电子技术,2008,31(24):187-188,194.

[12]黎向阳,高伟,杨光宏,等.面阵CMOS图像传感器LUPA4000的驱动设计[ J] .现代电子技术,2008,31(8):17-19.

上一篇:基于FPGA的自适应谱线增强系统设计 下一篇:智能液晶触摸显示终端与单片机接口的设计