FlexRIOコントローラ:デプロイ可能計測詳細

概要

FlexRIO用コントローラは、コンパクトなスタンドアロンフォームファクタで高性能I/Oとリアルタイム信号処理を必要とするアプリケーション向けに設計された商用オフザシェルフ (COTS) のソリューションです。FlexRIO用コントローラはモジュール式I/O、LabVIEWでプログラム可能なFPGA、オンボードプロセッサを組み合わせにより、エンジニアは特定のアプリケーション用にハードウェアを完全に再構成することができるため、ほとんどのCOTS計測器より優れています。また、このコントローラはPXI上のFlexRIOと同じアダプタモジュール、FPGA、ソフトウェアエクスペリエンスを共有しているため、PXIプラットフォームで開発するソリューションの実装ターゲットとしても最適です。PXIのFlexRIOと多くの共通点がありますが、小型、軽量、低電力が求められる組み込みアプリケーションが対象となります。

内容

 図1:FlexRIO用のコントローラは、高性能I/Oと大規模なKintex-7 FPGAを備えたスタンドアロンの収集と信号処理デバイスです。

内部アーキテクチャ

FlexRIO用コントローラは、モジュール式I/Oインタフェース、プロセッサ、2 GB DDR3 DRAMに接続された大規模なKintex-7 FPGAを中心に構築されています。40万を超える論理スライス、1,540のデジタル信号処理 (DSP) スライス、28 MbのBRAMによって、大量の信号処理をFPGAに実装できます。デュアルコアARMプロセッサは、他のデバイスとインタフェースするためのネットワーク接続とUSB接続、およびパラメータとデータロギング用のオンボードストレージを提供します。 

大規模FPGAと低電力プロセッサの組み合わせは、ほとんどのアルゴリズムをFPGAに実装でき、電源投入時の構成とシステム監視にデュアルコアARMプロセッサを使用できる場合に特に有用です。このアーキテクチャにより、インテリジェンスはエッジに近づき、高性能FPGAを使用して高速データを意味のある情報に変えることができます。

 図2:大規模なKintex-7 FPGAを使用したFlexRIO用コントローラは、信号処理アルゴリズムをリアルタイムで実行する必要があるアプリケーションに最適です。 

高帯域幅のデータを1か所に集約する必要がある場合、NI 7932RとNI 7935Rモデルには2つの高速シリアルポートが搭載されており、10ギガビットイーサネットUDP、Xilinx Aurora、またはカスタムプロトコルを使用してFPGAから直接データを転送できます。

 

 

FlexRIOアダプタモジュールインタフェース

NIでは、高性能のアナログ、デジタル、RF I/Oモジュールを豊富に取り揃えています。
FlexRIO用コントローラには、132個の汎用FPGA I/O (GPIO)、パワーレール、クロック入力、I/Oモジュール制御信号から構成される1つのアダプタモジュールインタフェースがあります。132本のGPIOラインは、最大400 Mb/秒で動作するシングルエンドモード、最大1 Gb/秒で66個の差動ペア、またはその組み合わせで使用できます。この汎用インタフェースを使用すると、FlexRIOモジュール開発キット (MDK) を使用したカスタムI/Oの開発が可能になります。NIは最大3 GS/秒のアナログI/O、最大4.4 GHzのRF I/O、最大1 Gb/秒のデジタルI/Oといったさまざまな高速I/Oモジュールを多数提供しています。

 

 図3:NI 5772は、時間領域と周波数領域の両方の測定で一般的に使用される2チャンネル高速デジタイザアダプタモジュールです。 

FlexRIOモジュール開発キットの詳細

 

FPGA

