如何在GNU Radio中同时控制两张UHD USRP B200 Mini SDR卡?
先确认系统能识别两张卡:
打开终端执行uhd_find_devices,终端会列出所有被UHD驱动识别到的USRP设备。如果只显示一个,说明硬件连接或驱动有问题,先排查USB供电(B200需要足够供电,建议用带电源的USB hub)、USB线质量,或者重新安装/更新UHD驱动。强制每个USRP Source块绑定不同硬件:
这是核心问题——默认情况下两个USRP块会争抢同一个设备。打开流图里的每个USRP Source配置窗口,在Device Address栏填入对应设备的唯一标识,比如用序列号:serial=你的第一块卡序列号和serial=你的第二块卡序列号(序列号从uhd_find_devices的输出里找)。确认块的基础配置:
每个USRP Source的Num Channels设为1,Num Mboards设为1,同时保证两个块的采样率、时钟源(如果需要同步的话选外部或其中一个作为主时钟,单纯同时运行可先选内部)等参数配置正确。排查日志找问题:
如果还是不行,别直接用图形界面启动流图,打开终端执行gnuradio-companion 你的流图文件名.grc,运行后看终端输出的UHD日志,里面会明确显示每个设备的初始化状态,能帮你定位是设备没找到、参数不匹配还是其他问题。驱动版本检查:
执行uhd_version查看当前UHD版本,老版本可能存在多设备支持的bug,建议升级到最新的稳定版(可以通过源码编译或者包管理器更新,比如Ubuntu用sudo apt install libuhd-dev uhd-host)。
内容的提问来源于stack exchange,提问作者HadK

