0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于CPLD器件和ad9048转换器实现CCD自动增益系统的设计

电子设计 来源:电子元器件应用 作者:赵斌,刘春浩 2020-06-22 07:57 次阅读

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

实际测量工作中,由于工作环境、光照强度或被测物体的不同,会使得照射到被测物体表面的激光束的反射率变化比较大,因此,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的变化控制在比较合适的范围内,从而使峰值的收敛达到较好的效果。此外,自动增益调整也避免了人工调整的麻烦和误差,提高了精度,降低了劳动强度。

责任编辑:gt


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 转换器
    +关注

    关注

    27

    文章

    8624

    浏览量

    146856
  • cpld
    +关注

    关注

    32

    文章

    1247

    浏览量

    169200
  • 可编程逻辑
    +关注

    关注

    7

    文章

    514

    浏览量

    44072
收藏 人收藏

    评论

    相关推荐

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

    ccd(charge couple device)是一种电荷藕合式光电转换器件。在物体位移测量系统中,常常以ccd作为位移传感。当一束曝光
    发表于 07-15 17:36 1857次阅读
    基于<b class='flag-5'>CPLD</b><b class='flag-5'>器件</b>和tcd1201d芯片<b class='flag-5'>实现</b><b class='flag-5'>CCD</b><b class='flag-5'>自动增益</b><b class='flag-5'>系统</b>的设计

    232485转换器的软件问题

    的GPIO口要重新设置其他两个脚了,也将接收的中断函数中的判断回车换行代码也删去了)????????可以吗?不可以的话那是为什么?232485转换器,我们是应该根据232来编写程序吗?485会自动根据232电平来
    发表于 06-03 04:37

    为什么使用24位转换器来替代多个12位器件

      在涉及到温度测量、压力测量、工业流程控制的便携式医疗设备和工业自动化领域,12位转换器足以成为我们理想的选择。但是,如果考虑到整个多传感系统设计,那么24位
    发表于 12-14 16:59

    请问怎样去设计ccd自动增益系统

    ccd信号的自动增益调整ccd自动增益系统结构是由哪些部分组成的?怎样去设计ccd
    发表于 04-29 06:04

    数据采集系统自动增益控制的实现

    详细地介绍了一种由电压比较嚣、数模挟嚣、MCS一51单片机组成的可以实现自动增益控.j的放大嚣电路. 蛤出了详..I的电路圈和实现自动增益
    发表于 11-06 15:48 17次下载

    基于CPLDCCD驱动电路自动增益调整

    摘要本文介绍了一种基于CPLD并具有自动增益调整功能的CCD驱动电路。CCD输出的模拟电压值与其曝光时间有着密切的关系,根据这一原理,对CCD
    发表于 04-29 08:58 39次下载

    自动增益控制技术应用?

    【摘 要】 分析了自动增益技术原理,设计了应用于第三代移动通信模拟基站的自动增益控制电路。    关键词:自动增益
    发表于 05-10 19:53 4458次阅读
    <b class='flag-5'>自动增益</b>控制技术应用?

    音频信号自动增益控制系统

    音频信号自动增益控制系统
    发表于 09-08 17:20 2377次阅读
    音频信号<b class='flag-5'>自动增益控制系统</b>

    基于CPLDCCD驱动电路自动增益调整

    基于CPLDCCD驱动电路自动增益调整 ccd(charge couple device)是一种电荷藕合式光电转换器件。在物体位移测量
    发表于 12-14 14:04 898次阅读
    基于<b class='flag-5'>CPLD</b>的<b class='flag-5'>CCD</b>驱动电路<b class='flag-5'>自动增益</b>调整

    基于IEEE1149_1至IEEE1149_7转换器的研究与实现

    基于IEEE1149_1至IEEE1149_7转换器的研究与实现
    发表于 01-08 14:47 11次下载

    数模模数转换芯片AD9048

    数模模数转换芯片AD9048
    发表于 02-28 21:36 4次下载

    使用ADC0808转换器实现PWM实验的程序和工程文件免费下载

    使用ADC0808转换器实现PWM实验的程序和工程文件免费下载
    发表于 09-04 15:28 8次下载
    使用ADC0808<b class='flag-5'>转换器</b><b class='flag-5'>实现</b>PWM实验的程序和工程文件免费下载

    使用单片机实现PCF8591转换器应用的C语言实例

    本文档的主要内容详细介绍的是使用单片机实现PCF8591转换器应用的C语言实例免费下载。
    发表于 03-31 14:45 12次下载

    AD9048:单片8位视频A/D转换器数据表

    AD9048:单片8位视频A/D转换器数据表
    发表于 04-21 16:58 8次下载
    <b class='flag-5'>AD9048</b>:单片8位视频A/D<b class='flag-5'>转换器</b>数据表

    实现D-CAP3转换器的大占空比运行

    电子发烧友网站提供《实现D-CAP3转换器的大占空比运行.pdf》资料免费下载
    发表于 09-03 11:52 0次下载
    <b class='flag-5'>实现</b>D-CAP3<b class='flag-5'>转换器</b>的大占空比运行