使用目的USRP選択

概要

無線アプリケーション開発を計画中に、ソフトウェア無線 (SDR) を選択する必要がある場合、次のような疑問が生じることがあります。

  • どこから着手すればよいか。
  • どのユニバーサルソフトウェア無線周辺機器 (USRP) が最適ですか。
  • どのソフトウエア開発ツールを使えばよいのか。

このホワイトペーパーでは、さまざまなUSRPモデルの違いについて説明しており、適切な無線を選択するために役立ちます。 

内容

USRPとは

​Universal Software Radio Peripheral (USRP) は、NIソフトウェア無線のファミリです。 ソフトウェア無線とは、通常、無線ソリューション研究のためのプロトタイピングや、アプリケーションのデプロイのために使用される無線デバイスです。SDRは通常、通信、次世代レーダー、電子戦 (EW)、無線 (OTA) テスト、および高度な無線通信の研究に使用されます。ほとんどのSDRは、汎用プロセッサ (GPP)、FPGA、およびさまざまな性能のRFフロントエンドを含む共通のハードウェアアーキテクチャを備えています。 NIでは、小型フォームファクタの低コストデバイスから、大型FPGAを搭載したハイエンドのマルチチャンネル無線まで、さまざまなUSRPハードウェアモデルを提供しています。 図1に示すように、すべてのNI USRPのコアハードウェアアーキテクチャは同じです。 

USRPデバイスのダイアグラム

図1. SDRの代表的なハードウェアアーキテクチャ

ホストアプリケーションのコード開発には、以下のような一般的なツールが使用されています。

  • NI LabVIEW
  • C/C++またはPython、およびオープンソースハードウエアドライバ
  • RedhawkやGNU RadioといったオープンソースSDRフレームワーク
  • MathWorks® MATLAB®ソフトウェアおよびWireless Testbench™ソフトウェア

ソフトウェア開発ツールとOSに応じて、お客様のアプリケーションに最適な無線を決定できます。

多くのアプリケーションでは、FPGAデバイスを使用した信号処理のハードウェアアクセラレーションが必要です。いくつかのUSRPがこの機能を搭載しています。後で詳しく説明しますが、FPGA開発には多くの選択肢があります。

図2では、USRPで利用できるソフトウェアおよびFPGAを開発する際の一般的なツールフローの概要を示しています。

SDR向けソフトウェアとFPGAのオプション図

図2. SDR向けソフトウェアとFPGAのオプション

NIとEttus ResearchのUniversal Software Radio Peripheral (USRP) 製品は、幅広いレンジの無線デバイスのプロトタイピングおよびデプロイの要件を満たすソフトウェア無線ファミリです。適切な無線を選択していただけるよう、ハードウェアとソフトウェアに関するさまざまな注意点をご紹介します。 

USRPハードウェア選択方法

アプリケーションに適切なUSRPデバイスを選択するには、まず、信号パラメータ、サイズ、重さ、電源、コスト (SWaP-C)、性能、環境アプリケーションの要件に関するいくつかの質問を検討することをお勧めします。

質問1:必要とされる中心周波数および帯域幅。これは答えやすい質問ですが、次の質問はより複雑です。デバイスとの間で信号データをどのようにやりとりするか。

この質問に関連して、データインタフェースの重要性に注目する必要があります。たとえば、USRP-290xモデルはUSBでホストに接続されるため、USBインタフェースの最大持続帯域に制限されますが、Ettus USRP X440は2つの100 GbEインタフェースを備えており、より多くのデータを入出力することができます。

USRPインタフェースの帯域幅に関する注意事項については、Ettus Researchのナレッジベースの記事「USRP Bandwidths and Sampling Rates」を参照してください。

​ほとんどのUSRPデバイスの最大周波数は6 GHzまでであり、それ以上のものもあります。NI Ettus USRP X420は、最大20 GHzをサポートする最高周波数帯域を提供します。 低周波数側では、使用されているアナログチップセットによって、1 MHzまで下がるものがあります。各モデルの詳細仕様については、表3を参照してください。

図3. RFSoCに基づいたEttus USRP X420は、中心周波数が最大20 GHzの高周波広帯域SDRです。

コストパフォーマンストレードオフ

