1.同步使用循环定时器VI计时循环速率的系列模块
- 数字模块
- SAR ADC 模块
- 多路复用模块
数字通道可以在一个时钟周期内执行。模拟通道需要多个时钟周期。
同步模拟模块的每个通道有一个 ADC,采集的数据在通道之间没有明显的偏差。多路复用模块使用多路复用器通过单个 ADC 路由多个通道,因此多路复用模块中的所有通道之间存在通道间延迟或偏移。
要同步不同通道和不同模块,请将所有通道读取或更新放在同一个 FPGA I/O 节点中,以最小的偏差混合模拟输入、模拟输出和数字 I/O 通道。
2.同步Delta-Sigma C 系列模块
选择其中一个模块master,将时钟导出到背板。其他模块都设置从背板导入该时钟。无论您选择哪个模块作为主模块,都将覆盖时基和可用采样率。
在框图中,为每个io模块创建一个Property Node,并使用“Data Rate”指定速率,请注意,即使I/O模块共享相同的采样率,您也必须为每个Property Node创建唯一的Data rate 右键单击每个模块的Property Node并选择create»Constant)。这样可以确保整数与特定I/O模块的预期速率正确匹配。
为每个I/O模块创建一个Start Trigger,并将它们放在同一个I/O节点中。这确保了正确路由了启动触发器。
将来自所有同步模块的所有通道读取放到同一个I/O节点中。使用这个过程,您可以混合和匹配任何现有的同步delta-sigma模块。
为主模块和从模块配置 FPGA I/O 属性节点,并将控制连接到每个节点。 | |
为要同步的模块配置具有启动通道的 FPGA I/O 节点,并将设置为 TRUE 的布尔常量连接到每个启动通道。 | |
使用要同步采样的所有通道配置 FPGA I/O 节点。 | |
为要同步的模块配置具有停止通道的 FPGA I/O 节点,并将设置为 TRUE 的布尔常量连接到每个停止通道。 |
在LabVIEW FPGA中同步不同delta-sigma模块的最佳方法是将每个模块的I/O节点放在同一个While Loop中。如果将不同模块的I/O节点放在并行While循环中,则必须解决额外的启动延迟问题。您还需要考虑每个模块的组延迟,因为模块在同一循环中同时获取数据。
群延迟是 Delta-Sigma 模数转换器 (ADC) 固有的特性。所有使用 delta-sigma ADC 的 NI C 系列模块在用户手册中都有群延迟规范。每个 ADC 的群延迟通常都不同,并且会根据采样率而变化。补偿群延迟中这些差异的方法是使用滤波器,该滤波器将信号延迟一小部分样本。
滤波器用于添加人工延迟,以便两个模块上的总延迟相等。例如,NI 9215 的群延迟为 0 个样本,因为它使用 SAR ADC。另一方面,NI 9229 由于其 delta-sigma ADC 具有 40.0 个样本的群延迟。群延迟中的样本数量可以在 下面相关链接部分的规范文档中的规范输入延迟中查看。通过创建延迟长度为 40.0 个样本的滤波器并将其应用于 NI 9215 数据,两个模块将具有相同的延迟并且数据将同步。
3.同步DSA与 SAR C系列模块
使用 DSA 和 SAR 模块的组合时,您可以使用数据速率属性节点设计 delta-sigma 模块计时的应用程序。通过这种方法,您可以添加按需 I/O 模块,而无需使用 Loop Timer VI。此方法将所有模块同步到 delta-sigma 模块时钟。
- 使用序列结构强制执行 DSA 模块的数据速率配置、启动和停止。
- 使用I/O属性节点设置模块的数据速率。
- 要更改属性节点指向的项目:右键单击属性节点 > 选择项目 > FPGA 目标 > Mod#,其中 # 是 Delta Sigma 模块所在的插槽号。
- 您可以从项目资源管理器中拖放 FPGA I/O 节点。这些 I/O 节点可以扩展以容纳多个输入。使用同一 I/O 节点中的所有端子,以确保它们在 FPGA 中同时被读取。
- 此方法将所有模块同步到 delta-sigma 模块时钟。
- 需要考虑设备的 DSA 延迟。
- 要检查C 系列模拟输入模块具有什么类型的 ADC,请查看设备的用户手册。