基于CPLD器件和tcd1201d芯片实现CCD自动增益系统的设计

时间:2025-04-25  作者:Diven  阅读:0

ccd(charge couple devICe)是电荷藕合式光电转换器件。在物体位移测量系统中,常常以ccd作为位移传感器。当一束曝光器发出的激光照射到被测物体上并发生漫反射时,反射光将经透镜聚焦后成像在ccd上,以使ccd光敏单元感光,从而产生转移电荷。这样ccd驱动电路就会产生一定频率的驱动脉冲以反映物体位移信息,输出的信号为模拟信号。经a/d转换后,便可由后续处理电路采集和运算。

基于CPLD器件和tcd1201d芯片实现CCD自动增益系统的设计

实际测量工作中,由于工作环境、光照强度或被测物体的不同,会使得照射到被测物体表面的激光束的反射率变化比较大,ccd上成像点的光强就会时强时弱。ccd光敏单元在过强或过弱光线照射下,会产生过饱和或不饱和的电荷,从而使输出的模拟信号不能满足数据采集要求,因而不能真实反映被测物体的位移信息,影响最后计算结果的准确性,而产生了较大的误差。鉴于以上原因,为了能够得到准确的被测物体的位移结果,应使ccd测量系统输出的模拟信号峰值尽量稳定在某一范围内。

cpld复杂可编程逻辑器件具有集成度高,体积小,速度快等特点。通过cpld能够以厂家提供的cad工具为开发平台,结合原理图编辑与vhdl语言软件编程,以在cpld中实现数字硬件中的大多数逻辑电路。本文所设计的ccd自动增益系统的核心部分选用cpld来实现。

ccd信号的自动增益调整

ccd传感器输出的模拟信号与入射光光强、帧转移频率有关。其大小随入射光光强的增大而增大,随帧转移频率的增大而减小,通过改变入射光的光强或帧转移频率就可以调整输出的模拟信号峰值。本系统就是采用调节帧转移频率来达到自动增益调整的目的。

一般情况下,帧转移脉冲由ccd驱动电路输出,其频率大小直接影响ccd传感器的积分时间。帧转移频率越小,传感器积分时间越长,相应地,ccd传感器曝光时间也越长,光敏单元捕捉到的光量也越多。当帧转移频率过小时,光敏单元所产生的光电电荷就会达到过饱和状态,输出的模拟电压峰值将会超过所要求的范围。反之,输出的模拟电压峰值将会低于所要求的范围。可设计一个ccd输出电压峰值的采样、保持电路,再对此峰值进行a/d转换,同时与所要求的范围进行比较。当其超出范围值时,可增大帧转移频率;而当其值低于范围时,则可减小帧转移频率。

系统整体结构

这种基于cpld的ccd自动增益调整驱动电路的整体结构如图1所示,该系统共分为两部分。第一部分为模拟/数字转换电路,该部分采用一个转换精度为8位的a/d转换器来将ccd输出的模拟电压值转换为数字量。第二部分为可自动调整增益的ccd驱动电路,此部分采用cpld进行配置,可自动完成增益调整及ccd驱动信号的输出,并可为a/d转换器提供转换控制脉冲。

a/d转换部分

ccd的输出信号为模拟量,故须经a/d将其转换成数字量,以便cpld进行处理。在本设计中,a/d转换器采用的ad9048可工作在35msps的高速上,由cpld产生的单位转移脉冲sp可为其提供转换控制脉冲convert。在convert的上升沿到来后,a/d9048对ccd相应象素点上输出的模拟电压值进行采样,并在convert下降沿到来之前输出转换结果,该结果由cpld寄存并最终得到一帧中ccd输出的模拟电压峰值的大小。

可自动增益的ccd驱动电路设计

此电路利用cpld设计,其内部可划分为四个模块(如图2所示),整个芯片所需的时钟由外部晶振或振荡电路提供。

第一个分频模块dispart用于对外部时钟进行一到八倍的分频。第二个模块mul tiplexer是一个多选一模块,由compare控制。第三个模块compare用于对a/d转换的结果进行寄存,并将一帧结束后得到的ccd输出电压峰值与所设定的阈值进行比较,若超出阈值上限则输出结果减一,multiplexer选出频率较高的一路时钟作为driver的输入时钟脉冲;反之,则对compare的输出结果加一,multiplexer选出频率较低的一路时钟作为driver的输入时钟脉冲。第四个模块driver用来产生驱动ccd的信号及一位单位转移信号。