​USRPデバイスを選択する際には、特にコストとパフォーマンスのトレードオフを考慮してください。お得な価格の無線が必要であって、上級のFPGAや広域帯域幅の必要性がない場合、NI USRP 290xまたはEttus Research B200miniが最適な選択となります。最大帯域幅と6 GHzを超える周波数が必要な場合、NI Ettus USRP X410は最大7.2 GHz、X300シリーズマザーボード用のOBXドーターボードは最大8.4 GHz、X420は最大20 GHzをサポートします。 これらのサンプル以外にも、多くのオプションがあります。 表3は、すべてのモデルの詳細を示しています。

USRP 2901およびUSRP B200mini低SWaP-C SDR

図4. USRP 2901およびUSRP B200mini低SWaP-C SDR

可能な限り広い瞬時帯域幅が必要な場合は、NI Ettus USRP X440がそのニーズを満たす可能性があります。これらの例以外にも多くの選択肢があります。表3にすべてのモデルの詳細な内訳を示しています。

Ettus USRP X440

図5. Ettus USRP X440は、ダイレクトサンプリングトランシーバアーキテクチャにより、チャンネルあたり最大1.6 GHzの帯域幅を提供します。

スタンドアロンまたはホスト接続SDRオプション

USRPは、ソフトウェアと電磁スペクトルをつなぐコンピュータ周辺機器として考案されました。初期のUSRPと比較してアプリケーションが進化しており、多くの場合、オンボードの組み込みプロセッサが必要となります。SDRを一元管理システムから物理的に離れた場所に配置する、または単独でデプロイするアプリケーションでは、このスタンドアロン構成が必要になることがあります。

​スタンドアロンが重要な要件である場合は、図6に示すように、AMD Zynq™ Multiprocessor System on Chip(MPSoC)またはRF System On Chip(RFSoC)で十分か、または強力なIntel® X86プロセッサのオンボードが必要かを判断する際に、表1を参照してください。

無線モデルオンボードプロセッサ

NI USRP N320、NI USRP N321、NI USRP N310

AMD Zynq 7100 MPSoC

NI USRP E320

AMD Zynq 7045 MPSoC

​NI Ettus USRP X410、NI Ettus USRP X420、NI Ettus USRP X440

​AMD Zynq UltraScale+™ RFSoC ZU28DR

NI USRP-2974

​Intel Core™ i7 6822EQ (2 GHzクアッドコア)

表1. オンボードプロセッサ搭載のスタンドアロン対応USRPモデル


Intel Core i7内蔵USRP 2974スタンドアロンSDR

図6.  Intel Core i7内蔵のUSRP 2974スタンドアロンSDR

堅牢過酷環境

多くのUSRPは実験室で使用されますが、アプリケーションによっては屋外や厳しい環境での動作が求められることがあります。拡張動作温度が必要な場合や空冷を利用できないアプリケーションの場合は、Ettus Researchの組み込みシリーズを検討してください。加えて、Ettus Researchブランドでは、低SWaP動作に対応する産業用グレードのアルミニウムエンクロージャーアッセンブリを使用して使用温度を拡張するよう、USRP B206miniを構成するオプションがあります。また、過酷な環境要件がある場合は、経験豊富な当社の堅牢化パートナーをご紹介することも可能です。検討されている方は、お問い合わせください。

USRP E320

図7. 組み込みシリーズ、USRP E320

複数チャンネル同期

多くのアプリケーションでは、さまざまなレベルでの同期を行う、複数入力および複数出力 (MIMO) 構成が必要です。MIMOシステムには、ADCやDACのクロックを共有するだけのものもあれば、すべてのチャンネルを共通のクロックと内部発振器にロックして、完全な位相コヒーレント動作を実現するものもあります。

​MIMOの一般的なアプリケーションは、空間多重化による通信です。これに必要な機能はクロックの同期のみですので、10 MHzの外部基準クロックを持つほとんどのUSRPで十分対応できます。一例として、ブリストル大学とルンド大学がこのようなシステムをSDRベースのMassive MIMOシステムを用いて構築し、無線のスペクトル効率の世界記録を塗り替えました。このアプリケーションで使用されたシステムは、オンボードFPGAを使用したNI USRPソフトウェア無線デバイスで構成されています。

USRP N320およびN321

図8. LO分散インタフェースを内蔵したUSRP N320およびN321

