2016-09-04 7 views
0

GNURadioを使用してUSRPデバイスを実行する方法を学習しています。あるUSRPのデータストリームを別のUSRPに送信し、正常に受信できます。今私はより高度なものをしたいです。現在、いくつかのデータを受信するようにUSRPを設定したい場合、データが完全に受信されたら、この同じUSRPを自動的に送信者にしてデータを返信してください(ACK/NACKなど)。ここに私の質問は以下のとおりです。GNURadioを使用してUSRPをRXからTXに切り替える

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

  2. ブロック(pmt、blob、メッセージパッシング、タグ付きストリーム)間でデータと制御を渡す方法はたくさんあります。私はEEのバックグラウンドから来て、ドキュメントを読もうとしましたが、私はこのプロジェクトに何を使用すべきかわかりません。

答えて

1

あなたの最初の質問です。 UHDソース/シンクブロックを使用すると、全二重または半二重通信を実現できます。ソースブロックをRX2のアンテナ、シンクの場合はを選択すると、同時に送受信することができます。半二重を使用する場合は、ソースブロックとシンクブロックの両方でTX/RXアンテナを選択します。あなたが何かを送信しない限り、デバイスは絶えずサンプルを受信します。ここで、USRPデバイスはTXモードで送信の終わりまでスイッチを入れました。

2番目の質問については、アプリケーションによって異なります。デフォルトの接続は、ストリーム指向のアプリケーションでは好ましいですが、PMTとメッセージキューのメカニズムはバースト的な送信やパケットベースの送信の方が優れています。

+0

私はパケットを送ることを考えています。最初にPMTを勉強する必要がありますが、データと制御の両方を渡すためにPMTを使用する必要があると思いますか? – Doe

+0

@Doeそれは多くの側面に依存します。重大な考慮すべき点の1つは、gnuradioがストリームではなくメッセージを使用する大部分の信号処理操作をサポートしていることです。したがって、再利便性のために、既存のストリームブロックを使用し、PMTを使用して制御やフィードバックを行うべきです。個人的には、プロトコルの上位層(ビットスクランブル、ビットインターリーブなど)でPMTを使用し、フローグラフがPHY(物理層)に向かって伝播するときにストリームを使用します。それにもかかわらず、バースト送信とUHDを処理する場合は、バーストタグを使用して適切なフレーム送信を確保する必要があります。 – Manos

1

(マノスの答えには十分なコメントはありません)

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

また、uhdサンプルプログラムを見れば、いくらか明確になるかもしれません。それは私が始めたところです...

関連する問題