电子软件工程师主要分析、设计电路图,制作PCB,以及用电脑作为辅助设计工具进行工作。本文是发表在国家级电子期刊《电源技术应用》 上的一篇范文:浅析CCD驱动电路的相关理论及设计。
摘要:本文就CCD驱动电路的相关理论及设计进行了简单的分析,以供大家参考。
关键词:CCD,电路,方法
CCD器件工作的主要过程是被测对象的光信息通过光学系统后,在CCD器件的光敏面上形成光学图像信息,CCD器件把这种光信息转换成与光强成比例的电荷,并用一定频率的时钟脉冲驱动进行移位传送,在CCD的输出端获得被测对象的视频信号。这是一模拟信号,且输出的时序对应着CCD光敏元位置的排列顺序,而信号的电压幅度对应着光敏元所接收到的光强的强弱,因而可以说,CCD输出的视频信号,包含着光强度信息和位置信息。对这一包含位置和光强信息的信号进行采集并转换成数字信息送入到微处理器中进行处理。这一部分主要包括有CCD的驱动电路、输出视频信号的处理及采集电路等。本文笔者主要介绍的是CCD的驱动电路相关问题。
一、线阵CCD时序脉冲电路产生的方法
对于不同的特性的CCD其驱动时序不尽相同,从已发表的研究成果看,设计CCD驱动时序的方法有以下几种:通用数字电路驱动方法、EPROM驱动方法、单片机驱动方法、专用IC驱动方法等。
1.通用数字电路驱动方法
这种方法是用数字门电路和时序电路等直接搭成CCD时序驱动电路,通过硬件电路来实现对CCD的驱动。它一般由主振、计数器、分频器、触发器和驱动器等中等规模集成芯片构成。CCD芯片的早期产品,由于需要复杂的三相或四相交叠脉冲,一般整个驱动电路需要20个左右芯片,存在体积较大、功耗大、成本高、设计复杂、开发周期长、故障率高、电路不够灵活等缺点,因此它不能得到广泛的应用。
2.EPROM驱动方法
在CCD的一个积分周期中含有多个(一般以千计)移位时钟。在一个移位时钟中各路信号在不同的时刻发生变化,设计者将移位时钟周期划分成若干个等时间间隔,称为状态,时钟波形电平变化发生在一定状态变化时刻,这样一行就被分为上万个状态,各路信号或1或0,构成一个状态数据,依次装到可擦除可编程只读存储器EPROM中,只要等时间间隔地依次输出这些数据就形成了CCD所需要的各路波形。
这种驱动电路一般由EPROM、地址发生器(异步计数器)、地址信号同步电路(锁存器)和强制复位电路组成。显然这种电路的硬件依然比较复杂,同样具有体积大、功耗大、成本高、设计复杂等缺点。但是,这种方法的最大优点是对任何型号的CCD来说,其硬件结构几乎不需要变化,故应用比较灵活。
3.单片机驱动方法
由于绝大多数CCD应用系统都含有单片机,这使有关CCD应用系统开发者十分自然地考虑到使用单片机的并行输出端输出所需的驱动脉冲信号,再经驱动芯片接到CCD对应管脚上。这一方案与EPROM方案有些相似,EPROM方案每改变地址就输出新的状态数据,而此方案是用单片机的输出指令改变输出数据。
单片机产生的CCD驱动时序的方法主要是依靠程序编程直接输出驱动时序信号。由于时序是由程序指令间的延迟产生,因此这种方法在驱动过程中要占用全部CPU时间,而且为了时序的严密一般在驱动过程中都禁止中断响应。
这种驱动时序产生方法的特点是调节时序灵活、编程简单,但由于受到单片机的时钟频率的限制,产生的频率受到很大限制使其不能应用于高速领域。例如假定使用单片机机器周期为1μs,且假定一个移位周期含8个状态,那么即使是全部采用单机器周期改变口输出数据,移位脉冲频率也只能达到125KHz。
这种方法对于CCD的一些简单应用系统可能是适合的。但是,在复杂些的应用系统中采用单片机来形成驱动波形不堪重负,其执行的指令大部分是用于产生这些驱动波形,只在两行间过渡段对各路输出冻结一段时间,才能分时对CCD视频输出进行处理等工作。
4.专用IC驱动方法
这种方法就是利用专用IC来产生时序。由于这种电路是专门为驱动CCD而设计,所以集成度高、功能强、使用方便。在对摄像等视频领域应用的CCD、或是功能强大的面阵CCD进行驱动时,使用这种驱动方法是首选。
大多数CCD生产厂家也都有生产相应的专用驱动IC,在应用中利用这些专用驱动IC构成标准的CCD驱动电路通常都会获得满意的结果。然而,对于一些特定的应用场合,如用于工业测量时这种方法又显得过于保守,灵活性不好。
以往采用的大多是由普通数字芯片设计的驱动电路,为了克服上述几种方法的缺点,本课题应用了FPGA技术来完成驱动时序电路设计,它具有以上方法无法比拟的优越性。
二、 FPGA技术的特点
1. 现场可编程门阵列(FPGA)概述
FPGA是英文Field-Programmable Gate Array的缩写,即现场可编程门阵列[24],它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有:
1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
3)FPGA内部有丰富的触发器和I/O引脚。
4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。
2.Quartus II的设计流程
Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。
Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三放EDA工具。
此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。如图1.1所示为Quartus II软件一般的设计流程。
三、 TCD1206的时序脉冲驱动电路设计
1.驱动电路的设计原则
首先通过查阅器件手册,根据数据速率的要求确定CCD像元信号的输出速率öDC频率值,由它可以得到每个像元信号的读出周期TDC=1/öDC。öDC是像元信号输出控制脉冲,复位一次,输出一个信号。
积分控制脉冲SH的一个周期包含有CCD器件上所有光敏元区n1、两端设置的黑白电平参考区n2、隔离区n3和过渡区n4的所有MOS单元转移所需要的时钟周期。则积分控制脉冲一次扫描中共包含有n个时钟周期。
n=n1+n2+n3+n4 (1.1)
由此可以算出每次光积分所需要的最短时间为
TSH=n×TDC (1.2)
CCD光积分控制脉冲?SH的最高频率为
SH=1/TSH=öDC/n (1.3)
SH是一个正极性脉冲,在光积分控制脉冲中SH=“1”的时间为信号电荷的并行转移时间,SH =“0”的时间为光积分时间。光积分时间应远大于转移时间,才能使栅极下的势阱中储存足够多的电荷信息。从器件手册上查出选定的CCD是单沟道线型结构还是双沟道线型结构。对于单沟道结构,öT的频率就等于öDC,对于双沟道线性结构,对öDC进行二分频就得到öT的频率。对于CCD是采用二相、三相或四相等不同相数驱动脉冲工作,针对具体器件做其转移脉冲的设计。在确定了öDC、 SH 、öT的频率和特征之后,就可以根据它们之间的时序关系设计出硬件逻辑框图。
2.TCD1206工作参数的设计
本系统选用TOSHIBA公司的TCD1206 型电路作为传感器。该器件具有优良的光电特性, 有2160 个像元, 其驱动信号的时序如图1.2所示。
由TCD1206 的时序图可以看出, TCD1206 采用二相驱动脉冲工作, 时序脉冲驱动电路提供4 路工作脉冲, 即光积分脉冲SH, 电荷转移脉冲Φ1、Φ2, 输出复位脉冲RS。系统提供的主时钟频率CLK 为50 MHz, 设定数据输出频率为1 MHz。TCD1206 的典型最佳工作频率为1 MHz, 该器件具有2160 位有效像元, 正常工作时要有52 个虚设单元输出(DUMMY OUTPUTS) 信号 (含暗电流信号)。因为该器件是二列并行传输, 所以在一个周期内至少要有1106 ( 2212/2=1106) 个Φ1 脉冲, 即TSH>1106TΦ1。另外, 由时序图可以看出, 当SH 信号为高电平期间, CCD 积累的信号电荷包通过转移栅进入移位寄存器, 移位脉冲Φ1、Φ2 要求保持一个高和低的电平状态。由于该器件是两相驱动方式可以确定两路电荷转移脉冲Φ1和Φ2它们的频率均是0.5MHz相位相差180o在确定了SH、Φ1、Φ2和RS的参数之后可以根据它们之间的时序关系设计出硬件逻辑框图如图1.4所示各路脉冲的技术指标如下:
RS=1MHz占空比为1:3,方波;
Φ1=Φ2=0.5MHz占空比为1:1,方波Φ1、Φ2在并行转移时有一个大于SH=1持续时间的宽脉冲。
3. TCD1206脉冲产生电路设计
(1)复位脉冲RS的产生 RS是使输出浮置二极管复位的复位管控制脉冲,每复位一次,输出一个像素的信号。系统提供的主时钟CLK为50MHz,经前面分析要求复位脉冲频率为1MHz,脉冲占空比为1:3。
(2)两个交叠转移脉冲Φ1、Φ2的产生 两相交叠栅双沟道线阵TCD1206是在两相交叠转移脉冲Φ1、Φ2的驱动下,信号电荷包一位一位地转移,可见两相交叠转移脉冲的产生非常重要。
脉冲频率为RS的1/2,即0.5MHz。同时为了避免MOS电容中的信号电荷包向上下两列模拟移位寄存器的电极Φ1、Φ2转移不完全的情况,要求Φ1、Φ2在并行转移时有一个大于SH=1持续时间的宽脉冲。
(3)转移脉冲SH的产生 SH是使MOS电容中的信号电荷转移到模拟移位寄存器中的转移栅控制脉冲,也称为光积分脉冲。周期大于1106×1/0.5μs,同时要求SH=1的时间应小于Φ1的宽脉冲。
综上所述,TCD1206脉冲产生电路由verilog HDL语言描述,程序代码如下:
module ccddr(clk,rst,sh,k1,k2,CLK_RS);
input clk,rst;
output sh;
output k1,k2;
output CLK_RS;
reg sh;
reg k1;
reg [12:0] e_count;
reg clk_odd40;
reg clk_odd10;
reg[5:0] count40;
reg[8:0] count10;
reg[2:0] R;
parameter N = 13,
M = 38;
/*rs*/
always@(posedge clk_odd10 or negedge rst)
begin
if(!rst)
begin
R=2;
end
else if(R==2)
begin
R=R+1;
end
else if(R==3)
begin
R=R+1;
end
else if(R==4)
begin
R=2;
end
end
assign CLK_RS=R[2];
/*10fenpin*/
always @ (posedge clk)
if(! rst)
begin
count10 <= 1'b0;
clk_odd10 <= 1'b0;
end
else
if ( count10 < N/2-1)
begin
count10 <= count10 + 1'b1;
end
else
begin
count10 <= 1'b0;
clk_odd10 <= ~clk_odd10;
end
/*40fenpin*/
always @ (posedge clk)
if(! rst)
begin
count40 <= 1'b0;
clk_odd40 <= 1'b0;
end
else
if ( count40 < M/2-1)
begin
count40 <= count40 + 1'b1;
end
else
begin
count40 <= 1'b0;
clk_odd40<= ~clk_odd40;
end
/*jishu40*/
always@(posedge clk_odd40 or negedge rst)
if(!rst)
begin
e_count<=0;
end
else
if(e_count<2300)
begin
e_count<=e_count+1;
end
else
begin
e_count<=0;
end
/*sh*/
always@(posedge clk_odd40 or negedge rst)
if(!rst)
begin
sh<=0;
end
else if(e_count==1)
begin
sh<=1;
end
else if(e_count==2)
begin
sh<=1;
end
else if(e_count==3)
begin
sh<=0;
end
else
begin
sh<=0;
end
/*k1,k2*/
always@(posedge clk_odd40 or negedge rst)
begin
if(!rst)
begin
k1<=0;
end
else if(e_count<4)
begin
k1<=1;
end
else
begin
k1<=~k1;
end
end
assign k2=~k1;
endmodule
4.TCD1206的驱动接口电路
驱动接口电路是时序脉冲产生电路与TCD1206芯片的电学接口,因为时序驱动脉冲产生电路输出脉冲并不能直接驱动CCD芯片工作,从幅度、相位都不能满足TCD1206芯片输入引脚的要求,因此必须经过处理才能送入TCD1206芯片。
下面介绍一种典型的TCD1206芯片接口电路,如图1.4所示。时序脉冲产生电路输出的四路脉冲 SH、RS、Φ1、Φ2经反相器反相,再经阻容加速电路送至DS0026驱动器,放大后送给TCD1206。因为四路输出脉冲的高电平为3.3V,低电平为0V,而TCD1206芯片输入引脚幅度要求上述信号高电平为5V,低电平为0V,因此采用DS0026实现电平转化。
DS0026是一个低成本、高速的、两相MOS时钟单片驱动器和接口电路。独特的电路设计提供了高速运行和驱动大容性负载的能力。器件接受标准TTL输入(标准的54/74系列和54S/74S系列)和转换成MOS逻辑电平。DS0026的输出脉冲宽度等于输入脉冲宽度。主要特性如下:
(1)快速上升和下降时间-20ns;
(2)高输出的摆幅-20V;
(3)高输出电流驱动-±1.5A;
(4)低功耗-20mW。
总之,本文从方案的制定、系统整体设计、软硬件调试等一系列工作都遵照相关软件前端设计的流程,并完成基本设计要求。通过本系统的设计工作,为日后的开发、设计工作积累了宝贵的经验。
《电源技术应用》创刊于1998年4月,由国务院副总理曾培炎题写刊名,中国电源学会、陕西省电源学会联合主办,是电源行业第一本面向应用、具有较强学术性、实用性和信息性的中级技术刊物。