同步FPGA VI和NI扫描引擎(FPGA接口)
- 更新时间2025-10-09
- 阅读时长6分钟
CompactRIO 可重配置嵌入式机箱、集成控制器与机箱、以太网 RIO 机箱以及单板 RIO (sbRIO) 设备均具有扫描时钟 I/O 项。使用扫描时钟项可以监控 NI 扫描引擎在 FPGA VI 与 RT 主机 VI 之间传输数据的时间。
将扫描时钟项的信息与用户自定义 I/O 变量结合使用,可实现与 NI 扫描引擎的数据传输同步。将用户自定义 I/O 变量数据传输与扫描引擎同步,可以确保在 FPGA VI 与 RT 主机 VI 之间传输的数据集的一致性。
建议将应用程序设计为扫描引擎不传输数据时执行读写操作。如果在扫描引擎传输数据时读写用户自定义 I/O 变量,扫描引擎无法保证数据一致性,数据传输将会延迟至下一个机会。
下图说明了在扫描引擎高电平期间读写用户自定义 I/O 变量,以及当用户自定义 I/O 变量的读写操作错过扫描引擎下降沿时,扫描引擎的反应。
也可使用扫描时钟信息同步FPGA VI和与扫描引擎同步的RT主机VI。
使用下列扫描时钟 I/O 项、方法和属性监控扫描引擎的信息。
扫描时钟I/O项
使用FPGA I/O节点访问扫描时钟I/O项。
如需访问扫描时钟 I/O 项,可将扫描时钟 I/O 项从项目中的机箱 I/O文件夹拖放到 FPGA VI 的结构框图中。也可以在结构框图上放置一个 FPGA I/O 节点,单击 FPGA I/O 节点的元素部分,并从快捷菜单中选择机箱 I/O»扫描时钟。
扫描时钟方法:等待上升沿
使用 FPGA I/O 方法节点访问扫描时钟 I/O 项的等待上升沿方法。
等待上升沿方法会暂停 FPGA I/O 方法节点的执行,直到下一个扫描时钟信号上升沿,或直到超时发生为止。
扫描时钟属性
使用FPGA I/O属性节点访问扫描时钟I/O项的下列属性。
范例VI
关于配合使用用户定义I/O变量和扫描时钟I/O项和“等待上升沿”方法的详细信息,请参考labview\examples\CompactRIO\NI Scan Engine\Advanced\Scan Engine Synchronization\Scan Engine Synchronization.lvproj下的User-Defined IOV Synchronized VI范例。
关于配合使用用户定义I/O变量和扫描时钟I/O项、“等待上升沿”方法,以及高时间输出的详细信息,请参考labview\examples\CompactRIO\NI Scan Engine\Advanced\Scan Engine Synchronization - Advanced\Scan Engine Synchronization - Advanced.lvproj下的User-Defined IOV Advanced Sync VI范例。