这两个 LabVIEW 的 VI(Polling.vi 和 Polling UI.vi )主要用于展示如何通过轮询机制实现 FPGA 与主机之间的同步。在 LabVIEW 开发环境下,可帮助工程师初步了解 FPGA 通信中数据交互与同步的基本原理和操作方式。右侧项目管理器展示了项目相关的文件、目标等构成,有助于整体把握项目架构。
功能详解
(一)Polling UI.vi
前面板功能
Input 控件:用于用户输入数据,可手动改变其数值,为程序提供初始数据来源。
Output 控件:显示经过程序处理后输出的数据结果,直观呈现程序运行对数据的操作效果。
Data Count 控件:记录数据处理或传输的计数,可用于观察数据交互的次数,辅助分析程序运行的频率和数据量。
Read Data 按钮:按下此按钮,触发程序读取 Input 的数据,并进行后续处理。它是程序开始数据处理流程的一个手动触发点。
Stop 按钮:用于停止程序的运行,当用户希望终止当前程序执行时,点击该按钮可使程序停止工作。
背后逻辑功能:该 VI 作为用户界面,负责与用户进行交互,收集用户输入数据并展示处理结果,同时通过按钮操作来控制程序流程,起到数据输入输出和程序控制的作用。
Polling.vi
程序框图功能
Polling Synchronized Loop(轮询同步循环):这是核心循环结构。它不断检查是否有新数据(通过 “Wait for New Data” 部分实现),一旦检测到新数据(由 Data Ready 信号控制),就执行后续的数据读取和处理操作。
数据读取与处理:通过 “Read Data” 部分从输入获取数据,然后在循环内对数据进行处理,处理结果分别输出到 Output 和 Data Count,更新输出数据和计数。
循环控制:循环的运行与否受 “Stop Button” 信号控制,当接收到停止信号时,循环终止,程序结束运行。
背后逻辑功能:该 VI 主要负责实现 FPGA 与主机间基于轮询机制的数据同步与处理逻辑,在检测到新数据时及时进行处理,并根据控制信号结束运行,是实现 FPGA 通信中数据交互核心逻辑的部分。
右侧项目管理器
项目文件
readme.txt:提供项目相关的说明信息,例如当前示例默认在开发计算机上以模拟 IO 运行,若要在真实硬件上运行,需在项目资源管理器窗口中右键单击 FPGA 目标,选择 “Execute On”,然后选择 “FPGA Target”。还提到若要将项目移至新目标,可访问ni.com/info并使用信息代码 fpgaex 获取相关信息。
Polling UI.vi:即前面介绍的用户界面 VI,负责与用户交互。
Polling.vi:实现 FPGA 与主机数据同步和处理逻辑的核心 VI。
目标配置
FPGA Target (RIO, cRIO - 9075, Simulation):表示当前项目设置的 FPGA 目标,这里是模拟的 cRIO - 9075 设备,用于在开发阶段模拟真实硬件环境进行程序调试和测试。
40 MHz Onboard Clock:指定 FPGA 目标板载时钟为 40 MHz ,时钟是 FPGA 运行的重要参数,决定了其内部逻辑运行的时间基准。
构建规范(Build Specifications):用于配置项目构建相关的参数,例如编译、打包等设置,确保项目能够正确构建并部署到目标设备上运行。
依赖项(Dependencies):列出该项目运行所依赖的其他资源或模块,包括实时扫描资源等。确保这些依赖项存在且正确配置,项目才能正常运行,否则可能出现运行错误或功能缺失。
特点
简单直观:通过前面板的控件和按钮,用户可以很方便地输入数据和控制程序运行,输出结果也能直观呈现,易于理解。
轮询机制:采用轮询的方式检测新数据,实现 FPGA 与主机的同步,是一种基础且常用的数据交互同步方法。
项目结构清晰:右侧项目管理器清晰展示项目各组成部分,从文件到目标配置以及依赖关系等,方便开发者管理和维护项目。
应用场景
FPGA 开发学习:对于刚接触 FPGA 开发和 LabVIEW 编程的工程师来说,是一个很好的入门示例,帮助理解 FPGA 与主机通信中数据同步和交互的基本原理。
简单数据采集与处理系统:在一些对实时性要求不是极高的简单数据采集与处理场景中,可应用这种轮询机制来实现数据从 FPGA 到主机的传输和处理,例如一些实验数据采集设备等。
楼主最近还看过