【NI-DAQmx入门】LabVIEW中DAQmx同步

news/2024/2/23 13:39:50/文章来源:https://blog.csdn.net/weixin_43894265/article/details/133968210

1.同步解释

1.1 同步基础概念

        触发器:触发器是控制采集的命令。您可以使用触发器来启动、停止或暂停采集。触发信号可以源自软件或硬件源。

        时钟:时钟是用于对数据采集计时的周期性数字信号。根据具体情况,您可以使用时钟信号直接控制数据采集或作为参考时基来导出另一个时钟。

        异步输入:异步输入是指其与用于接收输入的时钟信号的时序关系未知的输入,例如设备的板载时钟接收的外部数字触发器。其他示例包括软件命令或模拟触发事件。可以在时钟边沿之前或之后检测异步输入。如果它发生得太靠近时钟边沿,那么您无法判断它是在时钟边沿之前还是之后检测到的。

        当单个设备接收输入时这不是问题。然而,如果相同的异步输入被馈送到多个设备,那么它们可能会检测到不同时钟沿上的输入变化。这会导致设备的操作不同步,即使设备共享相同的时钟。解决这个问题的方法是使用主从同步。

        主从同步:主从同步在 NI-DAQmx 文档中也称为触发偏差校正。该方法的工作原理是指定一个主设备接收异步触发输入。然后,该主设备以同步方式驱动所有从设备的触发器。从主设备驱动到从设备的触发与公共定时参考时钟同步。因此,所有设备都可以在参考时钟的下一个边沿可靠地检测到触发事件。

        以下波形说明了这个概念:

        这导致主设备和从设备的精确同步。该方案的一个副作用是,它会导致重新同步和发送触发所需的一到两个参考时钟周期的延迟。

        请注意,用于主从同步的参考时钟取决于应用。在某些情况下,背板 PXIe_Sync100 信号用于此目的。在其他情况下,可以使用由所有正在同步的设备共享的不同公共参考(例如,采样时钟)。

1.2同步规划

        精度和距离之间的这种权衡提出了一个问题:要获得高精度的同步,您必须拥有具有高频率和精度的时钟,而随着机箱或节点之间的距离增加,时钟的精度可能会降低。在大多数系统中,您都知道必须设计的距离。您可能有一个节点、一个位置上的一组节点或分布在较远距离上的多个节点。基于此,您必须决定是否可以在这个距离上成功传输时钟和触发信号,而不会造成太大的性能下降。如果不能,则必须使用时间参考来中继时钟域信息。图 1 显示了物理连接和时间参考同步系统的精度与距离关系图。

        精度与距离图显示,随着节点之间的距离增加超过某个点,您无法再将每个节点的时钟线和触发线物理连接在一起。您需要另一种方法将时钟和触发信号从主节点传送到系统中的其他从节点。本教程稍后将讨论这种方法,称为时间参考同步

1.3物理连接系统

        现在考虑精度与距离图的黄色部分。该区域代表物理连接的同步系统可实现的精度。由于时钟和触发信号通过电缆进行物理连接,因此与后面讨论的时间参考系统相比,它们可以实现更高的精度,并且不易受到时钟信号问题(例如时钟偏差和时钟漂移)的影响。这种类型的同步系统的操作基本上很简单。主节点创建一个时钟,然后通过布线与所有其他节点共享该时钟。当主节点上启动数据采集等操作时,与其他节点共享触发信号以开始操作。下图显示了物理连接系统的示例,以及时钟和触发线。

1.4时间参考系统 

        精度与距离图的蓝色部分显示了通过时间参考同步可实现的精度。在时间参考系统中,GPS 等协议用于在比电缆传输更远的距离上传送时间信息。每个系统节点使用该时间信息来确定当前时间并基于该参考创建时钟。您可以使用未来时间事件(即达到定义的时间后开始操作)来同时触发所有节点上的操作。下图显示了一个时间参考同步系统。

        通过时间协议可视化时间数据传输的另一种方法是钟楼/手表类比。将主节点视为钟楼,从节点视为小镇上的人们。镇上的每个人都必须在早上 8:00 上班,并且都有自己的手表。但每个人的手表可能不同,并且可能会混淆当前正确的时间。如果每个人都看着钟塔并将他或她的手表重置或同步到钟塔时间参考,那么每个人都有正确的时间并准时到达工作场所。在时间参考系统中也会发生相同的时间信息传递。

1.4.1时间协议

        时间协议是用于远距离传输时间信息的工具。

        每秒脉冲 (PPS) – PPS 是最简单的同步形式,是每秒输出一次高逻辑电平的信号。它不包含有关一天或一年中特定时间的信息;它每秒仅输出一次脉冲。脉冲宽度一般为100毫秒,但许多接收器允许用户指定脉冲宽度,只要小于一秒即可。下图显示了 PPS 信号。

        IRIG-B – 该协议用于传输时间数据。该信号与 PPS 类似,但 IRIG-B 发送的不是每秒一次的单个脉冲,而是发送构成一秒长的数据帧的编码位。该数据帧显示以秒、分钟和天为单位的时间信息,并提供状态字节。IRIG-B的同步精度为数十纳秒。

        下图 显示了如何使用 IRIG-B 发送时间。整个帧只有一秒长。它基于脉宽调制 (PWM),其中 25% 占空比代表 0,50% 占空比代表 1,75% 占空比代表暂停 (P),用于将脉冲分隔几秒,分钟、天和状态。两个暂停周期(图中的 R)表示时间戳的结束。

        IEEE 1588 – IEEE 1588 是一种基于数据包的协议,可以通过以太网使用。它定义了一组标准的时钟特性和每个特性的值范围。通过运行称为最佳主时钟(BMC)算法的分布式算法,网络中的每个时钟都可以识别最高质量的时钟;这是具有最佳特性的时钟。

        最高级别的时钟称为“大师”时钟,它同步所有其他“从”时钟。如果主时钟从网络中删除,或者其特性发生变化而不再是“最佳”时钟,BMC 算法会帮助参与时钟自动确定当前最佳时钟,该时钟将成为新的主时钟。该算法提供了一种容错且无需管理的方式来确定用作整个网络的时间源的时钟。

        主时钟定期发出“同步”数据包,其中包含数据包离开主时钟的时间时间戳。主大师还可以发出包含同步数据包的时间戳的后续数据包。使用单独的后续数据包允许大师在无法预先准确知道数据包的出发时间的网络上准确地为同步数据包添加时间戳。

        全球定位系统 (GPS) – GPS 是一种射频编码信号,通过三角测量卫星网络提供时间、位置和速度信息。该时间参考信号在全球范围内可用,可提供数十到数百纳秒的同步精度。要使用此信号,您​​需要具有清晰天空视野的 GPS 天线。

1.5通道扩展实现同步的一般规则

所有设备

  • 任务中的所有通道必须是同一类型设备的模拟输入通道(即所有 DSA 设备、或所有 S 系列设备、或所有 X 系列设备、或所有 CompactDAQ 设备),但 SC Express 除外,它可以与某些 X 系列设备或某些 DSA 设备结合使用。
  •  输入通道名称时,请遵循 指定物理通道字符串的 NI-DAQmx 语法。例如,冒号可用于表示通道范围,逗号可用于分隔各个通道或通道范围。

PXI 设备

  • 这些设备必须全部位于一个机箱中,并且必须在 NIMeasurement & Automation Explorer (NI MAX) 中识别该机箱。 

PCIe 设备

  • 您必须使用 RTSI 电缆来连接设备,并且必须在 MAX 中识别该电缆。

DSA 和 SC Express 设备

  • 如果通道扩展任务仅包含 PXI-447x 设备的通道,则其中一个 PXI-447x 设备必须位于 PXI 插槽 2 中。 
  • 如果任务包括来自 PXI-4461/4462 和 PXI-447x 设备的通道,则 PXI-4461/4462 设备必须位于 PXI 插槽 2 中。
  • NI-DAQmx 考虑了具有某些资格的设备之间的滤波器延迟差异:
    • NI 4461 和 4462 设备缺乏补偿滤波器延迟的能力。
    • 对于所有其他设备,如果任务包括来自不同设备系列的通道,NI-DAQmx 将计算设备之间的滤波器延迟差异。
  • 在满足以下条件的情况下,任务可以包括来自多个 DSA、SC Express 和 X 系列设备的通道:
    • 这些设备必须位于单个机箱中,并且该机箱必须在 NI MAX 中被识别。
    • 对于两个以上设备的组,每个设备必须与其他设备兼容。有关特定版本的 NI-DAQmx 支持的 DSA、SC Express 和 X 系列通道扩展设备组合的详细信息,请参阅DSA、SC Express 和 X 系列多设备任务 - NI-DAQmx 帮助。例如,以下组中的设备可以进行通道扩展,因为所有这些设备都与组中列出的所有其他设备兼容:
      • NI 4300/4353/4357 和 PXIe X 系列设备
      • NI 4330/4331 和 NI 449X 设备
      • NI 4330/4331/4339 和 NI 4464 设备

CompactDAQ 设备

  • 所有模拟输入 CompactDAQ 模块以及大多数模拟输出和数字 I/O CompactDAQ 模块都能够将通道组合到单个 DAQmx 任务中。 
  • 单个 DAQmx 任务中涉及的所有 CompactDAQ 设备必须位于同一机箱中,除非您要在具有 9469 模块的机箱之间进行同步。您必须至少拥有 DAQmx 9.9 才能执行此操作。如果两个机箱都与 TSN 兼容,则存在另一个例外。您可以在本文中找到有关 TSN 技术的更多信息:设计基于以太网的分布式 TSN 测量系统
  • 任务中的所有通道必须属于同一类型(即所有模拟输入模块、所有模拟输出模块或所有数字 I/O 模块)。
  • 任务数量受机箱、使用的模块和任务类型的限制。 有关详细信息,请参阅 CompactDAQ 机箱 Gen II 上的并发任务数。

