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

news2024/11/16 22:34:18

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

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

在大多数测量或控制应用中,目标是将真实世界的数据从信号中获取到某种逻辑或算法中。在软件变得容易访问之前,此类应用程序完全在硬件中实现-通常是模拟电路。虽然一些应用继续为其算法使用定制的专用硬件实现,但如今大多数控制或测量算法都是在软件中实现的。软件允许大幅简化和减少实施、设计迭代和测试。它还允许更多的抽象,以将工作细节的级别简化到可管理的范围。

其中一个测量和控制系统的设计侧重于将来自物理世界的信号获取到软件中的算法中。

将单个测量值纳入算法需要什么?

首先看看如何将单个单点测量从物理世界转换为软件算法。

图1:测量和控制系统围绕将信号测量结果导入算法的目标而构建。

与所有流程一样,这不是即时的。主要的延误可分为三类。

•首先是信号调理和模数转换。这与将物理信号转换为数字电子信号有关。这里可能有过滤器或其他进程。由于物理限制,即使是最快的数模转换器(DAC)也具有最大速度。

•第二,硬件通信。这包括将信号从DAC传输到软件执行系统(如PC)所需的所有过程。其中最大的部分是总线延迟。

•第三个延迟是特定于软件的,包括将信号输入正确的内存并将其传送到算法所需的任何软件或内存传输。这可能涉及DMA读取操作、处理中断和其他操作,例如将数据复制到算法中。

图2:延迟的三种一般类别

为了量化这些,在一些慢速、高精度设备上,每个样本的采样速率可能慢至约1秒。另一方面,有些设备可以在GS/s范围内采样。硬件通信的范围从微秒到几十毫秒不等,具体取决于总线和系统架构。软件处理和内存传输由软件的速度驱动,并且可以根据处理器的性能以及软件的设计而有很大差异。

最后,在获得结果之前,需要完成算法所需的时间。这种计算可以是一个简单的任务,如PID控制或缓冲并将其写入磁盘,也可以涉及更高级的计算,如基于微分方程的仿真模型的计算。

因此,从信号到算法的路径可以像这样分解:

图3:三种一般延迟类别及其各自的时间。

什么是吞吐量和延迟?

延迟是完成操作所需的时间。它以时间单位测量,通常以毫秒、微秒和纳秒为单位。在许多应用(如控制应用)中,重要的是往返延迟。这是从输入到输出的时间。在这种情况下,信号不仅必须沿链向上传输到算法,而且必须再次沿链向下传输到可以输出物理信号的数模转换器。

吞吐量是系统可以处理输入的速率。它是每个给定时间的测量量。它不是衡量它们有多近,而只是衡量它们的数量。吞吐量通常以每秒样本数(S/s)表示,但值得注意的是,许多计算机组件的额定值为B/s、MB/s、GB/s等。这些组件会影响系统的总吞吐量。一个常见的同义词是术语带宽。

在了解了一次测量如何从信号到算法之后,如何更快地完成?有两种方法可以做到这一点,有两种不同的结果。一个是提高吞吐量,另一个是减少延迟。

提高吞吐量

操作的计时方式会严重影响吞吐量。有两种方法可以对测量的采集进行计时。首先是软件定时:它需要来自计算机的输入来控制采集,并且时序在软件中进行管理。由于计算机软件提供了命令,因此要连续多次发生,将需要软件循环和相同的步骤。此外,大部分延迟主要是由过程的软件控制部分主导的。

图4:软件定时采集

然后是硬件时序,它与先进先出缓冲区(FIFO)结合使用。芯片上的硬件时钟以精确的间隔采集样本,并将其推入缓冲液和链中。这可用于提高采样速度。它还允许每个操作传递一组数据点而不是单个数据点,从而节省开销并提高操作效率。此概念(取决于其应用位置)可以称为数组操作、缓冲操作、向量操作或批处理操作。这样,一次可以处理更多的样品,并且可以减少样品之间的时间。

硬件时序和缓冲器是有利的,因为通过这些过程中的每一个的开销是针对每批样品而不是每个样品产生的。这样,即使硬件通信可能每十个样本发生一次,如果每次发送十个样本,则采样率可能是硬件通信速率的十倍。

