LabVIEW Compact RIO 开发指南36
确定“Clock Ticks”或模拟时间
桌面执行节点能控制模拟时间,允许开发人员在开发过程中调整关键点的激励,通过模拟I/O实现。要有效利用这一功能,需测量 FPGA VI 执行所需的时间,或设计 VI 以直观显示所需时间,如使用循环定时器确保定时。以下是一些测量 FPGA VI 执行时间的提示。
单周期定时循环
当使用 SCTL 时,代码在每个时钟周期内执行。选择最快的时钟作为参考时钟,并将时钟周期设置为一个时钟周期。若有多个 SCTL,请选择速度最快的作为参考。
带循环计时器的循环
在此情况下,可设定循环计时器的值(单位为刻度)。如果计时器配置为毫秒或微秒,进行转换。例如,将计时器设置为10μs,计算如下:
时钟(Hz) x 时间(s) = 时钟周期数
40,000,000Hz x 0.00001秒 = 400时钟周期
故在桌面执行节点中,将时钟周期输入设置为400个时钟周期。
无循环计时器的循环
若使用不包含模拟 I/O(可能包含数字 I/O)的 While 环路,则测量时钟周期数最简便方法是使用采样探针。在 While 循环迭代终端创建指标,右键连线选择 SamplingProbe » FPGA。在仿真模式下运行 VI 一两秒,停止并查看采样探针窗口。示例中显示,While 循环需要40MHz时钟的两个周期执行,对应采样探针窗口每周期25ns。因此,将时钟周期输入设置为两个周期。
注意:仿真中测量的时钟周期数不一定等于硬件中执行相同代码时产生的周期数。但 SCTL 中的代码可确保循环准确性。
图5.36:使用采样探测器测量每次迭代的时钟周期数
当循环以 Delta-Sigma 模拟输入模块的速率执行
若存在以 Delta-Sigma 模拟输入模块定义速率执行的 FPGA VI,则在仿真模式中,LabVIEW 忽略属性节点的定时输入。需执行两步:
1. 添加相当于扫描速率的循环计时器控制 VI 仿真时序
2. 将桌面执行节点中的时钟周期输入设置为循环计时器输入值
在此示例中,读取转速表数据,模拟输入模块配置为2.048kS/s 或 488μs 的速率。第一步,添加循环计时器至 While 循环,配置为488μs的循环速率。
图5.37:通过添加条件环路定时器指定模拟时间
将循环定时器置于条件禁用结构中,仅在 VI 执行模拟模式时调用。配置条件禁用结构如下:
FPGA_EXECUTION_MODE == DEV_COMPUTER_SIM_IO
条件禁用结构默认大小写为空。
图5.38:配置条件禁用结构
最后,桌面配置节点设置时钟周期输入。在示例中,488μs 等于19,531个时钟周期,因此将时钟周期输入设置为19,531个周期。
构建测试平台
成功配置桌面执行节点后,开始构建测试平台。在示例中,从 TDMS 文件读取转速计数据并写入名为 Tach 的模拟输入 I/O 节点。FPGA VI 在仿真模式下执行,结果 rpm 显示在图表上。验证转速表 IP,比较从文件中读取的转速表数据与绘制到图表的转速表数据。
图5.39:创建测试 VI 并验证 FPGA 代码
温馨提示:内容为网友见解,仅供参考