主机只有一个可用的以太网连接,为了使用网络接口卡(NIC)进行主机到无线电的连接,您断开了internet连接。然后,您在注销之前没有使用该网卡重新连接互联网。
有关更多信息,请参见使用1个以太网端口.
无法建立主机到无线电的连接,因为无线电的IP地址位于主机计算机用于另一个以太网端口或无线网络接口的子网中。
请按照网址提供的说明去做解决以太网子网冲突.
Ping命令返回一条消息,表明它无法到达硬件。
你可以尝试以下任何一种方法:
检查防火墙是否已禁用或设置为从收音机上配置的子网传递数据。电台上的缺省子网配置是192.168.10.X。
这个函数findsdru
给出以下警告信息:“不兼容”
.
安装在USRP™无线电上的固件与支持包的UHD™软件版本不兼容。万博1manbetx
更新您的USRP无线电的固件。看到USRP无线电固件更新.
MATLAB®从函数调用返回以下警告消息findsdru
:忙
.
USRP无线电被另一个MATLAB或Simulink使用万博1manbetx®实体。USRP无线电可能变得繁忙时,任何下列情况发生:
Si万博1manbetxmulink正在进行仿真。
接收或发送模块掩码打开。
一个锁定的接收器或发射器系统对象™在内存中。
您可以通过停止模拟、关闭块或调用释放
System对象的方法。
这个函数findsdru (IPAddress)
,在那里IPAddress
是USRP无线电的IP地址,返回以下警告消息:没有响应
.
此警告表明您的子网配置不正确。例如,如果USRP无线电的IP地址为192.168.10.2,但主机IP地址在另一个子网,且IP地址为192.168。X1。,X是一个非10的数字。
更正主机IP地址,使其与USRP无线电的子网值相匹配为基于以太网的USRP无线连接配置主机.
或者,主机和USRP无线电之间可能存在以太网连接问题。看到检查以太网配置.
当使用突发模式时,你可能会得到类似如下的错误消息:
Could not execute UHD driver command in 'receiveData_c': libmwusrp_uhd_capi:receiveData:ErrWrongRecvSize在突发接收中没有收到预期的样本数量。这可能是由于爆裂内部的溢出。使用'sysctl'更新操作系统套接字缓冲区大小。期望:2752000发现:94120
这个错误发生时,MATLAB或Simulink软件没有收到请求数量的样本,万博1manbetx从USRP无线电。
以下是造成这一问题的已知原因:
在Linux上®系统中,OS套接字缓冲区大小可能不够大,无法进行适当的通信。如Ettus Research™所述,增加插座尺寸UHD -运输(插座).
以太网卡不能提供高速通信。你可能想试试英特尔®在这种情况下可以提供高质量连接的芯片组。
您系统上的防火墙或病毒保护程序可能正在阻塞或减慢您的连接。关闭防火墙或病毒程序可以消除这个问题。
请注意
关闭防火墙可能会使您的主机暴露给通过Internet的未经授权的访问。
当以太网连接中断时,一些笔记本电脑可能会丢失其以太网设置,例如在USRP设备的电源循环时。按照下面的方法检查以太网连接设置为基于以太网的USRP无线连接配置主机.
对于笔记本电脑,试着将笔记本电脑连接到电源。大多数笔记本电脑都配置了更好的电池寿命,并且在没有连接电源的情况下降低了处理性能。对于电池供电模式和交流供电模式,请确保设置了对应于最大处理性能的电源设置。一些笔记本电脑制造商还提供高级电源设置,以帮助选择最佳CPU性能的计划。
您可能会在MATLAB命令窗口中看到来自UHD驱动程序的下列消息之一。
recv缓冲区无法调整大小:
---------- begin libuhd warning message output ---------- The recv buffer could not resized enough。目标袜子buff大小:50000000字节。实际袜子buff大小:131071字节。请参阅传输应用程序关于缓冲区大小调整的说明。请运行命令:sudo sysctl -w net.core。rmem_max = 50000000 ---------- 结束libuhd警告消息输出 ----------
发送缓冲区无法调整大小:
----------开始libuhd警告消息输出----------发送缓冲区无法充分调整大小。目标袜子buff大小:1048576字节。实际袜子buff大小:131071字节。请参阅传输应用程序关于缓冲区大小调整的说明。请运行命令:sudo sysctl -w net.core。wmem_max = 1048576 ---------- 结束libuhd警告消息输出 ----------
如果遇到这些消息,请在Linux shell中运行消息中提供的sysctl命令。
您可能会看到一个警告,说明UHD驱动程序无法设置线程优先级。
这个警告是无害的。你可以在这里获得更多关于这个主题的信息线程优先级调度.
这个函数findsdru
可能会崩溃或抛出类似以下错误:
???无效的MEX-file < SDRuInstallRoot > / bin / glnxa64 / usrp_uhd_mapi。mexa64”:< SDRuInstallRoot > / bin / glnxa64 / libmwusrp_uhd_capi。所以:undefined symbol:_ZN3uhd7warning16register_handlerERKSsRKN5boost8functionIFvSsEEE错误in ==> mapiPrivate at 19 [retStr, errStat, errStr] = usrp_uhd_mapi(cmd);Error in ==> findsdru at 25 [flatAddrList, errStat, errStr] = mapiPrivate('findsdru');
这类错误通常发生在以下情况:
libuhd或Boost库的正确版本是不加载。
这些库的错误版本是加载。
如果系统路径没有包含这些库的正确路径信息,或者这些库的先前安装版本隐藏了USRP Radio所需库的支持包,则可能发生这种情况。万博1manbetx
您可以按照以下步骤诊断此问题:
导航到< SDRuInstallRoot > / bin / glnxa64
在MATLAB命令窗口中。例如:
cdc: / /特别提款权/ sdru / bin / glnxa64工作
输入以下命令:
ldd ! libmwusrp_uhd_capi.so
你应该会看到类似如下的消息:
linux-vdso.so。1 => (0x00007ffff35ff000)003 = > < SDRuInstallRoot > / glnxa64 commusrp / bin / glnxa64 /。/ libuhd.so.003(0 x00007fc9476bb000) libstdc + + . so。6 = > < MATLABROOT > > / sys / os / glnxa64 / libstdc + + .so.6(0 x00007fc9473b4000) libm.so。6 = > /lib/libm.so.6(0 x00007fc947113000) libgcc_s.so。1 = > < MATLABROOT > > / sys /操作系统/ glnxa64 / libgcc_s.so.1(0 x00007fc946efd000) libpthread.so。0 = > /lib/libpthread.so.0(0 x00007fc946ce0000) libc.so。6 = > /lib/libc.so.6 (0x00007fc94697f000) libboost_date_time.so.1.44.0=>>/bin/glnxa64/libboost_date_time.so.1.44.0 (0x00007fc94676d000) libboost_filesystem.so.1.44.0=> /bin/glnxa64/libboost_filesystem.so.1.44.0 (0x00007fc946549000) libboost_program_options.so.1.44.0=> /bin/glnxa64/ libboost_program_options.so.1.44.0 (0x00007fc9462ef000) libboost_regex.so.1.44.0=> /bin/glnxa64/ libboost_regex.so.1.44.0 (0x00007fc945fdd000) libboost_system.so.1.44.0=> /bin/glnxa64/ libboost_system.so.1.44.0 (0x00007fc945dd9000) l/ibboost_thread.so.1.44.0=> /bin/glnxa64/ libboost_thread.so.1.44.0 (0x00007fc945bc2000) libboost_unit_test_framework.so.1.44.0=> /bin/glnxa64/... ... libboost_unit_test_framework.so.1.44.0 (0x00007fc945906000) librt.so.1 => /lib/librt.so.1 (0x00007fc9456fd000) libdl.so.2 => /lib/libdl.so.2 (0x00007fc9454f9000) /lib64/ld-linux-x86-64.so.2 (0x00007fc947d73000) libicuuc.so.44=> /bin/glnxa64/libicuuc.so.44 (0x00007fc945196000) libicui18n.so.44=> /bin/glnxa64/libicui18n.so.44(0x00007fc944d9e000) libicudata.so.44=> /bin/glnxa64/libicudata.so.44 (0x00007fc943d5e000)
确保所有的boost库都是从MATLAB安装位置而不是从系统中提取的(例如,特性
或/ lib
),或其他一些本地安装。
如果没有得到这些结果,例如,如果没有找到库,或者找到了不同版本的boost或libuhd,则LD_LIBRARY_PATH
可能是不正确的。您可以检查的值LD_LIBRARY_PATH
在MATLAB命令窗口中输入以下命令。
采用“LD_LIBRARY_PATH”)
ans = < MATLABROOT > / sys / os / glnxa64: < MATLABROOT > / bin / glnxa64: < MATLABROOT > /走读生/ lib / glnxa64: < MATLABROOT > / sys / java / jre / glnxa64 / jre / lib / amd64 / native_threads: < MATLABROOT > / sys / java / jre / glnxa64 / jre / lib / amd64 /服务器:< MATLABROOT > / sys / java / jre / glnxa64 / jre / lib / amd64: < SDRuInstallRoot > / glnxa64 / commusrp / bin / glnxa64
这个例子显示了MATLAB创建的默认值setupsdru
函数。
模型不是实时运行的。
如果你的模型不是实时运行的,你可以:
显示SDRu对象、显示SDRu对象属性或打开SDRu块掩码似乎需要很长时间。
当这些操作发生时,对象或块与USRP无线电通信以访问实际设备值。这个过程可能需要几秒钟,这是可以预料到的。
当你插上收音机并运行功能findsdru
,该函数可能返回一条消息,说明“没有找到设备”。然而,固件图像是自动加载的,这表明主机能够识别无线电。
Ettus Research已经证实,这个问题已知会发生在某些型号/修订的USB控制器上。解决办法是断开无线电,然后重新连接,可能要几次。
下载固件镜像:/Users/Shared/supportpackages/ usrprdio /toolbox/ Shared/ sdr/sdru/uhdapps…万博1manbetx/图片/ usrp_b200_fw.hex……x = Platform: " IPAddress: " SerialNum: " Status: 'No devices found' ==================断开无线电并重新连接================ >> x = findsdru加载固件镜像:/Users/Shared/supportpackages/ usrprdio /toolbox/ Shared/ sdr/万博1manbetxsdru/…uhdapps /图片/ usrp_b200_fw.hex……加载FPGA图像:/Users/Shared/supportpack万博1manbetxages/ usrprdio /toolbox/ Shared/ sdr/sdru/…uhdapps /图片/ usrp_b210_fpga.bin……x = Platform: 'B210' IPAddress: ' SerialNum: 'ECR04ZDBT' Status: 'Success'
当使用总线系列收音机时,USB 2.0连接对于某些高采样率应用程序来说不够快。
您可以使用USB 3.0连接,以获得更可靠的连接,以满足高速需求。看到https://kb.ettus.com/B200/B210/B200mini/B205mini#FAQ.
当您尝试使用总线系列收音机在流模式下进行8位传输时,将发生UHD异常。
Error using comm.SDRuReceiver/stepImpl Could not execute UHD driver command in 'receiveData_c': libmwusrp_uhd_capi:receiveData:ErrBadPacket通信传输收到一个错误格式的包。
您可以使用突发模式缓冲或将传输数据类型更改为16位。
遇到以下错误:
使用comm.SDRuReceiver/stepImpl Could not execute UHD driver command in 'receiveData_c': libmwusrp_uhd_capi:receiveData:ErrWrongRecvSize在突发接收中没有收到预期的样本数量。这可能是由于爆裂内部的溢出。使用'sysctl'更新操作系统套接字缓冲区大小。期望:4000000发现:163741
将传输数据类型更改为int8
.这一变化可能使可实现的抽样率增加一倍。看到改变传输数据速率,
如果你有一个总线系列收音机,确保你使用USB 3连接。
请参阅Ettus Research推荐的USB 3.0控制器:https://kb.ettus.com/About_USRP_Bandwidths_and_Sampling_Rates.
你可以使用benchmark_rate
从UHD的实用程序,以测试是否传输速度可以维持在收音机和主机PC之间。这个例子演示了测试传输速率:
call_uhd_app (“benchmark_rate”,”——tx_rate 20 e6的,“回声”);
linux;GNU c++版本4.7.2;Boost_105600;UHD_003.009.001-vendor创建usrp设备—检测到的设备:B210—通过USB 3运行。初始化编解码器控制…初始化无线电控制…——执行寄存器环回测试…pass——执行寄存器环回测试…pass—执行CODEC环回测试… pass -- Performing CODEC loopback test... pass -- Asking for clock rate 16.000000 MHz... -- Actually got clock rate 16.000000 MHz. -- Performing timer loopback test... pass -- Performing timer loopback test... pass -- Setting master clock rate selection to 'automatic'. Using Device: Single USRP: Device: B-Series Device Mboard 0: B210 RX Channel: 0 RX DSP: 0 RX Dboard: A RX Subdev: FE-RX2 RX Channel: 1 RX DSP: 1 RX Dboard: A RX Subdev: FE-RX1 TX Channel: 0 TX DSP: 0 TX Dboard: A TX Subdev: FE-TX2 TX Channel: 1 TX DSP: 1 TX Dboard: A TX Subdev: FE-TX1 -- Asking for clock rate 20.000000 MHz... -- Actually got clock rate 20.000000 MHz. -- Performing timer loopback test... pass -- Performing timer loopback test... pass Testing transmit rate 20.000000 Msps on 1 channels Benchmark rate summary: Num received samples: 0 Num dropped samples: 0 Num overflows detected: 0 Num transmitted samples: 200058544 Num sequence errors: 0 Num underflows detected: 0
第二个例子演示了测试接收速率:
call_uhd_app (“benchmark_rate”,”——rx_rate 20 e6的,“回声”);
linux;GNU c++版本4.7.2;Boost_105600;UHD_003.009.001-vendor创建usrp设备—检测到的设备:B210—通过USB 3运行。初始化编解码器控制…初始化无线电控制…——执行寄存器环回测试…pass——执行寄存器环回测试…pass—执行CODEC环回测试… pass -- Performing CODEC loopback test... pass -- Asking for clock rate 16.000000 MHz... -- Actually got clock rate 16.000000 MHz. -- Performing timer loopback test... pass -- Performing timer loopback test... pass -- Setting master clock rate selection to 'automatic'. Using Device: Single USRP: Device: B-Series Device Mboard 0: B210 RX Channel: 0 RX DSP: 0 RX Dboard: A RX Subdev: FE-RX2 RX Channel: 1 RX DSP: 1 RX Dboard: A RX Subdev: FE-RX1 TX Channel: 0 TX DSP: 0 TX Dboard: A TX Subdev: FE-TX2 TX Channel: 1 TX DSP: 1 TX Dboard: A TX Subdev: FE-TX1 -- Asking for clock rate 20.000000 MHz... -- Actually got clock rate 20.000000 MHz. -- Performing timer loopback test... pass -- Performing timer loopback test... pass Testing receive rate 20.000000 Msps on 1 channels Benchmark rate summary: Num received samples: 199989048 Num dropped samples: 0 Num overflows detected: 0 Num transmitted samples: 0 Num sequence errors: 0 Num underflows detected: 0
对于笔记本电脑,试着将笔记本电脑连接到电源。大多数笔记本电脑都配置了更好的电池寿命,并且在没有连接电源的情况下降低了处理性能。对于电池供电模式和交流供电模式,请确保设置了对应于最大处理性能的电源设置。一些笔记本电脑制造商还提供高级电源设置,以帮助选择最佳CPU性能的计划。