2.C系列模块之间同步

2.1通过多定时擎实现多采样率

        A/D转换器是DAQ系统中的重要组成部分,它需要时钟信号来指定何时执行采样。不同的系统使用共享同一时钟的多个A/D转换器,可实现所有通道的同步测量。CompactDAQ系统在定时引擎方面具备灵活性优势,其效果比标准同步更好。

        CompactDAQ机箱包含三个模拟输入定时引擎。这使得程序员可以将所有模拟输入分为最多三个不同的组(也可称为任务):

  • 每个任务可以按不同的速率运行,如图4所示。对于需要同时进行温度测量(通常速度较慢)与声音与震动测量(通常速度较快)的系统,这是理想的选择。
  • 这三个任务是独立运行的,可以通过程序中单独的循环或线程执行,并且可以同时开始。
  • 每个任务的所有通道都是自动同步的。当多路复用模块与同步采样模块接入同一任务时,会同步多路复用模块中的第一个通道,然后依次扫描多路复用模块中的后续通道。
  • 单个任务中的所有通道(包括同步通道和多路复用通道)均按指定的采样速率返回结果。
  • 所有模块可被配置在一个任务中,这样可实现所有通道与同一时钟保持同步。

        CompactDAQ可以支持同步执行最多七个任务。用户可尝试使用下列任务选项:

  • 与最多三个定时引擎同步的模拟输入
  • 与指定定时引擎同步的数字输入
  • 与指定定时引擎同步的数字输出
  • 与指定定时引擎同步的模拟输出
  • 用于正交​编码​器、​PWM、​事件、​周期​或者​频率​测量​的​计数​器/​计数​器​任务​(CompactDAQ机箱包含4个内置计数器/定时器,可以通过数字模块接入)

        由于包含指定时钟源,数字和模拟输出任务可以独立运行,无需彼此共享时钟信号。这使得编程更加方便直观。指定时钟源可与机箱的其他子系统共享。例如,通过共同数字输入时钟和模拟输出时钟,以利用数字输入的上升/下降沿生成电压信号。

        多定时引擎以及切换和共享时钟源的能力,使得CompactDAQ比大多数现成即用的DAQ系统更具灵活性。

        搭载NI-DAQmx的CompactRIO控制器在定时引擎方面有更高的灵活性,让用户可以在控制器的每个插槽上使用单独的定时引擎。用户可以在每个控制器上使用最多8个定时引擎,灵活配置这8个定时引擎,并通过NI-DAQmx对8个模拟输入任务编程,使这些硬件定时任务以各自的采样率同步运行。 

2.2C系列模块的分类

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

2.3基于信号的同步方法

  • 基于信号的同步 描述了通过设备之间路由的信号进行同步。等待触发线上出现数字高电平的设备正在使用基于信号的同步。 

2.3.1开始触发同步

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

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

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

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

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

2.3.2采样时钟同步

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

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

2.3.3多设备任务

        当任务中包含来自多个C系列模块的通道时,NI-DAQmx将自动同步这些模块。如符合以下条件,一个任务可包含多个C系列模块的通道:

  • 任务中的所有通道为同一I/O类型。只有支持多计数器任务的设备才支持多个计数器I/O通道。
  • 如任务中包含来自C系列Delta-Sigma设备的通道,必须考虑设备间的滤波器延迟差别。该延迟也称为输入延迟。关于延迟值,请参考设备的产品规范。
  • 所有模块必须位于同一个NI CompactDAQ机箱,或符合多机箱设备任务的条件。

注:

  • 仅包含16位或更低精度AI模块的AI任务将使用带24位AI模块任务的一半的USB带宽。
  • 根据任务中是否存在24位AI模块,C系列AI任务返回的原始数据格式将有所不同,并且可能与任务中通道的顺序不匹配。相对于原始数据,换算后或换算前的数据更适用于NI CompactDAQ机箱。
  • NI 9775的采集模式取决于任务中其他模块。如任务仅使用NI 9775模块,所有模块以记录模式运行。如任务同时使用NI 9775模块和其他类型模块,NI 9775以连续模式运行。

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

        如果模块进行不同的测量(如电压或电流)、需要不同的测量范围或需要使用不同的测量单位,请使用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.3.4多速率同步

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

        2个SAR模块

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

        2个DSA模块

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

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

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

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

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

 

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

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

        2个参考时钟模块

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

        Delta-Sigma模块和SAR/慢采样模块

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

 

        参考时钟模块和SAR/慢采样模块

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

 

2.3.5多机箱任务

        使用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连接器来导入和导出定时信号。

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

并行/相关数字量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的详细信息,请参见文章结尾的相关链接部分。 

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

 

 

2.4基于时间的同步方法 

        基于时间的同步描述了通过根据设备时间计划的事件进行同步。等待在本地时间下午5:00启动的设备使用基于时间的同步。

2.4.1多机箱同步        

        cDAQ-9185、cDAQ-9189、cRIO-904x 和 cRIO-905x 型号为 Delta Sigma 和参考时钟模块提供三种不同的时钟(10 MHz、12.8 MHz 和 13.1 MHz)。在这些机箱中使用 Delta Sigma 或参考时钟模块时,DAQmx 将默认使用机箱时钟来采集或生成信号,而不是使用模块上的时钟。

        当时间感知机箱共享同一个主时钟时,机箱上的所有时钟都会同步到该主时钟。因此,跨多个机箱的时钟彼此同步。此过程自动完成,无需用户输入。由于机箱中的每个模块将默认使用机箱背板时钟来生成或采集,因此每个模块使用的时钟(主时基、采样时钟和/或参考时钟)都将同步。要同步机箱之间的模块采集或生成,请确保同时发送启动触发器。

        在同一任务中使用多个设备将自动补偿模块之间的时序差异,这极大地简化了任务设置,并使该配置非常适合中小型采集。有一些注意事项:

  • 在同一任务中拥有大量通道将导致任务设置时间更长,因为所有通道都配置为同时启动。设置时间启动触发器时必须考虑此额外的设置时间,否则可能会出现错误 -209840。
  • 在同一任务中使用多个机箱会降低任务的可靠性,因为与任务中的任何机箱失去联系都会导致任务停止。为了获得更稳健的配置,请为每个机箱使用一项任务

 2.4.2多速率同步

        对于某些模块而言,将来自不同机箱的所有模块放置在一项任务中以实现同步并不是一种可行的解决方案 , 并且会将所有模块锁定到单一采样率。要在这些情况下同步模块,请使用单独的任务,为每个任务配置启动触发器,并将启动触发器设置为同时开始。共享开始时间触发器不会补偿前端架构的差异,因此以这种方式获取的数据中可能存在偏移。补偿技术将在下面的示例中讨论。

2.4.3 具有混合模块的多机箱、多速率同步(仅支持NI-DAQmx 19.5以上版本)

        NI-DAQmx 19.5引入了 第一个采样时钟时间:偏移 属性,大大简化了具有不同采样率或不同前端架构的多个模块的同步。此属性允许您通过将任务的第一个采样时钟时间偏移指定量来补偿滤波器延迟或其他因素。使用此属性可以避免使用复杂的方法,例如以下章节中针对旧版本的 NI-DAQmx 所描述的方法。

        为了更好地理解此属性,请考虑具有不同前端架构的两个任务需要同步的情况。一个任务包含 DSA 模块,另一个任务包含 SAR 模块。SAR 模块将在任务启动时立即提供可用的样本,但 DSA 模块将在任务启动时间和第一个样本可用时之间存在过滤延迟。通过简单地以相同的开始时间和速率并行运行这些任务,您会注意到每个任务的数据之间存在时间偏移。

        通过将 “第一个采样时钟时间:偏移” 属性设置为 DSA 模块的滤波器延迟,第一个采样时钟脉冲的时间将偏移滤波器延迟时间。这可以补偿与任务设置的其余部分一致的滤波器延迟,从而允许 DSA 模块在 SAR 模块采样的同时获得可用的滤波数据,并消除滤波器延迟对测量的影响。有关如何使用此属性的示例,请参阅下面的示例代码。

2.4.4 具有混合模块的多机箱、多速率同步(NI-DAQmx 18.6至19.5版本) 

        当处于时间感知机箱中时,Delta Sigma 和参考时钟模块将默认为可用的板载(13.1 MHz、12.8 MHz 和 10 MHz)机箱时钟。因此,当尝试在单个 cDAQ-9185 或 cDAQ-9189 中执行多速率同步时,您只需共享启动触发器和/或同步脉冲即可同步两个任务。采样时钟、主时基和参考时钟源自机箱并同步,因此使用这些时钟的测量也将同步。

        从 DAQmx 18.6开始 ,提供了一个新的 DAQmx 时序属性,称为“第一个采样时钟时间”。此属性允许您根据系统时间或 I/O 设备时间设置生成第一个采样时钟的时间。该属性在内部执行图 19 所示的计算,包括开始触发时间、复位时间差异以及使用多个速率时的第一个样本对齐。第一个采样时钟时间属性可用于调整任意模块类型组合(包括 DSA、SAR、慢采样和 FieldDAQ 设备)上的采集开始时间。下面的示例演示了如何使用该属性。

2.4.5 与DSA模块的多机箱、多速率同步(NI-DAQmx 18.6以上版本)

        当 Delta Sigma 和/或参考时钟模块以不同的速率运行时,我们必须考虑重置时间的差异以及由于采样率差异而发生的可变样本数量。复位时间的差异是通过在启动触发前 x 秒发送同步脉冲来解决的,其中 x 等于较长的复位时间。通过分析两个采集周期之间的比率并根据该分析调整同步脉冲来考虑可变数量的样本。本示例所需的子视图附在本文档的右上角。

