LabVIEWCompactRIO 开发指南30 目标间通信

简介: LabVIEWCompactRIO 开发指南30 目标间通信

LabVIEWCompactRIO 开发指南30


目标间通信


可以从两种方法选择在FPGA VI和实时处理机上运行的VI之间传输数据的方法:前面板控制和指示器或DMAFIFO。可以使用前面板控件和指示器来传输最新值或标签以及DMA FIFO,以流式传输数据或发送消息和命令。这两种方法都需要使用主机VI上的FPGA接口功能与FPGA进行交互。


前面板控件和指示灯


如果只需要将最新数据值传输到主机VI或从主机VI传输,则可以将数据存储到FPGA VI上的控件或指示器,并使用主机VI中的读/写控制功能访问这些数据。图5.19显示了一个简单的主机VI,它从FPGA上的数字I/O指示器读取数据,然后写入FPGA上的数字I/O控制。


64adab0cf38a2e6abd20c2885b9b7562.png


图5.19.读取和写入前面板控件和指示器以在目标之间共享最新值


与在FPGA和主机处理器之间传输数据的其他方法相比,编程前面板通信的开销较低。读/写节点是FPGA和主机处理器之间传输多条信息的优选,因为它们的开销相对较低。DMA FIFO(如图5.20所示)可以在流式传输大量数据时提供更好的吞吐量,但对于较小且不频繁的数据传输,它们的效率不高。


使用前面板控件和指示灯在FPGA和主机处理器之间传输数据需要比DMA FIFO更多地涉及主机处理器。因此,数据传输的速度高度依赖于主机处理器的速度和可用性。处理器速度较慢或处理器可用性不足,会导致从FPGA目标到主机的数据传输速度变慢。编程前面板通信的一个缺点是,这种方法仅传输存储在FPGA VI的控制或指示器上的最新数据。例如,如果FPGA VI将数据写入指示器的速度快于主机VI读取数据的速度,则数据可能会丢失。此外,FPGA VI上的每个控制或指示器都使用FPGA上的资源。FPGA编程的最佳实践建议限制FPGA VI中前面板对象的数量。


DMAFIFOs


如果需要在FPGA和实时处理器之间流式传输大量数据,或者需要用于基于命令或消息的通信的小型缓冲区,请考虑使用DMAFIFO进行数据传输。从FPGA读取数据时,DMA不涉及主机处理器;因此,它是在FPGA目标和主机之间传输大量数据的最快方法。


fcda2ace1a7fccf1e3337925f4b20193.png



图5.20.DMA使用FPGA存储器来存储数据


以下列表重点介绍了使用DMA通信在FPGA目标和主机之间传输数据的好处:


■释放主机处理器在数据传输过程中执行其他计算


■减少前面板控件和指示灯的使用,有助于节省FPGA资源,尤其是在传输数据阵列时


■自动同步主机和FPGA目标之间的数据传输


尽管DMA FIFO是流式传输数据的绝佳机制,但在从多个通道流式传输数据、优化吞吐量或在实时主机VI上扩展数据时,它们很快就会变得复杂。如果应用需要从一个或多个模拟通道传输模拟数据,应使用本节末尾讨论的NICompactRIO Waveform Acquisition Reference Library作为起点。该库具有FPGA模板和类似NI-DAQmx的用于流数据的API,并提供了许多优势,包括优化的性能和内置的扩展。


需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。

相关文章
|
22天前
|
网络协议 安全 数据挖掘
LabVIEWCompactRIO 开发指南12 LabVIEWCompactRIO 开发指南12 第四章网络通信的最佳实践
LabVIEWCompactRIO 开发指南12 LabVIEWCompactRIO 开发指南12 第四章网络通信的最佳实践
17 2
|
22天前
|
存储 异构计算 Windows
LabVIEWCompactRIO 开发指南29 数据通信
LabVIEWCompactRIO 开发指南29 数据通信
17 4
|
22天前
|
异构计算
LabVIEWCompactRIO 开发指南第六章41 同步模块
LabVIEWCompactRIO 开发指南第六章41 同步模块
23 1
|
22天前
|
异构计算
LabVIEWCompactRIO 开发指南第六章44 同步模块
LabVIEWCompactRIO 开发指南第六章44 同步模块
17 1
|
22天前
|
网络协议 程序员
LabVIEWCompactRIO 开发指南17 网络流
LabVIEWCompactRIO 开发指南17 网络流
15 0
|
22天前
|
存储
LabVIEWCompactRIO 开发指南7 使用有限的资源
LabVIEWCompactRIO 开发指南7 使用有限的资源
12 0
|
22天前
|
网络协议 Windows
LabVIEWCompactRIO 开发指南13 网络发布的共享变量
LabVIEWCompactRIO 开发指南13 网络发布的共享变量
14 0
|
22天前
|
监控 安全 数据库
LabVIEWCompactRIO 开发指南13 网络发布的共享变量特性
LabVIEWCompactRIO 开发指南13 网络发布的共享变量特性
17 0
|
22天前
|
监控 Linux API
LabVIEWCompactRIO 开发指南15 托管和监控网络发布的共享变量
LabVIEWCompactRIO 开发指南15 托管和监控网络发布的共享变量
16 0
LabVIEWCompactRIO 开发指南15 托管和监控网络发布的共享变量
|
22天前
|
存储 数据采集 设计模式
LabVIEWCompactRIO 开发指南4 第三章LabVIEW实时应用程序的设计
LabVIEWCompactRIO 开发指南4 第三章LabVIEW实时应用程序的设计
16 1