ユーザは、LabVIEW FPGAモジュールを搭載したLabVIEWシステム開発ソフトウェアを使用して、FPGAをプログラムし、LabVIEWベースのアルゴリズムキャプチャとVHDL/Verilogの統合の両方を可能にしています。既存のLabVIEWライブラリを使用して、データ移動インフラストラクチャ、超広帯域高速フーリエ変換 (FFT) や並列リサンプリングアルゴリズムなどの高度な信号処理機能、ホストへのマネージドDMAストリーミングを使用した開発を加速することができます。設計は、ローカルまたはNIコンパイルクラウドサービスを介してコンパイルする前にLabVIEWでシミュレーションできます。LabVIEW FPGAとXilinx Vivadoを使用してFPGAビットファイルをコンパイルした後で、ビットファイルは開発マシンのLabVIEW、コントローラ上で動作するLabVIEWまたはC/C++で構築されたリアルタイムアプリケーション、または電源投入時にデバイスのフラッシュからデプロイされます。多くのFlexRIO設計では、論理のクロックが数100Mhzであるため、タイミングの制約を満たすことが難しい場合があります。新規のLabVIEW FPGA開発者は、タイミングとリソースの最適化のベストプラクティスについて、『高性能LabVIEW FPGA開発者ガイド』を参照することをお勧めします。

 

 図4:LabVIEWは、設計、シミュレーション、デバッグ、デプロイメントのための統合されたグラフィカル開発環境を提供することで、FPGAプログラミングを簡素化します。 

 

エンジニアはXilinx Kintex-7 K325Tおよびより大きなK410Tの2つのFPGAオプションから選択できます。開発の初期段階では、利用できる最大のFPGAを使用すると大きな利点があります。開発中に機能を追加できるだけでなく、同じコードをより大きなFPGAでコンパイルできるため、一般的に設計時のコンパイル時間が短縮され、より高速の反復が可能になります。NIが提供するI/Oインタフェースを使用すると、あるハードウェアを対象に作成したLabVIEW FPGAコードを他のNIハードウェア (さらには異なるFPGAおよびI/O機能を備えたハードウェア) に移植することができます。

 

FPGA

スライス

LUT

フリップフロップ

DSPスライス

ブロックRAM (kb)

オンボードDRAM

Kintex-7 K410T

63,550

254,200

445,200

1,540

28,620

2 GB

Kintex-7 K325T

50,950

203,800

407,600

840

16,020

2 GB

 

 図5:FlexRIO用コントローラには、ユーザがアプリケーションに適した部分を選択できるように、2つの異なるXilinx FPGAが搭載されています。デプロイ用に設計の最適化を試みる前の初期開発では、最大のFPGAを使用することをお勧めします。 

 

DRAMは、マルチステージ信号処理アルゴリズムと非確定的バス間のデータバッファリングに大きな価値を追加するリソースです。 これらのタイプの操作を可能にするため、FlexRIO用コントローラの3つのバージョンはすべて、FPGAに接続された1つの2 GBのDDR3 DRAMバンクがあります。DRAMインタフェースは512ビットのデータ幅を持ち、最大166 MHzのクロックレートで効率的にアクセスされるため、DRAMとFPGA間の最大理論帯域幅は10.6 GB/秒となります。ランダムアクセスの読み取り/書き込みによりDRAMのスループットは低下しますが、NIでは9GB/秒を超えるシーケンシャル読み取り/書き込みを記録しました。DRAMは、LabVIEW FPGAのLabVIEWメモリ項目を使用するか、メモリ計測器デザインライブラリ (IDL) を使用してFIFOとしてアドレス指定できます。

DRAMを効果的に使用する方法を紹介します。

 

高速シリアル

信号を取得して処理した後に、高帯域幅のデータストリーミングが必要なアプリケーション向けに、NI 7932RとNI 7935Rには2つの高速シリアルトランシーバが搭載されており、それぞれ最大10.3125 Gb/秒でデータをストリーミングできます。このテクノロジは、FPGAからフロントパネルの2つのSFP+コネクタに配線されているXilinx GTXマルチギガビットトランシーバ (MGT) に依存しています。NIでは、10ギガビットイーサネットUDPプロトコルとXilinx Auroraプロトコル用のLabVIEW FPGAサンプルプロジェクトを提供しています。VHDLの使用経験があるユーザは、Serial RapidIOやカスタムプロトコルなどを実装できます。

