备注 本自动翻译仅为阅读便利而提供。请参阅英文版本以获取最新和最准确的信息。

当应用程序满足以下要求时,可以对连接到同一FPGA设备的多个模块进行同步:

  • 模块使用相同的主时基源
  • 模块同时开始采集模式
  • 单个FPGA I/O节点函数读取同步数据

在使用FPGA I/O节点配置项之前,必须先为该模块创建FPGA I/O项。开发的FPGA VI应符合下表中的规范。

对于delta-sigma模块,必须同步多个采样率。

表 41. 同步多个采样率
规范 详细信息
共享主时基源 配置模块以共享主时基源。
开始同步采集
  • 为要同步的模块配置带有开始通道的FPGA I/O节点。
  • 将设为TRUE的布尔常量连接至每个开始通道。
  • 确保全部I/O通道位于同一FPGA I/O节点。否则FPGA I/O节点将无法返回同步数据。
从具有相同数据速率的已同步模块中采集数据
  • 配置FPGA I/O节点的全部待同步采样的通道。
  • 确保全部I/O通道位于同一FPGA I/O节点。否则FPGA I/O节点将无法返回同步数据。
  • 关于同步多个具有相同数据速率的模块的范例,见labview\examples\CompactRIO\Module Specific\NI 923x\Synchronizing NI 923x Modules\Synchronizing NI 923x Modules.lvproj中的Synchronizing NI 923x Modules (FPGA) VI。
从具有不同数据速率的已同步模块中采集数据
  • 如对配置了不同数据速率的模块进行同步,应在FPGA VI中为每个数据速率创建独立的循环
  • 在每个循环中,配置带有全部通道的FPGA I/O节点,通道被配置用于循环的数据速率。如将配置了不同速率的通道置于同一循环中,LabVIEW在运行VI时将从FPGA I/O节点返回溢出警告(错误65539)。
  • FPGA I/O节点返回第一个数据点前存在延迟。延迟时间取决于模块的数据速率和模型编号。下表提供了计算延迟的公式。
表 42. 同步多个采样率的公式
模块 降采样率,m 时钟分频数,n 返回首个采样前的时间
NI 9231, NI 9250, NI 9251 32 n = 1 (281.625 * m * n + 5.5) * Master_Timebase_Period ± 1 Master_Timebase_Period
64 n = 1 (281.625 * m * n + 8.5) * Master_Timebase_Period ± 1 Master_Timebase_Period
128, ..., 1,024 n = 1 (281.625 * m * n + 6.5) * Master_Timebase_Period ± 1 Master_Timebase_Period
32, ..., 1,024 n = 2, ..., 12 (281.625 * m * n + 5.5) * Master_Timebase_Period ± 1 Master_Timebase_Period
NI 9218、NI 9225、NI 9227、NI 9229、NI 9234、NI 9237、NI 9238、NI 9239、NI 9242、NI 9244、NI 9246、NI 9247 256 n = 1 (8.5 + n * 34,152) * Master_Timebase_Period
n = 2, ..., 31 (5.5 + n * 34,152) * Master_Timebase_Period
NI 9230, NI 9232 64 n = 1, ..., 31 77/Fs + 4-5 Master_Timebase_Period
128 n = 1, ..., 31 72/Fs + 4-5 Master_Timebase_Period
256 n = 1, ..., 31 68/Fs + 4-5 Master_Timebase_Period
NI 9235, NI 9236 512 n = 1, ..., 31 39/Fs + 110.5 MClk + 1 OClk + 模拟延迟

Master_Timebase_Period = 模块所使用的内部或外部时钟周期(1/13.1072 MHz、1/12.8 MHz或1/10 MHz)。Fs, 采样率分频数和降采样率取决于所选的采样率。

模块Specifications文档提供了可用于确定时钟分频数和降采样率的公式,并/或列出了每个采样率的时钟分频数和降采样率。
  • 例如,NI-9232 Specifications中规定,当采样率为102.4 kHz时,降采样率为64,时钟分频数为1。
  • 使用NI-9218 Specifications中的公式,可以确定当采样率为51.2 kHz时,时钟分频数为1。n = Master_Timebase_Frequency/256/fs[1]1 此为NI-9218 Specifications中提供的公式,经过变形以求n
表 43. 同步多个采样率的公式
模块 时钟分频数,b 返回首个采样前的时间
NI 9202 1 ((5.40625 + e) * a * b * c * d + 4.5) * Master_Timebase_Period ± 1 Master_Timebase_Period
2, ..., 11 ((5.40625 + e) * a * b * c * d + 5.5) * Master_Timebase_Period ± 1 Master_Timebase_Period
主时基周期 = 模块所用的内部或外部时钟周期(1/13.1072 MHz、1/12.8 MHz或1/10 MHz)。 a = ADC降采样率 b = 时基时钟分频数 c = ADC时钟分频数 d = 滤波器降采样率 e = 滤波器频率。
  • 0,Fs的陷波
  • 1,Fs/2的陷波
  • 3,Fs/4的陷波
  • 7,Fs/8的陷波
  • 15,Fs/16的陷波
有关每个采样率的abcd的值,请参阅NI-9202 Specifications
表 44. 同步多个采样率的公式
模块 滤波 时钟分频数,b 返回首个采样前的时间
NI 9252, NI 9253 梳状 2 ((5.40625 + b) * 128 * a + 8.5) * Master_Timebase_Period ± 1 Master_Timebase_Period
其它 ((5.40625 + b) * 128 * a + 5.5) * Master_Timebase_Period ± 1 Master_Timebase_Period
Butterworth 2 (5.40625 * 128 * a + 8.5) * Master_Timebase_Period ± 1 Master_Timebase_Period
其它 (5.40625 * 128 * a + 5.5) * Master_Timebase_Period ± 1 Master_Timebase_Period
主时基周期 = 模块所用的内部或外部时钟周期(1/13.1072 MHz、1/12.8 MHz或1/10 MHz)。 a = 降采样率 b = 滤波器频率。
  • 0,滤波器频率-1(Fs的陷波)
  • 1,滤波器频率-2(Fs/2的陷波)
  • 3,滤波器频率-3(Fs/4的陷波)
  • 7,滤波器频率-4(Fs/8的陷波)
  • 15,滤波器频率-5和6(Fs/16的陷波)
有关每个采样率(降采样率)a的值,请参阅模块的产品规范。

1 此为NI-9218 Specifications中提供的公式,经过变形以求n