プチプチ専用の包装テープ「NO.335PE」の剥がれやすさを試す (2)

USRPの制御を時間確定的に制御する Timed CommandはStreamを制御できるか? (3)

こんにちはドルフィンシステム福島です。
2024年もよろしく願い致します。

さて時間が少し空いてしまいましたが、今回もLabVIEW上でUSRPをTimed Commandで制御できるかを調査していきます。

Timed Commandについては以下過去記事の(1)、中心周波数等のRF設定を時間確定的に切り替える方法は以下の(2)をご覧下さい。


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


Stream Commandの使い方

Timed Commandは、

  • 中心周波数などのRF設定を時間確定的に行うGeneral Timed Command
  • 収録・再生の開始・停止を制御するStream Command

に分かれます。

General TimedCommandは過去記事の(2)で扱いました。


今回はStream Commandを試して見ます。
で、LabVIEWでStream Commandを使うにはどうしたらいいか?

実は、よくサンプルで目にする下図の①がStream Timed Commandを実行する関数です。

① niUSRP Configure Trigger関数で、ストリームを開始する時間を指定します。下図ではUSRP内部カウンタが2秒になってから収録を開始する指定をしています。
② niUSRP Set Time関数で、USRP内部タイマー時間を設定します。下図では0秒に初期化しています。初期化されるタイミングはコマンドの実行タイミングになります。他の機器と同期させたい場合は後述。
③ niUSRP Initiate関数でストリーム開始させる関数です。
④ niUSRP Fetch Rx Poly関数で、USRPからIQデータを受信します。


サンプルniUSRP EX Command delay.vi



上を実行すると以下の様に処理が進みます。

①が実行された時、収録開始時間を指定するコマンドが即座に実行される
②が実行された時、USRPの内部カウンタを指定するコマンドが即座に実行される
③が実行された時、PCとUSRPの受信を動作を開始します
④でUSRPからIQデータを受信します。①で受信開始が2秒後と指定されているので、このFetch関数は約2秒間ブロッキングされてからIQデータを返します。

ちなみに②は即座に実行され、実行された瞬間からUSRPの内部カウンタが加算開始しますので、下図のように②~③で時間のかかる処理を行うとデータが受け取れないことになります。

(USRPが2秒後にソフト側に対してデータを送ってくるにもかかわらず、ソフト側が受け取る準備が出来ていないのでエラーになる) 

②と③とFetch関数の間には処理は入れないようにしましょう。

他の機器と同期して収録・再生を開始する

USRPはPPS INコネクタにPPS信号を入力するとスタートトリガとして利用することが出来ます。

① niUSRP Configure Trigger関数で"Next Timebase Edge"を選択すると、次にPPS信号が入力された時間を0秒として初期化します。OctoClock(クロック分配機)を使用して複数のUSRPにPPS 信号を分配すれば、複数のUSRPのサンプリング開始タイミングを同時にすることができます。


PPS信号は、5v 矩形波 (20% duty)であればファンクションジェネレータの信号でも認識します。


OctoClock CDA-2990
https://kb.ettus.com/OctoClock_CDA-2990#Key_Features


参考資料

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


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


コメント