LabVIEW通过NI-DAQmx模拟输入C系列进行基于信号同步

概览

CompactDAQ控制器和机箱支持多种含不同测量类型(例如加速度、温度、应变)的C系列I/O模块。在应用程序需要在测量间紧密同步时,CompactDAQ硬件与NI-DAQmx API配合使用,可为用户提供灵活的配置选项,以在多个C系列I/O模块之间实现所需同步水平。本文档重点介绍了可用于实现C系列I/O模块间同步的基于信号的选项。

内容

C系列模拟输入模块

C系列模拟输入模块可根据其同步情况分为4类:参考时钟、Delta-Sigma、慢采样和逐次逼近寄存器(SAR)。参考时钟模块使用内部板载时钟进行转换。该板载时钟可使用锁相环遵循另一个内部时钟,也可以遵循模块外部时钟。Delta-Sigma模块使用24位模数转换器,并使用模块内部时钟进行转换。慢采样模块使用24位模数转换器,并使用源自CompactDAQ控制器或机箱的外部时钟进行转换。最后,SAR模块使用逐次逼近型模数转换器(12位或16位)并使用外部时钟进行转换。实现同步的方法取决于模块所属的类别。模块分类列表可参见本教程的参考资料部分。本教程将同步定义为一种通过DAQmx驱动程序直接或间接使用的步骤或技术,用于同时开始测量并消除后续测量之间的漂移。虽然这些步骤旨在增加采样间的对齐,但其重点在于防止漂移。

Time-Based Synchronization vs. Signal-Based Synchronization

基于时间的同步和基于信号的同步是2种不同的同步范例,可用于将测量与C系列模块同步。本文主要讨论基于信号的同步。有关基于时间的同步的详细信息,请查看在LabVIEW中通过NI-DAQmx对模拟输入C系列模块进行基于时间的同步

  • 基于信号的同步描述了通过设备间路由的信号进行的同步。等待触发线上出现数字高电平的设备会使用基于信号的同步。 
  • 基于时间的同步描述了通过根据设备时间计划的事件进行同步。等待在本地时间下午5:00启动的设备使用基于时间的同步。
     

每种同步方法都有其优点,需根据应用具体情况选择合适的同步方法。

开始触发同步

本节概述了控制跨多个模块开始采集时的不同控制方法。因为可简单调整多个任务的开始时间,该方法是实现同步的最基本方法。

第一种方法使用软件函数,即在执行该函数时,将按照DAQmx任务的定义开始采集。当该函数在每个任务中相对同时执行时,在起始数据中会出现相似的同步级别。

如果使用硬件定时且未配置触发,则执行DAQmx开始任务VI时将启动采集。该VI使CompactDAQ控制器和机箱发送开始采集的数字脉冲。如果2个独立任务的DAQmx开始任务VI位于平铺式顺序结构的同一帧中,则2个任务的开始时间相同。但是,2个任务的确切开始时间的间隔取决于DAQmx开始任务VI执行之间的软件时间延迟,因此会因操作系统而异。该方法如图1所示,平铺式顺序结构同一帧中的DAQmx开始任务VI在运行时控制2个模拟输入任务的启动。

图1:在平铺式顺序结构中开始每个任务

为避免延迟,可使用DAQmx触发VI。该方法可将任务配置为在硬件触发时开始,而非通过调用软件函数启动。使用该功能同步任务时,一个任务用于发送触发,另一个任务用于接收触发。接收触发的任务将等待主任务发送触发后开始采集或生成。主任务在开始时会发送数字触发,并根据该信号启动所有配置为开始的任务。该方法如图2所示,在任务接受ai/StartTrigger之前调用DAQmx控制任务VI,以确保主任务保留ai/StartTrigger。 

图2:触发配置以启动2个任务

了解触发和定时术语之前,应先明确为任务保留的定时引擎。CompactDAQ控制器和机箱具有3个模拟输入定时引擎:ai、te0和te1。每个并发运行的任务都分配给不同的定时引擎,以控制采样时钟和触发。例如,将ai/StartTrigger分配给ai定时引擎。NI-DAQmx驱动程序自动将每个模拟输入任务分配给定时引擎,从ai开始,然后是te0,最后是te1。了解任务使用的定时引擎非常重要,因此将接收开始触发的任务设置为使用来自同一主任务定时引擎的信号。通过首先保留主任务,将此任务专门分配给ai定时引擎。现在,2个任务都可以设置为使用主任务的开始触发(ai/StartTrigger)。

采样时钟同步

