LabVIEWCompactRIO 开发指南第六章42

news2024/10/6 6:42:01

LabVIEWCompactRIO 开发指南第六章42

要使用用户控制的I/O示例方法进行编程,请按照以下步骤操作,这些步骤引用了图6.9中的示例程序。

初始化进程

1.调用重置I/O函数。此调用完成后,模块已准备好使用用户控制的I/O采样函数执行采集。必须首先调用复位I/O函数,以准备NI9223以使用其他用户控制的I/O采样函数。

2.将停止的布尔值设置为false。此布尔值在最后一个序列帧中的While循环之间提供同步。如果任何循环停止,则会导致其他循环也停止。

3.使用中断向主机发出信号,表明FPGA已准备好开始采集数据,并等待开始采集,直到主机确认。这对于确保在获取数据之前启动DMAFIFO是必要的。

循环1

4.调用生成I/O采样脉冲函数以开始采集数据。调用此函数的速率决定了采集的采样速率,因此使用循环计时器来强制执行所需的采样周期。

循环2

5.调用读取I/O函数以读取从模块获取的数据。此功能配置为从模块上的每个通道读取单个样本。由于此函数等待数据可用,因此提供了大量但非无限的超时。对于默认的40MHz顶级时钟,超时为1秒。

6.将采集的数据写入DMAFIFO。

7.如果在等待来自模块的数据或等待将数据写入DMAFIFO时发生超时,则向主机报告超时并停止VI。

循环3

8.调用“获取读取I/O状态”函数的速率与调用“生成I/O采样脉冲”函数的速率相同。这将检查获取的每个样品的状态。如果发生“覆盖”或“样本门控”(输出=true),则向主机报告状态并停止VI。在此示例中,此循环包含在关系图禁用结构中,以使其易于从应用程序中移除。调用“获取读取I/O状态”函数对于开发和调试很有用,但如果应用程序中没有可变计时,则对于部署不是绝对必需的。在图6.9示例中,除非顶部循环的采样周期小于模块支持的最小采样周期,否则无法获取样本门控状态。但是,如果主机VI无法足够快地从DMAFIFO读取,则此应用程序可能会产生覆盖状态。

Δ-Σ调制

表6.2.具有Δ-Σ调制的同步模块示例

许多专为高速、动态测量而设计的C系列模块都使用三角积分(Δ∑)转换器。为了更好地了解这些模块的工作原理,必须首先了解Δ-Σ调制的基础知识。希腊字母delta和sigma分别是差和和的数学符号。Δ-Σ转换器的调制电路比较所需电压输入V输入与已知基准电压V参考之间的差值和。比较器的输出变为比特流,送入数字滤波器和1位DAC。由于这种负反馈,差值在0V或地附近振荡。数字滤波器有效地跟踪差异高于0V的次数,并根据该计数和基准电压确定输入电压。该调制环路的运行频率远高于转换器的实际输出频率。

带有Δ-Σ转换器的C系列模块具有运行调制电路的过采样时钟。过采样时钟以12MHz或更快的频率运行,会影响时序、同步和编程范例。以下列表提供了对使用三角积分调制的C系列模块的具体挑战的见解。

■需要同步脉冲复位—过采样时钟在使用前需要“复位”。这就是为什么有一个LabVIEW FPGAI/O节点来向模块发送“开始”事件的原因。

■数据就绪时间不为零-“启动”事件和数据可用性之间的时间指定为“首次数据的时间”。这个时间在不同的基于增量西格玛的模块之间可能略有不同,而在其他类型的模块之间可能有很大的不同。按需模块的“首次数据时间”为零。可以参考:KnowledgeBase4DAEUNNQ: How Do I Compensate for Different Group Delays With C Series Modulesin LabVIEW FPGA? and KnowledgeBase53CHLD6C: What Is the Best Method to Synchronize Two Different DSA Modules inLabVIEW FPGA?

■采样速率是离散且特定的—由于过采样时钟和数字滤波器,Δ-Σ模块只能以离散采样速率运行。这些采样率是除数和过采样时钟的函数。这就是为什么增量西格玛模块的“速率”输入是预定采样率的枚举数据类型。如果尝试输入不支持的采样率,则会将其舍入到下一个可用的最高采样率。

■最小采样率大于1kHz—Δ-Σ模块的最小采样率通常超过1kHz。使用平均、滤波或某种形式的抽取来进一步减少数据集,使其超出模块上数字滤波器输出的速率。

