kaiyun官方注册
您所在的位置: 首页> 可编程逻辑> 设计应用> 基于FPGA的线阵CCD驱动时序发生器设计
基于FPGA的线阵CCD驱动时序发生器设计
张道勇 徐 杜 蒋永平 林梓荣
广州广东工业大学信息工程学院(510643)
摘要:在分析TOSHIBA公司的TCD1702C型线阵CCD驱动时序关系的基础上,结合现场可编程门阵列FPGA器件和VHDL硬件描述语言,采用Quartus Ⅱ 3.0软件平台与仿真环境,设计了可调节曝光时间的CCD驱动时序发生器,并阐述了其逻辑设计原理。
Abstract:
Key words :

摘 要:在分析TOSHIBA公司的TCD1702C型线阵CCD驱动时序关系的基础上,结合现场可编程门阵列FPGA器件和VHDL硬件描述语言,采用Quartus Ⅱ 3.0软件平台与仿真环境,设计了可调节曝光时间的CCD驱动时序发生器,并阐述了其逻辑设计原理。
关键词:FPGA VHDL Quartus Ⅱ 3.0电荷耦合器件(CCD)驱动时序发生器

  电荷耦合器件(CCD)作为一种光电转换器件,具有自扫描、体积小、分辨率高、可靠性好、光谱响应宽等优点,已广泛应用于图像传感、景物识别、非接触测量等领域。CCD应用的关键是驱动信号的产生及输出信号的处理。CCD芯片的转换效率、信噪比等光电转换特性只有在合适的时序脉冲驱动下,才能达到器件工艺所规定的最佳值而输出稳定可靠的视频信号。然而由于不同厂家、不同型号的CCD器件的驱动电路各不相同,致使驱动信号的产生必须根据具体的CCD器件时序要求来设计驱动电路。如何快速、方便地产生CCD驱动电路,成为CCD应用的关键问题之一。
  随着CCD技术的飞速发展,传统的时序发生器实现方法如单片机驱动法、EPROM驱动法、直接数字驱动法等,由于速度和功能上的限制,已不能很好地满足CCD应用向高速、小型化、智能化发展的需要。而可编程逻辑器件(CPLD、FPGA)以其高集成度、高速度、高可靠性、开发周期短可满足这些需要,与VHDL语言的结合可以很好地解决上述问题。由于可编程逻辑器件可以通过软件编程对其硬件的结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。
  本文以TCD1702C型线阵CCD芯片为例,在分析其驱动时序关系的基础上,使用VHDL语言对驱动时序发生器进行硬件描述,运用Quartus Ⅱ 3.0软件对所做的设计进行功能和时序仿真,选用Altera公司的现场可编程门阵列FPGA器件EP1K30作为硬件设计载体,设计了可调节曝光时间的CCD驱动时序发生器。