使用上述技术,通过共享开始触发的同时启动任务。但是,该方法无法保证2个任务之间后续测量的定时不会相互漂移。2个任务可共享采样时钟,以便所有使用共享时钟的任务都可同时进行采样。如此一来,这2个任务就不会相互漂移。如前所述,紧凑型DAQ控制器和机箱具有3个模拟输入定时引擎,因此任务的保留顺序将决定每个任务使用的定时引擎。图3详细介绍了如何在任务之间共享采样时钟。 

图3:共享采样时钟和触发

由于所有任务共享相同的采样时钟,因此该技术要求2个任务以相同的采样率运行。该同步方法不适用于Delta-Sigma或参考时钟模块。因为这些模块使用模块板载时钟来采集测量结果。下文(多设备任务和多采样率任务)将讨论如何同步Delta-Sigma模块。

设备任务

为简化同步配置,NI-DAQmx可将来自不同模块的多个模拟输入通道用于同一任务中。如需将多个模块用于同一任务中,应在创建虚拟通道VI的物理通道输入端中指定不同模块间的多个通道。如果不同模块的通道应具有相同的测量配置(电压范围和单位)以及相同的定时和触发信息,则应将其包含在同一DAQmx创建通道中。

图4:在同一任务中使用不同的模块

如果模块进行不同的测量(如电压或电流)、需要不同的测量范围或需要使用不同的测量单位,请使用DAQmx创建虚拟通道VI的多个实例,如下所示。

图5:将多个DAQmx创建虚拟通道VI用于一项任务,以指定不同的测量类型

同一任务中可混合使用不同类型的模拟输入模块(SAR、Delta-Sigma、慢采样和参考时钟),并支持使用NI-DAQmx驱动程序将其同步。DAQmx可使用多设备任务以选择最佳的同步模块方法。下文介绍了不同场景以及多设备任务如何同步测量。

2个SAR/慢采样模块-当2个SAR模块、SAR模块和慢采样模块或2个慢采样模块用于同一硬件定时任务中时,DAQmx驱动程序在2个模块之间共享同一机箱或控制器的采样时钟和开始触发。对于SAR和慢采样模块配置,数据返回的最大速率并非由慢采样模块决定。驱动程序将返回慢采样模块的重复采样,以支持SAR模块以尽可能最快的速率运行。

2个Delta-Sigma模块-当2个Delta-Sigma模块用于同一硬件定时AI任务中时,DAQmx驱动程序在所有模块之间共享最快的主时基、基于相同的同步脉冲重置其模数转换器、共享开始触发并调整重置时间。主时基是Delta-Sigma模块用于采集测量的内部12.8 MHz或13.1 MHz时钟。cDAQ-9185或cDAQ-9189(时间感知机箱)的主时基默认来自机箱,而非具有最快主时基的模块。

2个参考时钟模块-当2个参考时钟模块用于同一硬件定时AI任务中时,DAQmx驱动程序将主模块的参考时钟共享给另一个模块、使用相同的同步脉冲重置其模数转换器、共享开始触发并调整重置时间。参考时钟是后续模块锁定的内部主时基。时间感知机箱的默认参考时钟来自机箱而不是主模块。

参考时钟模块和Delta-Sigma模块-当参考时钟模块和Delta-Sigma模块用于同一硬件定时AI任务中时,DAQmx驱动程序将参考时钟模块的参考时钟路由至Delta-Sigma模块的主时基。2个模块均从机箱/控制器接收同步脉冲,该脉冲将重置各自的模数转换器并共享开始触发,同时调整每个模块的重置时间。在时间感知机箱中,参考时钟模块的参考时钟不与Delta-Sigma模块的主时基共享,而是将参考时钟路由至参考时钟模块,将主时基路由至Delta-Sigma模块。参考时钟模块(NI 9775)与Delta-Sigma模块用于同一任务时,无法使用记录模式。

Delta-Sigma/参考时钟和SAR/慢采样-当SAR或慢采样模块和Delta-Sigma或参考时钟模块用于同一硬件定时AI任务中时,DAQmx驱动程序将Delta-Sigma模块或参考时钟模块配置为导出其内部采样时钟,以供SAR或慢采样模块使用。内部采样时钟与Delta-Sigma模块配置的数据速率相同

其中
     fs是数据速率
     fm是每个模块规格表中指定的内部主时基
     n/a/b是除数。

参考时钟模块的内部采样时钟可在设备的数据表中找到。驱动程序将返回慢采样模块的重复采样,从而使Delta-Sigma或参考时钟模块以更快的速度运行。参考时钟模块(NI 9775)与SAR或慢采样模块用于同一任务中时,无法使用记录模式。  

