From 11:00 PM CST Friday, Apr 11th - 1:30 PM CST Saturday, Apr 12th, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

使用目的USRP選択

概要

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

  • どこから着手すればよいか。
  • どのUniversal Software Radio Peripheral (USRP) が最適なのか。
  • どのソフトウエア開発ツールを使えばよいのか。

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

内容

ソフトウェア無線概要

ソフトウェア無線とは、通常、無線ソリューション研究のためのプロトタイピングや、アプリケーションのデプロイのために使用される無線デバイスです。一般的に、ソフトウェア無線 (SDR) は通信、次世代レーダー、EW、無線 (OTA) テスト、5Gの研究に利用されます。ほとんどのSDRはハードウェアアーキテクチャが共通しており、さまざまな性能の汎用プロセッサ (GPP)、FPGA、RFフロントエンドが組み込まれています。 USRPデバイスの図

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

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

  • 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デバイスを選択するには、まず、信号パラメータ、サイズ、重さ、電源、コスト (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 X410は7 GHz帯での作動が可能です。低周波数側では、使用されているアナログチップセットによって、75 MHzまで下がるものやDCまで下がるものがあります。各モデルの詳細仕様については、図16を参照してください。

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

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

USRPデバイスを選択する際には、特にコストとパフォーマンスのトレードオフを考慮してください。 お得な価格の無線が必要であって、上級のFPGAや広域帯域幅の必要性がない場合、NI USRP 290xまたはEttus Research B200miniが最適な選択となります。最大限に広い帯域幅と7.2 GHzまでの周波数が必要であれば、NI Ettus USRP X410が最適である可能性があります。 この2つの間には、多くの選択肢があります。 下の図15に、すべてのモデルの詳細仕様を示しています。

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

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

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

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

USRPは、ソフトウェアと電磁スペクトルをつなぐコンピュータ周辺機器として考案されました。初期のUSRPと比較してアプリケーションが進化しており、多くの場合、オンボードの組み込みプロセッサが必要となります。SDRを一元管理システムから物理的に離れた場所に配置する、または単独でデプロイするアプリケーションでは、このスタンドアロン構成が必要になることがあります。スタンドアロンが必須の要件である場合、Xilinx Zynq™マルチプロセッサシステムオンチップ (MPSoC) またはRFシステムオンチップ (RFSoC) で対応できるか、強力なIntel X86プロセッサを実装する必要があるかを判断する必要があります。表1では、さまざまなモデルの種類とそのオンボードプロセッサの内訳を示しています。詳細については、USRPの仕様書をご覧ください。

無線モデルオンボードプロセッサ
USRP N320、 USRP N321、 USRP N310Xilinx Zynq 7100 MPSOC
USRP E31XXilinx Zynq 7020 MPSOC
USRP E320Xilinx Zynq 7045 MPSOC
NI Ettus USRP X410、USRP X440Xilinx Zynq Ultrascale+ RFSOC ZU28DR
USRP-2974Intel Core i7 6822EQ (2 GHzクアッドコア) 

 

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


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

堅牢過酷環境

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

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

複数チャンネル同期

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

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

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

完全な位相コヒーレント動作が必要な場合、いくつかの選択肢を検討できます。最大4チャンネルの受信専用動作が必要な場合は、Ettus Research USRP X310に2枚のTwinRxドーターボードをセットアップすることで、LOを共有し、位相コヒーレントで動作させることができます。5チャンネル以上が必要であれば、図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」を参照してください。

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

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

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

USRPモデルオンボードFPGA
USRP N320、 USRP N321、 USRP N310Xilinx Zynq 7100 MPSOC
USRP E31XXilinx Zynq 7020 MPSOC
USRP E320Xilinx Zynq 7045 MPSOC
Ettus USRP X410、USRP X440Xilinx Zynq Ultrascale+ RFSOC ZU28DR
USRP 2974、 USRP X310Xilinx Kintex 7 410T

 

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

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

 

ソフトウェアオプション

​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モデルおよび構成がサポートされません。図16を参照してください。

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を使用する方は、MathWorks Communications Toolbox™でいくつかのUSRPモデルがサポートされていますのでご利用ください。サポートされているモデルは、B200、B200mini、X300、N200、N300シリーズなどです。さらに、MATLABスクリプトノードを使用してLabVIEWにMATLABコードを直接埋め込むことができます。

また、MathWorksはWireless Testbenchを提供しています。このツールでは、USRPソフトウェア無線デバイス上でFPGAを活用して、インテリジェントな信号キャプチャやハードウェアベースのリサンプリングなどの機能を利用できます。また、その波形に固有の特性を指定して、信号のキャプチャをトリガし、目的のデータを解析することもできます。 

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

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

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

LabVIEW FPGA

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

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

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

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

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

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

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

Vivadoで作業し、RFNoCを使用してUSRPのFPGAをプログラミングする場合は、USRP X300シリーズ、USRP E300シリーズ、USRP N300、Ettus USRP X410またはX440などをアプリケーションにご検討ください。RFNoC、UHD、USRP N300デバイスを使用したマルチチャンネル無線通信システムのプロトタイプの作成方法の詳細をご覧ください。 

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

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

タイプNI USRPモデルNI Ettus USRPモデル#Tx#Rx周波数レンジBWLabVIEWLabVIEW FPGAOSS-UHDOSS-FPGA
スタンドアロン、FPGA対応、高性能USRP X4408830 MHz - 4 GHz1.6 GHz
USRP X410441 MHz - 7.2 Ggz400 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
低SWAP、スタンドアロン型の組込式N/AUSRP E310 / E312 / E3132270 MHz - 6 GHz56 MHz
N/AUSRP E3202270 MHz - 6 GHz56 MHz
低SWAP、低コスト、USB接続N/AUSRP B200mini / B205mini1170 MHz - 6 GHz56 MHz
USRP-2900USRP B2001170 MHz - 6 GHz56 MHz
USRP-2901USRP B2102270 MHz - 6 GHz56 MHz

図16:NIおよびEttus ResearchのUSRPモデルのマトリクス

まとめ

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

ステップ