微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 电源设计 > EMCCD相机数字控制系统的VHDL设计

EMCCD相机数字控制系统的VHDL设计

时间:12-09 来源:互联网 点击:

同时要求可以控制曝光积分时间,选择是否超越读出(Overscan)。根据VHDL语言的特点,采用顶层模块控制底层模块的方式,即以顶层逻辑控制各个底层逻辑的方式来实现该数字控制系统的功能。这种设计思想在实验室设计的RDCCD 相机[10]、KAISS 相机[11] 中都使用过,控制效果良好,程序结构清晰。

在顶层模块中,定义了一些与底层模块连接的端口,以及数字控制系统与外部硬件连接的端口,设置了顶层模块与各底层模块端口匹配的方式。生成了各个模块需要的各种时钟信号。以及协调了帧转移读出模式与ODB清零模式的切换。

在底层模块中主要是两个子模块:ODB 清零和帧转移读出。每个子模块都有其独立的输入时钟信号与输出端口,在相应模块被选中执行时能顺利完成各自任务,生成正确的输出时钟信号。

3 数字系统的实现与仿真

该设计是在Altera Quartus Ⅱ 8.0的开发环境下,分别对顶层模块和底层模块进行VHDL编程设计与仿真的。下面将介绍各模块的具体设计、仿真过程和一些实现技巧。

3.1 顶层模块的设计

顶层模块中定义了一些输入端口、输出端口和一些与底层模块连接用端口及其映射关系,生成了底层模块需要的各种时钟信号,设置了各模块的切换条件。以clkin作为输入主时钟,生成了3个底层用时钟:清零时钟clock_C,垂直转移时钟clock_V、水平转移时钟clock_H;以clkin_1 μs作为另一输入时钟,生成曝光阶段时钟clock_1 μs.还设置了“cs”,“read_select”,“start_read”三个判断信号,用于选择、切换ODB清零与帧转移读出模式。在Quartus Ⅱ中编译成功后生成顶层模块,命名为top.顶层模块的VHDL 程序流程图如图3所示。

3.2 底层模块的设计

底层模块包含ODB清零子模块与帧转移读出子模块,有时亦称为ODB 清零工作模式与帧转移读出工作模式。下面分别介绍这两个子模块的具体设计过程与仿真结果。

3.2.1 ODB清零模式由顶层模块流程图(即图3)可知,当片选信号cs='1',并且read_select='0‘时,系统将运行ODB 清零模块。该模块就是在系统上电后或CCD未进入曝光工作状态时对CCD 成像区的残余电荷进行清除。根据TC253的数据手册,曝光溢出控制信号ODB在整个图像采集过程中有三个电平值,溢流控制阶段为5.3 V,清零阶段为12.5 V,电荷转移阶段为4.8 V.因此在具体的VHDL编程过程中,可以生成ODB1,ODB2两个信号,将它们输出到一个ODB 驱动电路中,可形成ODB 控制信号。

该模块以顶层生成的时钟信号clock_C作为参考时钟,当清零使能信号start_read='0’时,开始ODB清零过程。在此过程中,垂直转移信号SAG1、SAG2运行一个周期。图4 为该子模块VHDL 程序的仿真结果。通过对比TC253的数据手册可知,仿真波形与该器件要求的时序是一致的。

3.2.2 帧转移读出模式

根据TC253 的数据手册,将该EMCCD 器件的成像与帧转移读出模式划分为4个阶段,按顺序分别是清零阶段S1、曝光阶段S2、垂直转移阶段S3、水平输出阶段S4.在顶层生成的4个时钟信号,分别用作这4阶段的控制时钟,使之能够准确地形成并输出满足TC253所需的各信号。

为了能使4 个阶段的信号顺序执行、互不冲突,在VHDL 程序代码中,需要设置必要的判定信号,以控制状态的转移。这4个阶段的状态转移图如图5所示。由图可知,系统上电后进入初始状态S0,当read_select='1‘时,进入帧转移读出模式。当使能信号C_enable='1’时,进行成像区电荷清除S1,直到结束标志位C_end='1‘后进入曝光阶段S2;当曝光使能位ClrM_en='1’时,开始曝光,直到结束标志位Exp_end='1‘后进入垂直转移阶段S3;当垂直转移使能位V_enable='1’时,开始垂直转移,直到结束标志位V_end='1‘后进入水平输出阶段S4;当水平输出使能位H_enable='1’时,开始水平输出,直到结束标志位H_end='1‘后回到初始状态S0.

为了能正确输出数字图像,在水平输出阶段,还需要对模拟信号处理器AD9845B 进行控制。为此,在此阶段(S4),需要根据AD9845B 的时序要求(见图2),产生并输出该器件要求的DATACLK,SHP,SHD,PBLK,CLPDM,CLPOB信号波形。

图6 为帧转移模式下主要信号的仿真结果。按TC253 实际的帧转移行数680 和水平寄存器数目500,仿真波形将很长,无法显示。由于仿真的目的是验证逻辑和时序关系,因此,在仿真时我们将帧转移行数和水平寄存器数目分别设定为10 和10,才获

得图6 的结果。该结果与TC253在时序要求上是一致的。

4 实测结果分析与设计修正

为了使该EMCCD数字控制系统在实际的硬件电路环境下也能顺利运行。在Altera SOPC Builder 下定制了一个Nios Ⅱ软核CPU模块,并在Altera Nios Ⅱ 8

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top