LabVIEWCompactRIO 开发指南32 确保无损数据传输

news2024/11/19 4:18:00

LabVIEWCompactRIO 开发指南32

确保无损数据传输

如果无损数据传输很重要,或者如果要将数据从多个I/O通道传输到同一DMA FIFO,则必须能够监控DMA机制的状态并对发生的任何故障做出反应。在FPGADMA写入节点上,超时通常表示DMA缓冲器已满。当它变为真时,应该监视并锁定它。必须从FPGA端执行此操作,因为仅从主机采样此寄存器不足以捕获快速转换。检测到超时事件后,还需要从中恢复。图5.24提供了检测和处理DMA FIFO超时情况的示例。

图5.24.检测溢出并从中恢复

在此图中,DMA FIFO的超时事件在FPGA VI上受到监控。当发生超时事件时,超时寄存器设置为True。一旦超时寄存器设置为True,它被锁存,直到主机VI清除缓冲区并将复位寄存器设置为True。RT主机VI上的超时情况通过读取剩余元素来刷新缓冲区。一旦缓冲器被清除,复位寄存器将设置为true,FPGA VI上的采集将恢复。通过使用这种处理DMAFIFO超时事件的方法,可以检测缓冲区溢出并从中恢复,从而避免因缺少数据点而创建的bug。

避免缓冲区溢出

如果收到缓冲区溢出,则需要增加主机上的DMA FIFO缓冲区大小、在主机上读取更大的缓冲区或在主机上更频繁地读取。请记住,许多控制和监视应用程序只需要最新的数据,因此丢失数据对于系统来说可能不是问题,只要它在调用时返回最新的数据。

如果遇到缓冲区溢出,可以使用DMA配置调用增加主机FIFO缓冲区,如图5.25所示。对于FPGA到RT的传输,经常发生溢出,因为主机FIFO缓冲器(而不是FPGAFIFO缓冲器)不够大。通过FIFO属性页设置的DMAFIFO的大小仅决定占用FPGA内存的FPGAFIFO缓冲区的大小。默认情况下,主机FIFO缓冲区大小为10,000个或FPGAFIFO缓冲区大小的两倍,以较大者为准。

图5.25.增加主机上的DMA FIFO大小

增加缓冲区的大小有助于减少由偶发事件(如总线和主机处理器争用)引起的缓冲区溢出情况。但是,如果平均传输速率高于系统可以承受的速率,则无论缓冲区的大小如何,数据最终都会溢出缓冲区。使用适当大小的缓冲区减少缓冲区溢出情况的一种方法,是尝试一次读取大量数据,这样可以降低每个数据单元的开销,从而提高整体吞吐量。

CompactRIOWaveform Reference Library

如果应用需要使用DMA FIFO来从FPGA传输模拟数据,可以利用NI开发的CompactRIO波形参考库来快速开始应用开发。该参考应用程序介绍了CompactRIO波形数据采集VI和示例源代码,并支持三角积分和SAR(扫描)模块。

图5.26.使用CompactRIOWaveform参考库API的连续采集

CompactRIO波形参考库包含一个类似NI-DAQmx的API,该API在LabVIEW实时中执行,并将原始模拟数据转换为波形数据类型。波形数据类型使得向UI显示多个I/O通道以及与常见的数据记录API接口(如技术数据管理流(TDMS))变得容易。API还会根据配置的比例将数据转换为适当的工程单位。

图5.27.使用CompactRIO波形参考AP

该库包括一个FPGA VI,需要稍微修改该VI,以参考系统中使用的I/O模块。对于大多数应用,只需要修改FPGA VI。此VI旨在在使用DMA FIFO时提供最佳流性能,包括用于监控和处理缓冲区溢出情况的机制。每当使用DMA FIFO从一个或多个模拟通道流式传输数据时,请使用此FPGA VI模板作为开始。

可以在NI开发人员专区白皮书NICompactRIO波形参考库中找到更多信息包括安装文件。

DeltaSigmaAcquisition.lvpj和SARAcquisition.lvpj在
安装库后可在\Program Files\National Instruments\LabVIEW[Version]\user.lib\cRIOWfm\_exampleProjects中找到。

其他参考资料

■ How DMATransfers Work

■ BestPractices for DMA Applications

有关在FPGA目标上使用DMA FIFO的更多信息,请参阅LabVIEW帮助文档TransferringData Using Direct Memory Access。