图5:硬件定时采集,使用FIFO和硬件定时提高吞吐量

这里所做的并不是加快系统作为一个整体迭代的速度。相反,它在给定的时间内推送了更多的数据。就采样率而言,它有效地让软件延迟时间除以缓冲区中的项目数。正是这一重大进步将当今每秒抖动100到150个样本的软件定时最大速率提高到最快设备的GS/s速率。这是6或7个数量级的改进。

缓冲区和硬件计时以吞吐量的改进为中心,而不是帮助减少延迟。事实上,额外的缓冲区可能会损害延迟。

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

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

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

相关文章

LeetCode哈希表相关解法

哈希表1. 理论哈希碰撞的解决方法拉链法线性探测法2. 有效的字母异位词[242. 有效的字母异位词](https://leetcode.cn/problems/valid-anagram/)3. 两个数组的交集[349. 两个数组的交集](https://leetcode.cn/problems/intersection-of-two-arrays/)4. 快乐数[202. 快乐数](htt…

16_tomcat

tomcat 一、jsp一句话木马 这个东西网上百度就有 <%!class U extends ClassLoader {U(ClassLoader c) {super(c);}public Class g(byte[] b) {return super.defineClass(b, 0, b.length);}}public byte[] base64Decode(String str) throws Exception {try {Class clazz …

Coresight - HW Assisted Tracing on ARM

文章目录一、Introduction二、Acronyms and Classification2.1 Acronyms2.2 Classification三、Device Tree Bindings四、Framework and implementation五、Device Naming scheme六、Topology Representation七、How to use the tracer modules7.1 Using the sysFS interface7.…

如何实现RTMP协议

认识rtmp rtmp是Adobe公司出品的流媒体传输协议&#xff0c;它的全称是Real Time Messaging Protocol&#xff0c;是一个实时消息传输协议&#xff0c;学习RTMP一定要抓住 一个关键点&#xff1a;消息。 rtmp协议的原文可以在Adobe官网下载&#xff0c;内容十分精简&#xff…

用户身份管理(CIAM)如何帮助业务持续增长?|身份云研究院

精明的决策者很早就意识到&#xff0c;数字化转型的核心是为用户提供完善的“数字旅程”&#xff0c;这里的用户包括“员工”和“客户”&#xff0c;而“数字旅程”的核心则是持续提供优质的「数字用户体验&#xff08;DCX&#xff09;」。本文将主要探讨如何制定完善“客户数字…

window版Docker打包镜像并上传到服务器使用

背景&#xff1a;利用jmeter实现自动化进行线上监视&#xff0c;要部署于多台服务器上监视&#xff0c;为了节省时间&#xff0c;方便使用&#xff0c;最终决定使用docker将自动化脚本打包成镜像&#xff0c;这样只要服务器上安装docker环境&#xff0c;直接下载镜像就可以使用…

2023全新SF授权系统源码 V3.7全开源无加密版本

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 SF多应用综合验证授权系统 V4.0更新内容 采用ThinkPHP 6.0 EasyWebAdmin 支持自定义判断规则&#xff08;默认提供域名QQ机器码规则&#xff09; 支持在线充值&#xff0c;用户Api授权&…

(免费分享)springboot人事管理系统

基础环境&#xff1a;1. JDK:1.82. MySQL:5.73. Maven3.01. 核心框架&#xff1a;Spring Boot 2.2.13.RELEASE2. ORM框架&#xff1a;MyBatisPlus 3.1.23. 数据库连接池&#xff1a;Druid 1.2.84. 安全框架&#xff1a;Apache Shiro 1.8.05. 日志&#xff1a;SLF4J &#xff0c…

最近邻插值法

文章目录前言一、最近邻插值法二、代码实现总结本章节进入图像处理&#xff0c;利用python语言来实现各种图像处理的方法&#xff0c;从软件角度去理解图像处理方法&#xff0c;为后期的FPGA处理图像做准备。 前言 一、最近邻插值法 最近邻插值就是在目标像素点上插入离对应原…

界面控件DevExpress WinForm中文教程 - 如何应用Windows 11 UI?

DevExpress WinForm拥有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序&#xff0c;无论是Office风格的界面&#xff0c;还是分析处理大批量的业务数据&#xff0c;它都能轻松胜任…

全网最详细的org.springframework.jdbc.UncategorizedSQLException的多种解决方法

文章目录1. 引出问题2. 分析问题3. 解决问题4. 解决该问题的其他方法4.1 方法14.2 方法24.3 方法34.4 方法4如果你遇到的问题不是我所遇到的问题&#xff0c;可以使用最下面的方法解决你遇到的这个错误。 1. 引出问题 今天在写“Mybatis-Plus中分页插件PaginationInterceptor…

利用Python读取外部数据文件

名字&#xff1a;阿玥的小东东 学习&#xff1a;python、c 主页&#xff1a;阿玥的小东东 目录 一、读取文本文件的数据 二、读取电子表格文件 三、读取统计软件生成的数据文件 不论是数据分析&#xff0c;数据可视化&#xff0c;还是数据挖掘&#xff0c;一切的一切全都是以…

java常用类: Arrays类的常用方法

java常用类型: Ineteger等包装类 String类&#xff0c;StringBuffer类和StringBuilder类 Math类及常用方法 System类及常用方法 Arrays类及常用方法 BigInteger类和BigDecimal类及常用方法 日期类Date类,Calender类和LocalDateTime类 文章目录ArraysArrays常用方法Arrays.sort(…

全排列问题的解题思路

假设有这么个正整数n&#xff0c;要求输出1到n的所有排列&#xff1f;   输入&#xff1a;3 输出&#xff1a;123&#xff0c;132&#xff0c;213&#xff0c;231&#xff0c;312&#xff0c;321 一、无脑循环求解&#xff1f; 拿到这个问题&#xff0c;当然我的第一个想法就…

上下文驱动的图上文案生成

✍&#x1f3fb; 本文作者&#xff1a;持信、弈臻、悟放、积流、孟诸1. 摘要为商品图片上特定位置配上装饰性文案来突出重点在广告业务中有着十分广泛的应用前景。然而&#xff0c;现有的图片文案描述生成系统均生成与图片位置关系无关的文案&#xff0c;无法很好地应用到广告业…

66. Python 类的总结

66. 类的总结 文章目录66. 类的总结1. 类2. 对象3. 类的语法4. 属性5. 方法6. 创建对象7. 调用属性8. 调用方法9. 方法的值的传递第1情况&#xff1a;没有值第2种情况&#xff1a;有值10. __init__方法1. __init__写法2. __init__作用3. 重点关注11. 自定义函数和方法的异同1. …

Unity渲染管线(Render Pipeline)笔记

Rendering是什么 渲染Rendering可以理解为将拿到的3D数据生成一副2D图像的过程。 这些3D数据包含&#xff1a;3D模型本身的点的信息&#xff0c;三角形面的描述信息&#xff0c;模型应用的材质以及摆放的虚拟相机的信息等。Rendering过程会使用全部的数据&#xff08;物体的几何…

摄像头录像大师推荐?如何录制摄像头,图文教程

现如今&#xff0c;很多笔记本电脑上都会携带摄像头&#xff0c;用来录制摄像头画面&#xff0c;方便小伙伴的时候。可很多小伙伴却表示&#xff0c;自己不知道电脑摄像头画面该如何录制。有什么有什么好用的摄像头录制大师&#xff1f;如何录制摄像头画面&#xff1f;本篇文章…

【10w字】超详细【百分百拿offer】的面试教程,接口测试篇

1.请问你是如何做接口测试的&#xff1f; 大体来说&#xff0c;经历以下过程&#xff1a;接口需求调研、接口测试工具选择、接口测试用例编写、接口测试执行、接口测试回归、接口测试自动化持续集成。 具体来说&#xff0c;接口测试流程分成以下九步&#xff1a; 第一步&…

RabbitMq之发布确认(高级)

一.发送消息到交换机失败 正常情况下生产者只发布消息到交换机&#xff0c;无法确定是否成功把消息发送到交换机当中&#xff0c;由此发布确认的回调函数可以通知生产者消息是否发送到了交换机。 代码如下 1.先创建交换机、队列等信息 package jot.jothot.testMq;import or…