これらの高速シリアルポートを使用したデータストリーミング構成の例には、Xilinx Auroraを使用した複数のコントローラ間でのデータ共有、Auroraや10ギガビットイーサネットを使用したPXIへのデータのストリーミングバック、10ギガビットイーサネットを使用したデスクトップPC、データレコーダ、ネットワークエリアストレージ (NAS) やサーバへのデータストリーミングがあります。

 

 図6:高速シリアルポートは複数デバイスへの高帯域幅データストリーミング用に設計されています。通信プロトコルはLabVIEW FPGAで定義されており、各トランシーバは最大10.3125 Gb/秒で動作できます。 

 

光ファイバ接続を利用すれば、数キロ離れたデバイスにデータをストリーミングできます。
高速シリアル接続は、銅線または光ファイバー接続もサポートします。短距離のストリーミングは、標準の直接接続SFP+ケーブル (銅線) を使用して実現できます。マルチモードおよびシングルモードの光トランシーバを使用した場合には、数百メートルさらには数キロメートルにわたってデータをストリーミングすることが可能になります。
 

NI製品の高速シリアル技術についての詳細を読む

 

クロック機能

FPGAや高速I/Oを扱うエンジニアは、適切なクロック機能および同期アーキテクチャの実装にしばしば多くの時間を費やします。このプロセスを簡素化するために、FlexRIO用コントローラには外部10 MHz基準クロック入力、双方向トリガライン、オンボード100 MHz発振器、外部基準に対する位相ロック機能などのいくつかのクロック機能オプションがあります。 I/OモジュールとFPGAの間での同期データ転送を確実に行うために、I/OモジュールのサンプリングクロックはFlexRIOクロック回路用コントローラと共有されます。FPGAで追加のクロックを生成することもできます。

 図7:FlexRIO用コントローラのクロック回路を使用すると、複数のデバイスをサブサンプル精度で同期できます。 

分散システムとタイムスタンプ用にGPS受信機を接続して、10 MHzのクロックを基準クロック入力に供給し、1パルス/秒の入力をトリガSMAに供給します。同期要件が厳しくない場合には、NI Linux Real-TimeホストはソフトウェアベースのIEEE 1588もサポートしています。電気的同期が可能なシステムでは、Ettus Octoclockのような10 MHzソースを使用して、共有基準クロックを提供できます。複数のユニットが同じ場所にある場合は、PXIプラットフォームの高度なクロック機能や同期機能の使用を検討してください。

プロセッサ

デュアルコアARM Cortex-A9プロセッサにより、現場でのFlexRIO用コントローラのデプロイに必要な柔軟性と接続性が向上します。これを使って、ネットワークへのデータ提供、構成パラメータの調整、データとメッセージのログ記録、デバイスで実行しているソフトウェアやFPGAファームウェアのアップデートも可能です。このプロセッサはNI Linux Real-Time OSを実行し、Linuxカーネルの標準的な利点に加えて、確定性と信頼性が向上します。リアルタイムOS (RTOS) は、LabVIEW Real‐Timeモジュールを搭載したLabVIEWを介してプログラム可能であり、好きな統合開発環境 (IDE) を使用したC/C++による開発も可能です。LabVIEWからプログラミングやアプリケーションを作成すると、開発者はネットワーク通信およびファイルI/O用に事前に構築されたライブラリが使用できるため、開発が大幅に簡素化されます。

