LabVIEW更高的吞吐量与更少的延迟2

news2024/10/6 19:16:47

LabVIEW更高的吞吐量与更少的延迟2

上一篇《LabVIEW更高的吞吐量与更少的延迟1》介绍了吞吐量的内容,本次介绍延迟的相关内容。

改善延迟

有一些技术可以解决改善延迟的问题。围绕这一目标的两个主要工具是实时操作系统和FPGA。

实时操作系统

任何操作系统都会遇到抖动或延迟变化。普通操作系统(如Windows)旨在尽可能公平地运行所有程序。为了促进这种公平性和时间共享,当操作系统循环运行其他进程时,给定程序中经常会出现抖动。抖动可以采取持续几毫秒的停顿形式,甚至长达数十秒。如果在某些情况下,抖动实际上是无限的。这种抖动限制了通用操作系统在以高度规律性执行任务时的有用性。这是因为它们是为公平性而不是可重复性而设计的,并且给定的任务在执行时间上会有很大的变化。

实时操作系统(RTOS)不是为了公平性而设计的,而是为了通过限制抖动来实现可重复性。这些例子包括Pharlap,VXWorks和R TLinux。操作系统的体系结构的目标是使给定的操作在固定时间内执行。这样,执行任务所需的时间是非常可预测和有规律的,抖动非常小。

通过额外的努力来减少抖动,RTOS上的一些操作平均比通用操作系统上的执行时间更长。但是,执行时间的实际上限可能要低得多。

图:在两个操作系统上运行的控制环路的模拟环路时间。

顶部:通用操作系统的循环时间变化很大,没有实际的上限(绿线)。

底部:实时操作系统的平均值较高(红线),但抖动较少。这使其能够以更高的速率可靠地使用。

通用操作系统由于其高抖动,不适合应用于许多具有时序要求的应用。但是使用实时操作系统,PC可以部署到原本无法部署的情况下,因为它的执行时间更规律。尽管平均执行时间较长,但统计分布更窄,因此更可预测。最终效果是PC架构在无法以其他方式部署的应用程序中的能力得到增强。

虽然RTOS通过限制延迟的变化来提高PC的实用性,但它并没有降低其平均延迟。在需要大幅降低延迟的情况下,RTOS是不够的。

FPGA和延迟

已经开发了另一组工具来减少延迟。FPGA或现场可编程门阵列由基本节点的硬件“结构”组成。这些节点可以通过软件链接在一起以定义其行为,并轻松重新配置。FPGA具有硬件提供的极其精确的时序和可靠性以及软件开发的便利性。

将算法放在FPGA上可以缩短从信号到算法的行程。在FPGA上,两个主要的延迟是ADC采样和算法的计算。此外,该算法的速度要快得多,因为它位于FPGA的硬件结构中,而不是软件执行系统中。它具有软件的灵活性,因为不需要对设备进行物理更改来更改其行为,但具有硬件的速度,以高达(目前)兆赫兹范围的时钟速率执行。

图 PGA架构和较短的算法行程(显示缓冲区的可选用法)

FPGA应用中的缓冲器是可选的-通常只包含在需要它们的计算中,例如FFT。不带缓冲器的FPGA代码是延迟最低应用最常选择的架构,在这些应用中,在给出输入后需要尽快获得结果。像这样的应用往往会尽快提供输出结果,就像在高速控制系统中一样。

FPGA和吞吐量

虽然在上一节中没有提到,但FPGA也是实现高吞吐量处理的有用工具。高吞吐量处理在FPGA上是可能的,因为算法是在硬件中执行的。通常,滤波、FFT或信号等预处理步骤在FPGA上运行,然后数据被缓冲并传递到主机PC。

如果同时想要高吞吐量和低延迟,该怎么办?

值得注意的是,大多数提高吞吐量的更改通常会对延迟产生负面影响。增加延迟的因素也会对吞吐量产生负面影响。可以同时满足两者的高度,但通常只能使用专用硬件或FPGA。幸运的是,大多数应用程序都需要其中之一,而不是两者兼而有之。

示例用例

想记录来自测试单元的振动测量值。有十几个应变通道,希望以至少50kHz的速度采样。对于NI硬件,可以使用DAQ设备来实现这,例如C系列NI-9237或PXI-4497。

对于此应用,采样速率很高,比软件定时要快得多。这是需要高吞吐量的系统示例。只要所有数据都到达日志文件,当发生这种情况时,它就不重要。因此,延迟不是主要问题。根据这些要求选择硬件时,吞吐量将是主要要求。FPGA并不重要,但需要高吞吐量、通道数、采样速度和磁盘空间。对于NI硬件,可以使用DAQ卡来实现这,例如C系列9237或PXI4497。

想为无人机运行基于模型的控制,这些循环时间中最快的需要在亚毫秒级别执行。该回路仅取决于一个传感器,但它对于在该时间执行的飞行器的稳定性至关重要。