通过中断同步FPGA和主机VI

LabVIEW FPGA具有中断,允许主机VI等待FPGA引发指定的中断,从而同步FPGA和主机VI。FPGA VI可以阻塞,直到主机确认中断。这样就无需持续检查FPGA寄存器的状态以查看是否已设置给定标志,并且在未引发中断时降低了CPU使用率。在单核主机上,与轮询和睡眠方法相比,可以实现相对良好的延迟并降低CPU负载。图5.28中的示例显示了如何在FPGA上实现中断。此示例称为同步中断方法,可在NI示例查找器中找到。

图5.28.用于发送中断的LabVIEW FPGA编程结构

中断提供简单的代码和简单的API,但应该注意以下事项:

■处理主机侧的中断通常涉及5μs至50μs的开销。此响应延迟可能是可以接受的,具体取决于应用程序或事件的频率。

■如果不希望FPGA VI在中断被确认之前阻塞,则应添加单独的FPGAloop来发送中断。

■中断不是多核目标上延迟最低的选项。通过专用于CPU内核来持续监控FPGA寄存器(无休眠),可以获得最快的响应时间。

其他参考资料

■ UsingInterrupts on the FPGA to Synchronize the FPGA and Host

■ SynchronizingFPGA VIs and Host VIs Using Interrupts

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/562971.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为OD机试之处理器问题(Java源码)

处理器问题 题目描述 某公司研发了一款高性能AI处理器。每台物理设备具备8颗AI处理器,编号分别为0、1、2、3、4、5、6、7。 编号0-3的处理器处于同一个链路中,编号4-7的处理器处于另外一个链路中,不通链路中的处理器不能通信。 如下图所示。…

IEEE独立出版 | 第七届计算机科学与智能控制国际会议(ISCSIC 2023)

