LabVIEWCompactRIO 开发指南29 数据通信

简介: LabVIEWCompactRIO 开发指南29 数据通信

LabVIEWCompactRIO 开发指南29


数据通信


LabVIEW FPGA中的数据通信分为两类:进程间和目标间。进程间通信通常对应于FPGA目标上的两个或多个环路之间的数据共享。目标间数据通信是在FPGA目标和主机处理器之间共享数据。对于这两种情况,在决定使用哪种机制之前,应考虑是要传达当前值数据、消息或命令,还是在流式传输数据。


进程间数据通信


如果FPGA目标上存在多个环路,则可能希望在它们之间共享数据,就像在实时或基于Windows的程序中一样。LabVIEW FPGA包含了多种用于在循环之间共享数据的机制。


变量


LabVIEW FPGA具有局部和全局变量,用于在两个或多个循环之间共享当前值或标签。借助变量,可以访问或存储FPGA触发器中的数据。变量仅存储写入的最新数据。如果不需要使用获取的每个数据值,那么它们是一个不错的选择。


内存项


共享最新值的另一种方法是使用可用的内存项。利用内存消耗的逻辑块很少,但会使用板载内存。LabVIEW FPGA设备具有两种类型的存储项:目标示波器和VI定义。可以通过FPGA目标下的所有VI访问目标范围的内存项。VI定义的内存项的范围限定为定义它们的VI。图5.17显示了使用为目标范围的内存项配置的内存方法节点的框图。该VI从内存中读取数据,递增数据,然后用新数据覆盖相同的内存位置。


a5c70001a350bbafaedcf7e30ebe510c.png


图5.17.使用内存方法节点读取和写入内存项


VI-scopedmemory是需要存储数据阵列的应用程序的强大工具。通常,应始终避免使用大型数组作为数据存储机制,而应改用VI-scoped memory。


FIFOs


如果要在两个或多个循环之间传输消息或更新,或者流式传输数据,请考虑使用FIFO进行数据传输。FIFO是一种数据结构,它按接收顺序保存元素,并使用先进先出访问策略提供对这些元素的访问。



33fc72b7ac5f558d9c8560f329a2a4c6.png


图5.18.使用FIFO在两个并行环路之间共享缓冲数据


与内存项类似,有两种类型的FIFO可供选择:目标范围或VI定义。可以通过FPGA目标下的所有VI访问目标范围的FIFO,并且VI定义的FIFO的范围限定为定义它们的VI。


配置FIFO时,必须指定确定哪些FPGA资源在FIFO中保存和传输数据的实现。以下建议可帮助选择一种实现而不是另一种实现。


■触发器—触发器使用FPGA上的门来提供最快的性能。建议仅对非常小的FIFO(小于100字节)使用。


■查找表—可以将数据存储到FPGA上每个切片的两个查找表中。仅建议对小型FIFO(小于300字节)使用查找表。


■块内存—如果尝试为应用的其他部分保留FPGA门和查找表,则可以将数据存储在块存储器中。


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

相关文章
|
6月前
|
存储 API 异构计算
LabVIEWCompactRIO 开发指南30 目标间通信
LabVIEWCompactRIO 开发指南30 目标间通信
42 3
LabVIEWCompactRIO 开发指南30 目标间通信
|
6月前
|
网络协议 安全 数据挖掘
LabVIEWCompactRIO 开发指南12 LabVIEWCompactRIO 开发指南12 第四章网络通信的最佳实践
LabVIEWCompactRIO 开发指南12 LabVIEWCompactRIO 开发指南12 第四章网络通信的最佳实践
36 2
|
6月前
|
传感器 监控 安全
LabVIEWCompactRIO 开发指南1
LabVIEWCompactRIO 开发指南1
69 2
|
6月前
|
设计模式 网络协议 API
LabVIEWCompactRIO 开发指南20 应用程序接口
LabVIEWCompactRIO 开发指南20 应用程序接口
30 1
|
6月前
|
存储 数据采集 API
LabVIEWCompactRIO 开发指南5
LabVIEWCompactRIO 开发指南5
42 1
|
6月前
|
设计模式 数据采集 算法
LabVIEWCompactRIO 开发指南6
LabVIEWCompactRIO 开发指南6
45 1
|
6月前
|
异构计算
LabVIEWCompactRIO 开发指南第七章50
LabVIEWCompactRIO 开发指南第七章50
32 1
|
6月前
|
异构计算
LabVIEWCompactRIO 开发指南第七章49
LabVIEWCompactRIO 开发指南第七章49
36 1
|
6月前
|
资源调度 算法 程序员
LabVIEWCompactRIO 开发指南第六章42
LabVIEWCompactRIO 开发指南第六章42
44 1
|
6月前
|
人工智能 前端开发 异构计算
LabVIEWCompactRIO 开发指南第六章38
LabVIEWCompactRIO 开发指南第六章38
37 1