2.4.6 IEEE 1588

        IEEE 1588 也称为精确时间协议 (PTP),是一种基于以太网的同步方法,专为有线本地网络而设计。IEEE 1588 的好处是它允许您通过标准网络同步目标。它的工作原理是自动从网络确定主时钟,并使所有其他时钟从属于该主时钟。IEEE 1588也是一个相对容错的同步选项。如果主时钟与网络断开,则动态确定新的主时钟。有关该协议的详细说明,请参阅白皮书《分布式时钟同步和 IEEE 1588 精确时间协议简介》。

相关参考链接:

使用 NI PXI-668x 定时和同步模块配置 IEEE 1588 同步:Configuring IEEE 1588 Synchronization With the NI PXI-668x Timing and Synchronization Module - NI

        IEEE 1588 有许多不同的配置文件,每个配置文件都使用不同的功能。由于配置文件彼此不可互操作,因此请确保您了解您的设备支持哪些配置文件

基于软件的 IEEE 1588v2

       所有基于NI Linux Real-Time的CompactDAQ控制器都通过NI-TimeSync驱动程序支持IEEE 1588v2的软件实现。安装驱动程序后,您可以通过任何标准以太网连接多个 CompactDAQ 控制器,并且它们会自动同步其系统时钟。安装了固件 18.1 或更高版本的支持 TSN 的以太网 CompactDAQ 机箱也支持 IEEE 1588v2。控制器之间此类同步的典型精度约为 1 毫秒。尽管支持 IEEE 1588v2 不需要特定的网络硬件(以太网交换机),但建议使用支持 IEEE 1588v2 的交换机以获得最佳同步性能。这些交换机减轻了网络负载的影响,网络负载可能对标准交换机上的同步产生不利影响。

        要在运行 NI Linux Real-Time 的 CompactDAQ 控制器上启用基于软件的 IEEE 1588v2 同步,您需要在每个控制器上安装 NI-TimeSync。这可以通过Measurement & Automation Explorer (MAX) 中的软件安装过程来完成。NI Linux Real-Time 目标的 IEEE 1588v2 设置需要通过文件修改进行配置。有关在 NI Linux Real-Time 上配置和监控 IEEE 1588v2 同步状态的详细信息,请参阅使用 NI-TimeSync 配置 IEEE 1588 和 802.1AS 时间参考。

基于硬件的 IEEE 1588v2(默认配置文件)

        具有固件 18.1 及更高版本的支持 TSN 的 CompactDAQ 机箱支持 HW IEEE 1588v2(默认配置文件)。HW IEEE 1588v2(默认配置文件)与 SW IEEE 1588v2 兼容,但与 802.1AS 配置文件不兼容。HW IEEE 1588v2(默认配置文件)由于硬件时间戳而具有更高的准确性,但在其他方面与 SW IEEE 1588v2 具有相同的协议。

基于硬件的 IEEE 1588v2(802.1AS 配置文件)


        IEEE 1588 中较新的 PTP 配置文件是 IEEE 802.1AS,它被选择用于时间敏感网络 (TSN) 中的时间同步。TSN 是对 IEEE 802.1 标准的一系列补充和更新,IEEE 802.1 标准是网桥的局域网标准。TSN 的一个方面是定义 TSN 子网内网络组件之间的全局时间感。4 插槽 cDAQ-9185 以太网机箱和 8 插槽 cDAQ-9189 以太网机箱均使用此 PTP 配置文件在网络中提供基于时间的同步。机箱之间这种类型的同步的典型精度小于 1 μs,但这可以大大降低到数百纳秒范围,具体取决于系统的配置。要同步这些机箱,您可以将它们以菊花链方式连接在一起,仅使用以太网电缆即可创建线型拓扑。对于其他非菊花链拓扑,并且您希望所有机箱同步,您必须在设备之间使用符合 IEEE 802.1AS 标准的交换机。

        这些机箱利用 NI-DAQmx 中添加的基于时间的同步功能,现在能够配置某些触发器和时间戳以根据一天中的时间指定。这些 CompactDAQ 以太网机箱上已启用 IEEE 802.1AS-2011 配置文件,因此要使用此功能,您只需安装应用程序软件和 NI-DAQmx 驱动程序即可。

默认 IEEE 1588v2 配置文件与 802.1AS 配置文件不兼容。

(S)NTP


        SNTP 是一种用于 Internet 上时钟的时间同步方法。当前时间是从公共 NTP 服务器获取的。它使用 NTP 服务器的分布式网络,并通过以太网将网络内的时钟与国家时间标准同步。NTP 和 SNTP 在网络级别上彼此没有区别。SNTP 在内存和 CPU 使用方面占用的空间较小,但仍然足以实现典型桌面使用的系统时钟同步。许多行业(例如政府和石油)更喜欢 (S)NTP,因为它是一个成熟且经过充分测试的标准,仅需要网络连接。(S)NTP 的主要缺点是它不如本文中描述的其他基于时间的技术准确。它的典型精度约为数十毫秒。LabVIEW Real-Time 目标并未正式支持 (S)NTP,但有一些方法可以启用它,如下所述。

        在基于 NI Linux Real-Time 的 CompactDAQ 控制器上,可以使用开源 Linux NTP 守护程序启用 NTP。NI 开发者社区的文档详细介绍了如何将此守护程序安装到 NI Linux Real-Time 目标。请注意,如果您选择使用此守护程序,则不应将 NI-TimeSync 安装到您的目标。NI-TimeSync 和该守护进程都会调整系统时间,如果 NI-TimeSync 和 NTP 守护进程都尝试修改目标上的时间,您的系统可能无法正确同步

        对于使用 NI-DAQmx 18.1 或更高版本的支持 TSN 的以太网 CompactDAQ 机箱,必须至少有一个 IEEE 1588 或 IEEE 802.1AS 时间参考运行才能启动 NI-DAQmx 任务。由于运行 (S)NTP 和 NI-Timesync 无法同时运行,因此 (S)NTP 时间参考不能在使用 NI-DAQmx 18.1 或更高版本且启用 TSN 的以太网 CompactDAQ 机箱上使用。

2.5选择cDAQ同步技术的一般准则

        下表比较了 CompactDAQ 上的同步技术,列出了节点之间允许的最大距离、典型同步精度、时间服务器要求、布线要求、时间戳支持、推荐硬件以及它们将同步的子系统。

技术节点之间的物理距离精度需要时间服务器吗?布线时间戳?推荐硬件
基于信号的<100米有所不同(请参阅手册)超五类线NI-9469
IEEE 1588 基于软件的时间戳(默认 1588 配置文件)子网内1毫秒LAN

运行 NI Linux Real-Time 的

cDAQ-9132/9133/9134/

9135/9136/9137

具有硬件辅助时间戳的 IEEE 1588(IEEE 802.1AS 或默认配置文件)子网内<1微秒LANcDAQ-9185/9189
时间同步协议全局(访问NTP服务器)10秒毫秒LAN

运行 WES7 的 cDAQ-9132/

9133/9134/9135/

9136/9137

 2.6cDAQ同步方法摘要

同步类型技术多槽 USB CompactDAQ 机箱多槽 ENET CompactDAQ 机箱运行 WES7 的 CompactDAQ 控制器运行 NI Linux Real-Time 的 CompactDAQ 控制器
基于信号的NI-9469

使用数字 I/O 或 PFI 线进行手动布线

基于时间的HW IEEE 1588v2(默认或 802.1AS)

软件IEEE 1588v2

网络时间协议

 3.M系列时钟同步

3.1 M系列时钟概述

        在讨论同步之前,首先了解 M 系列设备中存在的不同时钟会很有帮助。M 系列设备上的 NI-STC 2 定时和控制器 ASIC 通过划分 80 MHz 时基来生成多个时基。该 80 MHz 时基通过以下两种方式之一获得:来自 80 MHz 板载振荡器或来自锁相环 (PLL) 电路,如下图 所示。当 PLL 的参考时钟在设备之间共享时,由 PLL 产生的 80 MHz 时基将在这些设备之间同步。因此,从该 80 MHz 时基或所得 20 MHz 时基派生的所有时钟也将同步。由于信号划分方式的原因,100 kHz 时基将与 PLL 的输入不同相。这些时基信号在内部用作器件的模拟输入、模拟输出和计数器/定时器子系统的时钟源。例如,模拟输入子系统将对这些时基之一进行分频以创建其 AI 采样时钟。通过这个 80 MHz 板载振荡器,每个 M 系列设备还生成自己的 10 MHz 参考时钟,可用于多设备系统中的同步。

        M 系列器件上模拟操作的采样时钟通常通过对 20 MHz 或 100 kHz 内部时基进行分频来获得。计数器/定时器是唯一可以直接使用 80 MHz 时基的子系统。还可以获取其他外部和内部信号,例如 PXI_STAR 触发器、模拟比较事件或来自 PFI 线路或 RTSI 总线的信号。有关 AI 和 AO 采样时钟推导的更多信息,请阅读M 系列用户手册的定时信号部分  。

3.2 使用NI MAX配置设备

        配置硬件所需的步骤有所不同,具体取决于设备是 PCI 板卡还是 PXI 模块。对于 PCI 板卡,必须在 MAX 中虚拟创建并注册一条 RTSI 电缆,该电缆应物理连接到要在其间路由信号的所有板卡。创建 RTSI 电缆后,需要将板添加到 RTSI 电缆,并且 NI-DAQmx 驱动程序可以相应地在设备之间路由信号。对于 PXI 模块,思路是一样的,但唯一需要做的就是识别 PXI 机箱。PXI 模块不需要任何电缆,因为相当于 RTSI 总线的组件包含在 PXI 机箱的背板中。

3.3多功能同步方法

