前言
在进行 USRP 开发时遇到了一些报错,这里做个记录解决问题的方法。
一、本地环境
- 电脑操作系统:Windows11
- MATLAB 版本:MATLAB 2021a
- USRP 型号:USRP-N320
- USRP 固件版本:UHD_3.15.0.0-vendor
二、相关报错信息
报错1:
Checking radio connections… ---------- begin libuhd error output ---------- Exception caught in safe-call. in __cdecl ctrl_iface_impl<0>::~ctrl_iface_impl(void) at B:3psourcesUHDlibrfnocctrl_iface.cpp:52 this->send_cmd_pkt(0, 0, true); -> EnvironmentError: IOError: Block ctrl (CE_01_Port_40) packet parse error - EnvironmentError: IOError: Expected packet index: 425 Received index: 426 ---------- end libuhd error output ---------- discover radio! 警告: SerialNum 属性与 System object 的此配置无关。 位置:matlab.system.SystemProp/setProperties 位置: comm.internal/SDRuBase 位置: comm/SDRuTransmitter 位置: test (第 24 行)
报错2:
Checking radio connections… ---------- begin libuhd error output ---------- Exception caught in safe-call. in __cdecl lmx2592_impl::~lmx2592_impl(void) at B:3psourcesUHDlibusrpcommonlmx2592.cpp:155 _regs.powerdown = 1; commit(); -> EnvironmentError: IOError: Block ctrl (CE_01_Port_40) packet parse error - EnvironmentError: IOError: Expected packet index: 376 Received index: 375 ---------- end libuhd error output ---------- 警告: An error occurred: Could not execute UHD driver command in ‘createDriver_c’: Could not create a UHD driver using IP addr ‘192.168.10.2’. Attach a device at the specified address, correct the specified address to match an already attached device, or continue to work in off-line mode. Error from UHD: EnvironmentError: IOError: Block ctrl (CE_01_Port_40) packet parse error - EnvironmentError: IOError: Expected packet index: 375 Received index: 376. 位置:coder.internal.warning (第 8 行) 位置: reportSDRuStatus (第 104 行) 位置: findsdru (第 205 行) 位置: mytransmitter (第 127 行) 错误使用 mytransmitter (第 146 行) no discover radio!
报错3:
错误使用 comm.SDRuTransmitter/stepImpl Transmit unsuccessfully: Could not execute UHD driver command in ‘sendData_c’: EnvironmentError: IOError: Block ctrl (CE_01_Port_40) packet parse error - EnvironmentError: IOError: Expected packet index: 451 Received index: 452 出错 test (第 35 行) tx(modSignal);
错误 3 可以尝试释放资源,再次运行。
二、解决办法
1、更换电脑操作系统
实验室一台 Win10 台式电脑可以正常驱动 USRP 工作且不报错,我的电脑操作系统是 win11,因此怀疑是操作系统的原因,因此安装了个 win10 的虚拟机进行开发 USRP,果不其然,问题游刃而解。
2、升级最新版固件
可以尝试一下将 MATLAB 升级到 2023b,然后也将 USRP 的固件烧录成和 MATLAB 对应的版本 UHD_4.2.0.0-vendor