当前位置: 首页 > news >正文

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使用率,但也可以大大降低系统的执行速度。选择并行执行以提高执行速度。

http://www.lryc.cn/news/268053.html

相关文章:

  • YoloV8的目标检测推理
  • c语言中数据结构
  • 【GitHub精选项目】抖音/ TikTok 视频下载:TikTokDownloader 操作指南
  • Java开发框架和中间件面试题(3)
  • React面试题
  • 机器学习-数学学习汇总
  • 17个常用经典数据可视化图表与冷门图表
  • (五)Python 垃圾回收机制
  • 策略模式(组件协作)
  • 每日一题-----逆序字符串
  • js两个对象数组合并。并且去掉里边某个属性相同的对象
  • 创建重试机制
  • [c]统计数字
  • 采用ODP.NET 批量进行数据同步
  • 【vue滚动条插件vuescroll】【vue自定义滚动条】
  • python 1200例——【8】冒泡排序
  • 在PyTorch中设置随机数生成器的种子值
  • 用手机做无人直播怎么做?
  • 【zookeeper经典应用实战】
  • 12月25日作业
  • React学习计划-React16--React基础(五)脚手架创建项目、todoList案例、配置代理、消息订阅与发布
  • C语言中switch语句中的case后()
  • 【RocketMQ笔记02】安装RocketMQ可视化工具rocketmq-dashboard
  • AutoSAR(基础入门篇)2.2-AutoSAR架构中的Ports类型与Runnables可运行实体
  • 【Unity】GPU骨骼动画 渲染性能开挂 动画合批渲染 支持武器挂载
  • 打开相机失败 出现错误的原因
  • 什么是阿里云负载均衡SLB?
  • Mybatis三 | 动态SQL
  • 信号与槽QT4和QT5的区别
  • K8S 搜集java应用pod重启前现场 —— 筑梦之路