1 线阵CCD的工作原理及驱动时序分析
  TCD1702C为TOSHIBA公司生产的一种有效像元数为7 500的双沟道二相线阵CCD,其像敏单元尺寸为长7μm、高7μm、中心距亦为7μm,像敏区总长为52.5mm,最佳工作频率1MHz。TCD1702C的原理结构如图1所示,它的有效象素单元分奇、偶2列转移并分别由OS1和OS2端口输出;驱动脉冲由时钟脉冲Φ1和Φ2、转移脉冲ΦSH、复位脉冲ΦRS、钳位脉冲ΦCP构成。其中钳位脉冲使输出信号钳制在零信号电平上。这些信号均由CCD驱动时序发生器产生。TCD1702C驱动脉冲波形结构如图2所示。


  由图2可知,CCD的1个工作周期分为二个阶段:光积分阶段和电荷转移阶段。在光积分阶段,ΦSH为低电平,它使存储栅和模拟移位寄存器隔离,不会发生电荷转移现象。存储栅和模拟移位寄存器分别工作,存储栅进行光积分,模拟移位寄存器则在驱动脉冲的作用下串行地向输出端转移信号电荷,最后由OS1和OS2端分别输出。从图中可以看到,OS1和OS2几乎是并行输出的,OS1输出奇数像元的信号,OS2输出偶数像元的信号,ΦRS信号清除移位寄存器中的残余电荷。在电荷转移阶段,ΦSH为高电平,存储栅和模拟移位寄存器之间导通,实现感光阵列光积分所得的光生电荷并行地分别转移到光敏区二侧的模拟移位寄存器的电荷势阱中。此时,输出脉冲停止工作,输出端没有有效信号输出。
  由于结构上的安排,OS1和OS2端首先分别输出13个虚设单元信号,再输出51个暗信号,然后才连续输出S1到S7500的有效象素单元信号。在S7500信号输出后,又分别输出7个暗信号,再输出1个奇偶检测信号,以后便是空驱动(空驱动数目可以是任意的)。由于该器件是2列并行分奇、偶传输,所以在1个ΦSH周期中至少要有3 822个Φ1脉冲,即TSH>3 822T1。由此可知,改变时钟频率或增加光积分周期内的时钟脉冲数,就可以改变光积分周期。
  本系统的设计方法是:在系统最佳工作频率下,通过基本计数单元产生CCD工作所需的基本波形,保证CCD正常工作;而通过积分时间控制信号A1、A2、A3控制积分时间的改变;000~111分别控制8档积分时间变换。000时间最短,111时间最长;将该驱动器通过A/D采集卡与计算机连接,则可以通过软件动态设置积分时间,实现CCD光积分时间的智能控制。
  根据TCD1702C驱动脉冲时序关系,可以确定各路脉冲的技术指标如下:
  Φ12=1MHz,占空比为1:1,方波;ΦSH脉冲宽度为1 000ns。Φ1、Φ2在并行转移时有一个大于ΦSH为高电平时的持续时间的宽脉冲,脉宽为2 000ns。ΦRS=1MHz,占空比为1:4,方波,低电平有效;ΦCP=1MHz,脉冲宽度为125ns,方波,低电平有效。
2 可调曝光时间的CCD驱动时序的VHDL描述与仿真
  系统采用Altera公司开发的Quartus Ⅱ3.0软件平台与仿真环境。QuartusⅡ是新一代PLD开发系统,能够提供完整的多平台设计环境,可以很好地满足特定设计的需要,并可帮助设计者加快可编程单芯片(SOPC)设计。使用QuartusⅡ软件在QuartusⅡBlock Editor中建立设计,Block Editor用作以原理图和流程图的形式输入和编辑图形设计的信息。每个原理图设计文件包含块和符号,这些块和符号代表设计中的逻辑,Block Editor会自动地将每个流程图、原理图或符号代表的设计逻辑融合到工程中。
  总体设计思想是选用原理图设计文件中的块(Block)建立设计文件,将驱动时序分成3个功能模块,分别是FENPIN模块、RESETCLAMP模块和CLOCKPHASE模块。每个模块均由VHDL硬件描述语言编写。驱动时序发生器顶层原理构成框图如图3所示。其中驱动时序发生器还经由CLOCKPHASE模块提供行同步扫描信号FC以及像元同步脉冲SP,为用户提供控制脉冲。行同步脉冲FC的上升沿对应于CCD有效视频输出的开始(通常线阵CCD输出的前后端都包含有若干像元的无效信号);像元同步脉冲SP的上升沿对应于单个像元的视频输出,如果需要对输出信号进行A/D转换,可在SP的上升沿对输出进行采样。


  FENPIN模块的功能是将外部信号发生器产生的8MHz高频信号脉冲经分频器分频后产生脉冲信号CLK,以得到占空比为1:1的1MHz CCD最佳工作频率。RESETCLAMP(RS_CP)模块用以产生复位脉冲信号RS和钳位脉冲信号CP。CLOCKPHASE模块产生FC、SP、时钟脉冲信号Φ1、Φ2和转移脉冲信号ΦSH。基本计数电路计数范围为0~7 701,用以保证CCD的最小光积分时间要求。而积分时间的改变是通过程序内附加的延时电路实现的。通过积分时间控制信号对积分时间的控制,在保证基本光积分时间下,可以实现1ms、3ms、5ms、10ms、20ms、50ms、100ms的延时。修改程序的延时电路的预值数,可进一步延长CCD的积分时间,以适应那些需要特别长积分时间的场合。在系统各项性能指标得以满足的情况下,适当更改系统主频,也可以增加光积分时间。由于篇幅所限,下面仅给出基本计数电路下积分延时时间为1ms的VHDL程序,其他延时时间的VHDL程序原理相同,仅延时预置初值不同。
  PROCESS(CLKIN)
  VARIABLE COUNT:INTEGER;
  VARIABLE N:INTEGER RANGE 0 TO 199;
  VARIABLE BB:INTEGER RANGE 0 TO 2 000;
  VARIABLE AA,CC,DD:STD_LOGIC;
  VARIABLE TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0);
  BEGIN
  TEMP:=A1&A2&A3;
  IF(CLKIN′EVENT AND CLKIN=′1′) THEN
    CASE TEMP IS
    WHEN ″001″=>
      IF(N=1) THEN COUNT:=1;N:=0;
      ELSE COUNT:=COUNT+1;
       IF(COUNT>7701) THEN
        IF(BB=2000) THEN BB:=0;N:=N+1;
        ELSE BB:=BB+1;
        END IF;
      END IF;
     END IF;
   WHEN OTHERS=>NULL;
   END CASE;
   IF(COUNT<5) THEN AA:=′1′;
   ELSE AA:=NOT AA;
   END IF;
   IF(COUNT=2 OR COUNT=3) THEN CC:=′1′;
   ELSE CC:=′0′;
   END IF;
   SHIFT_PULSE<=CC;
   CLOCKPHASE1<=AA;
   CLOCKPHASE2<=NOT AA;
   END IF;
   END PROCESS;
   FPGA设计开发流程可归纳为6个步骤,即:设计输入、设计综合、功能仿真、布局布线、时序分析和器件编程与配置。系统逻辑功能时序仿真波形如图4所示,其输出波形与图2的时序波形相吻合,达到了预期的结果。