3.3.1 共享启动触发同步

        执行大多数多功能同步时,仅需要启动触发器。这是因为这两个操作从设备内部的公共时基获取采样时钟。下面的 LabVIEW 示例展示了如何同时执行模拟电压测量和电压生成,两种模拟操作均从设备固有的同一内部 20 MHz 或 100 kHz 时基获取各自的 AI 和 AO 采样时钟。如果给定相同的速率,操作将保持同步。如果采样时钟速率设置为不同的频率,操作将同时启动,但不完全同步。另请注意,这两个操作可以配置为获取不同数量的数据。

        在上面的示例中,有两个进程同时发生。顶部进程控制模拟输入,底部进程控制模拟输出。每个步骤由图底部的数字表示,如下所述。 

  1. 在步骤 1 中,创建模拟输入和模拟输出通道。初始化过程获取物理通道和要执行的操作类型(即Dev1 的通道ai0 上的模拟输入)。
  2. 步骤2对于同步过程非常重要。使用 DAQmx Timing VI,可以为有限采集定义两个采样时钟。该值和采样率均由具体应用确定。对于同时启动但以不同间隔发生的进程,采样时钟被分配不同的速率。对于两个过程以同时且相关的方式发生的操作,采样时钟被分配相同的速率。
  3. 在步骤3中,获取带设备前缀的终端名称VI (C:\Program Files\ National Instruments \LabVIEW 7.1\examples\DAQmx\_Utility\_Utility.llb)创建DAQmx触发VI使用的终端名称。该VI的目的是为了提高编程的通用性。具体来说,该VI提取设备名称并将输入字符串附加为终端名称。同样在步骤 3 中,DAQmx 触发器 VI 使模拟输出操作等待数字触发器开始执行。该触发源被定义为模拟输入启动触发,由获取带有设备前缀的终端名称VI导出。一旦模拟输入操作开始,ai/StartTrigger 信号就会自动生成。然后使用该触发器同时启动模拟输出操作。
  4. 使用DAQmx Write VI,模拟输出缓冲区加载数据。
  5. 此时,通过 DAQmx Start Task VI 启动模拟输出操作。但是,它已配置为等待触发,并且在 ai/StartTrigger 变高之前不会执行。紧接着,另一个DAQmx启动任务VI用于开始模拟输入操作并发送触发信号。序列结构确保模拟输出进程已启动,并在模拟输入进程发送触发之前等待数字触发。
  6. DAQmx Read VI 将读取有限数量的样本。
  7. 最后,DAQmx Is Task Done VI 检查程序是否已完成模拟输出的写入,并清除任务。错误簇被合并并传递给一个简单的错误处理程序。

3.3.2共享采样时钟同步

        单设备多功能同步的第二种形式涉及共享采样时钟。共享采样时钟可能是同步单个设备操作的最常见方法,因为它可以确保操作同时开始并以相同的速率进行。上述同步模拟电压测量和电压生成示例也可以通过在两个子系统之间共享 AI 或 AO 采样时钟来实现。何时使用此方法的一个很好的例子是当您想要关联 M 系列设备上的数字和模拟波形操作时。

        与 E 系列设备不同,  M 系列 设备可用于硬件定时数字操作。然而,M 系列器件的数字子系统无法对其中一个时基进行分频来创建用于数字输入或输出操作的内部时钟。必须提供外部信号或来自另一个子系统的众多内部信号之一作为数字采样时钟。例如,可以通过共享 AI 或 AO 采样时钟作为 DI 或 DO 采样时钟源来同步数字和模拟操作。要独立于 AI 或 AO 操作对数字信号进行采样,可以配置计数器或外部信号来生成所需的 DI 采样时钟。

        下面的示例演示了如何同步模拟输入操作与数字输入操作。直到模拟输入操作开始并生成 AI 采样时钟后,数字采集才会开始。

在上面所示的示例中,数字输入电路使用共享采样时钟来同步模拟和数字输入。

  1. 在步骤 1 中,创建模拟输入和数字输入通道。初始化过程获取描述操作所需的基本信息。
  2. 使用两个 DAQmx Timing VI,采样模式被定义为连续或有限采集。采样模式由具体应用确定。由于采样时钟是共享的,因此两个操作应使用相同的采样率。在此示例中,速率为 1 kHz。此外,DAQmx Timing VI 应将数字定时源设置为模拟输入采样时钟。这会导致数字输入电路在对模拟通道进行采样的同时锁存数字线路。
  3. 此时,模拟输入和数字输入操作通过 DAQmx Start Task VI 启动。序列结构确保数字输入过程已经启动并正在等待模拟输入启动。如前所述,数字任务没有定义的触发器;然而,在模拟输入采样时钟可用之前,数字任务不会启动。当模拟输入任务启动时,模拟输入采样时钟将可用。
  4. 每个 DAQmx Read VI 将读取有限数量的样本。
  5. 最后,任务就明确了。
  6. 错误簇被合并并传递给一个简单的错误处理程序。

 3.4多设备同步方法

3.4.1使用参考时钟的pci同步

        RTSI 总线提供了在系统中的独立设备之间共享信号的能力。传统上,同步数据采集设备需要在设备之间共享公共时基时钟源。M 系列设备的内部时基为 80 MHz,该频率太高,无法通过 RTSI 总线准确地传递到其他设备。通常,10 MHz 是在设备之间路由的更稳定的时钟频率,并用作 PXI 系统中的同步标准,其中 10 MHz PXI 时钟内置于机箱背板中。因此,M 系列器件通过对 80 MHz 板载振荡器进行分频,生成用于同步目的的 10 MHz 参考时钟。为了同步多个 PCI M 系列板卡的采集或生成,一块板卡充当主板卡,并将其 10 MHz 参考时钟导出到所有其他从板卡。每个M系列上的NI-STC 2 ASIC都具有PLL电路,该电路将外部参考时钟与其内置压控晶体振荡器时钟(VCXO)进行比较,以输出与该参考同步的时钟。因此,系统中的每个设备都可以输入 10 MHz 参考时钟,并将其自己的 80 MHz 和 20 MHz 时基与其同步。通过这项技术,所有设备都同步到相同的 10 MHz 主时钟,但可以使用板载生成的各自更快的 80 和 20 MHz 时基。请注意,由于信号被分频的方式,100 kHz 时基将不会与 PLL 的输入同相。请参阅下图,了解 M 系列器件的时基路由概述,显示了如何使用 PLL 和参考时钟来同步两个高速时钟(本例中为 100 MHz)。

        当路由其 10 MHz 参考时钟输出以供其他设备同步时,主设备可以将其参考时钟源设置为“OnboardClock”。此选项会将主设备的 10 MHz 参考时钟(已路由到 RTSI)返回到其自己的 PLL 源。然后,主设备会看到与从设备通过 RTSI 锁相到 10 MHz 参考时钟所看到的延迟相同的延迟。请注意,默认情况下,M 系列参考时钟源设置为“无”。这将导致 M 系列设备使用其板载振荡器作为其时基源。

       下图所示为使用主设备参考时钟实现两块M系列单板多设备同步的示例。图中的标签对应于程序的重要部分,下面给出了每个部分的说明。

  1. 步骤1,创建虚拟通道。这里讨论的每个虚拟通道都用于采集模拟电压信号。请注意,它们来自独立的设备 – M Series Master 和 M Series Slave。
  2. 在此步骤中,输入计时信息。两个通道均设置为以 1000 个样本/秒的速率有限采集/通道 1000 个样本。每个采样时钟的源保留为默认值,这只是内部模拟输入采样时钟,该时钟将通过对器件的内部时基之一进行分频而获得。
  3. 主设备的参考时钟设置为OnboardClock。这将导致主设备将其 10 MHz 参考时钟输出到 RTSI,并返回到其自己的 PLL 源,以将其 PLL 振荡器与从设备将使用的相同 10 MHz 参考时钟同步。然后查询主参考时钟源并用于设置从参考时钟源,这会导致 10 MHz 参考时钟自动通过 RTSI 路由到从器件 PLL 的输入,作为锁相其锁相器的参考。时基到。使用此过程,两个设备可以各自使用自己的时基,然后通过参考时钟间接同步。通过选择OnboardClock,主设备会产生与从设备通过RTSI接收信号相同的延迟,从而使整个同步过程更加准确。
  4. 与同时启动示例一样,获取带有设备前缀的终端名称VI用于以编程方式提取主设备的启动触发信号,并将其路由以用于启动从设备。此步骤是同步的第二阶段 - 确保它们同时启动。
  5. 来自从站的任务首先启动,但将等待接收来自上一步中路由的主站启动触发器的触发信号。当主机启动时,会产生启动触发信号并同时触发两个任务。序列结构用于确保从设备在主设备之前启动并避免竞争条件。
  6. 在此步骤中,两个任务都会读取样本。每个任务将提供 1000 个样本并将其显示在波形图上。
  7. 采集完成后,这一步对任务进行清理。此步骤确保资源被释放并可供其他任务使用。
  8. 最后一步处理采集过程中可能发生的错误。来自两个任务的错误簇合并为一个错误簇并连接到错误处理程序中。

 3.4.2使用参考时钟实现M系列PXI同步

        PXI 和 PCI 同步非常相似,因为它们使用相同的参考时钟原理。在 PXI 系统中,用于同步多个模块的通用 10 MHz 参考时钟已通过 PXI_CLK10 信号内置到背板中。要同步 PXI 系统中的多个 M 系列模块,每个 M 系列模块都应使用 PXI_CLK10 作为其参考时钟,这将导致所有板上的时基相互同步。如果一个主设备向其他设备发送启动触发信号,并且所有采样时钟都设置为相同的速率,则采集将同步。下图显示了代表 M 系列 PXI 同步的框图。

  1. 步骤1,创建虚拟通道。每个虚拟通道用于采集模拟电压信号。请注意,它们来自独立的设备 – M Series Master 和 M Series Slave。
  2. 在此步骤中,输入计时信息。两个通道均设置为以 1000 个样本/秒的速率有限采集/通道 1000 个样本。每个采样时钟的源保留为默认值,这只是通过对器件上的内部时基之一进行分频而得出的内部模拟输入采样时钟。
  3. 接下来将各设备的参考时钟源设置为PXI_CLK10,与上面PCI参考时钟的原理相同。唯一的区别是每个 PXI 模块将其内部时基与 PXI 背板 10 MHz 时钟同步。
  4. 与 PCI 参考时钟示例一样,获取带有设备前缀的终端名称 VI 用于以编程方式提取主设备的启动触发信号,并将其路由以用于启动从设备。此步骤是同步的第二阶段 - 确保它们同时启动。
  5. 来自从站的任务首先启动,但必须等待接收来自上一步中路由的主站启动触发的触发信号。当主机启动时,会产生启动触发信号来触发从机。序列结构用于确保从设备在主设备之前启动并避免竞争条件。
  6. 在此步骤中,两个任务都会读取样本。每个任务将提供 1000 个样本并将其显示在波形图上。
  7. 采集完成后,这一步对任务进行清理。此步骤确保资源被释放并可供其他任务使用。
  8. 最后一步处理采集过程中可能发生的错误。来自两个任务的错误簇合并为一个错误簇并连接到错误处理程序中。

