GPIB(General Purpose Interface Bus: IEEE488)/HPIBとは 
 (チュートリアル)


IEEE-488バスの由来
IEEE-488の概要
システム・コントローラーとアクティブ・コントローラー
リスナー(Listeners)、トーカー(Talkers)、コントローラー(Controllers)
インターフェース信号
データ線
ハンドシェイク線
ハンドシェイク
インターフェース制御線
デバイスアドレス
物理的な特徴(ケーブル接続)
サマリー
閉じる

IEEE-488バスの由来
IEEE-488バスは、プログラマブルな計測器等を接続し制御し、異なるソースと計測器等の間でデータの送受するための標準のインターフェースとして開発されました。ヒューレット・パッカード社独自のインターフェース技術として開発されたため、「HP-IB」と呼ばれました。 このインターフェースは、コンピュータ業界ですぐに評判になりました。 このインターフェースがいろいろ有用に使えることが分かったので、IEEE委員会は、「GPIB(General Purpose Interface Bus)」という呼び方にしました。

IEEE-488の概要
計測器等自身の機能または計測器等のデータの様式について何も言及しなくても、多くの計測器等はIEEE-488仕様で使うことができます。代わりに詳述は、計測機器等に付け加えることができる構成要素、インターフェースごとに定義します。IEEE-488バスならびに計測機器等からインターフェースへの信号の送受は、標準として定義されます。計測機器等は、このインターフェース越しに完全なコントロールをしません。しばしばバス・コントロラーは、インターフェースに何をすべきかを命じます。アクティブ・コントローラーは、すべてのバスに接続された計測機器等に対しバス制御機能を実行します。

Topへ


システム・コントローラーとアクティブ・コントローラー
電源が投入された時、システム・コントローラーとしてプログラムされたIEE-488インターフェースはアクティブ・コントローラーになります。システム・コントローラーはインタ−フェース・クリア(IFC)とリモート・イネーブル(REN)コマンドを送信することができる事を含めていくつかの独特な特性を持っています。 IFCコマンドは、すべての装置のインターフェースをクリアし、システム・コントローラーにコントロールを戻します。 RENコマンドは、ひとたび装置に装置自身のアドレス(装置番号)が呼ばれたら装置がデータをバスに応えることを可能にします。 システム・コントローラーは、オプションとして他のコントローラーに対してパス・コントロール(Pass Control)します。そして、その時にアクティブ・コントローラーになります。

Topへ


リスナー(Listeners)、トーカー(Talkers)、コントローラー(Controllers)
IEEE-488バスに接続できる装置のタイプには、3つのタイプがあります。(リスナー、トーカー、コントローラー)
いくつかの装置の中には、これらの機能を1つ以上含んだものがあります。
標準は、同じバス上で最大15の装置を接続することを可能にします。 最小システム構成は、1つのコントローラーと1つのリスナーまたはトーカーです。(例:IEEE-488インターフェース付のHP700とボルトメータ)
いくつかのコントローラーが同じバス上にあることは可能ですが、どの与えられた時間でもアクティブは1つのみです。 アクティブ・コントローラーは、別のコントローラーにコントロールを通過させるかもしれません。 リスナーは、コントローラーによって教えられそしてトーカーが教えられたバス上にデータを送出したときに、バスからデータを受け取ることのできる装置です。 
コントローラーは装置間でうまくデータを送ることができるようにトーカーとリスナー・グループをセットアップすることができます。 

Topへ


インターフェース信号
IEEE-488インターフェースの方式は、16本の信号線と8本のグランド線から構成されます。16本の信号線は3つのグループ(8本のデータ線、3本のハンドシェーク線と5本のインターフェース制御線)に分けられます。

