使用 GNURadio 将 USRP 从 RX 切换到 TX

问题描述 投票:0回答:3

我正在学习如何使用 GNURadio 运行 USRP 设备。我能够将数据流从一个 USRP 发送到另一个 USRP,并成功接收它。现在我想做更高级的事情。目前,我想设置一个USRP来接收一些数据,然后当数据完全接收时,我希望这个相同的USRP自动成为发射器并发送回数据(例如ACK/NACK或其他)。这是我的问题:

  1. 我认为我需要使用具有相同地址的 UHD 源和 UHD 接收器,以允许 USRP 在某些时候传输并在其他时候接收。如何控制两个 UHD 块,以便在不发送时接收,反之亦然?

  2. 我注意到有很多方法可以在块之间传递数据和控制(pmt、blob、消息传递、标记流)。我来自 EE 背景,尝试阅读文档,但我不确定该项目应该使用什么?

gnuradio usrp
3个回答
3
投票

(没有足够的代表来评论马诺斯的好答案)。

查看 UHD API,然后查看 USRP 块头 (usrp_sink.h usrp_source.h) 以获取标签命令支持。您可以轻松地使用具有 PMT 的标签选通来发送“tx_freq”命令来更改发送频率,从而轻松制作 GRC 示例。当然,使用示波器或频谱分析仪来查看结果会有所帮助。突发的开始/结束也很有趣。

您还可以通过查看超高清示例程序来获得一些清晰的信息。这就是我开始的地方......


3
投票

对于你的第一个问题。使用 UHD 源/接收器块,您可以实现全双工或半双工通信。如果您分别为源块选择

RX2
天线并为接收器选择
TX/RX
,您可以同时接收和发送。如果您喜欢半双工,请在源块和接收器块中选择
TX/RX
天线。设备会不断接收样本,除非您传输某些内容,其中 USRP 设备会切换到 TX 模式直到传输结束。

第二个问题:这取决于你的应用。默认连接更适合面向流的应用程序,而 PMT 和消息队列机制更适合突发或基于数据包的传输。


0
投票

嘿,你解决问题了吗?我知道这是很久以前的事了,但我遇到了同样的问题,但找不到解决方案

© www.soinside.com 2019 - 2024. All rights reserved.