​完全な位相コヒーレント動作が必要な場合、いくつかの選択肢を検討できます。最大4チャンネルの受信専用動作が必要な場合は、Ettus Research USRP X310に2枚のTwinRXドータボードをセットアップすることで、LOを共有し、位相コヒーレントで動作させることができます。 最大1 GHzの帯域幅または6 GHzを超える周波数帯域が必要な場合、X420はLO共有をサポートし、1度未満の二乗平均平方根 (RMS) の位相コヒーレンスを実現できます。X420には2つのRFチャンネルがあり、多数のチャンネルシステムを構築するために使用できます。 4チャンネル以上が必要であれば、図8に示すEttus Research USRP N320およびN321、またはNI Ettus USRP X440を検討してください。USRP X440はダイレクトサンプリング中間周波数 (IF) アーキテクチャで構築されているため、最大8つの送信チャンネルと8つの受信チャンネルでサンプリングクロックを共有して同期を取ることができます。また、外部で提供される基準クロック信号に複数のデバイスを同期できるように設計されています。

USRP N321は最大で128 x 128の位相コヒーレント動作が可能なLO分散ハードウェアを内蔵しています。図9は、32 x 32の構成例を示しています。

Ettus Research USRP N321で可能になる位相コヒーレント動作を示したダイアグラム図9 USRP N320およびN321マルチチャンネル位相コヒーレントシステム

分散マルチ無線同期

アプリケーションによっては、無線を同期する必要があるにもかかわらず、無線が同じ場所にない場合があります。このような場合、完全な位相コヒーレント動作は困難ですが、GPSベースの同期を利用して、GPS基準周波数発生器 (GPSDO) で周波数と位相の安定性を得ることができます。USRPの多くのモデルには、工場出荷時にGPSDOが搭載されています。詳細については、「Global Synchronization and Clock Disciplining with NI USRP-293x Software Defined Radio」を参照してください。

オンボードGPS基準発振器を搭載したUSRP X310

図10. オンボードのGPS基準周波数発生器を搭載したUSRP X310

インライン信号処理およびFPGAに関する注意事項

​アプリケーションによっては、処理要件がオンボードFPGAに最も適合します。多くの場合、このようなアプリケーションの要件は、広い信号帯域幅または低く確定的なレイテンシです。このような場合にはFPGAのプログラム機能を備えた無線を選ぶことが重要です。USRP B206miniなど、USBモデルや低価格USRPモデルの多くは、比較的小型のFPGAデバイスを搭載しているため、ユーザコードを追加する余裕がありません。ハイエンド無線の多くは、Kintex™ 7クラスのデバイスや、AMD Zynq UltraScale+ RFSoCを使用した最先端のEttus USRP X410、X420、X440などを搭載しています。AMD Zynqに搭載されたデバイスには、オンボードSD-FEC (Soft-Decision Forward Error Correction)、マルチArm®プロセッサ、内蔵ADCおよびDACなどのコアが追加されています。

USRPモデルオンボードFPGA

USRP N320、 USRP N321、 USRP N310

​AMD Zynq 7100 MPSoC

USRP E320

​AMD Zynq 7045 MPSoC

​Ettus USRP X410、USRP X420、USRP X440

​AMD Zynq UltraScale+ RFSoC ZU28DR

USRP 2974、 USRP X310

​AMD Kintex-7 410T

 

表2. FPGAが有効なUSRPの比較

 

図11. NI FPGA製品におけるFPGAリソースの比較

 

USRPソフトウェア選択

​SDRの特長はプログラマブルであることであり、これにより無線周辺機器を高度な無線システムに変えることができます。USRPは、市場で最もオープンで汎用性の高いSDRであり、エンジニアがホストとFPGAの両方でさまざまなソフトウェア開発ツールを使ってシステムを構築するのに役立ちます。

ホストプログラミングにおける注意事項

​このドキュメントの前の図2に示すように、SDRベースのシステムのホストをプログラムする際にはさまざまなオプションを選択できます。

NI-USRPドライバ使用したLabVIEWプログラミング

LabVIEWは、通信アルゴリズムの設計と実装に最適なグラフィカルデータフロープログラミング環境です。最も基本的なレベルでは、LabVIEWはNI-USRPドライバを使用してUSRPのハードウェア構成を指定し、ホスト側の信号処理のために適切にフォーマットされたベースバンドI/Qデータを送受信します。

​主な開発環境としてLabVIEWを使用する場合には、LabVIEWが一部のLinuxベースOSに対応しているものの、基本的にはMicrosoft Windowsベースのツールであることに注意してください。また、Ettus Researchブランドの一部のUSRPモデルおよび構成がサポートされません。表1を参照してください。