当multiplexer选出频率较高的一路脉冲作为driver的输入时钟,再由driver产生ccd驱动信号时,驱动信号中的帧转移脉冲sh频率就会增加,从而使ccd传感器的曝光时间变短,ccd输出的模拟电压峰值降低;反之,sh频率减小,曝光时间变长,ccd输出的模拟电压峰值升高。这样,通过以上过程,便可调节ccd模拟电压峰值的范围。

本设计应用的ccd器件为tcd1201d,采用二相驱动脉冲工作,驱动电路要产生六路工作脉冲,其中五路用作ccd提供工作脉冲,分别为帧转移脉冲sh、电荷转移脉冲t1、t2、复位脉冲rs、补偿脉冲bt;另一路为单元转移脉冲sp。此六路脉冲由cpld中的driver部分产生,此部分可用硬件描述语言vhdl进行设计。

产生补偿脉冲bt和单元转移脉冲sp时,由于bt占空比为2:1,因此应对输入的时钟脉冲三分频,低电平占时钟脉冲一个周期,高电平占时钟脉冲两个周期,其具体的程序部分如下:

process(clk)

begin

if(clk’event and clk=‘1’)then

counter1<=counter1+1;

if counter1=2 then

mbt<=‘0’;

counter1<=0;

else mbt<=‘1’;

end if;

end if;

bt<=mbt;

sp<=mbt and(not msh2);

end process;

该器件有2048位有效像元,工作时还要有46位哑像元输出,一个扫描周期至少应有2094个像元时钟周期,由于该器件两并行输出,一个帧转移周期内的t1、t2至少分别有1047个脉冲。由于t1、t2的周期相等,方向相反且周期为bt周期的二倍,产生sh、t1、t2的程序进程如下:

process(mbt,clk)

begin

if (mbtevent and mbt=‘1’)then

mt<=not mt;

end if;

if(clk’event and clk=‘1’)then

t1<=mt and (not msh2);

t2<=(not mt)or msh2;

end if;

end process;

process(mt)

begin

if(mt’event and mt=‘1’)

then

counter2<=counter2+1;

if counter2=1100 then

counter2<=0;

msh1<=‘1’;

msh2<=‘1’;

elsif(counter2<=3)then

msh1<=‘1’;

msh2<=‘1’;

elsif(counter2>3 and counter2<=5)then

msh1<=‘0’;

msh2<=‘1’;

else

msh1<=‘0’;

msh2<=‘0’;

end if;

end if;

sh<=msh1;

end process;

产生rs的程序进程如下:

process(mbt,clk)

begin

if(clk’event and clk=‘0’)then

rs<=not mbt;

ned if;

end process;

至此,这样ccd驱动电路的六路信号均产生完毕,可以进行仿真,其结果如图3所示。

由图3可看出,所产生的驱动信号满足tcd1201d所需驱动时序关系。

dispart模块是用来对外部时钟进行分频的,可应用vhdl语言描述。其中二、三分频的程序如下:

process(clk)

begin

if(clk’event and clk=‘1’)then

mf1<=not mf1;

end if;

f1<=mf1;

end process;

process(clk)

begin

if(clk’event and clk=‘1’)

then

counter2<=counter2+1;

if counter2=2 then

mf2<=‘1’;

counter2<=0;

else

mf2<=‘0’;

end if;

end if;

f2<=mf2;

end process;

其分频数与之类似,这里不再赘述。

compare模块是用来对a/d的转换结果进行寄存,并在一帧结束后,对得到的电压峰值进行判断以确定其是否在所规定的阈值范围内,从而控制多选一模块multiplexer。应用vhdl语言描述时,其程序的主要部分如下:

process(clk)

begin

if(clk’event and clk=‘0’)then

if data>reg_data then

reg_data<=data;

end if;

end if;

end process

process(sh)

begin

if(sh’event and sh=‘1’)

then

if(reg_data>200)then