3.4.3共享采样时钟实现DAQmx多设备同步

        其他数据采集设备(例如 E 系列)不提供用于同步目的的参考时钟。同步这些设备的常见方法(也适用于 M 系列设备)是在采集中的所有设备之间共享公共采样时钟。这可以通过 RTSI 路由主采样时钟以用作所有从设备的采样时钟来完成。使用这种方法有一些缺点。一是通过 RTSI 路由采样时钟,在主设备和从设备之间引入了小的传播延迟,而使用参考时钟进行同步时不存在这种延迟。第二个是,虽然所有板卡之间共享一个通用的 AI 采样时钟,但对于具有多路复用架构的设备(例如 E 系列和 M 系列),实际在每个通道上引起 A/D 转换的 AI 转换时钟仍然是从每个板卡生成的。板载振荡器,它们不会相互同步。然而,这些误差对于大多数 E 和 M 系列应用来说很小,可以忽略不计。

        下图 中所示的示例演示了如何通过共享采样时钟来同步两个 M 系列设备之间的采集。使用 NI-DAQmx,通过将从属采样时钟源设置为主采样时钟,主采样时钟将通过 RTSI 总线或 PXI 触发线自动路由到从属采样时钟。下面是对图中标有数字的每个步骤的描述。

  1. 在步骤1中,创建虚拟通道。每个虚拟通道用于采集模拟电压信号。请注意,它们来自独立的设备 – M Series Master 和 M Series Slave。
  2. 在此步骤中,输入计时信息。两个通道均设置为以 1000 个样本/秒的速率有限采集/通道 1000 个样本。这次,从机的 SampleClock 源选择为主设备的 AI 采样时钟。NI-DAQmx 将自动通过 RTSI 为从站建立必要的路由。主 SampleClock 的源保留默认值,即内部模拟输入 SampleClock。
  3. 正如之前所做的那样,获取带有设备前缀的终端名称用于以编程方式提取主设备的启动触发信号,并将其路由以用于启动从设备。此步骤是同步的第二阶段 - 确保它们同时启动。
  4. 来自从站的任务首先启动,但必须等待接收来自上一步中路由的主站启动触发的触发信号。当主机启动时,会产生启动触发信号并同时触发两个任务。序列结构用于确保从设备在主设备之前启动并避免竞争条件。
  5. 在此步骤中,两个任务都会读取样本。每个任务将提供 1000 个样本并将其显示在波形图上。
  6. 采集完成后,这一步对任务进行清理。此步骤确保资源被释放并可供其他任务使用。

4.PXI

4.1PXI同步信号连接

        您可以选择多种不同的方式在 PXI Express 机箱中的设备之间共享时钟和触发信号。您可以通过外部接线(许多设备为此提供输入引脚)或通过 PXI Express 背板触发总线来共享信号。用于共享时钟和触发信号的机制会影响同步精度。

信号仅限 PXI Express?需要系统时序控制器模块吗?设备间偏差信号完整性
PXIe_Clk100是的<250 皮秒最好的
PXIe_DStar<A..C>是的是的<500 皮秒最好的
PXI_Clk10<1纳秒1更好的
PXI_Star是的<10纳秒更好的
PXI_Trig<0..7><80纳秒一般的
外部接线多变的可用的

        PXI_Clk10 和 PXIe_Clk100 之间可能存在高达 6.5 ns 的时滞。因此,虽然使用 PXI_Clk10 作为参考时钟的一组设备之间的时滞很小,但与使用 PXIe_Clk100 作为参考时钟的其他设备相比,这些设备可能会出现高达 6.5 ns 的时滞。 

        使用通过 PXIe_Clk100、PXIe_DStar<A..C>、PXI_Clk10 或 PXI_Star 分配的时钟信号时,您可以获得最佳同步性能。PXI_Trig<0..7> 总线是连接到背板中每个模块的共享总线。它非常有用,因为它提供了许多设备之间的触发连接。然而,结果是这些信号负载很重,导致传播延迟很长。传播延迟根据设备在背板内的位置而变化。此外,信号完整性(时钟上升沿和下降沿的质量)也存在很大差异,具体取决于背板中安装的模块的数量和类型、这些模块的位置以及用于驱动 PXI_Trig 总线的特定硬件来自模块。信号完整性差的副作用可能包括这些信号上的额外噪声和抖动。在极端情况下,信号上的单个边沿最终可能看起来像两个单独的边沿,从而导致双时钟。因此,NI建议仅使用PXI_Trig<0..7>线来路由触发信号。

4.2分布式节点系统选择方法

“网络访问可用吗?” 指的是连接到以太网的能力。某些同步方法需要这种硬件连接。请注意,此问题并不暗示互联网连接。1588和SNTP技术都可以在本地网络上实现。

“节点可以通过物理电缆连接在一起”是指使用 BNC、以太网或其他标准电缆连接节点。对于节点之间的物理距离小于 100 米但节点被隔离在无法直接布线的房间/房间的应用程序来说,必须考虑这个问题。

“同步样本”是指每个样本时间单独同步。这种类型的同步需要对齐所有采样时钟。

“同步触发”是指所有采集同时开始。这种类型的同步需要分发启动触发器。

“立即触发”是指将立即导致采集开始的硬件触发或用户交互。

“延迟触发”是指基于系统事件的触发(例如,温度读数高于临界阈值)。

“时钟共享”是指在节点内或节点之间分配硬件时钟信号。

“系统时间”是指同步控制器的系统时钟。当不需要亚毫秒精度时,可以使用这种类型的同步。

4.2.1硬件注意事项

        虽然 National Instruments 提供了多种同步卡,但某些技术需要与其他硬件集成才能实现最佳性能水平。GPS 和 1588 是两种需要考虑外部硬件的技术。

        GPS 系统需要与 GPS 天线集成。天线的好坏直接影响系统的同步质量。NI 提供 GPS 天线作为支持 GPS 同步的产品的附加组件(部件号 196304-30)。 

        对于 1588 系统,有两个硬件注意事项。首先是以太网电缆的限制。标准 CAT 5 布线规定电缆段的最大长度不应超过 100 米。如果节点之间的距离超过 100 米,则应使用交换机或路由器来增强信号。交换机和路由器很容易从不同的供应商处获得。

        1588 的第二个限制涉及与高流量网络相关的延迟。在这些情况下,数据包可能会花费大量时间在路由器/交换机上等待。解决办法是使用1588交换机。它们经过专门设计,即使在高吞吐量网络上也能实现精确计时。有关 1588 硬件的更多信息可以在相关链接部分找到。

 

4.3将 PXI_CLK10 OUT 连接至 PXI_CLK10 IN - BNC 连接器实现多个pxi机箱同步

        这种级别的同步相对容易实现,因为它不需要硬件模块。如果您使用两个机箱,您可以将一个机箱的主控 PXI_CLK10 OUT 连接到另一个机箱的 PXI_CLK10 IN。这将为两个 PXI(e) 共享一个公共时基,以防止漂移。此方法适用于两个 PXIe 机箱、两个 PXI 机箱和一个 PXIe/PXI 组合。

        使用 BNC 连接器,当存在时钟时,它将自动覆盖 PXI 系统时钟。这会在两个时钟波形之间引入非常小的时间偏差,该偏差在两个 PXI 系统之间可以忽略不计,但在菊花链机箱时会增加。为了显着减少这种偏差,请使用外部 10 MHz 时钟源,并使用相同长度的电缆连接到每个 PXI_CLK10 IN 连接器。

        此方法会将系统同步到较低程度。为了实现更高的同步,您需要购买定时和同步硬件模块,使用每个机箱中的定时和同步卡导出和导入时钟。

4.4触发共享 - 需要定时和同步 (T&S) 模块

        触发器共享将确保两个机箱大致同时开始 DAQ。系统中的每个 PXI(e) 都需要一个 T&S 模块,该模块将在每个 PXI(e) 之间共享触发线。下面显示的示例框图演示了如何将触发线同步在一起。

        这里,在主任务(代码的顶行)中定义触发源并将其发送到从任务(代码的底行)。当检测到触发器时,从任务将开始,然后是主任务。这个顺序至关重要,从机必须始终在主机之前开始。为了纠正因一项任务相继启动而导致的偏差,使用 DAQmx 触发器属性节点将一个通道定义为主通道,将一个通道定义为从通道。

        将此同步方法与前面的示例相结合,创建一个没有偏差或漂移的系统;然而,两个机箱必须以相同的速率运行。