3 驱动时序发生器的实现
  TCD1702C的时序逻辑是由现场可编程门阵列FPGA器件EP1K30实现的。EP1K30芯片典型门数为30 000门,1 728个逻辑单元,SRAM结构,可在线重新编程。这些特点使得时序的调试与调整比较容易。经过设计输入、编译和仿真等步骤,即可通过JTAG加载电缆将生成的数据序列加载到目标芯片,完成系统结构功能配置,实现所需硬件功能;再经电平转换,将时序脉冲转变成具有特定波形和电压幅度的逻辑驱动信号,完成CCD驱动时序发生器的整个设计。
4 结 论
  在分析TOSHIBA公司的TCD1702C型线阵CCD驱动时序关系的基础上,结合现场可编程门阵列FPGA和VHDL硬件描述语言,设计了可调节曝光时间的CCD驱动时序发生器。系统测试表明,所设计的驱动时序发生器产生的各时序信号可以满足线阵CCD1702C芯片的驱动要求。由于驱动器结构是可再编程的,如果要增加或减少某些功能,则可在不改变任何硬件的情况下,只对器件重新编程,就可实现驱动器的更新换代。硬件电路设计的软件化是电路设计的发展趋势,以HDL语言表达设计意图、CPLD/FPGA作为硬件载体、计算机为设计开发工具、EDA软件为开发环境的现代电子设计方法日趋成熟。该方法不仅简化了硬件的开发和制造过程,使设计人员摆脱了电路细节的繁琐,而且具有体积小、可靠性高、设计与调试灵活等优点。
参考文献
1 谷林,胡晓东,罗长洲等.基于CPLD的线阵CCD光积分时 间的自适应调节.光子学报,2002;31(12)
2 王军波,孙振国,陈强等.高速CCD摄像机驱动时序发生器 的设计及基于CPLD技术的实现.光学技术,2002;28(2)
3 TOSHIBA公司.线阵CCD器件手册.1997
4 王庆有.CCD应用技术.天津:天津大学出版社,2000
5 曾繁泰,陈美金.VHDL程序设计.北京:清华大学出版社, 2001

此内容为AET网站原创,未经授权禁止转载。
Baidu
map