涉及的通道并不多,尽管采样率需要高于软件定时速率,但吞吐量并不是主要问题。主要关注点是及时提供输出以满足固有的时序要求。因此,这是一个需要非常低延迟的应用程序示例。因此,将需要低延迟硬件,例如FPGA。如果要处理此应用程序,可能会从单板RIO开始。

想模拟射频通道。有一个4x4MIMO信号,并希望有一个系统模拟传输通道。希望测试实时运行。

该系统必须采集数据,对其进行处理,并在非常严格的时间间隔内返回结果。它还必须在多个通道上处理非常高的采样率。这是高吞吐量和低延迟应用程序的示例。对硬件的要求将是严格的,几乎肯定会需要专用硬件或强大的FPGA。借助NI硬件,可以使用NI矢量信号收发器(VST)完成这是最新的具有1GHz瞬时带宽,或者使用NI矢量信号分析仪(VSA)和随附的FlexRIOFPGA协置处理器。

想为飞机模拟飞行动力学模型,以便可以用它来测试飞行控制器。有数百个传感器和执行器,模型需要以至少1KHz的速率执行才能获得保真度。

该仿真系统对交付结果有严格的时序要求。由于如此高的通道数,它还具有高吞吐量。因此,此应用程序需要高吞吐量和低延迟。借助NI硬件,可以使用高速PXIExpress控制器(如PXIe-8135)和合适的I/O模块(部分包括FPGA)。

想获取一组压力和温度来监测设施的环境。速率不会超过每秒一个样本,预计每个样本之间的差异很小。使用这些值,将进行一些日志记录,并在值超出范围时发出警报。

此应用程序没有高吞吐量,因为数据速率很慢。它也没有严格的时序需求,因此不需要低延迟。软件时序足以满足此应用程序的需求。对硬件的要求并不严格,各种低成本的选择是可行的。

所以在设计一个系统时,“速度”有两个含义。“需要多快采集样本?”通常转化为吞吐量。“样本后需要多快获得结果?”通常转化为延迟。

需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

应用可靠性与性能不给力?HarmonyOS HiViewDFX了解一下

作为基础软件服务子系统的HarmonyOS HiViewDFX(以下简称HiViewDFX)框架,是HarmonyOS的公共基础设施。包括日志、事件、跟踪、故障管理及观测剖析五大部分,同时也提供了故障检测、定位和性能观测剖析的开发套件,以及将端…

操作系统权限提升(十一)之系统错误配置-启动项提权

系列文章 操作系统权限提升(一)之操作系统权限介绍 操作系统权限提升(二)之常见提权的环境介绍 操作系统权限提升(三)之Windows系统内核溢出漏洞提权 操作系统权限提升(四)之系统错误配置-Tusted Service Paths提权 操作系统权限提升(五)之系统错误配置-PATH环境变量提权 操作…

【前端】Vue项目:旅游App-(19)loading:网络请求时显示loading效果

文章目录目标过程与代码loading效果mainStore控制loading显示点击蒙板取消网络请求在网络请求处添加对loading的控制效果总代码修改或添加的文件loading.vueservice/request/indexstore/modules/mainApp.vue参考本项目博客总结:【前端】Vue项目:旅游App-…

自动化运维|云原生架构下的产品自动化发布、快速部署和持续交付实战之路

自动化运维|云原生架构下的产品自动化发布、快速部署和持续交付实战之路。 1.背景介绍 CI/CD是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD 的核心概念是持续集成、持续交付和持续部署。作为一种面向开发和运维团队的解决方案,CI/CD 主要针…

只做笔记有必要买apple pencil吗?平价电容笔排行榜

如今国内的电容笔,牌子也越来越多了,苹果原装电容笔虽然性能不错,但价格也非常昂贵,一般人是买不起的。现在市面上有很多可以取代原来的苹果电容笔的平替电容笔。下面,我给大家推荐几款电容笔,好用而且价格…

Java 文件IO操作基础,File,FileInputStream,FileOutputStream

什么是文件 有个时候我们程序中的数据不会直接保存,一旦程序断电,数据将不会存在,如果我们想要我们程序中的数据永久的保存起来,所以,java的文件io显得非常重要。 什么是文件流 创建文件 如下相关的文件io方法 new F…

【教程】Wireshark抓取抖音直播的OBS推流地址和密钥

真不用花钱去买提取推流码的软件。。。自己提取很简单的。 简单记录一下,以备自己需要时候忘了怎么搞。 1、电脑开热点,手机连接热点; 2、电脑安装wireshark软件,并选择WLAN或者以太网接口; 3、wireshark筛选rtmpt&am…

Kubernetes持久化Events到sentry

