【问题标题】:Cause of REDHAWK UHD Receive OverflowREDHAWK UHD 接收溢出的原因
【发布时间】:2015-03-22 21:47:33
【问题描述】:

我在 CentOS 6.6 VM 上运行 REDHAWK 1.10.1(通过 Parallels 在 Macbook Pro OS X 10.10 上)。我正在使用 USRP N210。在将实际波形连接到它之前,我只是想启动并运行它。

我用以下方式配置 OS X:

sudo sysctl -w net.inet.tcp.sendspace=1048576
sudo sysctl -w net.inet.tcp.recvspace=1048576

CentOS 有:

$ sudo sysctl -w net.core.wmem_max=1048576
$ sudo sysctl -w net.core.rmem_max=50000000

我还通过附加到 /etc/security/limits.conf 来配置线程调度优先级:

@redhawk  - rtprio    99

现在我只是将 USRP_UHD dataShort_out 连接到 DataConverter dataShort_in。数据正在流动,但在我开始执行后不久,我反复收到以下消息:

USRP_UHD_i:1295 - WARNING: TIMEOUT OCCURED ON USRP RECEIVE! (received num_samps=0)

我认为这可能是数据流问题,但我找不到对消息的任何引用。可能是由 OS X 接收缓冲区大小引起的(我认为这限制了 CentOS VM)?不幸的是,OS X 不允许我将它提高到更高,当然不会提高到 50 MB。什么可能导致此消息?

我正在使用 WBX 子板。我调谐到 2 GHz,BW 为 40 MHz,SR 为 0.2 Msps。

DevMgr 节点输出:

2015-02-18 19:48:06,578 DEBUG DCE:0b818b5e-aa99-47ac-87ca-ff4d37b6991b{1}:101 - Issuing event for DCE:9da85ebc-6503-48e7-af36-b77c7ad0c2b4 ({'fivemin': 0.26000000000000001, 'fifteenmin': 0.20999999999999999, 'onemin': 0.20999999999999999} != {'fivemin': 0.23000000000000001, 'fifteenmin': 0.20000000000000001, 'onemin': 0.11})
2015-02-18 19:48:06,584 DEBUG DCE:0b818b5e-aa99-47ac-87ca-ff4d37b6991b{1}:101 - Issuing event for DCE:6565bffd-cb09-4927-9385-2ecac68035c7 (3692 != 3693)
2015-02-18 19:48:06,585 DEBUG DCE:0b818b5e-aa99-47ac-87ca-ff4d37b6991b{1}:103 - Eventing for properties ['DCE:9da85ebc-6503-48e7-af36-b77c7ad0c2b4', 'DCE:6565bffd-cb09-4927-9385-2ecac68035c7']
2015-02-18 19:48:06,586 DEBUG DCE:0b818b5e-aa99-47ac-87ca-ff4d37b6991b{1}:65 - Skipping sendPropertiesEvent (no connections)

USRP 节点输出:

2015-02-18 19:48:55 DEBUG USRP_UHD_i:1312 - usrpReceive|received data. num_samps=200000 buffer_size=400000 buffer_capacity=943718
2015-02-18 19:48:56 DEBUG USRP_UHD_i:1312 - usrpReceive|received data. num_samps=200000 buffer_size=800000 buffer_capacity=943718
2015-02-18 19:48:57 DEBUG USRP_UHD_i:1312 - usrpReceive|received data. num_samps=71859 buffer_size=943718 buffer_capacity=943718
2015-02-18 19:48:57 DEBUG USRP_UHD_i:240 - serviceFunctionReceive|pushing buffer of 471859 samples
2015-02-18 19:48:58 DEBUG USRP_UHD_i:1312 - usrpReceive|received data. num_samps=200000 buffer_size=400000 buffer_capacity=943718
2015-02-18 19:48:59 DEBUG USRP_UHD_i:1312 - usrpReceive|received data. num_samps=140642 buffer_size=681284 buffer_capacity=943718
2015-02-18 19:48:59 WARN USRP_UHD_i:1295 - WARNING: TIMEOUT OCCURED ON USRP RECEIVE! (received num_samps=0)

【问题讨论】:

    标签: redhawksdr usrp


    【解决方案1】:

    您使用什么值来分配调谐器?很久以前我和你有同样的问题。我认为问题在于使用了超出 USRP 范围的值。

    试试这些:

    center freq = 462e6
    bandwidth = 40e6
    sample rate = 0.2e6
    

    之后,您可能会遇到有关端口的新问题。我建议关注问题和解决方案here

    【讨论】:

    • 我已经尝试了很多设置,包括一些与您建议的非常相似的设置。我仍然遇到这个问题。我开始怀疑这是否是因为 VM 网络性能。我最终可能会尝试安装本机 Linux 以查看是否可以修复它。您使用的是虚拟机吗?
    • 是的,我通过 oracle vmbox 使用了 CentOS 6.5。如果你有时间,你可以试试这个吗?在调试级别 4 或 5 中运行域。在调试级别 4 或 5 中运行设备。让两者都运行一段时间,然后在它开始向您发出警告之前复制粘贴一些结果。
    • 另外,您可能需要在此处检查您的 USRP 使用的是哪个子板:ettus.com/product/details/UN210-KIT
    • 我正在使用 WBX 子板。我调谐到 2 GHz,BW 为 40 MHz,SR 为 0.2 Msps。 DevMgr 节点:2015-02-18 19:48:06,578 DEBUG DCE:0b818b5e-aa99-47ac-87ca-ff4d37b6991b{1}:101 - Issuing event for DCE:9da85ebc-6503-48e7-af36-b77c7ad0c2b4 ({'fivemin': 0.26000000000000001, 'fifteenmin': 0.20999999999999999, 'onemin': 0.20999999999999999} != {'fivemin': 0.23000000000000001, 'fifteenmin': 0.20000000000000001, 'onemin': 0.11}) 2015-02-18 19:48:06,584 DEBUG DCE:0b818b5e-aa99-47ac-87ca-ff4d37b6991b{1}:101 - Issuing event for DCE:6565bffd-cb09-4927-9385-2ecac68035c7 (3692 != 3693)
    • DevMgr 节点继续...2015-02-18 19:48:06,585 DEBUG DCE:0b818b5e-aa99-47ac-87ca-ff4d37b6991b{1}:103 - Eventing for properties ['DCE:9da85ebc-6503-48e7-af36-b77c7ad0c2b4', 'DCE:6565bffd-cb09-4927-9385-2ecac68035c7'] 2015-02-18 19:48:06,586 DEBUG DCE:0b818b5e-aa99-47ac-87ca-ff4d37b6991b{1}:65 - Skipping sendPropertiesEvent (no connections)
    【解决方案2】:

    当您看到溢出时的问题仅仅是您的 PC 跟不上进来的样本。在 200kS/s 的采样率下,这意味着您的 VM 可能功率不足或您的应用程序过于复杂。

    除了使您的应用程序和/或机器性能更高之外,您无能为力。

    一般来说,在 VM 中进行软件定义无线电是一个坏主意。需要完成大量 I/O 工作,并且虚拟化会在进入 VM 的每个以太网帧上产生大量开销。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-10
      • 2012-08-31
      • 1970-01-01
      • 2015-03-10
      • 2019-02-03
      • 1970-01-01
      • 1970-01-01
      • 2015-06-02
      相关资源
      最近更新 更多