胡社教, 余 升, 张 铮
(合肥工业大学 计 算机与信息学院,安徽 合 肥 230009)
随着微电子技术和材料科学的快速发展,光电转换技术有了长足的进步。光电检测已不再局限于可见光,非可见光尤其以红外和紫外应用发展迅速。紫外探测成为继红外和激光探测之后又一新的领域[1]。紫外全帧背照式面阵(Charge Coupled Device,简称CCD)以其高灵敏度和高动态范围成为紫外探测的首选器件,广泛应用于生命科学、物理实验、光谱分析、工业成像及粒子图像测试等领域。
紫外探测的另一重要应用是对电晕的强度检测和定位,它可以发现高压电力设施的早期故障隐患,确保高压线输电线路正常运行。本研究是紫外-可见光双光谱成像系统的重要组成部分,该系统利用紫外成像来完成对高压电力设施电晕强度检测,根据紫外图像在可见光图像中的位置来确定电晕的位置。紫外CCD和可见光CCD的成像和融合是系统的关键,紫外-可见光双光谱成像系统结构如图1所示。
图1 紫外-可见光双光谱系统结构图
通过背照明以及势阱耗尽的概念,CCD在宽频带范围内实现高量子效率响应以及低噪声读出[2]。S7171-0909是滨松公司研制的多相位内嵌的背照式全帧转移CCD,具有较宽的光谱响应范围,特别适合紫外成像检测。其背照式设计使得CCD具有足够薄的衬底厚度,能使微弱光从CCD背面直接进入到芯片的有源区,该结构不需经过透明电极,保证了对紫外光的高灵敏度和量子效率,且对0.1~1 000nm的光子以及高能量带电粒子具有高灵敏度[3]。像素合并模式设计可以降低噪声、提高信噪比和视频信号的帧速率。像素合并由CCD片上的时序电路控制,在视频信号模拟放大之前设定了并行和串行寄存器的工作状态,S7171-0909系统结构如图2所示。
图2 S7171-0909系统结构图
S7171-0909芯片由感光区、存储区、水平移位寄存器3个部分组成。为使该芯片正常工作,需要8路信号。分别为“Start”信号、2路垂直转移脉冲P1V和P2V、水平转移脉冲P1H和P2H、加在垂直转移栅上的转移脉冲(TG)、加在融合栅上的像素合并时钟脉冲(SG)和复位脉冲(RG)。由于面阵CCD的驱动信号数量多,相位要求严格,且需要多种电压的驱动,因此进行时序分析并设计出高精度的驱动时序电路是问题的关键。
基于单片机线阵CCD驱动电路,对于目前工艺更复杂、成像性能更好的面阵CCD,多采用可编程逻辑器件来实现[4]。文献[5]提出了一种帧转移CCD驱动设计方法来验证传感器在X射线激励下的表现性能,虽说该设计也是基于FPGA的系统,但其硬件驱动电路都是通过水平时钟驱动、垂直时钟驱动以及存储区时钟驱动3个分立的元器件来实现的,这增加了软件设计的复杂度和硬件调试上的难度。文献[1]则是利用CPLD以及门电路完成CCD驱动时序的设计,其中三相时钟是由3个D触发器配合产生的,文献[1,5]均能完成设计,但是在设计上均为完成硬件与软件的合理搭配,在资源利用和效率上有待进一步改进,而且CPLD一般是在CCD工作频率较低时比较适合,与现场可编程逻辑阵列(FPGA)相比缺乏通用性。
文献[6]提出了一种基于FPGA分离紫外CCD数模信号的驱动设计方法,较好地达到设计目的,其缺点是在软件设计时利用VHDL语言开发,该语言与Verilog语言相比较难掌握,还需要有Ada编程基础,增加了开发难度。
而本设计则是以FPGA为开发平台,在软件上利用Verilog描述状态有限状态机和锁相环形成软核来实现主时钟以及各路脉冲的产生,而且Verilog开发环境几乎能实现目前能用硬件实现的所有功能,并进行功能仿真和综合优化,从而避免了到硬件调试才会发现问题,大大缩短了开发周期,加快了复杂电路的设计,而且该设计方法更容易实现其他功能模块接口的连接,增加系统的可靠性。
S7171-0909完成一帧图像的采集要经历感光、垂直转移和水平读出3个阶段,并且有线性合并模式和阵列扫描模式,本文研究了线性合并模式,驱动时序如图3所示。在感光阶段,“start”信号处于高电平,传感器开始接受曝光,在P1V和P2V为低电平时进行曝光积分,电荷在P1V、P2V电极形成势阱积累。
垂直转移电荷主要由P1V、P2V、TG配合时钟脉冲CLK完成的,P1V的下降沿光积分结束,在P2V到达高电平后开始整帧转移。垂直移位寄存器中的电荷在双相垂直驱动时钟P1V和P2V交替作用下逐行地向水平寄存器转移,此时水平驱动时钟P1H、P2H、SG、RG、CLAMP均保持不变,而传输时钟TG与垂直驱动脉冲P2V保持同步。垂直和水平转移循环交替进行,电荷由光敏区转移到存取区是由与P2V同频同相的行计数TG脉冲控制,电荷完成520行的垂直转移后,传感器就开始下一次的积分。
水平读出阶段主要由P1H、P2H、SG、RG、CLAMP配合时钟脉冲CLK完成,在P1H、P2H时钟脉冲的控制下,开始水平转移,P1H、P2H为同频反相的脉冲,在每一个P1H的上升也即是P2H的下降沿,并且在复位脉冲RG达到高电平时,开始逐一读出电荷,融合脉冲SG同时亦为列计数脉冲,为避免RG抖动引入噪声,CLAMP为RG钳位脉冲,存储区电荷向水平寄存器转移并完成像素合并后输出530个像元,有效像素为512个,其中包括8个空白像素和12个暗像素,作为输出信号的参考电平。
图3 垂直转移和水平读出时序图
CCD驱动时序可以采用直接数字电路、单片机、EPROM、微处理器或数字信号处理器(DSP)和可编程器件产生。FPGA是第4代可编程器件,它将定制ASIC的高集成度、高性能的优点与可编程器件灵活性优点结合在一起,从而避免了定制ASIC的高成本、高风险、长设计周期和可编程器件密度低的缺点[7]。
本文采用FPGA进行逻辑电路的设计,用Verilog HDL描述时序逻辑。设计采用Altera公司的Cyclone II系列芯片EP2C8作为硬件平台,该芯片含有8 256个逻辑单元,容量为162k的RAM、内嵌18个乘法器、2个PLL以及最多可以使用的182个I/O引脚。FPGA工作需要提供I/O供电电压、内核(内嵌CPU或DSP)工作电压以及辅助工作电压。典型的I/O电压有3.3、2.5、1.8V,目前90nm工艺的 FPGA 内核电压为1.2V,辅助电压根据内嵌功能块不同,在1.2~ 2.5V。在本芯片中辅助供电2.5V 为PLL供电电压。
EP2C8提供3.3V有源主时钟50MHz的晶振,设计输入信号为3路,输出为8路信号。S7171-0909工作频率为1MHz,工作时512×512像素参加曝光,考虑帧转移和像素合并以及像素读出所占用的时间,帧频为96帧/s,由于CCD各个驱动信号间的严格时序要求,本设计采用多计数器和双循环套嵌方式实现。曝光结束后,垂直电荷转移和水平像素输出构成内循环,通过主时钟、垂直计数器和水平计数器控制实现。由“Start”信号、复位脉冲和主时钟控制外循环,以双重循环状态机实现对整个工作过程的控制。
状态机流程图如图4所示,状态机的4个状态分别为IDLE、积分状态、PV、PH。其中IDLE:复位时钟(nRST)为低电平时为空闲状态,主时钟、垂直、水平计数器都清零,P1V=0,P1H=1。积分状态:复位时钟(nRST)为高电平时开始积分,“Start”为高电平,转到状态PV。状态PV:P1V=0,P1H=1,开始垂直电荷转移,垂直寄存器开始计数;电荷向水平寄存器内转移520行后,转向状态PH,否则,自循环。状态PH:水平读出状态;水平计数器计数,完成水平读出532个像元后,转向IDLE状态,否则自循环。其中“Start”为场有效标志,当“Start”=1时,进入积分状态,开始下一帧的工作。
图4 状态机流程图
针对FPGA/CPLD开发应用,Altera公司提供了完整的多平台设计环境Quartus II,它含有FPGA和CPLD设计所有阶段的解决方案,支持设计输入、逻辑综合、布局布线、仿真、时序分析、功耗管理以及最后的下载配置。设计时主要有原理图输入、Verilog语言输入和波形图输入3种输入方式,目前的设计大都采用Verilog语言进行代码设计,并且软件支持第三方软件对工程设计进行仿真测试,以便及时查错,对设计做出调整。
Verilog HDL是用于逻辑设计的硬件描述语言,并且都已成为IEEE标准[8],因此可以容易地把设计移植到不同厂家的不同芯片中去,从而增加了设计的灵活性,缩短工程周期。在设计时,不需要底层电路原理图,而是在顶层根据设计目标进行逻辑功能的设计和模块的划分,然后进行代码设计、综合优化、实现。该硬件语言在设计具体功能模块时,与具体器件的制作工艺没有关系,容易完成工艺映射[9]。本文利用Verilog HDL设计自顶向下与自底向上相结合的方法设计CCD的时序脉冲。在对Verilog语言描述的时序状态机发生器进行编译后,并编写Testbench测试文件,再调用第三方仿真软件Modesim对驱动时序发生器进行功能仿真,仿真结果如图5所示。
由图5可看出,CLK、START、P1V、P2V及TG各路时钟脉冲与图3a垂直转移时序保持一致,CLK、START、P1H、P2H、SG、RG 及CLAMP各路时钟脉冲与图3b水平转移时序保持一致,由此说明该芯片的驱动时序脉冲能够完全满足芯片对时序以及相位关系的要求,为后续硬件实现奠定了基础。
CCD时序驱动电路由直流偏置电压、FPGA组成的CCD时钟信号产生电路和驱动电路3部分组成[10]。系统供电电源模块要求提供(+5、+15、-15、+24V)4个等级的电压为系统提供直流偏置。FPGA的I/O输出信号的电压等级为0~3.3V,无法满足各路时序脉冲的电压等级,CCD驱动电路的作用是把FPGA时序单元产生的时序脉冲进行功率放大,以满足CCD对波形电压电流以及时序的要求。
本文将FPGA产生的TTL逻辑电平转换到-6、8V2个电压等级。对于为容性负载的CCD,在供给较大摆幅的电压情况下,需要在电压快速变化延时为其提供足够大的瞬态电流,因此要选择工作电流足够大的器件以满足要求[11]。本文采用EL7202对各路脉冲进行放大以完成对CCD的驱动。
EL7202可以驱动较大的电容负载,最大脉冲电流可达2A,最高输出电压大于15V。负载电容为1 000pF时,上升和下降沿分别为10ns和13ns(典型值)。垂直移位寄存器在电容CP1VCP2V为6 400pF以及转移栅电容70pF时上升和下降时间Tprv、Tpfv均为200ns,水平移位寄存器在电容CP1HCP2H为120pF以及融合栅电容为30pF时上升和下降时间Tprh、Tpfh均为10ns,复位栅电容为30pF时上升和下降时间Tprr、Tpfr为5ns,该芯片能够满足信号上升和下降速度的匹配,并完成对TTL信号功率放大的要求。该Elantec驱动EL7202接受TTL输入以及垂直、水平转移所需的CCD时钟电压的峰值,该峰值是可以调整的,驱动输出为交流电压,提供可调整的从负极到正极的时钟偏移。垂直、水平时钟脉冲驱动电路图如图6所示。图6中,R1为水平脉冲电压匹配电阻,R2为下拉匹配电阻,通过调整R3可以调整垂直脉冲偏压。设置电容C1的大小,可以调整上升和下降时间。
图6 EL7202应用电路
仿真后给开发板上电,程序下载方式设置为JATG下载配置,把程序下载到EP2C8芯片中,最后通过板级调试对CCD器件进行成像实验,如图7所示,表明S7171-0909芯片工作正常稳定,达到了预期效果。
图7 不同电荷容量时CCD输出波形
本文以EP2C8为硬件平台,在Quartus II 9.1环境下,完成了S7171-0909驱动时序电路,该软件设计基于状态机设计,使CCD工作模式更加清晰,有利于后续对数据的传输和处理的控制。对于其他类型的CCD器件驱动设计,只需修改一些参数即可,因此该状态机设计有一定的通用性,可以缩短开发周期。本课题选用高性能的电压转换芯片和驱动器保证CCD的正常稳定工作。
[1] 姚鸣晖,李自田,刘 军.紫外面阵CCD驱动时序设计[J].微计算机信息,2008,24(11):281-289.
[2] Meidinger N,Andritschke R,Assmann W,et al.CCD detector development for the eROSITA space telescope[C]//2010IEEE Nuclear Science Symposium Conference Record(NSS/MIC),2010:24-31.
[3] Tower J R,Swain P K,Hsueh F L,et al.Large Format Backside Illuminated CCD Imager for Space Surveillance[J].IEEE Transactions on Electron Devices,2003,50(1):218-224.
[4] 韦晓茹,居戬之.基于单片机ATmegal6的CCD驱动电路的设计[J].微型机与应用,2010,29(16):33-36.
[5] 姚 远.高速线阵CCD的驱动分析与设计[J].合肥工业大学学报:自然科学版,2009,32(4):560-563.
[6] 马庆军,宋克非,曲 艺,等.紫外临边成像光谱仪CCD电路系 统 的 设 计 [J].光 学 精 密 工 程,2011,19(7):1538-1544.
[7] 程鹏飞,顾明剑,王模昌.基于FPGA的帧转移面阵CCD驱动电路设计[J].红外技术,2006,28(9):519-522.
[8] 夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社,2008:13-14.
[9] 雷伏容.VHDL电路设计[M].北京:清华大学出版社,2006:6-8.
[10] Lee H L,Madden T,Fernandez P,et al.Kodak CCD-based detector for small angle X-ray scattering[C]//2009 IEEE Nuclear Science Symposium Conference Record(NSS/MIC),2009:1807-1810.
[11] 薛旭成,曲洪丰,李洪法,等.CCD相机功率驱动电路设计[J].微计算机信息,2007,23(25):272-273.