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

USRP E320在GNU Radio中源-宿环路延迟非确定性问题求助

USRP E320 + GNU Radio 转发延迟非确定性问题排查与解决

这种延迟波动的核心原因是主机与USRP之间的以太网传输缓存、GNU Radio流图启动时序以及USRP内部缓冲区初始化的差异,以下是针对性解决方法:

1. 固定USRP同步与缓冲区参数

  • 统一时钟源:将USRP Source和Sink模块的Clock Source都设为internal(无外部时钟时),确保收发共用同一硬件时钟。
  • 手动设置缓冲区大小:在两个USRP模块的参数里,把Num Samples(或Buffer Size)设为固定值,比如16384,避免每次启动自动分配不同大小的缓冲区。
  • 启用同步选项:在USRP Sink模块勾选Sync,强制TX流与RX流严格对齐。

2. 优化Windows以太网传输设置

  • 关闭TCP自动调优:以管理员身份打开命令提示符,执行:
    netsh int tcp set global autotuninglevel=disabled
  • 禁用Nagle算法:执行命令:
    netsh int tcp set global nagle=disabled
  • 启用Jumbo帧:在设备管理器找到网卡,进入「属性→高级」,找到“MTU”或“最大传输单元”,设置为9000,同时确保USRP端MTU也设为9000(可通过uhd_usrp_probe查看,用uhd_configure_usrp修改)。

3. 配置GNU Radio流图为确定性模式

  • 添加UHD时间同步模块:在RX和TX之间插入UHD Time Sync模块,强制TX流起始时间与RX流对齐。
  • 固定流图缓冲区:在GNU Radio Companion偏好设置的「流图」选项里,勾选“固定缓冲区大小”,并设置为与USRP模块匹配的值。
  • 启动前校准USRP:在流图开头加UHD Calibrate模块,确保每次启动时USRP完成射频校准,消除硬件状态差异。

4. 验证与前置操作

  • 每次启动流图前,先重置USRP状态:
    uhd_usrp_reset --addr=你的USRP IP地址
  • 用Message Debug模块记录RX/TX时间戳,对比每次启动的时间差,确认延迟是否稳定。
  • 切换传输协议:把USRP模块的Transport Method改成udp,TCP的滑动窗口机制容易引发延迟波动。

内容的提问来源于stack exchange,提问作者Ahmet Said Akan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 09:32:40