如要在FPGA VI和主控VI间可编程式地传输数据,可使用下列方法:

  • 可编程式前面板通信
  • 直接内存访问(DMA)
  • 用户定义I/O变量

下表总结并比较了上述方法。

数据传输方法 主控OS 吞吐率 调用系统开销 主CPU使用量 定时模型 同步
可编程式前面板通信 Windows, RT 下限 下限 用户定义 用户定义
直接内存访问 Windows, RT 下限 用户定义 自动
用户定义I/O变量 带有NI扫描引擎功能的RT系统 下限 下限 下限 NI扫描引擎 自动

通常,小型、频繁的数据传输可使用可编程式前面板通信,一次性传输大量数据时可使用DMA。使用用户定义I/O变量传输相干FPGA I/O数据集至RT主VI或从RT主VI接收数据。下表比较了使用下列传输方法的常见原因。

数据传输方法 常用于
可编程式前面板通信
  • 从主控端发送配置参数或数据至FPGA
  • 从FPGA至主控端报告状态
  • 在主控端和FPGA间发送命令
  • 在主控端和FPGA间传输单点数据
  • 创建用于FPGA VI的测试台
直接内存访问
  • 在主控端和FPGA间传输大量的数据集
  • 在主控端和FPGA间传输波形数据
用户定义I/O变量
  • 与前面板通信执行相同的函数,NI扫描引擎使用定时和同步
  • 传输相关的数据集