この記事の目的
- NI社の”ソフトウェア設計型計測器”について知る。
- “ソフトウェア設計型計測器“で達成した未知の計測性能の実例について学ぶ
- お客様のご要望に合わせつつ、期待値を超える性能を引き出すカスタム開発の内容について知る。
“ソフトウェア設計型計測器”とは
“ソフトウェア設計型計測器“とは、以下の2つの内容が共存している計測器のことです。
- そのままの状態で、オシロスコープやベクトル・シグナル・アナライザといった高性能の計測器として動作する
- コア部分にFPGAが搭載されており、入出力信号に対する信号処理を、計測器内部で超高速に実行できる
それ単体で高性能な測定器グレードであるにもかかわらず、ハードウェアレベルでカスタマイズ可能な柔軟性を兼ね備えた計測器といえます。
(FPGAテクノロジについては、こちらのWEB資料で簡単にご確認ください。)
以下は、NI社が提供する “ソフトウェア設計型計測器” の例です。
(左図が実物の画像、右図がFPGAでのカスタマイズ無しで、そのまま高性能な計測器として利用する際の付属ソフトウェアです。
- 高性能オシロスコープ (ソフトウェア設計型オシロスコープ)
- PXIe-5172 (14bit, 8チャンネル, 250M [サンプル/秒])
- PXIe-5164 (12bit, 2チャンネル, 1G [サンプル/秒])
- ベクトル信号トランシーバ (VST)
- PXIe-5841
いずれのデバイスも単体でオシロスコープ、ベクトル信号トランシーバ(VST)といった高性能な計測器として動作します。これらのソフトウェア設計型計測器は、下図に示す共通の構造を持っています。
- 信号入出力に関わるアナログコンポーネント
- 計測器の中枢処理を担うFPGA
- 計測器とホストコンピュータ間のデータ通信を担うPCIeバス
- 複数の計測器間でのタイミング同期を担うクロックや同期回路
- DRAM等のFPGAに隣接する大容量メモリ
- デジタル入出力 (インタフェース)
ここで”ソフトウェア設計型計測器”のカギとなるのが、計測器の中枢処理を担うFPGAです。
従来型の計測器と”ソフトウェア設計型計測器”の違い
計測器単体の性能としては、従来型の計測器も”ソフトウェア設計型計測器”も大きな違いはありません。言い換えると、”ソフトウェア設計型計測器”は、それ単体で高性能なオシロスコープや、ベクトル・シグナル・アナライザ等といった汎用の計測器として十分な価値を提供します。
そのうえで、従来型の計測器と比較して次の違いがあります。
従来型の計測器
下図は、従来型の計測器を利用して計測器の入出力信号に対して、CPUで信号処理を行う場合の全体像です。
- 「通信バス」の性能によって、計測器とCPU間の入出力信号の通信が律速されます。
- 例えば、5Gバイト/秒の信号データを計測できる一方、通信バスの速度がそれよりも遅い場合、CPUに全てのデータを転送することができません。この場合、測定中のデータは高速書き込みが可能な計測器内部のメモリに一時的に格納されます。その後、測定終了後にCPUへ少しずつ転送されます。
- 信号処理はCPUで実施されるため、信号処理専用の回路等と比較して処理速度が遅いです。
- 例えば、計測器からPCへ5Gバイト/秒の信号データを転送できたとしても、同データ量をCPUで信号処理するのは難しいです。
ソフトウェア設計型計測器
ソフトウェア設計型計測器に搭載されているFPGAは、下図に示す通り計測器の信号入出力と直結しています。
- FPGA上の信号処理はハードウェア回路として高速動作します。
- 例えば、5Gバイト/秒の信号データが入力される場合、信号処理の内容によってはFPGA上で全ての信号処理を完了できます。
- PCIeバスを介して計測器とCPU間のデータは高速で転送されます。
- ソフトウェア設計型計測器に搭載されるPCIeバスは、CPUに対して数Gバイト/秒以上のデータ転送が可能です。
上記の様に、”ソフトウェア設計型計測器”は、計測器の入出力に直結したハードウェア回路(FPGA)に、好みの信号処理を追加して高速実行できる、これまでの限界を突破可能な計測器といえます。
また、FPGA部分はLabVIEW FPGAソフトウェアで実装可能です。(LabVIEW FPGAモジュールとは)
“ソフトウェア設計型計測器”で達成した計測性能の例
1GHz即時帯域の4x4MIMOの無線信号送受信+FPGA信号処理 (PXIe-5841)
- 4台のPXIe-5841の1.25GSps送受信チャンネルを±0.5サンプルの精度で同期
- 数百ミリ秒の長さの信号パターンを、4チャンネルの無線信号出力から1.25GSpsで繰り返し送信
- 繰り返し送信の都度、一定の遅延時間後に1.25GSpsで繰り返し受信
- ベクトル信号トランシーバに搭載されたFPGAに信号処理アルゴリズムを追加し、1.25GSpsの全受信データを高速処理
- ホストPC側で追加の信号処理、データ表示/保存
2次元相互相関処理 (CPU処理と比較して40倍の速度を実現) (NI 1483 + PXIe-7976R)
- カメラから1024 * 1024サイズの画像データ(8bit)が200フレームで入力
- FPGA直結型のカメラインタフェースからFPGAにデータ取り込み
- テンプレート画像 (1024 * 1024)とカメラから取り込んだ画像との二次元相互相関処理をFPGA+DRAMで高速実行
※上記以外に、トリオニクスでは数多のFPGA開発事例がございます。ぜひお気軽にお問合せください。
トリオニクスのカスタムFPGA開発
FPGAの最大限の性能を引き出せる様に努めます
- ご依頼から開発前までの時点で、到達可能性の高い性能・機能について精度よく見極めます。
- 数多の開発経験から、開発において最も困難になりそうな要素を見極めます。
- 困難になりそうな要素がある場合、工期等のご都合を鑑みながら、ピンポイントでの実現性検証を行います。
- LabVIEW FPGAでのFPGA開発は、NI社の米国本社からも定評があります。
- FPGAのリソースをできるだけ無駄なく有効活用します。
- 処理をできるだけ高速化します。
- FPGAのプログラムも、ホストPC用プログラムと同様、再利用性、可読性、保守性を意識して開発します。
カスタマイズした”ソフトウェア設計型計測器”専用のAPI開発
“ソフトウェア設計型計測器”をカスタマイズ無しで利用する場合、その計測器のサンプルプログラムや、デフォルトのドライバAPIを利用して即座に使用できます。
下図は、ソフトウェア設計型オシロスコープ(PXIe-5171)を通常の高性能オシロスコープとして利用する場合、デフォルト提供のNI SCOPE APIを利用してLabVIEWでプログラムした例です。
同じソフトウェア設計型オシロスコープ(PXIe-5171)を利用して、FPGAをカスタマイズした場合を想定します。この場合、オシロスコープ+αの機能が達成されたことになります。そのため、ホストPC側のAPIも、カスタム化した後に合わせた形で設計し直す必要があります。
下図は、カスタム化した後の計測器向けに、デフォルトAPIと同じユーザビリティを意識して開発したお客様専用のAPIです。お客様は、同APIを利用してカスタム化した後の計測器に対してLabVIEWでのプログラミングを行っていただけます。