データ線
DIO1からDIO8の線を使ってアドレス、制御情報とデータを送ります。 アドレスと制御バイトに対するフォーマットは、IEEE 488標準によって定義されます。 データ・フォーマットは定義されていませんが、ASCII(パリティ付または無し)またはバイナリかもしれません。 DIO1は、最下位ビット(LSB:Least Significant Bit 注: ほとんどのコンピュータでは、ビット0と一致)です。

Topへ


ハンドシェイク線
3本のハンドシェイク線(NRFD、NDAC、DAV)は、装置の中でメッセージ・バイトの転送を管理して、そしてデータの転送を認める方法を形成します。 このハンドシェイク手順は、データ線上のバイトがあらゆる転送エラーもなしで送受信されることを保証して、そしてIEEE-488バスの独特な特徴の1つでもあります。

NRFD(Not Ready for Data) ハンドシェイク線は、まだ次のデータ・バイトまたは制御バイトの用意ができていないことを示すために、リスナーによってアサートされます(掴まれます)。

注)すべての装置が解放されるまで、コントローラーはNRFDが解放されること(すなわち、データが転送できる状態)を見ないでしょう。 NDAC(Not Data Accepted) ハンドシェイク線は、まだデータ・バイトまたは制御バイト受け入れを容認していないことを示すために、リスナーによってアサートされます(掴まれます)。 

注)すべての装置が解放されるまで、コントローラーはNDACが解放されること(すなわち、データ容認)を見ないでしょう。

DAV(Data Valid) ハンドシェイク線は、データ・バイトまたは制御バイトがデータ線にあって、そして最小限設定された安定する時間がたったことを示すために、トーカーによってアサートされます(掴まれます)。 バイトは、その時点で装置によって安全に受け入れることができます。

Topへ


ハンドシェイク
ハンドシェイク手順の概略は以下のとおりです。

コントローラーまたはトーカーがバス上でデータを転送したいとき、DAV線はハイ(high : ie. data not valid)にセットされます。 そしてNRFDとNDACの両線共ロー(Low)であることを確認し、それから、データをデータ線の上に出力します。

データを受けることができるすべての装置がデータを受ける用意ができているときに、NRFD(not ready for data)線を解放します。 最後に受け取った装置がNRFDを解放した時、そして、それがハイ(high)になり、コントローラーまたはトーカーは、バスに正しいデータがあることをロー(Low)で示しているDAVを得ます。

データを受けたとき、それに応えてそれぞれの受けた装置は、ビジーでNDAC(not data accepted)の解放を示すために再びNRFDをロー(Low)にします。最後に受け取った装置がデータを受け入れたときに、NDACはハイ(high)に行き、そして、コントローラーまたはトーカーは、データの次のバイトを転送するために、再びDAVをハイ(high)にセットすることができます。

注)もし高くDAV線をハイ(high)にセットした後で、コントローラーまたはトーカーがNRFDおよびNDACの両方がハイ(high)を得ると、エラーが起こるでしょう。 また、もしどんな装置もそのハンドシェイクの一部を実行しそこねて、そしてNDACまたはNRFDのどちらかを解放すれば、データは、バスを越えて転送することができません。 結局は、タイム・アウト・エラーとなるでしょう。

データ転送のスピードは、いつも装置に依存するのでIEEE-488バス上でデータ転送レートを予測するのは難しいこの理由で、バス上で一番遅い装置の応答によって抑制されます。

Topへ


インターフェース制御線
5本のインターフェース制御線(ATN、EOI、IFC、REN、SRQ)は、インターフェースにわたって制御バイトとデータ・バイトのフローを管理します。 ATN(Attention)信号は、それがデータバス上にアドレスまたは制御バイトを出していることを示すために、コントローラーによってアサートされます。 ATNは、割当てられたトーカーに対しデータバスに状況またはデータを出すために解放されます。 コントローラーは、ATNを再びアサートする(掴む)ことによってコントロールを取り返します;コントロール・バイトとデータ・バイトの間での混乱を避けるために、ハンドシェイによって同期をとり普通に終了します。

