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



主要软件:
主要软件版本: 2009
主要软件修正版本: N/A
次要软件: N/A

问题: 我已经安装了一个 NI VeriStand 的实时系统。我将会从硬件(DAQ 或者FPGA)采集数据,并在我的模型中对数据进行处理,然后输出数据。那么从硬件输入到输出的延迟时间预期是多少?并且我应该怎样减少延迟时间?

解答: 硬件输入和输出延时主要由系统中定义的指定执行模式决定。在系统浏览器中的控制界面上,你可以选择并行执行模式或者低延时执行模式。以下行为应用于DAQ 和 FPGA I/O的执行模式中:

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

 

  1. 第一个循环周期 - 硬件输入被获取并传递给执行模型。
  2. 第二个循环周期 - 模型处理获得的数据然后生成输出数据。这些数据被送到输出 buffer,但并不生成。
  3. 第三个循环周期- 产生硬件输出。

因此,从输入到输出有两个周期延时。

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

  1. 第一个循环周期- 获取硬件输入数据并把数据传递到模型。该模型处理获得的数据并产生输出数据。这些数据被送到输出 buffer,但并不生成。 
  2. 第二个循环周期 - 产生硬件输出。

因此,从输入到输出有一个周期延时。

注意: 在选择低延时执行设置的时候需要进行权衡。该设置可以把延时和CPU利用率降到最低,但是也可能大大地降低系统的速度。选择并行执行可以提高执行速度。

对于 DAQ 硬件,输入和输出任务是用相同的硬件采样时钟,所以等待下一个循环周期来更新输出信号时非常必要的。另一方面,FPGA 任务使用反馈节点通过硬件定时来把数据写到输出端口。这些反馈节点可以被删除,因此输出信号需要在同一个循环内产生。但是,这样做将引起 FPGA IO 输出无法硬件定时。这将引起更大的抖动, 所以必须记住的是这种方法是以牺牲某些优点为代价的。以下行为应用到这种情况:

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

  1. 第一个循环周期 - 获取硬件输入数据然后传递给处理模型。
  2. 第二个循环周期 - 模型处理获得的数据然后生成输出数据。这些数据被送到输出 buffer 并从硬件输出。

因此,有一个循环的延时加上适当的从输入到输出的 HP 循环延时。.

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

  1. 第一个循环周期 - 获取硬件输入数据并传递数据给模型。模型处理获得的数据并产生输出。这些数据被送到输出 buffer 并且从硬件生成。

因此,在硬件输入到硬件输出之间有一个HP 循环的延时。 该延时如果在并行执行设置中将会更长,因为它增加了模型的执行时间。



相关链接:

附件:





报告日期: 04/12/2010
最近更新: 11/28/2011
文档编号: 58BFIFAF