複数 USRP-RIO の同期方法のご紹介 (2)

こんにちは、ドルフィンシステムの笹生です。

コロナの制限がない久しぶりの GW は皆様いかがお過ごしでしたでしょうか。

私はやる事が立て込んでいて、GWはお預けでございました。

最近は夏の様に暑い日があったり、急に涼しくなったりで洋服の調節が大変ですが体調にはお気をつけください。

さて今回は、前回の続き「複数 USRO-RIO の同期方法 (2)」としてご紹介しようと思います。


同期方法① OctoClock-G を使った同期(の続き)


前回の記事では、OctoClock-G を使った同期として配線などを紹介しました。今回はNI から提供されているサンプルソフトウェアでの修正点についてを紹介します。
LabVIEW のバージョンは 2020で、NI FPGA モジュール、NI USRP 等の必要なドライバ類はインストールされている前提です。

まず"NI-USRP Simple Streaming" サンプルプロジェクトを作成します。
LabVIEW を起動して、「プロジェクトを作成」を押します。


ダイアログの左のペインから NI-USRP を選び右のペインで "NI-USRP Simple Streaming" を選びます。

[次へ]を押します。
「プロジェクト名」や「プロジェクトルート」を入力します。今回は「OctoClock-G」という名称にしてみました。


[終了]ボタンを押すと自動的にサンプルプログラムが生成されます。
↓作成中のプログレスバー


↓作成されたプロジェクト

さて、Octoclock からの 10MHz クロックについては、ホスト側のアプリケーションから選択できます(後述します)が、PPS Trig IN を使ったタイミングの同期は FPGA の VIを修正してコンパイルする必要があります。

FPGA VI のトリガ入力の変更


まずプロジェクトの FPGA の部分は 2種類ありますが、今回修正部分はどちらかで修正することでもう片方にも変更は反映されます。

今回は「USRP 294xR; 295xR 120MSps」を開きます。配下にある「Resources」という仮想フォルダを開きます。


さらに配下の「SubVI」というフォルダにある「StartTrigger.vi」を開きます。


「StartTrigger.vi」のフロントパネルが開きます。


ここで[Ctrl+E] を押してブロックダイアグラムを表示させます。

このブロックダイアグラムの→がしめすところの [AUX I/O 0] の部分をクリックして表示されるドロップダウンから[Resources]->[Board Interface]->[PPS Trig In] を選択します。


このトリガの IO はデフォルトでは USRP-RIO のフロントパネルにある ”GPIO の 0 番”になっています。それをここで OctoClock-G からのトリガ入力の ”PPS Trig In” に変更して使用できるようにします。変更した VI を保存します。




一見手順が多そうですが、要するにトリガの入力がデフォルトでは GPIO の入力なので、PPS Trig In に変更するという手順です。
この VI では複数のトリガソースをホストから選択できる機能を提供していて、変更した PPS Trig In はホストのトリガ設定を ”Digital Edge” にすると使用できるようになる仕組みになっています。

ここまで出来たら FPGA をコンパイルします。
プロジェクトエクスプローラに戻って、FPGA の配下にある[ビルド仕様] を開き、[Streaming Transceiver]を右クリックして「ビルド」します。


コンパイルサーバーを選択するダイアログが出ますので、ローカルの PC でコンパイルさせる場合はそのまま「ローカルコンパイルサーバーを使用する」で [OK]します。

中間ファイルの生成ダイアログが表示されます。このダイアログも数分かかります。
VI等に問題なければ、中間ファイルは無事生成されて、FPGA のコンパイルが開始されます。PC の処理能力でコンパイル時間は変わりますが、30分程度~1時間以内には終了すると思います。

コンパイルが無事終了しました。


もう片方の FPGA も同様にビルド仕様からコンパイルしてください。

ホスト側の同期設定

ホスト側のサンプル VI では実行する前にリファレンスクロックとトリガの設定(その他 RF 設定もろもろ)をしておきます。

プロジェクトエクスプローラの (Host) がついた VI を開きます。どれも同様の設定ですので今回は [Tx and Rx Streaming (Host).vi] を開きます。


同期のための設定変更は2か所になります。[Reference Frequency Source] と [Start Trigger] です。


[Reference Frequency Source]をクリックして [REF IN] にします。


[Start Trigger] は [Digital Edge] にします。


さて、ホスト側の VI は1台の USRP を対象にしています。
とりあえず、複数台の USRP でも個別にホスト PC の対応があればこの設定で同期可能です。
1つのホストで複数の USRP の制御はまた別の機会に紹介しようと思います。







0 件のコメント :

コメントを投稿