GPIBシステム性能向上させる8方法

概要

自動測定システムを構築する際は、性能をいくら高くしても高すぎることはありません。製造テストやGPIBベースのデータ収集などのアプリケーションは、測定システムの性能により、動作が大幅に左右されます。システム性能を高めることで、以下のようなことが可能となります。

- テストスループットを向上し、短時間でより多くのユニットをテスト
- 新製品の検査時間を短縮することで早期に市場投入
- テスト装置にかかる設備投資を削減

つまり時間の短縮は、短期間での製品開発やテスト装置への投資額の削減、顧客満足の実現など、最終的にさまざまなプラス効果をもたらします。IEEE 488 (GPIB) バスは現在でも多くの自動測定システムの中心となっていますので、GPIBシステムの性能の向上に役立つさまざまなオプションについて考慮する必要があります。GPIBは、その使いやすさと実績が長年にわたって証明されている上、自動測定システムで使用する多くの測定デバイスにも組み込まれているインタフェースであるため、テストやR&Dのエンジニアは今後も使い続けるでしょう。これらの理由から、このアプリケーションノートでは、GPIBでシステム性能を向上させることのできる8つのオプションについて解説します。

内容

ソフトウェアハードウェアまたがるソリューション

以降に紹介する8つのソリューションはソフトウェアとハードウェアの両方に関わるもので、GPIBシステムの性能を直接向上させることができます。これらのソリューションは個々に、あるいは組み合わせて使用でき、特定のシステム向けのお勧め事項も含まれています。

1. DMA許可するGPIBインタフェース使用する

GPIB経由で受信されたデータは、PCIを利用することで優れたデータ転送性能を実現することができます。ISA対応コンピュータと異なり、PCI対応コンピュータには、周辺機器がPCメモリに直接データを転送できる共有型の専用DMAコントローラが搭載されていません。性能を最大に高めるには、PCI周辺ボードにそれぞれ専用のオンボードDMAコントローラが搭載されている必要があります。それにより、データをPCメモリに効率的に直接転送し、マイクロプロセッサで処理することができます。そのような機能を持つボードはバスマスタと呼ばれます。バスマスタとは、PCIバスを制御してシステム内のマイクロプロセッサに負担をかけずにデータを転送できることを示しています。

バスマスタ機能を持たない周辺機器は、データ転送のために、マイクロプロセッサに割り込んですべての処理タスクを停止しなければなりません。そのような割り込みが起こるとアプリケーションの実行が行き詰まり、システム全体の性能が大幅に低下します。

2. 8-MB/s対応GPIBコントローラ/計測使用する

HS488はIEEE 488を高速化したもので、GPIBの最大スループットが8 MB/sに向上します。ベンチマーキングの結果、25~3,000パーセントの性能向上が認められています。オシロスコープを使った最新のベンチマークでは、PCと計測器の間で最大7.4 MB/sのデータ転送レートが確認されました。HS488は、GPIBコントローラハードウェアに組み込まれているため、アプリケーションソフトウェアを一切変更しなくても、性能向上のメリットを実現することができます。HS488は実地テスト済みで、既存のIEEE 488計測器とも完全な互換性があります。高速と標準のIEEE 488計測器は、同じシステム内で使用してもまったく問題ありません。

HS488と互換性のあるNIのGPIBコントローラを今すぐご利用いただくことができます。HS488の詳細については、下記リンク先をご覧ください。

3. 最適測定/コマンド構文解析機能備えGPIB計測採用する

GPIB計測器から測定データを集録する場合、コマンドを処理して測定情報をGPIB出力バッファに蓄積するのは、計測器にとって非常に時間がかかる作業でもあります。計測器ベンダは、最高速の測定性能を実現するために、そのような問題点を極力少なくする必要があります。オンボードマイクロプロセッサと内部システムバスの速度と種類によって、計測器の処理能力がある程度決まります。しかし、高機能なハードウェアは、最適化されたファームウェアなしでは十分に活用できません。計測器ベンダがこのような仕様やベンチマーク情報を提供しない場合は、さまざまな計測器で試してみて、GPIB経由での測定の構成および集録時に最高の結果が得られる計測器を見つける必要があります。

4. 高性能GPIB計測ドライバ使用する

IVIドライバは、特定の計測器の状態を記憶してシステム性能を向上させるように設計されています。ステートキャッシュエンジンが計測器のハードウェア設定の状態を追跡・記録します。それにより、ハードウェア設定の値を変える必要がある場合のみ計測器I/Oを実行し、システムがインテリジェントに動作するため、テスト性能が大幅に向上します。たとえば、励起信号の周波数をスイープしている場合、振幅、波形、位相などの信号情報を何度も再送するのは冗長となり、好ましくありません。ところが現在のVXIplug&play計測器ドライバには、ステートキャッシュ機能が備わっていません。

IVIドライバを使用すると、テストの開発やシステムのデプロイメントの際に特別なモードで実行するよう計測器ドライバを構成することができます。たとえば、計測器に送ろうとしているすべての値の範囲を自動でチェックして、必要に応じ有効値に強制するよう構成することができます。また、各コマンドが送信された後、計測器のステータスバイトを自動でチェックするようにすることもできます。そのような「開発モード」設定はすべて、テストプログラムを生産ラインに実装したときに簡単に解除することができますので、最速で実行することが可能です。つまり、優れたデバッグ機能と高速実行という2つのメリットを同時に実現できるのです。

