你的位置:EETOP 赛灵思(Xilinx) 社区 >> >> 全部 >> 详细内容

基于FPGA的CCD驱动设计

发布者:jackzhang 时间:2010-08-18 21:31:43

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

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


1.1 TH7888A简介
    CCD图像传感器采用THOMSON公司生产的TH7888A。它是一种高性能的帧转移面阵CCD器件,采用四相脉冲驱动工作,并提供电子快门的功能;同时,它具有2种输出的模式:单路输出和双路输出。其主要的性能参数如下:
    光敏区和存储区均为1024×1024像素;速度可以达到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.3V,核心供电1.2V,辅助功能供电2.5V;带有2 KB容量分布式RAM和7KB容量的BLOCK RAM,高级的逻辑时钟管理功能。Ahera公司QuartusⅡ开发系统提供应用设计支持。

2 软件设计
    CCD驱动时序用VHDL描述。VHDL是可以描述硬件电路功能、信号连接关系的语言,其具有比电路原理图更有效地表示硬件电路的特点。由于它与硬件电路无关等优点,用来设计电路时可大大提高开发效率。
    由芯片的结构可以知道,CCD的1个周期分成感光和转移2个阶段,如图2所示。


    感光阶段即A的上升沿阶段,主要实现3个功能:感光阵列的电荷积累,帧存储区到转移寄存器的电荷转移以及转移寄存器向输出放大器的电荷输出(即行转移);转移阶段即A的下降沿阶段,主要完成感光阵列所积累的电荷向帧存储区的转移(即帧转移),同时清空帧存储区的无效电荷。其具体的工作过程分析如下:
    在感光阶段即A的上升沿阶段,P1,P2,P3,P4保持不变,感光阵列和帧存储区之间为阻断态,两者之间不会发生电荷转移现象。但感光阵列接受外界光源照射会积累电荷,在电荷积累的同时,在读出寄存器时钟L1,2的控制下,会首先读出一行电荷。当读完第1行信号之后,会进行1次行转移。在寄存器时钟的控制下,寄存器时钟M1中的信号会转移给寄存器M2,然后再次转移到寄存器M3,M4。行转移时,读出寄存器时钟L1,L2不变,无像元信号输出。在行转移结束之后,进行第2行电荷的读出;每读出1行信号,进行1次行转移,如图3所示,如此循环1056次则感光阶段完成。转移阶段即为门控时钟A的下降沿阶段,如图4所示。帧转移控制信号P1,P2,P3,P4与行转移控制信号M1,M2,M3,M4相同,且一直有效。读出寄存器时钟L1,L2无效,不输出数据。在帧转移结束之后,进入感光阶段,存储区首先进行1次行转移,开始信号的输出,同时感光区像元进入电荷积累。这样就构成了TH7888A工作的1个周期。
    主时钟脉冲周期定为50 ns,然后主时钟通过4分频产生L和R。L作为基础波形会在以后产生和控制L1,L2和M类波形时使用,L的占空比为2:2,R的占空比为3:1。给L建一个循环记数器CL,它的范围为0~1 065,在感光阶段即A的上升沿阶段当CL小于1057的时候L1=L其余阶段L1为低电平,L1取反为L2;当1057<CL<1063时M1为高电平,其余阶段为低电平;当l059<CL<1065时M2为高电平其余部分为低电平;同理可产生M3,M4。以上就完成了图4所示波形的分析,然后用VHDL语言描述出来即可。接下面对图3所示波形进行设计。由图可知图3波形前半部分是由图4波形重复1056次组成的,所以需给M2也建立一个循环计数器记为CM,CM记数范围为0~2111。当M2上升沿来时CM加1,若CM<1056则为感光阶段即A=1,若1056<CM<2011则为转移阶段即A=0。在转移阶段Ri=Mi,通过对clk进行8分频设计可产生不同占空比的P类信号,一个周期的P类信号重复l056次后转移阶段完成,重新进入感光阶段进行下一帧的处理。这样CCD的1个工作周期就完成了。

3 驱动的实现及仿真结果
    Max+PlusⅡ是Altera公司推出的一种开发设计平台,他功能强大,可以生成文本文件和波形文件。并支持层次设计和从顶至底的设计方法,支持VHDL语言。可以编译并形成各种能够下载到各种FPGA器件的文件,还可以进行仿真以检验设计的可行性。
    硬件描述语言(VHDL)是用来描述集成电路的结构和功能的标准语言,设计人员无需通过门级原理图,而是针对设计目标进行功能描述,从而加快设计周期,VHDL元件的设计与工艺无关,方便工艺转换。基于以上优点和上述的时序分析,该系统采用VHDL语言实现CCD驱动时序电路。由于系统的一次周期比较长大概在200 ms,所以波形仿真时的END TIME比较大,图5所示为感光阶段的波形仿真,图6所示为转移阶段的波形仿真图。


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

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


最新课程

  • 深入浅出玩儿转FPGA

    本视频基于Xilinx公司的Artix-7FPGA器件以及各种丰富的入门和进阶外设,提供了一些典型的工程实例,帮助读者从FPGA基础知识、逻辑设计概念

  • 从零开始大战FPGA基础篇

    本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“

  • Verilog基础及典型数字

    课程中首先会给大家讲解在企业中一般数字电路从算法到流片这整个过程中会涉及到哪些流程,都分别使用什么工具,以及其中每个流程都分别做了