ソフトウェア制御のUSRPでマイクロ秒単位の送受信制御を行う

USRPの制御を時間確定的に制御する Timed Commandについて (1)

こんにちはドルフィンシステム福島です。

今年は、季節外れの暖かさだったり、急に冬並の気温になったりと、東京では安定しない天気が続いています。

皆様、お障り無くお過ごしでしょうか。


ところでUSRPをソフトウェアで制御する際に、Timed Commandというコマンドを使用できます。

このコマンドを使うと、

  • 3秒後に中心周波数を2GHzに変更する
  • 200ms後にGainを10dBにする
  • 500ms毎に受信アンテナをTX/RXからRX2に交互に変更する

などの操作を時間確定的に実行できます。


USRPの制御を時間確定的に制御する Timed Commandについて (1)
http://mikioblog.dolphinsystem.jp/2023/11/usrp-timed-command-1.html

USRPの制御を時間確定的に制御する Timed Commandを動かしてみる (2)
http://mikioblog.dolphinsystem.jp/2023/12/usrp-timed-command-2.html

USRPの制御を時間確定的に制御するTimed CommandはStreamを制御できるか? (3)
http://mikioblog.dolphinsystem.jp/2024/01/usrp-timed-command-3.html


参考資料

Timed Commands
https://files.ettus.com/manual/page_timedcmds.html

Synchronizing USRP Events Using Timed Commands in UHD
https://kb.ettus.com/Synchronizing_USRP_Events_Using_Timed_Commands_in_UHD


Timed Commandについて

Timed CommandはUSRP内のFPGAで処理されており、さらにコマンドの実行タイミングはUSRP内部のタイマーで判断しているので、確実にその時間に変更できます。

例えば時間確定的に周波数ホッピングさせたり、送信アンテナと受信アンテナを変更する事も可能です(たぶん。私は試したことはないですが)。また外部のOctoClockやGPSからPPS-Inを入力することで、離れたUSRP間で切替タイミングを同期させることも可能です。

またTimed Commandは予めキュー(待ち行列)に入れておくことが出来ます。

・200ms後に実行するコマンド

・300ms後に実行するコマンド

・400ms後に実行するコマンド

・・・

というようにキューに入れておけば、その時間が来たらFPGAが適切に判断して実行してくれます。Timed Commandをキューに入れるのはソフトウェアなので、ソフトウェアの実行速度が遅いとキューに入れる前に指定時間に到達してしまう恐れがあるので注意が必要です。


Timed Commandの実行方法

Timed Commandの実行手段は、

  • LabVIEW(NI-USRP)で開発する場合→niUSRP Set Command Time関数を使用する
  • UHDで開発する場合、tune_requestをset_rx_freq関数などを使用する

となっています。

※IDLではTimed Commandに対応していません。


Timed Commandの種類

実は、UHDのTimed Commandは2種類あります。

General Timed CommandとStream commandです。


General Timed Commandは、上記で解説した中心周波数やGain等を変更するコマンドです。

Stream commandは、受信や送信開始タイミングを調整するコマンドです。

例えば、3秒後から受信開始などの制御が出来ます。


というわけでTimed Commandを使うときめ細やかなハードウェア制御が可能です。

ただしTimed Commandが実行されてから実際に中心周波数やゲインが変更されるまでの時間やアナログ回路が安定するまではハードウェアに依存するため、事前に調査を行う必要があります。


サンプルコード

LabVIEWのサンプルコードが"niUSRP Set Command Time.vi"に用意されていますので、次回はサンプルを動かしてみます。

C:\Program Files (x86)\National Instruments\LabVIEW 2022\instr.lib\niUSRP


以上、ドルフィンシステム福島でした。


コメント