これらの機能を活用する方法の詳細については、IVIドライバのヘルプを参照してください。IVIドライバは、20社を超えるベンダやユーザで構成されたIVI Foundationが公開しているオープン工業規格に基づいて作成されています。 

ベンチマーク例 ― システム応答の振幅vs周波数の測定
未確認システムの周波数応答を特定するタスクについて考えてみます。それには、波形発生器や関数発生器を使用してさまざまな周波数で正弦波を生成し、DMMまたはオシロスコープで被試験システムの出力電圧を測定する必要があります。高レベルの計測器ドライバ関数を使って関数発生器とオシロスコープをプログラミングするテストプログラムの擬似コードを下記に示します。

サインスイープテストの擬似コードとテストセットアップ:

オシロスコープの初期化と構成
周波数発生器の初期化と構成
While (周波数 < 終了周波数)
ループを開始

正弦波を生成
刺激波形を読み取り (スコープチャンネル1)
応答波形を読み取り (スコープチャンネル2)
刺激/応答間の振幅/位相の差を計算 振幅/位相の増加周波数を保存

ループを終了

振幅/位相の差をプロット
DMMを閉じる
周波数発生器を閉じる


このテストプロセスには、HP 33120A関数発生器とHP 54645Dオシロスコープを使用しています。表1は、このテストにおけるIVIと従来型ドライバの性能の違いを示すものです。

 

表1.ステートキャッシュベンチマーク

ステートキャッシュ機能テスト時間 (秒)性能差
OFF
(従来型VXIplug&playドライバ)
35.0N/A
ON
(IVIドライバ)
13.2265%


5.重いデータ処理をホストPCへ移行する

計測器の処理機能と解析機能は日々向上しています。ただし計測器ベンダにとって、PC業界と足並みをそろえて最新のプロセッサ技術を提供するのは簡単なことではありません。多くの場合、新しいプロセッサを導入するには計測器の再設計が必要です。処理能力を高めるには、新しいバージョンの計測器を購入することが必要になる場合もあります。

常に最高の処理能力を利用できるようにするためには、計測器の (場合によっては旧式の) 内部処理機能に頼るのではなく、演算負荷の多い解析をPCへ移植することも必要です。一般にPCの処理能力は、計測器機能より速いペースで進化しています。つまり、計測器よりPCを頻繁に買い替える可能性が高くなります。新しいPCが発売されるたびに、そのPCを使って測定の処理や解析を行えば、性能の向上を直接的に実感することができます。

さらに、計測器はクローズドボックスであるため、解析をカスタマイズすることができません。多くの計測ソフトウェアベンダーが信号処理、フィルタ処理、一般的な解析などのソフトウェアライブラリを販売していますので、PCを使用すれば、カスタム解析ルーチンを定義する作業が大幅に簡素化され、カスタム解析機能の追加が簡単になります。

6. ソフトウェアマルチスレッド処理使用検討する

マルチスレッド処理とは、アプリケーションの作業を複数のタスク、つまりスレッドに分割するプログラミング方法です。それらのスレッドは、アプリケーションのメインスレッドによって作成され、システム内の他のスレッドとは関係なく実行することができます。スレッドは、タスクが完了した時点で終了します。アプリケーションのメインスレッドは、すべてのタスクが完了したときにアプリケーションを閉じる役割を果たします。システムに複数のプロセッサが搭載されている場合は、個々のスレッドを別々のプロセッサで同時に実行することで、アプリケーションの性能を高めることができます。また、プロセッサが1つしかないシステムでも、アプリケーションの各スレッドに適切なプロセッサ使用時間を割り当てることで、性能を向上させることは可能です。各スレッドに割り当てるプロセッサ時間を構成することで、プロセッサがあるスレッドの実行を継続しながら外部イベントを待機して別のスレッドを実行できるため、アプリケーションの性能を向上させることができます。これはGPIBアプリケーションではよくあるシナリオです。

GPIBアプリケーションは、あらゆる方法でマルチスレッド処理を活用することができます。マルチスレッド処理により、別々のアプリケーションタスクを分離して、システムリソースをより効率的に管理することができます。別のスレッドのタイムクリティカルタスクを分離することで、サービスリクエスト (SRQ) などのタイムクリティカルなイベントを監視すると同時に、すでにメモリ内にあるデータを処理することができます。

たとえば、タスク内容の異なる3つのスレッドを持つアプリケーションがあるとします。1つは、ユーザ入力の管理、1つはデータの集録と保存、もう1つはデータの処理と表示という具合です。データの処理と表示は、時間がかかり負荷が大きくなりがちです。データの量とデータを集録する頻度はそれぞれ異なります。さらに多くの場合、アプリケーションは計測器からのSRQのチェックも常に行っています。アプリケーション内で行われているタスクに比べると、ユーザによる操作は散発的なイベントです。マルチスレッド処理を使用すると、そのようなタスクを分離して個々のタスクの処理要件に対応することができます。さらに、複数のGPIBインタフェースを使用するアプリケーションでは、各GPIBインタフェースに1つのスレッドを割り当て、インタフェースの管理と計測器制御を行うこともできます。