4.5共享参考时钟

        参考时钟是被其他系统的时钟参考以导出它们自己的时钟信号的时钟信号。在设备之间共享此时钟将允许每个机箱以不同的速率运行,同时也最大限度地减少漂移和偏差。共享参考时钟需要 T&S 模块,并且可以如上图所示实现(通过使用具有相同源的 DAQmx Timing Property 节点)。

        共享参考时钟的一个缺点是,对于高频应用,时钟信号将在 5-10 MHz 左右的频率下开始恶化(取决于用于在外部时钟源和电路板之间连接的电缆)。此外,传输延迟会在高速时引入明显的相位延迟,具体取决于信号路径的长度。

        所有定时源都会向系统引入抖动,当尝试同步电路板时,抖动可能会变得很严重。当使用启动触发器同时开始在测量系统中的所有板上进行采集时。通常,每个板在收到启动触发后将在板时钟的 1-2 个滴答内触发,这将在板之间引入相位延迟。 

4.6共享主时基

        共享主时基具有共享参考时钟的所有优点,同时还能消除漂移。它是使用属性节点共享的,如下所示。从属时钟将被主时钟覆盖,这意味着所有硬件定时系统将自动与主机箱同步。由于时基共享的性质,该系统可能不稳定,因此在使用前请确保您的系统稳定。


4.7 IRIG-B协议

        NI-Sync 驱动程序允许通过不同的时间参考协议进行同步。其中之一是IRIG-B定时协议。 

        本指南介绍了如何使用 LabVIEW 中的 IRIG-B 定时协议、NI-Sync 驱动程序 API 以及 PXI 定时和同步模块(如 PXI-6682 或 PXI-6683)来同步 PXI 卡。 

1. 将 IRIG-B 信号引入 PXI-668x PFI 连接器。
2. 根据 IRIG-B 信号,将 PXI-668x 时间参考设置为 IRIG-B DC 或 IRIG-B AM。
  • 为此,您可以查看 LabVIEW 示例“Set Time Reference.vi”。位于LabVIEW >>帮助>>查找示例>>硬件输入和输出>>定时和同步>>基于时间>> Set Time Reference.vi

3. 将 PXI-668x 板载振荡器连接到 PXI-668x 时钟输出连接器(这可以通过“NI 同步连接时钟端子”的代码或 NI MAX 来完成):



4. 用物理电缆连接时钟输出连接至机箱 机箱的 10MHz IN 端口

  • 这取决于底盘。机箱必须有一个 10MHz IN 端口。由于大多数 PXI-668x 卡都具有混合 PXI 连接器,因此无法通过机箱在内部路由此信号。 
5. 使用其驱动程序 API 的相应函数,将要同步的模块设置为使用 10MHz 机箱背板时钟作为参考。 
 

 


 

5.通用

 5.1以不同速率同步不同类型的DSA设备

        对于多个DSA卡的同步配置,同步方案必须与正在使用的所有卡兼容。两种同步类型分别是参考时钟同步和主采样时钟同步。参考时钟同步使用PXI / PXIe背板的参考时钟,而主采样时钟同步从一个主卡导出时钟,以供所有其他从卡使用。以下是哪些DSA设备支持不同的同步方法:


参考时钟同步

  • PXI-4461和PXI-4462
  • PXIe-4463和PXIe-4464
  • PXIe-4480和PXIe-4481
  • PXI / PXIe-4492、4495、4496、4497、4498和4499

主采样时钟时基同步

  • PXI / PCI-4472 / B和4474
  • PXI / PCI-4461和4462

        根据上面的列表,我们可以确定哪些设备可以同步在一起,哪些设备不适合同步在一起。下表提供了一些设备配对以及一些现有限制的直观信息,但未详尽列出所有设备配对。


在选择了适合您的硬件配置的同步类型之后,同步步骤如下:


参考时钟同步(仅限PXI / PXIe):

  1. 为每个设备指定PXI_CLK10或PXIe_CLK100作为参考时钟源,以强制DSA设备锁定到PXI / PXIe机箱上的参考时钟。
    • 请参考设备特定的规格文档,以确定设备可以接受的参考时钟源。通常可以在用户手册或产品规范文档的定时和触发或同步部分中找到此信息。
  2. 选择一个主卡在其中一个PXI / PXIe触发线上发出同步脉冲。 同步脉冲将系统中的所有时钟对齐到纳秒之内,并且还会复位ADC和DAC。
    • 新一代的DSA设备(例如, PXIe-4463,PXIe-4464,PXIe-4480 / 1)会在NI-DAQmx任务的“提交”(Committed)状态下准备接收并发送同步脉冲。上一代DSA设备(PXI-4461 / 2和PXI / PXIe-4492 / 5/6/7/8/9)将在NI-DAQmx任务的“开始”(Start)状态下准备接收并发送同步脉冲。因此,当在这两组设备之间进行同步时,它们将需要处于正确的状态,比方说所有同步脉冲从卡都准备好接收而同步脉冲主卡将发送同步脉冲。
  3. 在所有导入同步脉冲的设备上读取SyncPulse.SyncTime NI-DAQmx Timing属性。计算最大值,并将其写入导出同步脉冲的设备上的SyncPulse.MinDelayToStart NI-DAQmx Timing属性。
  4. 配置系统中其中一个DSA设备以在PXI / PXIe触发线上导出开始触发。在这种情况下,必须将要手动配置导入同步脉冲的所有设备的配置信息到正确的状态。
    • 要手动配置任务,请使用NI-DAQmx控制任务VI,将“提交”值连接到动作控件。
    • 如果试图在新一代设备(PXIe-4463,PXIe-4464,PXIe-4480 / 1)和上一代(PXI-4461 / 2和PXI / PXIe-4492 / 5/6/7/8/9)之间进行同步DSA设备,新一代设备必须是主开始触发器源。
  5. 使用NI-DAQmx开始任务VI启动所有导入开始触发器的设备。最后,启动正在导出开始触发器的设备。这将导致系统中的所有设备同时开始获取和生成数据。


主采样时钟时基同步:

  1. 对主设备进行编程,以将其采样时钟时基导出到所有的从设备。该共享时钟确保所有ADC和DAC时钟共享相同的采样时钟。该信号在PXI / PXIe系统的PXI Star和PCI系统的任何RTSI线路上路由。默认的RTSI线是8。
  2. 对主设备进行编程,以将同步脉冲路由到所有从设备。对于PXI / PXIe系统,您可以使用任何PXI / PXIe触发线将同步脉冲路由到所有从设备。对于PCI设备,默认的RTSI线是9,但是您可以编程另一条RTSI线。同步脉冲将系统中的所有时钟对齐到纳秒之内,并且还会复位ADC和DAC。
  3. 在所有导入同步脉冲的设备上读取SyncPulse.SyncTime NI-DAQmx Timing属性。计算最大值,然后将其写入导出同步脉冲的设备上的SyncPulse.MinDelayToStart属性。
  4. 配置系统中的其中一个DSA设备,以在其中一个PXI / PXIe系统的PXI / PXIe触发线上或PCI系统的RTSI线0至6上导出其开始触发。如果可能,请将正在导出同步脉冲的设备也配置为导出开始触发器。但是,如果有需要,您也可以使用不同的设备导出同步脉冲和开始触发器。在这种情况下,在启动任何设备之前,必须手动配置所有导入同步脉冲的设备的信息。要手动配置,请使用NI-DAQmx控制任务VI,将“提交”值连接到动作输入控件。
  5. 使用NI-DAQmx开始任务VI启动所有导入开始触发器的设备。最后,启动正在导出开始触发器的设备。这将导致系统中的所有设备同时开始获取和生成数据。

5.2 模拟输入和计数器频率测量的同步

        这是通过生成脉冲序列并将其用作前面提到的两个任务的采样时钟源来完成的。还有另一个脉冲序列会生成并物理环回计数器测量任务,以便您可以控制您所期望的内容。

        也可以使用触发来确保这两个任务同时启动。

5.3计数器输出和DAQmx同步

         首先,为要使用的每个计数器创建一个单独的 DAQmx 任务(由 DAQmx 创建虚拟通道、DAQmx 启动触发器、DAQmx 启动任务、DAQmx 停止任务和 DAQmx 清除任务组成)。您可以通过设置 DAQmx 通道属性节点来为每个任务指定要使用哪个计数器以及应在哪个引脚上输出信号。在此属性节点中,您选择 计数器输出>>脉冲>>输出端子 并连接一个 I/O 常量,在其中指定应在哪条 PFI 线上将信号输出到属性节点。您可以在每个模块的引脚分配方案或 NI MAX(在哪里查找 NI-DAQmx 设备引脚分配或引脚映射)中找到所有输出的表格。下面是如何设置 DAQmx 通道属性节点的屏幕截图:


 
        设置每个计数器任务后,您必须创建一个所谓的频率输出任务,该任务用作触发器。频率输出是机箱上的内部数字脉冲串,可用于在内部触发计数器,而无需使用外部信号。有关频率输出信号的更多信息,请参阅以下知识库: 在 NI-DAQmx 中输出不带计数器的频率信号

        要使用频率输出,您必须依次配置 DAQmx 启动触发 VI 的 I/O 常量显示频率输出。为此,右键单击连接到DAQmx Start Trigger VI源输入的I/O常量,然后 从上下文菜单中选择I/O名称过滤 。在此菜单中,您激活 “包括高级终端” ,现在 I/O 常量可以显示频率输出,您选择该频率输出作为触发源。:


        您现在必须创建触发任务。频率输出任务应如下所示:


        链接到 DAQmx 通道属性节点的 I/O 常量应为空,因为您不需要通过模块的引脚输出信号。
然后,您可以使用错误行设置正确的执行顺序。这里您应该记住,计数器输出任务必须在频率输出任务之前启动,因为计数器任务只有在频率输出任务发送触发器之后才会启动。总的来说,代码应该与此类似(当然,可以调整每个计数器输出的高低时间和初始延迟的设置):

