我正在尝试在由多个 B210 USRP 设备组成的 gnu 无线电中创建一个同步的 usrp 源块。朗:C++。
根据我的发现,我需要:
- 实例化多个 multi_usrp_sptr,因为每个 B210 都需要一个,并且多个 B210 设备不能通过使用单个 sptr 来寻址
- 使用外部频率和 PPS 源 - 可以从块中选择或以编程方式设置的选项
- 同步重新/调整以实现节点之间的可重复相位偏移 - 这可以使用定时命令 API https://kb.ettus.com/Synchronizing_USRP_Events_Using_Timed_Commands_in_UHD来实现
- 使用 time_spec 属性 issue_stream cmd 同步示例流
问题是我应该如何插入这些定时命令并在 GNU 无线电块或 gr-uhd 库中设置流的 time_spec?
我查看了接收器/源代码所在的 gr-uhd 文件夹,发现了可以更改的函数。不幸的是,我不知道如何复制或导出这个库来进行这些修改,然后编译以将我的自定义块插入到 GNU Radio,因为 gr-uhd 似乎是在安装 GR 时内置和编译的。我尝试应对然后制作 lib,但那不是方式 - 它没有成功。我应该通过 gr_modtool 添加我自己的源代码块并只插入我需要的命令吗?除了添加几行之外,与 uhd 及其功能的兼容性将有利于不从头开始编写源代码。
请指教
编辑
实验流程图,基于 Marcus Müller 的建议:
Experimental usrp synchronization flow