NIのNI-488.2ソフトウェアは、マルチスレッド対応となっていますので、マルチスレッドアプリケーション向けの機能をすべて搭載しています。 NI LabWindows™/CVIとLabVIEWにも、計測器制御アプリケーション用のマルチスレッド処理機能が搭載されています。LabVIEWおよびLabWindows/CVIでのマルチスレッド処理の詳細については、「LabVIEWを使用して高い性能と信頼性を備えたマルチスレッドアプリケーションを作成」、およびLabWindows/CVIでのマルチスレッド処理を参照してください。

7. ネイティブ測定データ形式使用する

マイクロプロセッサは、測定の計算をバイナリ形式で行います。ただし、GPIB経由でデータを転送する際、多くのデータはアルファベット形式 (通常ASCII形式) に変換されます。データを2回変換することで時間がとられるため、性能の低下の原因となります。最初の変換は、計測器側で行われます。GPIB経由で転送するためにバイナリデータがASCIIに変換されます。計測器のプロセッサは最新のPCの処理能力の数分の1程度の性能しかないため、この変換は非常に時間がかかる場合があります。2回目の変換は、PC側で行われます。データ構文解析ルーチンを作成して、測定データをASCIIからプロセッサに適したバイナリ形式に変換し、処理、解析を行います。これらの操作のオーバーヘッドを取り除くには、計測器のネイティブデータ形式 (バイナリ) でデータを転送することをお勧めします。

8. 条件厳しいアプリケーションモジュールプラグイン計測使用検討する

データのストリーミングや、少量のデータの高速転送、極めて精度の高いトリガ/同期機能などを要するアプリケーションの場合は、モジュール式のプラグイン計測器を使用して測定を行うことを検討してみてください。PCI、PXI/CompactPCI、VXIプラットフォームに対応した計測器が用意されています。どのプラットフォームでもGPIB計測器の制御が簡単にできますので、両方のメリットを活用することができます。

コストを重視した場合、デスクトップPCに搭載されているのと同じPCIバスがベースとなっている堅牢なPXI/CompactPCIは、経済的な製造テスト環境として適しています。PXI/CompactPCIをベースにしたモジュール式のプラグイン計測器には、多くのメリットがあります。

 

  • 7個のPCIスロット
  • コンピュータメモリへの直接的なデータストリーミングを可能にするバスマスタDMA機能
  • 極めて堅牢なモジュール式パッケージ
  • バックプレーンにタイミング/トリガ機能搭載
  • デスクトップPCで通常使用するのと同じ標準のWindowsソフトウェア
  • デスクトップPCシステムのソフトウェアがPXI/CompactPCI組み込みコンピュータ上で動作
  • 低コストでも測定精度を犠牲にしない計測器/デジタイザ
  • 遅延時間を短縮
  • GPIB測定デバイスの制御が簡単


モジュール式計測ソリューションは、測定およびオートメーションシステムにおける3つの異なるニーズに対応できる魅力的なオプションです。1つ目のニーズは、PCメモリとの間での大量のデータのストリーミングです。オシロスコープ、任意関数発生器、高速デジタイザなどのデバイスには、PCメモリとの間でのデータ転送が極力短時間でできるようなバス帯域幅が必要です。

2つ目のニーズは、カウンタ/タイマ、電源、デジタルマルチメータなど、極めて少量のデータを転送するデバイスへの効果的な通信です。そのようなデバイスとの通信を効率的に行うには、基本的に情報の第1バイトを送るのにかかる時間 (第1バイト遅延時間) が重要です。データの転送にかかる時間自体が短いため、このオーバーヘッドは重大な意味を持ちます。PCI、PXI/CompactPCI、およびVXIの第1バイト遅延時間は、10~100 nsです。GPIBの場合はおよそ100 µsです。第1バイト遅延時間が短いと、データ転送量が少ないデバイスでも高速通信が保証されます。

3つ目は、モジュール式プラットフォームにはまだ存在しない計測器を、従来型GPIB計測器で補うための通信手法です。NIで提供しているGPIBコントローラボード/モジュールなら、このニーズにも対応できます。

まとめ

GPIBシステムの性能を高めるには、多くの方法があります。このアプリケーションノートで紹介したオプションは、計測器の選び方、購入するGPIBコントローラの種類、アプリケーションのビルドに使用するソフトウェアと設計方法など、あらゆる領域に及びます。これらの情報を参考にして、お客様ご自身で実用的なチェックリストを作成し、適切な対策を見出してください。現在使用しているGPIBシステムも、まだ十分な性能を発揮できていないだけかも知れません。

NIのGPIBおよび計測器制御インタフェースの詳細については、下記の関連リンクを参照してください。

LabWindowsという商標は、Microsoft Corporationの使用許諾を得て使用しています。Windowsは、Microsoft Corporationの米国およびその他の国における登録商標です。

Was this information helpful?

Yes

No