5.4同步两个计数器任务

 

有两种方法可以在同一 NI DAQmx 设备上同步两个计数器任务: 
  1. 对两个计数器使用 Arm Start 触发器。通过指向 PFI 或数字线路上的同一启动触发器,计数器任务将不会响应任何启动触发器,直至发生 Arm 启动触发器。 使用 DAQmx 触发器属性节点设置Arm 启动触发器。

        2.创建一个虚拟模拟输入任务,并使用 AI 采样时钟作为两个计数器的时钟源。当AI任务启动时,AI虚拟任务会发送AI启动触发信号,从而启动计数器。该触发器可用于启动其他 DAQ 任务。通过在计数器任务中设置 DAQmx Timing VI 以引用相同的采样时钟,我们能够确保任务在 AI 任务时钟启动时启动。 


5.5同步模拟输入和输出

        一个常见的同步用例是使用同一时钟启动模拟输入和模拟输出。这种情况​需要​两​个​代码​链:一个​用于模拟输入,​另​一个​用于​模拟输出。使用“DAQmx定时”VI指定每个代码链所需的连续操作。对于模拟输出定时,选择默认的“源”输入,这意味着模拟输出操作将根据默认的模拟输出时钟(内部时钟)运行。而对于模拟输入“DAQmx定时”VI,用户只需指定“源”作为模拟输出的采样时钟。这样,模拟输入和模拟输出操作便会根据模拟输出的定时信号运行

5.6同步应变温度测量

5.7 X系列参考时钟同步

        参考时钟同步的另一种方法是将采样时钟从 PXIe-6535 或另一个模块(主设备)导出到 PXI 触发线上,然后将从属 PXIe-6535 的采样时钟路由到该线。观察 PXIe-6535 可用的设备路由,数字输出采样时钟 ( /DO/SampleClock ) 只能路由到PXI_Trig7

5.8同步多个机箱中的DSA模块

与其他C系列模块不同,具有delta-sigma ADC(DSA)的模块需要同步采样时钟时基,以实现采样时钟同步。

由于CompactDAQ机箱中内置的可编程功能输入(PFI)线的最大带宽为1 MHz,低于所有DSA模块的内部时基,因此这些PFI线不能用于在多个cDAQ机箱上的DSA模块之间实现采样时钟同步。 。

为了同步DSA模块,有几种潜在的解决方案。为了简单起见:

  1. 连接两个或多个启用了时间敏感网络(TSN)的cDAQ-9185或cDAQ-9189机箱,并利用它们的时间同步功能来同步C系列DSA模块的时基。从这些C模块收集的数据仍然需要针对group delay进行调整 ,但是会自动同步。
  2. 如果不考虑启用TSN的机箱,请在每个cDAQ机箱中使用NI-9469机箱同步模块 ,以主从配置导出时基。有关详细信息,请参见如何使用NI-9469 C系列模块同步多个cDAQ机箱 。
  3. 您可以选择使用NI 9402 C系列数字模块共享所需的信号。与CompactDAQ机箱内置的PFI不同,NI 9402具有足够的带宽来共享信号。您可以使用DAQmx连接终端VI通过NI 9402上的PFI导出主CompactDAQ中Delta-Sigma模块上的内部时基。在从属机箱中,您可以将第二个NI 9402的PFI设置为采样时钟。时基源。


National Instruments建议尽可能使用启用TSN的设备进行多机箱同步,如果无法使用TSN则建议使用NI 9469。仅当其他方法不可行时才应使用方法3,因为不适当的电缆连接和增加的编程复杂性可能会引入其他可能的同步错误源。

有关使用启用TSN的机箱执行同步的更多详细信息,请参见LabVIEW中使用NI-DAQmx的模拟输入C系列模块的基于时间的同步相关说明,如果使用9469设备进行同步,请参见LabVIEW中基于NI-DAQmx的模拟输入C系列模块与基于信号的同步相关说明。尽管未明确提及,但后者可以用于标识使用方法3所需的属性。

6.其他

6.1 GPS同步架构

        GPS 同步使测量系统能够在极大的区域内进行同步测量。GPS 提供了一种共享定时信号的方法,无需为每个测量系统铺设定时电缆。GPS 的另一个好处是您的数据始终带有全球时间标准的时间戳,这使您可以将您的数据与其他系统的数据集关联起来,这些系统也以高置信度同步到 GPS。一些可以利用 GPS 优势的应用包括结构监测、电网监测和地面振动监测。本文将概述如何使用 NI 数据采集(例如 M 系列或 S 系列)设备设置 GPS 同步系统。

        为了使数据采集设备同步,它们必须同时采样数据。实现此目的的一种方法是为每个设备提供相同的外部采样时钟。当 PXI 机箱没有通过任何定时信号进行物理连接时,本地采样时钟需要从全球时间参考(例如 GPS)导出。GPS 规范时钟会不断调整以保持与 GPS 信号同步,因此它不会像自由运行的振荡器那样持续漂移。NI PXI-6683 能够创建基于 GPS 等时间参考的时钟信号。它还可以在特定时间启动或停止该时钟。为了确保时钟信号在通过 PXI 机箱路由时有最小的偏差,使用了 PXI Star 触发线。PXI Star 系列经过专门设计,PXI 插槽之间的偏差小于 1ns。通过使用 PXI-6683 生成受 GPS 控制并通过 PXI Star 触发线路由的外部采样时钟,单独机箱中的数据采集设备可以更紧密地同步。

        虽然此 GPS 架构不需要同步布线,但仍然需要能够通过 TCP/IP 与每个系统进行通信。如果系统无法物理连接到网络通信系统,则可以使用无线局域网 (WLAN)。使用 WLAN 时需要考虑的因素是与有线网络相比传输速度较慢,以及应用程序的范围、可靠性甚至安全性要求。

        由于 PXI 机箱之间不需要布线来进行同步,因此为了扩展测量系统,您只需复制一个 GPS 同步节点即可。下图显示了如何扩展系统。 

GPS网络.jpg

        GPS 为整个系统架构提供了很大的灵活性。每个节点不需要相同。例如,在许多应用中,传感器在测试区域上的分布并不均匀。这意味着测量设备也需要具有类似的物理分布。对于 GPS 同步,一个节点可能仅包含 16 个通道,而另一个节点则包含 400 个通道。如果特定位置需要多个通道,则可以通过有线解决方案将多个 PXI 机箱同步在一起,同时将整个节点同步到 GPS。这是混合有线和 GPS 同步系统的示例。下面链接的示例展示了如何将单个 PXI 机箱到多个 PXI 机箱与单个 GPS 天线同步。

有线与 GPS.png

 

        当多个系统同步在一起时,需要一个协调器来让所有系统一起工作。协调器负责查询所有系统的当前时间,计算启动采样时钟的最佳时间并将结果转发回每个系统。协调器软件可以驻留在任何可以通过 TCP/IP 与所有测量系统通信的 PC 上。它甚至可以驻留在其中一个测量系统上。

通讯流.jpg

获取数据后,最常见的流程是:

  • 将数据保存到本地硬盘以供后期处理。
  • 通过 TCP/IP 将数据传输到中央服务器以进行实时监控。
  • 在获取数据时对数据进行分析并将结果返回到中央服务器。

        通常,应用程序中不只执行其中一项,而是执行它们的组合。下面链接的 GPS 示例将把所有数据保存到本地硬盘,并通过 TCP/IP 将单个通道传输到“协调器”。这允许在获取数据时对数据进行一些基本监控。采集完成后,来自每个测量系统的数据文件可以合并在一个位置进行处理或数据存储。

        在确定需要哪种同步方案时,同步级别是需要考虑的重要因素。使用电缆同步解决方案,您可以实现最严格的精度,但您的系统受到电缆长度的限制。采用 GPS 同步方案时,由于 GPS 信号的误差,授时精度会降低,但测量系统可以放置在任何可以接收到 GPS 信号的地方。

        下面的结果显示了每个同步到 GPS 的设备之间的不匹配。来自函数发生器的相同信号被提供给两个NI 6133设备,每个设备位于不同的 PXI 机箱中。计算信号之间的时间差并将其绘制在图表上。这个过程重复了很多次。

        虽然由于硬件设置的固定性质,有线同步方案的结果没有变化,但 GPS 同步结果却有变化。这种变化是由于 GPS 规定的样本时钟之间的差异造成的,您可以看到时钟如何随着时间的推移不断修正。与 DAQ 设备上的内部时基相比,PXI-6683 上用于创建采样时钟的训练算法确实会增加时钟抖动。这种增加的抖动将在测量中显示为额外的相位噪声。 

相关参考链接:

使用 NI PXI-668x 定时和同步模块配置 GPS 同步:Configuring GPS Synchronization with the NI PXI-668x Timing and Synchronization Module - NI

6.2DSA设备如何同步数据延迟 

      
选项1:频道扩展
如果可以使用Channel Expansion 将这两个设备用于一项任务, 并且这些设备支持Filter Delay Removal ,则驱动程序将自动补偿延迟。需要注意的是,模块将需要以相同的速率采样数据。

在不支持滤波器延迟消除的设备(例如C系列设备)上使用通道扩展时,PXI-4461 / 4462或PXI-447x模块将使设备同步,但不会消除滤波器延迟。

选项2:使用RemoveFilterDelay属性
如果无法在单个任务中使用这些设备(即,如果您需要不同的采样率) 并且 DSA设备支持“ Filter Delay Removal” (例如PXIe-4464),则可以使用AI.RemoveFilterDelay属性( DAQmx通道属性节点:“模拟输入”»“常规属性”»“滤波器”»“删除滤波器延迟” )以自动丢弃滤波器延迟样本。


