zoukankan      html  css  js  c++  java
  • 用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的阻值,观测电压控制频率的现象。

    未完待续……

     

     

     

  • 相关阅读:
    IDEA导入项目后,导入artifacts 方法 以及 Spring的配置文件找不到的解决方法
    Tomcat8中如何内存溢出,如何增大内存?
    SpringSecurity-权限关联与控制
    学习黑马教学视频SSM整合中Security遇到的问题org.springframework.security.access.AccessDeniedException: Access is denied
    SSM项目中,关于Test类中不能使用Autowired注入bean的问题
    spring mvc绑定参数之 类型转换 有三种方式:
    maven缺失ojdbc6解决方案 :Missing artifact com.oracle:ojdbc6:jar:11.2.0.1.0问题解决 ojdbc包pom.xml出错
    学习SpringMVC 文件上传 遇到的问题,403:returned a response status of 403 Forbidden ,409文件夹未找到
    【转】Linux环境搭建FTP服务器与Python实现FTP客户端的交互介绍
    Protocol buffers--python 实践 简介以及安装与使用
  • 原文地址:https://www.cnblogs.com/helesheng/p/9833691.html
Copyright © 2011-2022 走看看