FlexRIOに慣れているユーザにとって、PXIのFlexRIOからFlexRIO用コントローラに移行する際の一番の違いは、FPGAと従来のWindowsクライアントの間にネットワーク通信レイヤが追加されることです。Windowsから直接FPGAをターゲットとするのではなく、NI Linux Real-Time用に開発されたコードがFPGAをターゲットとし、ユーザはシステムの監視や構成を行うためにネットワーク通信をプログラミングする必要があります。NI 7932RとNI 7935Rでは、2つの高速シリアルポートを利用して、10ギガビットイーサネットUDPまたはXilinx Auroraを介してFPGAから直接データストリーミングできます。

 

 図8:デプロイされたシステムには、通常3つのアプリケーションレイヤ (FPGAで実行されるファームウェア、Linux Real-Timeホストで実行されるLabVIEWまたはC/C++コード、リモート構成/監視/データロギング用のクライアントアプリケーション) があります。

 

このプロセッサは、512 MBのフラッシュストレージ、512 MBのRAM、1ギガビットイーサネットインタフェース、USB 2.0デバイス、ホストインタフェース、マイクロSDカードスロットにアクセス可能です。実装するアプリケーションのプライマリインタフェースは、非常に多くの帯域幅をサポートする1ギガビットイーサネットにする必要があります。ただし、USBデバイスポートはセットアップ、構成、診断用に使用できます。

 

接続性

すべての接続インタフェースはハードウェアの1つの面に配置されており、大規模なシステムに簡単に統合できます。I/Oはモジュール式ですが、アナログアダプタモジュールは補助I/Oコネクタを介してFPGAにデジタルI/Oも提供します。コントローラは9 V~30 VのDC電源に対応しており、ポータブルシステムではバッテリ駆動が可能です。

 図9:FlexRIOアダプタモジュールが提供する接続性の他に、FlexRIO用コントローラはデータストリーミング用の業界標準インタフェース、クロック機能と同期用SMAコネクタ、周辺機器と通信するためのUSBポート、目視確認用のステータス表示LEDを備えています。 

2つのUSBポートを除き、すべてのコネクタにはケーブル保持機能があります。USBホストポート (オレンジ色) は高い保持力を持つように設計され、USBデバイスポートは主に診断用に設計されています。

物理パッケージ

本デバイスのアルミニウム筐体により、カスタム機構を設計する必要がなくなり、さまざまなシナリオで一貫したアナログおよび熱性能を提供することで統合を容易にします。マウントキットを使用すると、ユニットをパネルに確実に取り付けることができます。

 

 図10:FlexRIO用コントローラは、サイズ、重量、電力に制限がある組み込みアプリケーション向けにパッケージ化されています。

このパッケージには、長期間の信頼性と保守性を保証するいくつかの機能も含まれています。最初に、開発者はソフトウェアフックにアクセスして、FPGA温度とプロセッサ温度を監視できます。FPGA温度またはプロセッサ温度が安全限界を超えた場合、デバイスは自動的にシャットダウンして内部コンポーネントの損傷を防ぎます。アクティブ冷却はソフトウェアで監視し、デバイスの温度を自動的に調整することができる、ユーザによる保守が可能なファンで実行します。40℃では、ファンの平均故障間隔 (MTBF) は7年以上です。

衝撃、振動、温度、湿度が懸念される状況用に、FlexRIO用コントローラはPXIと同様の等級が付けられ、30gのピーク正弦半波衝撃、5Hz~500Hzの間で0.3 grmsの振動、0℃~55℃の周囲温度、5%~95%の湿度 (結露しないこと) に耐えることができます。

まとめ

リアルタイムで実行されるアルゴリズムを短時間でプロトタイプできることは、NIがLabVIEW再構成可能I/O (RIO) アーキテクチャLabVIEW FPGAで10年以上提供してきた利点です。レーダ、スペクトルモニタリング、通信、産業機械、超音波、医療用イメージングといった分野で新技術のプロトタイプ作成に取り組むエンジニアや科学者は、このプラットフォームにより製品化あるいは実装時に最大限にコードを再利用できるため、より迅速なプロトタイプ作成が可能になります。

 

ステップ

 

Linux®の登録商標は、全世界における商標保持者Linus Torvalds氏の独占的ライセンシーであるLMI (Linux Mark Institute) からのサブライセンスを受けて使用しています。