NI VeriStand中的硬件I / O延迟时间

NI VeriStand中的硬件I / O延迟时间 - NI

适用于

软件

  • VeriStand

问题详述

在我的VeriStand项目中,我要从DAQ或FPGA硬件中获取数据,在模型中处理输出,然后输出数据。在硬件输入和输出之间,我应该期望什么样的延迟?如何减少延迟?

解决方案

硬件输入和输出延迟取决于系统定义文件中指定的执行模式。在系统资源管理器的“控制器”页面上,可以选择“并行执行”模式或“低延迟执行”模式。在这些执行模式下,以下行为适用于DAQ和FPGA硬件输入/输出:

并行执行(DAQ和FPGA-默认)

  1. 第一个循环-采集硬件输入并将其传递给模型。
  2. 第二个循环-模型处理获取的数据并生成输出数据。此数据已发送到输出缓冲区,但尚未生成。
  3. 第三循环-生成硬件输出。

因此,从输入到输出存在两个滴答延迟。

低延迟执行(DAQ和FPGA-默认)

  1. 第一个循环-采集硬件输入并将其传递给模型。该模型处理获取的数据并生成输出数据。此数据已发送到输出缓冲区,但尚未生成。
  2. 第二个循环-生成硬件输出。

因此,从输入到输出只有一个滴答延迟。

对于DAQ硬件,输入和输出任务使用相同的硬件采样时钟,因此必须等待下一个滴答更新输出信号。另一方面,FPGA任务使用反馈节点将数据按硬件时序写入输出。可以删除这些反馈节点,因此将在同一循环迭代中生成输出信号。但是,这样做将导致FPGA IO输出没有硬件定时。这将导致代码中更多的抖动,因此请记住,此方法会牺牲一些确定性。在这种情况下,以下行为适用:

并行执行(FPGA-无硬件定时)

  1. 第一个循环-采集硬件输入并将其传递给模型。
  2. 第二循环-模型处理获取的数据并生成输出数据。该数据被发送到输出缓冲区并由硬件生成。

因此,存在一个滴答延迟,加上从输入到输出的大约高优先级(HP)循环持续时间。

低延迟执行(FPGA-无硬件定时)

  1. 第一个循环-采集硬件输入并将其传递给模型。该模型处理获取的数据并生成输出数据。该数据被发送到输出缓冲区并由硬件生成。

因此,从输入到输出大约有HP Loop持续时间的延迟。在这种情况下,HP循环持续时间将比并行执行设置更长,因为HP循环持续时间包括模型执行时间。

相关信息

选择低延迟执行设置需要权衡。此设置可以最大程度地减少延迟和CPU使用率,但也可以大大降低系统的执行速度。选择并行执行以提高执行速度。

你可能感兴趣的:(fpga开发,labview)