if(reg_q(2)or reg_q(1)or reg_q(0)=‘1’ then

reg_q<=reg_q-1;

end if;

elsif(reg_data<150)then

if(reg_q(2)and reg_q(1)

and reg_q(0)=‘0’ then

reg_q<=reg_q+1;

end if;

else reg_q<=reg_q;

end if;

end if;

q<=reg_q;

end process;

这里,第一个进程的作用是得到ccd输出电压的峰值,data为a/d转换的结果。第二个进程的作用是判断峰值是否在阈值范围内,以调整输出q,去控制多选一模块选择相应的时钟脉冲来作为driver的输入。

将设计好的各个模块应用原理图进行连接,然后进行器件选择,本设计选cpld芯片为epm7128slc84-15,然后编译,再进行仿真,即可所得,如图4所示的时序图。

观察该时序图中可以看到,如cpld的工作与最初的设计意图相符,即可将程序下载到epm7128slc-15芯片中。

实验结果

进行电路的原理图设计,制成电路板,与ccd传感器连接。将光束打在一反射物体上,反射光为ccd传感器所接受,然后调节光照强度,利用示波器观察sh,可以看到sh的频率随光强的增大而增大。

结束语

本文所设计的带的ccd驱动电路,可集成于一片cpld芯片中,较过去的由几十片芯片组成的驱动电路,其面积大大减小了,而且带有自动增益调整功能,对频率的选出采用逐次逼近的方式。采用适当的步长,就可以将sh的变化控制在比较合适的范围内,从而使峰值的收敛达到较好的效果。自动增益调整也避免了人工调整的麻烦和误差,提高了精度,降低了劳动强度。

猜您喜欢

贴片电阻体积小巧,丝印也相应精简,常常让人难以理解其代表的阻值。其实,掌握换算方法后,解读这些代码就变得非常简单。一般来说,三位数的丝印遵循以下规则:前两位数字...
2024-11-29 10:25:57

贴片电阻,就是表面贴装型的电阻器。是一种微型电子元件,应用于各种电子电路中。其主要功能是限制电流的流动,在电路中起到分压、分流、阻抗匹配等关键作用。 相比传统的...
2024-11-29 10:26:31

0 引言随着半导体技术的高速发展,大规模集成电路变得更加复杂,开发周期变得更长。FPGA由于具备可编程性,其广泛应用可以降低电路的开发成本。然而,单粒子翻转(...
2020-01-26 16:31:00

雪崩二极管是重要的半导体器件,应用于各种电子设备中。随着科技的不断进步和市场需求的日益增长,雪崩二极管的生产厂家也逐渐增多。选择合适的雪崩二极管厂家不仅能够保证...
2025-04-09 03:01:08

快速精准计算贴片电阻阻值!这款免费在线贴片电阻阻值计算器,无需下载安装,即可轻松上手。您只需输入电阻上的色环颜色或数字代码,系统便会自动计算出对应的阻值、精度等...
2025-04-14 15:04:06

护角是常见的保护性材料,应用于多个领域。在建筑行业中,护角用于保护墙角、门框等易受碰撞的部位,减少损坏和维护成本。在家具制造中,护角可以有效防止家具在搬运过程中...
2011-05-05 00:00:00

近年来,随着环保意识的不断提高和新能源技术的飞速发展,新能源汽车逐渐走入大众视野,成为了未来交通工具的重要发展方向。而在新能源汽车的核心技术中,电池管理系统(B...
2024-06-30 00:00:00

现代电子元器件的世界中,SC-74-6_2.9X1.6MM是一款备受关注的产品。它在各种电子设备中扮演着重要角色,尤其是在小型化和高效能的需求日益增长的背景下。...
2025-02-24 13:44:35

现代电子技术中,碳化硅(SiC)肖特基二极管因其卓越的性能而受到关注。与传统的硅二极管相比,碳化硅二极管在高温、高频和高压环境下展现出更好的工作特性,成为电力电...
2025-04-09 23:30:04

叉型端子是应用于电气连接的元件,独特的设计和优良的性能受到青睐。叉型端子的结构通常呈现出一个“叉”字形状,便于与电线或其电气设备进行快速、可靠的连接。安装过程简...
2013-08-17 00:00:00