X410 カスタム FPGA で CWを連続送信する~ niUSRP EX Tx Continuous Async (RIO Streaming, Custom Bitfie).vi (USRP のサンプルを紐解く (23))

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

今回で 23回目の USRP のサンプルについての紹介となります。

今回紹介するサンプルはタイトルの「X410 カスタム FPGA で CWを連続送信する」サンプルとなります。このサンプル は第5回「NI USRP のサンプルを紐解く (5) ~基本的な送信サンプルのプログラム構造」とやりたいことは同一ですが、カスタムの FPGA Bitfile を使用するという点で異なるサンプルとなっております。LabVIEW 2020 の時には無かったので LabVIEW 2021 か 2022 で新しく追加された Ettus X410 のためのサンプルだと思われます。

このサンプルの使用例自体は第3回「NI USRP のサンプルを紐解く (3) ~CWを連続送信する最もシンプルな "niUSRP EX Tx Continuous Async.vi"~」第5回「NI USRP のサンプルを紐解く (5) ~基本的な送信サンプルのプログラム構造」をご覧いただければと思います。

それでは「niUSRP EX Tx Continuous Async (RIO Streaming, Custom Bitfie).vi」を見ていきましょう。

サンプルプログラムの開き方につきましては第一回のブログを参照してください。

違いはカスタムの FPGA Bitfile を指定するところのみ

第3回、第5回で解説したサンプルと今回のサンプルの違いはカスタムの FPGA Bitfile を指定するところだけです。
基本的には CW を繰り返し生成して USRP から送信するサンプルになります。
なぜこのサンプルが追加されたかを考えると Ettus X410 のリリースと対応にあるようです。

従来型のサンプルでは、USRP を開くときに特に FPGA の Bitfile を指定することはありませんでした。
一方、今回のサンプルでは、以下の様にカスタムの FPGA Bitfile を指定して開く関数を使用しています。

ヘルプを見ると「niUSRP Open Tx Session with Custom Bitfile (VI)
」という関数になっています。


カスタム ビットファイルを使用して送信 (Tx) セッションを開きます。

config パラメータとストリーミング パラメータは、使用されるサブシステムのタイプと利用可能なデバイス機能を定義します。

ほとんどの Ettus USRP X410 アプリケーションでは、ストリーミングを RIO として設定し、UHD としてconfig(構成)します。 

カスタム FPGA を備えた Ettus USRP X410 アプリケーションの場合、ストリーミングをなしに設定し、UHD としてconfig(構成)します。 

FPGA をコプロセッサとして使用し、RF 信号の送受信を行わない Ettus USRP X410 アプリケーションの場合は、ストリーミングを none に設定し、config を none に設定します。

他のほとんどの USRP アプリケーションの場合は、ストリーミングを UHD として設定し、UHD としてconfig(構成)します。

サポートされているデバイス: USRP-2900/2901、USRP-2920/2921/2922、USRP-2930/2932、USRP-2940/2942/2943/2944/2945、USRP-2950/2952/2953/2954/2955、Ettus USRP X410」


このヘルプを見る限り、X410 に関してはいくつかストリーミング、コンフィグの仕方があるようです。
ただ、現時点ではまだよくわかりません。

今回のサンプルでは、config = uhd/ streaming = rio としているのでヘルプの「ほとんどの Ettus USRP X410 アプリケーションでは、ストリーミングを RIO として設定し、UHD としてconfig(構成)します。 」
に該当しそうです。

そして、指定されている FPGA の Bitfile のパスは "instr.lib\niUSRP\Reference FPGA\FPGA Bitfiles\X410ReferenceFpga_4ch_4spc.lvbitx" となっています。

いったいこのビットファイルはどういう意味なのか?パスを見てみます。


12個のビットファイルが用意されているようです。(LabVIEW2022 Q3)
そのどれも X410 などの X4xx 系統のようですがどう選べばよいかはヘルプなどからは判りませんでした。
ある程度ファイル名からどういった機能なのかは想像できますが実際のところはわかりませんね。
ただ、細かい説明は以下のページに書かれているようです。


4ch は 4ch のことだと思います。
4spc などの spc は 上記のドキュメントから Sample per Cycle (1サイクルあたりのサンプル数)ということのようです。


デフォルトで設定されている "X410ReferenceFpga_4ch_4spc.lvbitx" は、4ch のデータで 4 Sample per Cycle であることを意味しており、ドキュメントによるとレートは 4*122.88MHz = 491.52MHz ということのようです。

ここで示されているプロジェクトは一つ上のフォルダに複数あって、ビットファイルに対応しているようです。



まとめ

このサンプルは X410 に用意されたサンプルのようです。サンプルのやりたいこと自体は単純に CW を送信するだけなのですが、X410 で実行するにあたっては FPGA の Bitfile を指定する必要がありそうです。

サンプルについては大体出そろったのと、幸い X410 が 1台手元にあるので、次回以降は X410 についてブログに書いていこうと思っています。

このサンプルの難易度は上級者向け(★★★)としたいと思います。


0 件のコメント :

コメントを投稿