采样同步

在一个任务中引用多个模块时,将对所有通道应用相同的采样率。但是,有些应用可能需要以不同的速率同步。

2个SAR模块-除共享开始触发外,无需执行任何其他操作即可同步CompactDAQ机箱或控制器中不同采样率的2个SAR模块或慢采样模块。每个模块使用的采样时钟来自同一信号。因此,如果模块位于同一机箱,则测量将同步。

2个DSA模块-如需同步2个不同采样率的Delta-Sigma模块,可将任务设置为共享公共主时基、同步脉冲(sync pulse)和开始触发。如图6所示,主时基时钟从一个模块路由至另一模块。请注意,NI DAQmx定时属性节点采样时钟.时基.同步所指的12.8 MHz或13.1 MHz信号与使用说明及规范/数据表中列出的主时基相同。该时钟也称为过采样时钟,因为生成一个采样需要该时钟的多个时钟滴答。

图6:共享过采样时钟

使用Delta-Sigma模块的设备具有自由运行的模数转换器。共享主时基可确保测量派生自同一时钟,但模数转换器的精确启动会产生未知的相移。接下来共享同步脉冲。同步脉冲用于在模数转换器/数模转换器开始采集或生成采样前对其进行重置。如果不使用此信号重置模数转换器/数模转换器,测量将不同步。下文展示了支持共享过采样时钟和同步脉冲的属性节点。

图7:共享过采样时钟、开始触发和同步脉冲。

上述配置将同步脉冲从一个任务路由到另一个任务,具体取决于运行速度更快的任务。对于多采样率配置,使用运行速度较慢的任务的采样时钟来触发运行速度较快的任务。其原因在示例中进行了说明。

还需要考虑的因素是每个模块所需的重置时间。重置时间是Delta-Sigma模块模数转换器从接收同步脉冲到开始采集数据之间的延迟。不同型号的Delta-Sigma模块重置时间可能不同。应考虑该重置时间,以确保每个设备都已完成重置序列并同时开始采集或输出采样。为适当考虑已有的不同重置时间,需检查每个模块所需的重置时间,如有必要,可为重置时间较短的模块添加延迟。因此,每个模块的重置时间与延迟之和应相同。

重置模数转换器所需的时间可通过DAQmx定时属性节点同步脉冲.重置时间确定。为保证所有模数转换器同时结束重置周期,应对2个任务的重置时间进行比较。取重置时间最长的任务,并减去重置时间较短任务的重置时间。结果是一个任务已开始采集数据而另一个任务仍处于重置周期中。为解决该延迟问题,使用另一个NI-DAQmx属性,即同步脉冲.重置延迟。该属性支持延迟发送至每个模块的同步脉冲。如前所述,重置时间是模数转换器接收同步脉冲与开始采集数据之间的延迟。为充分利用该属性,应将该属性设置为模块最长重置时间与该模块重置时间之差。这将使较短重置时间的模块的同步脉冲发生漂移,从而确保具有慢速和快速重置时间的2个模块同时结束其重置序列。以下代码详细介绍了如何获取重置时间,以及如何确定合适的重置延迟。  

图8:同步脉冲重置时间查询及重置延迟计算

NI-DAQmx属性节点同步脉冲.重置延迟的最大输入为0.013秒,并不适用于模块重置延迟值差异较大的情况。请注意在接收主时基的任务上轮询同步脉冲.重置时间时属性节点的顺序。该值将随着13.1 MHz时基或12.8 MHz时基变化。因此,在告知模块主时基速率后,调用此任务的同步脉冲.重置时间非常重要。

搜索属性同步脉冲.重置延迟和同步脉冲.重置时间时,还会出现同步脉冲.同步时间和同步脉冲.开始最小延迟。由于这4个属性名称相似且位置接近,因此会经常遇到这2个属性,但多数开发人员不会使用它们。同步脉冲.同步时间等于SyncPulseResetTime y与同步脉冲.重置延迟输入值的和。将同步脉冲.同步时间的值四舍五入到最接近的毫秒。同步脉冲.开始最小延迟是从发出同步脉冲到主任务发出开始触发之间的时间。除非有明确设置,否则该属性等于同步脉冲.同步时间。

2个参考时钟模块-如需同步2个不同速率的参考时钟模块(如2个DSA模块),可将主任务的参考时钟、同步脉冲和采样时钟分配给其他任务。请注意,NI DAQmx定时属性节点参考时钟.同步是指数据表中列出的相同内部主时基。

