You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LabVIEW下自定义FPGA以太网传入数据吞吐量测量功能问询

LabVIEW以太网接收吞吐量统计实现方案

原生VI实现方法(仅统计LabVIEW接收的FPGA数据)

  • 接收链路埋点统计:在你用于接收FPGA以太网数据的VI(如TCP Read、UDP Read或自定义的FPGA通信VI)中加入统计逻辑即可:
    1. 用Tick Count (ms)VI记录统计周期的时间戳
    2. 每次拿到FPGA传入的数据后累加接收字节数,到达预设统计窗口(通常设为1s)后按公式计算吞吐量:吞吐量(Mbps)= 累计接收字节数 * 8 / 统计窗口时长(秒),也可以根据需求转换为KB/s、GB/s等单位
    3. 前面板添加数值显示控件展示实时/峰值/平均吞吐量,搭配波形图表控件可以输出吞吐量的实时变化曲线
  • 跨协议兼容:不管你用的是自定义TCP/UDP协议还是NI专用的以太网通信协议,这个方法都适用,不需要额外安装工具包

系统级端口吞吐量统计(统计对应以太网端口所有入站流量)

如果需要统计整个PC以太网端口的总接收吞吐量(不限于LabVIEW接收的FPGA数据),可以调用操作系统网卡统计接口实现:

  • Windows环境下:用LabVIEW的「调用库函数节点」封装系统API GetIfEntry2,可以直接拿到指定网卡的累计接收字节数、丢包数、错误帧数量等参数,按时间窗口计算即可得到实时吞吐量
  • Linux环境下:直接读取/proc/net/dev系统文件,解析对应网卡的接收统计字段后做吞吐量计算即可

自定义FPGA通信场景优化建议

  • 可以在FPGA的以太网发送逻辑中添加发送字节统计字段,随传输数据一同上传到LabVIEW,两端统计值做对比即可同时得到传输丢包率
  • 统计窗口可以根据传输速率调整:1Gbps以上的高速传输可以用100ms窗口提升统计实时性,低速传输用1s~5s窗口降低统计误差

核心逻辑伪代码参考

// 变量初始化
累计接收字节 = 0
上次统计时间戳 = Tick Count(ms)
实时吞吐量 = 0

// 主循环
While 通信正常运行
    接收数据缓存 = 以太网接收VI(目标端口)
    单次接收字节数 = 数组长度(接收数据缓存)
    累计接收字节 = 累计接收字节 + 单次接收字节数
    
    当前时间戳 = Tick Count(ms)
    时间差 = 当前时间戳 - 上次统计时间戳
    // 1秒统计窗口
    If 时间差 >= 1000
        实时吞吐量 = 累计接收字节 * 8 / (时间差 / 1000) // 单位转换为Mbps
        前面板吞吐量显示控件.值 = 实时吞吐量
        // 重置统计变量
        累计接收字节 = 0
        上次统计时间戳 = 当前时间戳
    End If
End While

内容的提问来源于stack exchange,提问作者abunickabhi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 05:09:03