こんにちは、ドルフィンシステムの笹生です。
今日「複数 USRP-RIO の同期方法のご紹介(4)」で前回の続きとなります。
6674T のプログラミングで 複数USRP の同期のマスターになる
さて、PXIe-6674T というデバイスが NI から発売されております。
このデバイスは「PXI Synchronization Module」ということで主にクロックやトリガ関連の信号のルーティングをすることができるモジュールになります。
NI MAX から設定することもできますが、それなりに複数の経路を設定したりするのが面倒なのと、単体で 1PPS のような信号出力をさせることができないようなので、LabVIEW でプログラミングしてみました。
プログラミングすることで、6674T が複数 USRP を同期させるための 10MHz Ref Clock と 1PPS のマスターデバイスの代わりとして使用することができます。
0から作成はさすがにしんどいので、NIから提供されているサンプルを改造したいと思います。
サンプルファインダで対象のハードウェアとして「PXIe-6674T」を追加し、「ハードウェアに対して結果を制限」にチェックします。
そして、表示されたサンプルの「ハードウェア入力と出力」⇒「タイミングと同期」⇒「信号ベース」にある「Route Software Trigger.vi」を開きます。
このような VI が開きますので、適当なフォルダに保存します。
ブロックダイアグラムはこのような感じ
さて、このプログラムは何をしているかというと、6674T の指定した端子(デフォルトは PFI0) からボタンを押すたびにトリガを送信する VI です。
これに少々改造して、Clk out から 10MHz クロックを出し、端子からは 1PPS 相当のトリガ信号を出すように変更してみます。
変更したブロックダイアグラムがこちら
変更点は、初期化にクロックのルーティングを追加して、PXI_Clk10 というシャーシの 10MHz クロックを Clk Out から出力させるようにしています。
また、待ち時間を 1秒にして、フロントパネルのボタンの動作を押されたらスイッチにします。これで毎回 1秒ごとにトリガが掛かります。
これで OctoClock を通して複数の USRP を同時にトリガできます。
※注意点としては正確な 1秒ではなくソフトエア的な 1秒になります。ですがスタートしてしまえばRef Clock で全USRP が同期して動作させ続けられます。
0 件のコメント :
コメントを投稿