■没有不规则或外部时钟—Δ-Σ模块无法“按需”报告数据,因此不能处理不规则定时的I/O节点调用,因为迭代过程必须完成大量循环才能返回准确的数据。增量西格玛模块的I/O节点始终阻塞模块设置为采集的确切(Δt)。间隔小于Δt的I/O节点调用必须等到完整采样周期完成。这为过采样电路提供了足够的时间来计算精确值。为了弥补这一点,在处理数据或在控制环路中使用数据之前,在FPGA上实施重采样算法。

■ 块—需要同步的两个增量Σ模块必须共享相同的过采样时钟。要同步模块,必须从右键点击属性菜单将一个模块的过采样时钟导出为LabVIEW项目中的“源”模块。它必须从其他“客户端”模块的同一菜单中导入。任何模块都可以是“源”或“客户端”模块—由程序员自行决定。请记住,从项目视图对模块属性窗口所做的更改会导致重新编译,并且无法在运行时更改。

可以在图6.10所示的示例程序NI9234 Getting Started.lvprj的框图中看到其中的许多警告。

图6.10.NI 9234 GettingStarted.lvprj的框图

可以在NI示例查找器中找到所有三角积分模块的示例程序。

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

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

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

相关文章

财务共享五大价值助力央企构建世界一流财务管理体系

如果说小微企业是我国市场经济的毛细血管的话,那么央企就是承载着我国市场发展的主动脉。以规模为导向来看,央企完成了第一次长征,但央企在盈利能力、市场份额、行业地位、专利技术与优势、品牌影响力、市值管理、标准和规则制定话语权等软实…

从1万张模板中找的运营知识图谱,超级牛!

运营现在是时下大家都很熟悉的一个行业,我们熟知的有内容运营、用户运营、产品运营、新媒体运营、活动运营 社群运营、电商运营、品牌运营等多种运营方式。 想要做好运营,其实是需要很丰富的知识体系的,今天就给大家分享一些厉害的运营图谱。…

英伟达曝光超级芯片 黄仁勋:AI已重塑计算机产业

5月29日,英伟达再曝新品“NVIDIA DGX™超级计算机”,为生成式AI语言应用、推荐系统和数据分析工作负载的巨型模型提供硬件支持。 该计算机的核心组件是已经全面投产的英伟达Grace Hopper超级芯片——2000 亿个晶体管,在同一封装内集成了72核…

TC-PERM系列 单/双通道消光比测试仪

单/双通道消光比测试仪可独立进行偏振消光比测试、光功率测试、数字调零、数字校准、手动或自动选择量程,配备 USB(RS232) 接口,上位机软件可自动进行数据测试、 记录、分析,可方便地组成自动测试系统。 广泛应用于光通信设备、光纤、光无源器…

Deep Frequency Filtering for Domain Generalization论文阅读笔记

这是CVPR2023的一篇论文,讲的是在频域做domain generalization,找到频域中generalizable的分量enhance它,suppress那些影响generalization的分量 DG是一个研究模型泛化性的领域,尝试通过各自方法使得模型在未见过的测试集上有良好…

zabbix监控山石防火墙

一、导入监控模板 <Template Net Hillstone StoneOS SNMPv2> 导入前请确保zabbix内置的模板Template Net Network Generic Device SNMPv2存在。 支持山石E系列和X系列防火墙 兼容Zabbix 4.x和5.x。 二、监控内容 SNMP状态和接口速率由Template Net Network Generic De…

2023年互联网Java工程师高级面试八股文汇总(1260道题目附解析)

今年的行情&#xff0c;让招聘面试变得雪上加霜。已经有不少大厂&#xff0c;如腾讯、字节跳动的招聘名额明显减少&#xff0c;面试门槛却一再拔高&#xff0c;如果不用心准备&#xff0c;很可能就被面试官怼得哑口无言&#xff0c;甚至失去了难得的机会。 现如今&#xff0c;情…

基于imx8m plus开发板全体系开发教程5:Cortex-M7开发

前言&#xff1a; i.MX8M Plus 开发板是一款拥有 4 个 Cortex-A53 核心&#xff0c;运行频率 1.8GHz;1 个 Cortex-M7 核心&#xff0c;运行频率 800MHz;此外还集成了一个 2.3 TOPS 的 NPU&#xff0c;大大加速机器学习推理。 全文所使用的开发平台均为与NXP官方合作的FS-IMX8…

Linux Apache 网页优化【网页压缩 网页缓存 隐藏版本号 防盗链】

