1

GNURAdio を使用して USRP デバイスを実行する方法を学んでいます。ある USRP から別の USRP にデータ ストリームを送信し、正常に受信できました。今はもっと高度なことをやりたいと思っています。現在、データを受信するように USRP を設定したいのですが、データが完全に受信されたら、この同じ USRP が自動的に送信機になり、データを送り返します (ACK/NACK など)。ここに私の質問があります:

  1. USRPが時々送信し、他の時に受信できるようにするには、同じアドレスを持つUHDソースとUHDシンクを使用する必要があると思います。両方の UHD ブロックを制御して、送信していないときに受信しているようにするにはどうすればよいですか? またその逆も可能ですか?

  2. ブロック間でデータとコントロールを渡す方法がたくさんあることに気付きました (pmt、blob、メッセージ パッシング、タグ付きストリーム)。私は EE のバックグラウンドを持っており、ドキュメントを読み込もうとしましたが、このプロジェクトに何を使用すればよいかわかりません。

4

2 に答える 2

2

(マノスの良い答えについてコメントするには十分な担当者がいません)。

タグ コマンドのサポートについては、UHD APIを確認してから、USRP ブロック ヘッダー (usrp_sink.h usrp_source.h) を確認してください。PMT でタグ ストローブを使用して送信する GRC の例を簡単に作成できます。たとえば、送信周波数を変更する「tx_freq」コマンドなどです。もちろん、スコープまたはスペクトラム アナライザを使用して結果を確認すると役立ちます。バーストの開始/終了も興味深いです。

また、uhd のサンプル プログラムを見ることで、ある程度の理解が得られるかもしれません。それが私が始めたところです...

于 2016-09-05T15:49:37.710 に答える
2

最初の質問について。UHD ソース/シンク ブロックを使用すると、全二重または半二重通信を実現できます。ソース ブロックにRX2アンテナ、シンクにTX/RXそれぞれアンテナを選択すると、受信と送信を同時に行うことができます。半二重を希望する場合はTX/RX、ソース ブロックとシンク ブロックの両方でアンテナを選択します。USRP デバイスが送信の最後まで TX モードに切り替わった場合、何かを送信しない限り、デバイスは常にサンプルを受信します。

2 番目の質問: アプリケーションによって異なります。デフォルト接続はストリーム指向のアプリケーションに適していますが、PMT およびメッセージ キュー メカニズムは、バーストまたはパケット ベースの伝送に適しています。

于 2016-09-04T20:54:03.500 に答える