• 用NI的数据采集卡实现简单电子测试之5——压控振荡器的测试


    本文从本人的163博客搬迁至此。

    为了展示连续信号采集的方法,以其外部触发采集功能。我用运算放大器实现了一个最简单的低频压控振荡器(VCO),作为USB-6009采集的信号源。在LabVIEW下编写的应用软件的控制下,USB-6009同时采集VCO产生的两路模拟信号。在波形图控件中可以比较、观测两路信号的幅度和相位关系。另外,本例还将涉及USB-6009的外部触发采集功能的编程方法。

    一、压控振荡器电路

    压控振荡器是指输出频率是输入电压函数的振荡器。我用运算放大器实现的低频压控振荡器如下图所示:

    图1 用运放实现的压控振荡器(VCO)

    第一眼初看图1所示的电路,初学者一般觉得比较复杂,难以下手分析。分析这样的复杂电路,一种可行的方法是从其中简单的部分入手:    

    1、运算放大器OPS1A是一个电压跟随器,其作用是降低左侧可变电压生成电路(由RS10、RS11、R_CTL和CS1构成)的输出阻抗,从而提供控制频率的电压VCO。

    2、运算放大器OPS2B用于构成只会比较器。当其输出高电平时,同相端的比较电压在HALF_VCC(大小为VCC/2)到输出高电平的1/3处;当其输出低电平时,同相端的比较电压在HALF_VCC到输出低电平的1/3处。假设运放的输出高低电平分别为VL和VH,其滞回区间在VL到VH的1/3到2/3之间。

    3、OPS2B的输出还控制了NPN晶体管VN的开关状态。当VN被打开时,由于运放OPS2A的同相端和反相端的虚短,两端的电压都必须为VCO/2(RS1和RS2均分了VCO的电压)。所以必然有恒定的电流(VCO/RS4 - VCO/RS3)经过反馈电容CS2流入电阻RS4,才能保证反相端的电压恒定为VCO/2。在恒定电流的作用下,CS2右侧的电压将均匀上升到OPS2B构成的滞回比较器区间的上限——2/3高电平,此后滞回比较器将立即翻转输出低电平,并关闭晶体管VN。此时同样为使OPS2A的同相端和反相端“虚短”,必然有恒定的电流(VCO/2RS3)流入反馈电容CS2。在此恒定电流的作用下,CS2右侧的电压将均匀下降到OPS2B构成的滞回比较器区间的下限——1/3高电平,此后滞回比较器将再次翻转输出高电平,并打开晶体管VN回到初始状态。

    上述过程周而复始重复的结果是:

    1、从AI6得到幅度为1/3~2/3*(VH-VL)的三角波,上升时间为:

    t1 =C*U/I=CS2*(VH-VL)/3*(VCO/RS4 - VCO/RS3)

    下降时间为:

    t2 =C*U/I=CS2*(VH-VL)/3*( VCO/2RS3)

    由以上两式可知,三角波频率与VCO电压大小呈负线性关系。

    2、从AI2得到的是幅度为VL至VH的方波,其频率和相位与AI6输出的三角波完全对应。

    二、外部触发电路

    为演示USB-6009的外部触发功能,使用滞回比较器输出的AI2信号作为外部触发信号源。但为防止USB-6009的触发输入引脚PFI0对压控振荡电路的影响(造成VN无法关闭),我在AI6后增加了一级由三极管构成的缓冲,如图2所示。

    图2 数据采集的外部触发缓冲电路

    编程时应注意这级缓冲具有反相的作用。

    三、测试程序

    测试程序的编写思路是:

    1、以同样的采样率连续采集一段数据;

    2、读取这段数据,并将它们显示在波形图控件上;

    3、延时一段固定时间,以便用户看清波形,返回第一步并重复。

    程序框图如图3所示: 

    图3 采集并显示压控振荡器的程序框图 

    对于外部触发的采集,程序框图如图4所示:

    图4 使用外部触发的采集程序框图 

    图4中增加了DAQmax开始触发(数字边沿)函数来实现外部触发输入功能。

    四、程序运行结果

    打开图3所示的测试程序,得到图5所示的测试波形图。

    图5 测试压控振荡器的结果

    可以看到测试得到的三角波和方波的幅度、相位等参数,与上面理论分析得到的结果完全一致。 还可以改变电位器R_CTL的阻值,观测电压控制频率的现象。

    未完待续……

     

     

     

  • 相关阅读:
    Go 语言简介(下)— 特性
    Array.length vs Array.prototype.length
    【转】javascript Object使用Array的方法
    【转】大话程序猿眼里的高并发架构
    【转】The magic behind array length property
    【转】Build Your own Simplified AngularJS in 200 Lines of JavaScript
    【转】在 2016 年做 PHP 开发是一种什么样的体验?(一)
    【转】大话程序猿眼里的高并发
    php通过token验证表单重复提交
    windows 杀进程软件
  • 原文地址:https://www.cnblogs.com/helesheng/p/9833691.html
Copyright © 2020-2023  润新知