Apache 网页与安全优化 在企业中&#xff0c;部署Apache后只采用默认的配置参数&#xff0c;会引发网站很多问题&#xff0c;换言之默认配置是针对以前较低的服务器配置的&#xff0c;以前的配置已经不适用当今互联网时代。 为了适应企业需求&#xff0c;就需要考虑如何提升Apa…

网络安全合规-数据分类分级(三)

概念定义 数据分类分级应该将分类和分级分开进行理解。 分类指根据数据的用途和含义去定义数据。更偏向数据治理&#xff0c;而非数据安全治理。 分级指依据数据分类的结果以及数据价值对数据进行分级。是数据安全治理的范畴。 分级类别及依据目前大部分标准将分级定义为核心、…

代码自动生成:低代码与人工智能。

代码自动生成&#xff1a;低代码与人工智能TOC 在当前gpt大行其道的情况下&#xff0c;很多人都对自动生成代码感兴趣。这里将讨论一些与代码自动生成有关的话题&#xff1a; 严格的、闭包的、无歧义的范式系统是代码自动生成的前提与保障&#xff0c;没有这样的范式系统&…

微服务框架01--了解了解Spring Cloud

1.Spring Cloud简介 Spring Cloud是基于Spring Boot的一整套实现微服务的框架。他提供了微服 务开发所需的配置管理、服务注册与发现、断路器、智能路由、微代理、控制 总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。最重要的是跟 Spring Boot框架一起使用的话&am…

有哪些代码编辑器可以推荐? - 易智编译EaseEditing

以下是一些常用的代码编辑器&#xff0c;并对它们进行简单介绍&#xff1a; Visual Studio Code&#xff1a; Visual Studio Code&#xff08;简称VS Code&#xff09;是由微软开发的免费、跨平台的代码编辑器。 它具有丰富的功能和插件生态系统&#xff0c;支持多种编程语言…

Ansible自动化工具离线部署K8s【1.27版本】

文章目录 一、前提须知二、使用Ansible部署K8S集群步骤三、拓展内容1、添加多个Node节点 一、前提须知 单Master&#xff0c;多Node部署架构需要主机网络互通&#xff0c;没有网络限制需要使用root用户权限进行部署 二、使用Ansible部署K8S集群步骤 第一步&#xff1a;获取离…

通过Nginx来查看Linux中的文件

环境是Centos7.6 一、下载Nginx rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm yum install -y nginx 二、配置nginx.conf 用yum下载的软件安装的地方比较散&#xff0c;建议多用find查找 cd /etc/nginx vim ng…

6.Ansible Playbooks介绍

什么是Ansible Playbooks&#xff1f; Ansible Playbook是Ansible的编排语言&#xff61;在Playbooks中, 我们定义了我们想要Ansible做什么&#xff61;这是一组你提供给Ansible的指令来发挥它的魔力&#xff61; 例如上面的例子, 它可以像在不同服务器上按顺序运行一系列命令…

Nacos 根据服务名获取所有服务实例的IP和端口列表

需求描述 今天在做一个定时任务数据同步的需求&#xff0c;定时任务是一个单独的微服务&#xff0c;部署了多套&#xff0c;但是全部的可执行任务是在项目启动的时候&#xff0c;加载到内存中进行任务执行。 在这个时候&#xff0c;当在后台管理进行定时任务操作的时候&#…

WebStorm 利用 FileWatchers 实现 JS、CSS 压缩

WebStorm 利用 FileWatchers 实现 JS、CSS 压缩 合理的使用 JS、CSS 压缩可以大大缩减文件的大小&#xff0c;使网页加载速度更快一些&#xff08;虽然对我来说意义不大&#xff0c;因为我不做前端。。。&#xff09;。 为什么会有这篇文章&#xff0c;是因为在做一些 JS 逆向…

Dropwizard 中使用Jersey开发Restful接口(修改、删除)

前面我们介绍了使用Jersey开发查询、新增接口&#xff0c;并规范了响应报文格式&#xff0c;如果您想了解&#xff0c;可以参考&#xff1a; Dropwizard 中使用Jersey开发Restful接口&#xff08;查询接口&#xff09;https://blog.csdn.net/m1729339749/article/details/1308…

C++内存总结

1.2 C内存 参考 https://www.nowcoder.com/issue/tutorial?tutorialId93&uuid8f38bec08f974de192275e5366d8ae24 1.2.1 简述一下堆和栈的区别 参考回答 区别&#xff1a; 堆栈空间分配不同。栈由操作系统自动分配释放 &#xff0c;存放函数的参数值&#xff0c;局部变…