背景 Kubernetes中的事件最终还是存储在etcd中,默认情况下只保存1个小时,由于etcd并不支持一些复杂的分析操作,默认Kubernetes只提供了非常简单的过滤方式,比如通过Reason、时间、类型等。同时这些事件只是被动的存在etcd中&…

CAPL(vTESTStudio) - DOIP - UDP发送_03

继UDP接收的介绍完成后,今天我们介绍下UDP发送的函数,这里我们将我自主开发的函数整体都会介绍个大家,一般能够完成大家日常脚本开发中90%以上使用发送UDP的数据函数,绝对干货满满。 UDP发送 一、参数定义 无论DoIP发送报文的UDP还是TCP函数,亦或是CAN、CANFDLIN的发送函…

Redux了解及应用(三)

React - redux 使用(由浅入深):https://blog.csdn.net/Jie_1997/article/details/128078971 这篇文章总结的很棒!!!了解redux及应用直接看这篇文章即可 备注:第五节的第三小节,容器…

学习驱动的复杂软件符号执行

原文来自微信公众号“编程语言Lab”:学习驱动的复杂软件符号执行搜索关注“编程语言Lab”公众号(HW-PLLab)获取编程语言更多技术内容!欢迎加入编程语言社区 SIG-编程语言测试,了解更多编程语言测试相关的技术内容。加入…

元宇宙:有人追捧,就会有人抵触

或许,直到现在,我们依然无法否认元宇宙即将对我们的生产和生活产生的深刻影响。即使是在它遭遇巨大的不确定性的大背景下,依然如此。 有人追捧,便有人抵触。元宇宙商用的止步不前,元宇宙技术的难以突破……几乎都是这…

为什么不进行穷举测试?

本章主要介绍不对所有可能性进行测试的原因,对于经理和测试人员,都应该了解测试是一种采样过程,需要了解采样给测试所带来的风险。 1、可进行测试的数目是无限的 如果不能查看代码内部逻辑,可输入的测试用例是无限的。当然还有在不…

第30章 分布式缓存强制删除触发器的触发调试

1 Services.Users.Caching.RoleCacheEventConsumer using Core.Caching; using Core.Domain.Users; using Services.Caching; namespace Services.Users.Caching { /// <summary> /// 摘要&#xff1a; /// 通过该类中的方法成员&#xff0c;在角色实体的1个实例…

Linux —— 文件系统概述、软硬链接与动静态库

目录 1.文件系统概述 1.1磁盘的基本存储结构 1.2磁盘的基本逻辑结构 1.3操作系统中的文件系统 1.4文件系统如何对磁盘进行管理 2.软链接、硬链接 2.1软链接 2.2硬链接 2.3目录的硬链接数 3.静态库和动态库 3.1静态库的制作 3.2静态库的使用 3.3动态库的制作 3.4动态…

年薪50k大佬带你五分钟学会接口自动化测试框架

今天&#xff0c;我们来聊聊接口自动化测试是什么&#xff1f;如何开始&#xff1f;接口自动化测试框架怎么做&#xff1f;自动化测试自动化测试&#xff0c;这几年行业内的热词&#xff0c;也是测试人员进阶的必备技能&#xff0c;更是软件测试未来发展的趋势。特别是在敏捷模…

分布式请求链路跟踪-SpringCloud Sleuth

文章目录1.概述1.1.为什么会出现这个技术&#xff1f; 需要解决哪些问题?1.2.是什么?1.3.如何解决问题?2.搭建链路监控步骤2.1.zipkin2.2.服务提供者2.3.服务消费者&#xff08;调用方&#xff09;2.4.测试1.概述 1.1.为什么会出现这个技术&#xff1f; 需要解决哪些问题?…

力扣刷题记录——1108. IP 地址无效化、1281. 整数的各位积和之差 次数 、1295. 统计位数为偶数的数字、1394. 找出数组中的幸运数

本专栏主要记录力扣的刷题记录&#xff0c;备战蓝桥杯&#xff0c;供复盘和优化算法使用&#xff0c;也希望给大家带来帮助&#xff0c;博主是算法小白&#xff0c;希望各位大佬不要见笑&#xff0c;今天要分享的是——《力扣刷题记录——1108. IP 地址无效化、1281. 整数的各位…

手撕排序算法(一)——插入排序

排序的概念及意义本章内容我们采用C语言完成代码。排序的概念我们先来了解一下基础概念&#xff1a;排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。稳定性&#xff1a;假定在待排序…

cin关闭流同步的利弊与cout的endl使用(超时问题)

重要&#xff1a;1&#xff1a;比如print&#xff0c;scanf&#xff0c;gets()&#xff0c;pus()&#xff0c;getchar()不要与cin&#xff0c;cout共用2&#xff1a;cout中不要使用endl每次使用endl&#xff0c;都要flush缓冲区&#xff0c;造成大量时间耗费。推荐cout <<…