LabVIEWでNI-USRPドライバAPIを使用したEttus Research USRPのプログラミング

図12.  NI-USRPドライバAPIを使用したLabVIEWブロックダイアグラム

オープンソースワークフロー使用したプログラミング:USRPハードウェアドライバ (UHD) およびGNU Radio

​SDRユーザの多くは、C/C++およびPythonに基づくテキストベースおよびオープンソースツールのフローを使ってUSRPハードウェアをプログラミングすることを好みます。すべてのNIおよびEttus ResearchのUSRPモデルはUSRPハードウェアドライバ (UHD) をサポートし、GNU Radioのような、オープンソースコミュニティで開発されたツールを簡単に統合することができます。

GNU Radioは、SDR開発者専用に開発されたオープンソースツールです。USRPはGNU Radioでサポートされる唯一の無線ではありませんが、最も人気があり、実績があります。GNU Radioの詳細についてはgnuradio.orgを参照してください。GNU Radio向けに共有されている既存のコミュニティIPをすべて確認するには、cgran.orgを参照してください。

SDR開発者のためのオープンソースソフトウェアのスクリーンショット

図13. GNU Radioコンパニオンフローグラフ

MATLAB使用プログラミングする

MATLAB がプログラミングに推奨されるツールである場合、MATLAB および MathWorks Simulink™ ソフトウェアはソフトウェア デファインド無線の USRP ファミリに接続してループ内無線環境を提供し、さまざまなアドオン ソリューションでさまざまな USRP モデルをサポートします。

USRP N3xx、X3xx、およびX4xxは、高速データ転送およびキャプチャ機能を備えた広帯域ワイヤレスシステムのテストとスペクトル監視をサポートするWireless Testbenchでサポートされています。また、Wireless Testbenchを使用すると、RF Network-on-Chip(RFNoC™)を使用してフィルタ、同期器などのカスタムIPブロックをUSRP FPGA(MathWorks HDL Coder™を使用)の信号処理チェーンに統合できます。

USRP N2xxおよびB2xxデバイスは、MathWorks Communications Toolbox™でサポートされており、SDRシステムの設計と試作を可能にします。このサポートにより、MATLAB および Simulink で無線信号を送受信でき、トランシーバの設計や波形テストに役立ちます。

USRP E310デバイスのサポートはCommunications Toolboxにより提供されるため、SDRシステムのプロトタイプ作成とテストが容易です。このサポートにより、E310のHDLコード生成が有効になり、この無線でのワイヤレスシステムのデプロイが可能になります。

FPGAプログラミングにおける注意事項

​多くのUSRPには十分な空き容量を持つ大型のFPGAが搭載されており、ユーザはアプリケーションに応じた信号処理をインラインで組み込むことができます。ハードウェアの項で説明したように、USRPにはAMD Zynq SoCデバイスを搭載するものと、Kintex 7のような従来型ファブリックFPGAを搭載するものがあります。USRPのFPGAにアクセスする手段としては、LabVIEW FPGA (一部のUSRPで利用可能) およびRF Network on Chip (RFNoC) フレームワーク。

多くのFPGA開発ボードまたはCOTS FPGAボードとは異なり、USRPは共通のFPGAフレームワーク上に構築され、より高い抽象度を実現しています。これにより、ベアボーンFPGAボードサポートパッケージからFPGAベースのシステムを構築する際の複雑さがある程度解消されます。

LabVIEW FPGA

LabVIEW FPGAはLabVIEWのアドオン拡張機能で、NI USRP RIOデバイスでFPGAをグラフィカルにプログラミングできます。図14は、簡単なブロックダイアグラムです。ユーザは固定小数点演算やクロックロジックなどのFPGAの概念に精通している必要がありますが、LabVIEWによってハードウェアとデータのインタフェースが抽象化され、レジスタの構成やデータの移動が簡単になります。LabVIEW FPGAの利点は、統一された開発ツールチェーンでホストとFPGAの両方をプログラミングできることです。

活用したいレガシーIPはありますか。LabVIEW FPGA ではコンポーネントレベル IP (CLIP) ノードを介して外部の VHDL または Verilog をインポートできるため、LabVIEW 以外の IP をインポートすることができます。さらにLabVIEWでは、Vivadoツールで直接作業するエキスパートユーザ向けにAMD Vivadoプロジェクトのエクスポートが可能です。