会议简介 Brief Introduction 第七届计算机科学与智能控制国际会议(ISCSIC 2023) 会议时间:2023年10月27日-29日 召开地点:中国南京 大会官网: ISCSIC 2023-2023 7th International Symposium on Computer Science and Intelligent Control(I…

大型企业建设财务共享中心需要重视的5个核心要素

随着数字化技术和财务共享的发展,财务共享建设正逐步深化。为发挥企业财务共享中心的最大价值,用友网络财务共享专家唐勇提出了5个关键点,需要企业重视: 从整体财务职能转型的视角规划财务共享中心的定位: 企业在规划…

为年迈母亲打造的“亲情关怀”视频聊天软件

写在前面 母亲的眼神越来越不好了,长期干农活的手也愈加粗糙,智能手机本是一个平常之物,她确无缘使用,现在仍在不断更换着“翻盖手机”。为了能让她绕开微信视频聊天那些繁琐而容易点错的功能,程序员的我“开发”下面…

如何通过QQ进行手机号溯源

0x01 通过在线网址查询 Q绑在线查询:http://2k.24kz.cn/ 0x02 非数据库查询方法 如果上述的网址查询不到信息的号。会提示说没有找到 可能说明数据库中并无该qq号所绑定手机号的信息 开始正题: 第一步:点击添加账号,复制其QQ账…

Prompt Engineering | 文本转换prompt

LLM非常擅长将输入转换成不同的格式,例如多语种文本翻译、拼写及语法纠正、语气调整、格式转换等。 文章目录 1、文本翻译1.1、中文转西班牙语1.2、识别语种1.3、多语种翻译1.4、翻译正式语气1.4、通用翻译器 2、语气 / 风格调整3、格式转换4、拼写及语法纠正5、一个…

2021上半年

2021上半年 a 程序计数器pc d 更正一下:都是支持流水线技术的 DMA传送数据不需要CPU干预,和io设备并行工作(存储周期) c c c b c 关于TLS: B B D A D 保护的是:软件程序和文档 D B C B 前向传播&#xff1…

Containerd+Kubernetes搭建k8s集群

ContainerdKubernetes搭建k8s集群 文档说明安装软件的版本和下载地址环境说明服务器准备负载均衡IP地址准备 安装步骤环境设置关闭防火墙关闭SELinux关闭swap分区设置主机名称解析设置主机名称加载 br_netfilter 模块桥接的IPv4流量传递到iptables升级操作系统内核导入elrepo g…

Three.js--》实现3d汽车模型展览搭建

目录 项目搭建 初始化three.js基础代码 添加汽车模型展示 动态修改汽车模型 今天简单实现一个three.js的小Demo,加强自己对three知识的掌握与学习,只有在项目中才能灵活将所学知识运用起来,话不多说直接开始。 项目搭建 本案例还是借助…

makefile make 的隐式规则

文章目录 前言一、什么是隐式规则?二、典型隐式规则情况三、查看隐式规则四、隐式规则的禁用五、隐式规则的副作用总结 前言 一、什么是隐式规则? make 提供了一些常用的,例行的规则实现。 当相应的规则未提供时 , make 尝试使用隐式规则。 make 提供…

KDZK-F水轮发电机转子测试仪

一、产品概述 KDZK-F水轮发电机转子测试仪是判断发电机转子绕组有无匝间短路的专用仪器,可以自动、手动(单向或双向)测量转子绕组的电压、电流、阻抗、功率、相位角等参数。 二、功能与特点 旋转鼠标,操作更方便。 可选择快速的…

手写操作系统必掌握基础:函数调用约定

哈喽,我是子牙,一个很卷的硬核男人。深入研究Windows内核、Linux内核、Hotspot源码…聚焦做那些大家想学没地方学的课程:手写操作系统、手写虚拟机、手写模拟器、手写编程语言… 目前我已经做了两个成熟的课程:手写JVM、手写OS&a…

RTX4060 系 2399 元起,NVIDIA 又赢麻了

就在上周,NVIDIA 正式官宣了 RTX40 系显卡家族中更加主流的三款新品。 分别是 RTX 4060、RTX 4060 Ti 8G 以及 RTX 4060 Ti 16G。 其中 RTX 4060 Ti 8G 解禁时间为本月 23 日晚,24 日上架开售。 而 RTX 4060、RTX 4060 Ti 16G 要等到七月份。 价格部分…

2023年湖北建筑架子工报名流程?报名需要什么资料?考试一次过?

2023年湖北建筑架子工报名流程?报名需要什么资料?考试一次过? 建筑架子工证是建筑行业必备的证书之一,它是证明持有人可以在建筑工地上从事搭建脚手架、模板等施工工作的重要证明。启程别告诉你架子工的报名流程和资料。 百度搜一…

测试提效1-电商一键创单的实现

因电商项目不同场景下单特别多,而走前端流程特别慢。所以在某些测试场景需要特定配送方式 和 特定配送状态数据,本次实现快速创建。 1、前端页面 前端页面采用vue ,页面需要的属性或字段,打算包括 环境env、店铺(准备了3种不同模…

一种新的爬虫网络解锁器

事出原由 遇到一个需要采集境外电商的需求,相比国内各种层出不穷的反爬手段,境外产品更注重于用户行为和指纹上。 所以笔者在想是否有类似于指纹浏览器的环境可以提供给爬虫采集器使用。 经过检索,找到了一种名为爬虫网络解锁器的新兴产品…

SAP: 建立HTTPS 连接时,报错 ICM_HTTP_SSL_PEER_CERT_UNTRUSTED

报错1: SSL handshake with tpm-uat.jlbry.cn:443 failed: SSSLERR_PEER_CERT_UNTRUSTED (-102)#The peers X.509 Certificate (chain) is untrusted##SapSSLSessionStartNB()SSSLERR_PEER_CERT_UNTRUSTED# SSL:SSL_read() failed (536872221/0x2000051d)# >…

【正点原子STM32连载】第十四章 蜂鸣器实验 摘自【正点原子】STM32F103 战舰开发指南V1.2

1)实验平台:正点原子stm32f103战舰开发板V4 2)平台购买地址:https://detail.tmall.com/item.htm?id609294757420 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第十四…

【无标题】ELISA-3(加装跟踪装置)—让群体协作更智能!

群体智能是近年来发展迅速的一个人工智能学科领域,通过对蚂蚁、蜜蜂等为代表的社会性昆虫群体行为的研究,实现分布式等智能行为。作为新一代人工智能的重要方向,群体智能通常用于无人机、机器人集群的协同作业。目前,群体智能在基…

零操作难度,轻松进行应用测试,App专项测试之Monkey测试完全指南!

目录 前言: 一、 Monkey测试的基础参数 1.1 事件类型参数: 1.2 覆盖包 1.3 事件数量 二、 Monkey测试的高级参数 2.1 稳定性级别 2.2 策略参数 2.3 包含选项参数 三、 附加代码 四、 总结 前言: 在移动应用的开发过程中&#xff0…