REDHAWK UHD接收溢出的原因

时间:2015-02-10 16:18:48

标签: redhawksdr usrp

我在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为.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)

2 个答案:

答案 0 :(得分:1)

您使用调谐器分配的值是多少?很久以前我遇到了同样的问题。我认为问题是使用超出USRP范围的值。

试试这些:

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

之后,您可能会遇到端口的新问题。我建议您按照问题和解决方案here进行操作。

答案 1 :(得分:0)

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

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

通常,在VM中进行软件定义无线电是一个坏主意。有很多I / O工作需要完成,虚拟化会给进入VM的每个以太网帧带来很大的开销。