ホストプログラミングにLabVIEW FPGAを使用する場合は、Windowsベースのオペレーティングシステムに限定されることに注意してください。USRP N300およびUSRP E300シリーズなどの多くのEttus Researchデバイスは、LabVIEWまたはLabVIEW FPGAではサポートされていません。完全なリストについては、表3を参照してください。

FPGAブロックダイアグラムが表示されたLabVIEWのスクリーンショット

図14. シンプルなLabVIEW FPGAブロックダイアグラム

RFネットワークオンチップ (RFNoC) フレームワーク

​オープンソースのUSRPユーザにとって、FPGAのプログラミング方法として好ましいのは、RFNoCフレームワークを利用する方法です。 LabVIEW FPGAと同様、RFNoCもデータインタフェースおよびコマンド抽象化のフレームワークです。FPGAボードサポートパッケージ全体を最初から作り直すことなく、USRPにIPを簡単に追加できます。その名前が示すとおり、データは圧縮されたヘッダネットワークパッケージとして無線からFPGAに流されます。図15に示すように、RFNoCフレームワークの中核となるのがクロスバーインタフェースです。ユーザは新しいIPをクロスバーに接続するだけで、他のIPブロックにデータを送ったり、ホストマシンとの間でデータをやり取りすることができます。 このネットワーククロスバー設計によって、ホストとの間でデータやコマンドを受け渡す複雑さが解消されます。

​Vivadoで作業し、RFNoCを使用してUSRPのFPGAをプログラミングする場合は、USRP X300シリーズ、USRP E300シリーズ、USRP N300、またはEttus USRP X400シリーズなどをアプリケーションにご検討ください。

​RFNoC、UHD、USRP N300デバイスを使用したマルチチャンネル無線通信システムのプロトタイプの作成方法の詳細をご覧ください。

RFNoCワークフローを示すダイアグラム

図15. GNU Radioと統合されたRFNoCの概念ブロックダイアグラム

RFネットワークオンチップ (RFNoC) フレームワーク

Simulinkワークフローを使用して、NI USRP無線のFPGAにカスタムSDRアルゴリズムをデプロイします。MATLAB オブジェクトおよび関数を使用して設計を実行および検証します。

USRPハードウェアおよびソフトウェア概要

表3は、異なるUSRPハードウェアとサポートされているソフトウェアのマトリクス図を示しています。

 

表3.USRPハードウェアおよびサポートされているソフトウェア

USRP選択ポイント

SDRは、無線の研究、設計、プロトタイピング、デプロイメントのための強力なツールです。多くの選択肢があり、アプリケーションに応じて適切な無線を選択するには多くの注意事項があります。しかし、このホワイトペーパーに記載されているさまざまなソフトウェアとハードウェアの要素を慎重に評価することで、市場で最も人気のあるオープンなSDRを使用することができます。 

タイプNI USRPモデルNI Ettus USRPモデル#Tx#Rx周波数レンジBWLabVIEWLabVIEW FPGAOSS-UHDOSS-FPGAワイヤレステストベンチ
スタンドアロン、FPGA対応、高性能USRP X4408830 MHz - 4 GHz1.6 GHz   
X4202210 MHz~20 GHz1 GHz   
USRP X410441 MHz~7.2 GHz400 MHz     
N/AUSRP N320、USRP N321223 MHz - 6 GHz200 MHz    
N/AUSRP N3104410 MHz - 6 GHz100 MHz    
USRP-2974N/A2210 MHz - 6 GHz160 MHz    
ホスト接続、FPGA対応、高性能USRP-2944USRP X310 + UBX2230 MHz - 6 GHz160 MHz     
USRP - 2945USRP X310 + TwinRX0410 MHz - 6 GHz80 MHz     
USRP-2954USRP X310 + UBX + GPSDO2230 MHz - 6 GHz160 MHz     
USRP-2955USRP X310 + TwinRX +GPSDO0410 MHz - 6 GHz80 MHz     
該当​なしUSRP X310 + OBX2210 MHz~8.4 GHz160 MHz   
低SWAP、スタンドアロン型の組込式N/AUSRP E3202270 MHz - 6 GHz56 MHz  
低SWAP、低コスト、USB接続N/AUSRP B206mini1170 MHz - 6 GHz56 MHz  
USRP-2900USRP B2001170 MHz - 6 GHz56 MHz  
USRP-2901USRP B2102270 MHz - 6 GHz56 MHz