图9:同步2个参考时钟模块

Delta-Sigma模块和SAR/慢采样模块-如需同步Delta-Sigma模块和SAR/慢采样模块,可与SAR/慢采样模块共享Delta-Sigma模块的主时基和采样时钟。由于SAR/慢采样模块无法以12.8 MHz或13.1 MHz的频率进行采集,因此Delta-Sigma的主时基与SAR/慢采样模块共享,如图10所示。SAR/慢采样模块的采样时钟通常派生自CompactDAQ机箱或控制器的板载时钟。该方法使用Delta-Sigma模块的12.8 MHz或13.1 MHz时钟替换机箱或控制器时钟。  

图10:同步Delta-Sigma模块和SAR/慢采样模块

参考时钟模块和SAR/慢采样模块-如需同步参考时钟模块和SAR/慢采样模块,请与SAR/慢采样模块共享参考时钟模块的参考时钟和采样时钟。由于SAR/慢采样模块无法以12.8 MHz进行采集,因此参考时钟模块的参考时钟与SAR/慢采样模块的主时基共享。SAR/慢采样模块的采样时钟通常派生自CompactDAQ机箱或控制器的板载时钟。该方法使用来自参考时钟模块的内部主时基替换路由至SAR/慢采样模块的机箱或控制器时钟。  

图11:将参考时钟模块与SAR/慢采样模块同步

任务

某些测量应用需要使用混合测量和分布式系统,这可能需要多个CompactDAQ机箱或控制器。多机箱同步有3种主要方法。

使用BNC/SMB连接器或数字模块实现多机箱同步-实现多机箱同步的一种方法是使用cDAQ-9178、cDAQ-9188、cDAQ-9188XT和cDAQ-9179机箱中配备的2个BNC连接器,或使用CDAQ-9132、cDAQ-9133、cDAQ-9134、cDAQ-9135、cDAQ-9136、cDAQ-9137、cDAQ-9185和cDAQ-9189中的SMB连接器来导入和导出定时信号。

图12:NI cDAQ-9178具有2个BNC端口,可用于导入或导出定时和触发信号。

可连接不同机箱的BNC或SMB接线端以路由触发和定时信号。使用DAQmx驱动程序,可通过NI-DAQmx导出信号属性节点,以从主任务导出信号。在任务中(在另一个机箱中),将采样时钟和开始触发配置为使用BNC或SMB接线端接收信号。

图13:配置CompactDAQ机箱上的BNC端口

并行/相关数字量IO模块还可用于通过机箱接收或发送触发和定时信号。当NI Compact DAQ控制器和机箱上不具备足够的BNC或SMB端口或信号带宽超过BNC或SMB连接器的带宽(1 MHz)时,首选数字I/O模块。

使用NI 9469进行多机箱同步-上述配置机箱BNC连接器或并行/相关数字IO模块的定时和触发信号的方法适用于多种应用。但在下列情况下,建议选择使用NI 9469的替代方案:

  • 机箱间距较远
  • 输出信号带宽较高
  • 同步的拓扑较复杂
     

NI 9469可简化不同机箱拓扑中的信号布线和编码,并同步SAR、慢采样、Delta-Sigma、数字输入和输出、模拟输出模块。NI 9469卡之间的连接可在Measurement & Automation Explorer (MAX)中进行配置,如下图所示。关于配置NI 9469的详细信息,请参见文章结尾的相关链接部分。 

图14:在Measurement & Automation Explorer中配置NI 9469

在MAX(使用NI-DAQmx 9.9或更高版本)中配置NI 9469后,可将不同机箱中的任何模块添加至同一任务,从而大大简化同步所需代码。下图展示了该方法如何实现多机箱同步。

图15:MAX中配置NI 9469的多机箱同步代码

在不同机箱中同步模块的后台过程与多采样率任务和多设备任务部分所述的方法类似。该方法虽然可用于自动同步多机箱模块,但存在局限性,相关内容已记录在文档中。

总结

本教程介绍了多种同步选项。首先,通过软件定时命令开始任务。可通过在任务间共享硬件触发来提高同步水平,并通过在任务之间共享采样时钟来防止任务之间出现漂移。以相同速率同步模块时,可通过引用同一任务中的多个模块来简化编程。如果所用模块需要不同的采样率,则必须根据该模块类型做特殊考虑。如果所用模块需要不同的速率,则必须根据该模块类型做特殊考虑。上述选项代表了在各种应用定时要求范围内基于信号同步C系列模块的几种不同方式。

Was this information helpful?

Yes

No