技术中心
 
 

L​a​b​V​I​E​W​测​量​信​号​时​间​间​隔​的​实​现

   日期:2014-09-30    
核心提示:以两路信号为例,详细阐述了以虚拟仪器方式,针对不同种类的信号输入硬件板卡,使用LabVIEW软件平台实现信号时间间隔测量的方法。详细解释了各种方法的特点、适用范围及具体实现。另外,也根据具体的测试程序,阐述了LabVIEW的数据从属思想及其在实践中的具体应用。

1 引 言

随着测试和计算机技术的发展,虚拟仪器获得了更为广泛的应用,虚拟仪器充分利用计算机的强大功能和丰富资源,在相应测试软件的配合下,可以灵活高效地开发仪器系统。虽然通用编码语言可以完成虚拟仪器软件的开发,但是美国NI公司开发的图形化编程语言LabVIEW作为虚拟仪器的专用软件开发平台,具有更为明显的优势。

2 LabVIEW测量两路信号时间间隔的方法

信号测量的要求多样,很多时候需要测量两路信号先后出现时的时间间隔,如图1中所示$t。使用虚拟仪器进行测量时,系统所采用硬件的特点,会很大地影响具体测试方法的选用及测试程序的实现,这点在使用LabVIEW环境开发测试程序时体现地非常明显。 本文以多种类型的硬件板卡为例,环境进行信号时间间隔测量的方法及具体实现。


图1 信号时间间隔示意图

2.1 基于NI公司系列板卡的测量实现方法

使用基于NI-TIOTM 技术的专用计数器/定时器系 列板卡进行信号时间间隔的测量时,用户可以通过调用LabVIEW函数库中的Two-SignalEdge-Separa-tionsMeasurement.vi函数,并配合其他函数编程实现测量。测量时可以使用硬件板卡上自带的高精度时钟作为计数器的时基信号,通过将图1所示的被测信号1与计数器板卡上的AUXLINE相连,使用信号1的下降沿启动计数器的时基脉冲计数;同时将被测信号2与计数器板卡上的GATE相连,由信号2的下降沿停止计数器。并由计数器的计数值计算出信号1与信号2的时间间隔,即$t=t2-t1。

虽然使用专用的计数器/定时器硬件板卡,可以方便的进行信号时间间隔的测量,但是很多板卡并不支持NI-TIO技术,如E系列的多功能数据采集卡采用DAQ-STC系统时钟控制芯片,LabVIEW并没有对应的函数完成信号时间间隔的测量,因此用户需要充分掌握硬件板卡的特点,并灵活应用LabVIEW编制相应的程序。

由于无法实现对信号时间间隔的直接测量,采用将数字通道与计数器组合使用的方法实现对信号时间间隔的测量。

将一路计数器与一路数字信号输入端口组合使用,由被测信号控制计数器的启动和停止,根据计数器所记录时基信号的脉冲个数,即可得到相应的时间值。测量时,用信号1的第一个下降沿(即t1时刻)控制计数器启动;用信号2的第一个下降沿(即t2时刻)控制计数器停止。处理计数器所记录的时基脉冲个数即可以求得信号1与信号2的时间间隔。

在程序中用EventorTimeCounterConfig.vi高级函数配置计数器,使用此函数可以配置计数器的工作方式。配置好的计数器在CounterStart.vi的作用下开始计数,并在信号2的下降沿到来时由CounterStop.vi停止计数,计数器的计数值则由CounterRead.vi读出。

将计数程序配以外围的控制线路,即可实现对信号时间间隔的准确测量。若用户需要更为精确的测量,可用两路计数器与数字口配合进行测量,另外,通过添加硬件资源,也可以测量多路信号之间的时间间隔。

2.2 基于第三方硬件板卡的测量实现方法

用户在组成系统时,经常会使用第三方的各种硬件板卡,由于LabVIEW中没有直接适用于这些硬件设备的库函数,因此不能利用已有的库函数编程量。但是,LabVIEW所具有的与其他语言的接口使其适用范围有了极大的扩展。通过CallLibraryNode和CodeInterfaceNode(CIN)两种高级函数,可以实现与其他编程语言的接口。用户可以在LabVIEW中使用CIN调用由C语言编写的代码,同时,也可以使用CallLi-braryNode调用标准动态链接库。大多数的第三方硬件板卡都提供标准动态链接库形式的设备驱动程序,因此,LabVIEW可以通过调用设备的动态链接库中相应的函数完成对硬件的操作,并测量信号的时间间 隔。

3 LabVIEW数据从属的体现和应用方法

LabVIEW在形式上是一种数据流语言,程序的执行是数据驱动的。由于用户可在一个框图程序上拥有任意数量的不同节点,并且所有节点可以并行执行,因此,LabVIEW编写的程序具有自然的并行执行特点,这是LabVIEW的很大优势。

程序的并行执行特点使合理控制数据流的流向变得非常重要。在LabVIEW的框图程序中,可以清楚看到各个节点之间由数据连线进行连接,通过这些数据连线,配置好的参数在各个函数间传递,控制程序中的数据流的流动。通过数据连线,既没有破坏LabVIEW程序并行执行的巨大优势,又最为简便有效的控制了各节点执行的顺序,这是对LabVIEW数据从属思想的很好体现和应用。对数据从属特点体现得最为明显的是程序框图中显示的差错I/O,这是将差错代码作为程序的一个公共线程,在用户设计的每个操作中添加一些内置的差错检验,既可以有效的控制数据流,又可以对每个节点的执行情况进行差错检验。用户可以在自己开发的子虚拟仪器函数中设置公共线程,并添加公共的输入/输出端子对,在不使用顺序结构的情况下控制程序的执行。

4 结束语

详细介绍了针对不同种类的硬件板卡,使用Lab-VIEW实现信号时间间隔测量的方法。实践显示本文介绍的方法可以准确、快速地完成对信号时间间隔的测量。

 
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