选项3:手动补偿
如果这两个设备不能在一个任务中使用,并且不支持“ Filter Delay Removal”功能,例如C系列,PXI-4461 / 4462或PXI-4472模块,则可以通过在驱动器上执行虚拟读取来手动补偿延迟。在同时从两个设备读取样本之前,DSA通道会在DSA设备上先丢弃出一定数量的初始样本,如下所示:

注意:要读取和丢弃的样本数量可以通过实验确定,也可以通过查看DSA设备规格文档中的组延迟或滤波器延迟方程或表格来确定。

选项4:对DSA设备使用模拟触发
如果您使用模拟触发来启动DSA设备任务,则不会观察到滤波器延迟,因为模拟触发电路位于抗混叠滤波器之后;因此,请参见图5。这样可以防止模拟信号的混叠分量触发触发器。

6.3使用外部采样时钟的情况

以下是您可能需要使用外部采样时钟的三种情况。

  1. 以输入信号的速率捕获数据

如果您要对需要非 N 分频采样频率的信号进行采样,您可能需要使用外部采样时钟。通常,您将配置您的系统,以便您想要采样的输入信号附带 TTL 脉冲序列,该脉冲序列充当外部采样时钟。该信号的每个脉冲用于同时采样所有通道的数据。

  1. 与其他设备同步

外部时钟提供了一种通过将公共时钟分配给多个设备来将高速数字化仪与测量系统中的其他设备同步的方法。此外,外部时钟可以在多个 PXI 机箱之间提供一致的时基。

  1. 使用更准确的时钟

需要极其精确时基的应用将受益于基于铷或恒温晶体振荡器 (OCXO) 的频率源的使用。这些设备的精度可以优于±100 ppb。例如,精度为 ±100 ppb 的 OCXO 源可产生不确定度为 ±1 Hz 的 10 MHz 时钟。PXI 同步模块非常 适合此类应用。它具有高精度 OCXO 或 TCXO 时钟选项,该模块可以将其驱动到 PXI 10 MHz 参考时钟线路,而不是 PXI 背板时钟。因此,所有具有锁定到 10 MHz 时钟信号的 VCXO 的仪器都继承了精度。

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_925902.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习记录--正则化(regularization)

什么是正则化&#xff1f; 正则化(regularization)是一种实用的减少方差(variance)的方法&#xff0c;也即避免过度拟合 几种正则化的方法 L2正则化 又被称为权重衰减(weight dacay) 在成本函数中加上正则项&#xff1a; 其中 由于在w的更新过程中会递减&#xff0c;即权…

鸿蒙HarmonyOS实战-工具安装和Helloworld案例

&#x1f680;前言 HarmonyOS是华为自主开发的操作系统&#xff0c;它在2020年9月正式发布。它最初被称为鸿蒙OS&#xff0c;后来更名为HarmonyOS。HarmonyOS旨在提供一种可在各种设备上无缝运行的统一操作系统&#xff0c;包括智能手机、平板电脑、智能穿戴设备、智能音箱、车…

代码随想录 Leetcode541. 反转字符串 II

题目&#xff1a; 代码(首刷自解 2024年1月16日&#xff09;&#xff1a; class Solution { public:void reverse(string& s,int left,int right) {char temp;while (left < right) {temp s[left];s[left] s[right];s[right] temp;left;--right;}return;}string rev…

分类预测 | Matlab实现CS-SVM布谷鸟算法优化支持向量机的数据分类预测

分类预测 | Matlab实现CS-SVM布谷鸟算法优化支持向量机的数据分类预测 目录 分类预测 | Matlab实现CS-SVM布谷鸟算法优化支持向量机的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现CS-SVM布谷鸟算法优化支持向量机的数据分类预测。 2.自带数据…

Qt QRubberBand 如何实现鼠标框选控件

QRubberBand类提供了一个矩形或直线&#xff0c;可以指示选择或边界。常见的模式是结合鼠标事件来执行此操作。本文将使用框选QCheckBox控件&#xff0c;来演示QRubberBand是如何配合鼠标进行工作的。 一、RubberBand 框选效果图 二、RubberBand 代码 rubberband.h #ifndef …

用LED数码显示器伪静态显示数字1234

#include<reg51.h> // 包含51单片机寄存器定义的头文件 void delay(void) //延时函数&#xff0c;延时约0.6毫秒 { unsigned char i; for(i0;i<200;i) ; } void main(void) { while(1) //无限循环 { P20xfe; …

TS学习笔记四:函数及泛型枚举

本节介绍ts的函数及泛型的相关内容&#xff0c;包括函数的声明格式及泛型的相关知识。 视频讲解 TS学习笔记四&#xff1a;函数的定义使用 B站视频 TS学习笔记四&#xff1a;函数的定义使用 西瓜视频 https://www.ixigua.com/7321535978286514727 一、函数 函数是js程序的…

[oeasy]python005_退出游乐场_重启游乐场_系统态shell_应用态_quit

0005_ 退出游乐场_重启游乐场_系统态shell 退出终端_重启游乐场_shell_quit &#x1f94a; Python 回忆 上次 了解了 python进入了 python 游乐场 在游乐场 可以做 简单的计算还可以做 乘方运算 数字特别大之后 游乐场 会迟疑一下不过 最终 还是能算出来 可以让数字 更大一…

Vue学习笔记3--全局事件总线

Vue学习笔记3—全局事件总线 1.全局事件总线可以实现任意组件间通信 X需具备的条件&#xff1a; 所有的组件都要能看见X可以调用$on $off $emitVue.prototype.x {a:1, b:2} 可以被所有组件看见VueComponent.protoype.proto Vue.prototype组件实例对象(vc)可以访问到Vue原型上…

Java多线程并发篇----第十八篇

系列文章目录 文章目录 系列文章目录前言一、寄存器二、程序计数器三、PCB-“切换桢”四、上下文切换的活动五、引起线程上下文切换的原因前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了…

QT软件在线安装与维护

一.安装 安装QT开发环境分离线安装和在线安装两种方式&#xff0c;具体步骤如下&#xff1a; QT官网注册账号----下载安装包-----安装-----选择要安装的版本与开发包----版本维护 注意&#xff1a;Qt5.14.2是最后提供二进制安装包的版本&#xff0c;后面的版本都需要在线安装…

小程序系列--7.页面配置以及网络数据请求

一. 页面配置 1.页面配置文件的作用 小程序中&#xff0c;每个页面都有自己的 .json 配置文件&#xff0c;用来对当前页面的窗口外观、页面效果等进行配置。 2. 页面配置和全局配置的关系 3. 页面配置中常用的配置项 二、网络数据请求 1. 小程序中网络数据请求的限制 2. 配…

数据分析中常用的指标或方法

一、方差与标准差二、协方差三、皮尔逊系数四、斯皮尔曼系数 一、方差与标准差 总体方差 V a r ( x ) σ 2 ∑ i 1 n ( x i − x ˉ ) 2 n ∑ i 1 n x i 2 − n x ˉ 2 n E ( x 2 ) − [ E ( x ) ] 2 Var(x)\sigma^2\frac {\sum\limits_{i1}^{n} (x_i - \bar{x})^2} {n…

SQL性能分析手段

SQL执行频率 MySQL 客户端连接成功后&#xff0c;通过 show [session|global] status 命令可以提供整个服务器执行sql的状态信息。通过如下指令&#xff0c;可以查看当前数据库的INSERT、UPDATE、DELETE、SELECT的访问频次&#xff1a; -- session 是查看当前会话 ; -- globa…

数据结构排序二叉树(下)

哎,调了几天深度学习模型,今天来更新排序二叉树 文章目录 前言 一、排序二叉树的结构定义 二、在排序二叉树添加数据 三、定义创建排序二叉树函数 四、查找一棵二叉排序树中的结点x的所在层数 五、删除二叉排序树中T关键字x的节点 六、查找二叉排序树中的所有小于key的关…

【小笔记】算法训练基础超参数调优思路

【学而不思则罔&#xff0c;思维不学则怠】 本文总结一下常见的一些算法训练超参数调优思路&#xff08;陆续总结更新&#xff09;&#xff0c;包括&#xff1a; batchsize学习率epochsdropout&#xff08;待添加&#xff09; Batch_size 2023.9.29 简单来说&#xff0c;较…

Kotlin程序设计(二)面向对象

Kotlin程序设计中级篇 我们在前面已经学习了Kotlin程序设计的基础篇&#xff0c;本章我们将继续介绍更多Kotlin特性&#xff0c;以及面向对象编程。 函数 其实函数我们在一开始就在使用了&#xff1a; fun main() {println("Hello World") }我们程序的入口点就是…

day3:基于UDP模型的简单文件下载

思维导图 tftp文件下载客户端实现 #include <head.h> #define SER_PORT 69 #define SER_IP "192.168.125.223" int link_file() {int sfdsocket(AF_INET,SOCK_DGRAM,0);if(sfd-1){perror("socket error");return -1;}return sfd; } int filedownloa…

【Spring Cloud Alibaba】Sentinel 服务熔断与流量控制

目录 前言 一、Sentinel 入门 1.1 什么是 Sentinel ? 1.2 微服务集成 Sentinel 1.3 安装Sentinel控制台 二、Jmeter 压力测试工具 2.1 Jmeter 介绍 2.2 Jmeter 安装 2.3 接口测试 三、Sentinel 使用 3.1 限流规则 3.1.1 warm up(预热模式) 3.1.2 排队等待 3.1.3…

mathtype2024版本下载与安装(mac版本也包含在内)

安装包补丁主要是mathtype的安装包&#xff0c;与它的补丁。 详细安装过程&#xff1a; step1&#xff1a; 使用方法是下载完成后先安装MathType-win-zh.exe文件&#xff0c;跟着步骤走直接安装就行。 step2&#xff1a; 关闭之后&#xff0c;以管理员身份运行MathType7PJ.exe…