EOI(End or Identify)信号は、2つの使用方法があります。 トーカーは、データの終わりを示すために、データの最後のバイトで同時にEOIをアサートするかもしれません。 コントローラーは、パラレル・ポール(parallel poll)を始めるために、ATNと一緒にEOIをアサートするかもしれません。 多くの装置がパラレル・ポール(parallel poll)を使わないにもかかわらず、すべての装置は、転送を終えるためにEOIを使うべきです(ほかに現在利用できるものがありません)。

IFC(Interface Clear)信号は、すべての装置のインターフェースを既知状態にする代わりにシステム・コントローラーよってのみアサートされます。 IFCを解放した後、システム・コントローラーはアクティブ・コントローラーです。

REN(Remote Enable)信号は、システム・コントローラーによってのみアサートされます。 その所有は、リモートコントロールモードへ装置を位置付けません; リッスンに設定された時、装置をリモート・モードにすることはRENのみ可能です。 リモート・モードの時、装置がそのローカル・フロント・パネルでのコントロールを無視すべきです。

SRQ(Service Request)線は、割り込みに似ています。 : それは、各装置によってコントローラーに何らかのアクションをとるように依頼するかも知れません。 コントローラーは、シリアルポールを行うことによって、どの装置がSRQを掴んでいるかを決定せねばなりません。 要求元の装置は、ポールされたときにSRQを解放します。

Topへ


デバイスアドレス
IEEE-488標準は、1つのバスで最大15の装置を互いに接続させることを可能にします。 各装置は装置のアドレス・スイッチをセットすることによって、0-30の間で固有なプライマリー・アドレスが割り当てられます。 セカンダリー・アドレスもまた、0-30の間で定義します。 いかにして装置のプライマリーとオプションのセカンダリー・アドレスの詳細情報は装置のマニュアルを見てください。

物理的な特徴(ケーブル接続)
装置を24芯シールドケーブルを使用して、直列(芋づる)ばかりでなくスター型またはその組み合わせで接続できます。 標準のIEEE-488ケーブルは、両端にプラグ/リプリケート・コネクターがついています。 このコネクターは、Amphenol CHAMPまたはCinch Series 57 MICRO RIBBONタイプです。 特別なアダプターと非標準ケーブルは、特別な接続での使用が可能です。

IEEE-488バスは、バスに接続する装置の台数を20台を越さない範囲で、最大総延長20メートルのケーブルの長さ以内で、装置の内少なくとも2/3台に電源が入った状態で使用することが規格化されています。装置間のケーブル長は最大4メートル、平均間隔長2メートルにしなければなりません。

バス・エクステンダーとバス・エクスパンダーの使用は、ケーブルに関する制限を拡大することが可能です。

IEEE-488バスは、標準のTTLレベルの負論理を使用します。 例として、NRFDが「True(真)」の時、TTLはロー(Low)レベルになります。NRFDが「false(否)」の時、TTLはハイ(High)レベルになります。

Topへ


サマリー
IEEE-488.1標準は、厳格に定義をしているメカニズム、ハードウェアと電気的なプロトコル仕様によってプログラマブルな計測機器等の相互間接続を大変に簡単にしました。 初めて、異なるメーカ間の計測機器類をIEE488標準のケーブルによって接続可能となりました。 この標準は、データ・フォーマット、状況レポート、メッセージ交換プロトコル、共通の構成コマンドまたはデバイス定義コマンドに左右されません。

IEEE-488.2標準は、データ・フォーマット、状況レポート、エラー処理、コントローラー機能と共通の計測器等のコマンドを定義することによって標準のIEEE-488.1を改良し、強化しています。主点はソフトウェア・プロトコルを加えたことと、そしてハードウェアベースでのIEEE-488.1標準と互換性を保っています。

IEEE-488.2方式は、より互換性があり、大変信頼できるものです。

Topへ■ ■閉じる