GPIBインターフェースのハンドシェーク

horizontal rule

GPIBインターフェースは、現在では古いテクノロジーのインターフェースになってしまいました。
しかし、計測器の世界では、まだ主流です。特に、中古計測器を購入し、自動計測システムを製作するには、重宝します。
ここで、GPIBインターフェースの3線ハンドシェークの説明をします。

bullet

第2章 lEEE・488インタフェースバスとは

IEEE-488インタフェースバスは、計測器相互間及び計測器とコンピュータ等を接続する場合のインタフェースバスとして標準化されているものです。
このバスは、IEEE-488インタフェースバスという名称の他にHP-IB、GP-IB等いろいろの名称で呼ばれていますが、これらは基本的には同じ規格のものです。
ちなみに、HP-IBは、アジレント(旧HP)社の呼び方で、GP-IBはテクトロニクス社の呼び方です。

 

bullet

2.1 システム構成

IEEE-488インタフェースバス(以下IEEE-488バスと記述します)につながるすべての機器は、図−1のように並列に接続されます。
IEEE-488バスの信号は、16本の信号線により構成されており、24PINのコネクタを使用します。1システムに接続できるインタフェースの数は、規格で15以内となっています。ケーブルの長さの限定は、1システム合計で20m以内となっており、機器間の接続ケーブルは4m以内となっています。



 

bullet

2.2 インタフェース機能

IEEE-488バスには、10種類のインタフェース機能が用意されております。
そしてそれらのインタフェース機能の中に、いくつかのグレードが存在し、システムの必要性に応じて、必要なグレードの機能(これをサブセットと言います)を選択して備えればよいことになっています。

シンボル

インタフェース機能

機能

SH

ソースハンドシェーク インタフェースバスにデータを送信する。

AH

アクセプタハンドシェーク インタフェースバスよリデータを受信する。

T (TE)

 トーカ 又は拡張トー力 ある装置から他の装置にデータを送信する。送信データは、SH機能によりバスに出力される。

L  (LE)

リスナ又は拡張リスナ 他の装置からデータを受信する。AH機能によりバスよりデータをとり込む。

C

コントローラ IEEE-488バスシステムをコントロールする。

DT

デバイストリガ 装置をトリガする。

DC

デバイスクリア 装置を初期状態にする。

PP

パラレルポール コントローラのパラレルポールに応答する。

SR

サービスリクエスト コントローラにSRQメッセージを送信しサービスを要求する。

RL

リモート・ローカル 装置のリモートとローカルとを切り換える。


IEEE-488バスは前述のように、それに接続されている装置は、すべて並列に接続されているため、バス上に出力されたデータは、受信機能のあるすべての装置が受信できます。しかし、2つ以上の装置が同時にデータを送信することはゆるされません。

このためIEEE-488バスには、コントローラと呼ばれるインタフエース機能があり、バス上に接続されているすべてのインタフェース機能は、このコントローラによって制御されることになります。よって、通常のシステムの場合、1つのコントローラがバスに接続されており、その他にコントローラ以外のインタフェース機能を接続されて使用されます。
図−2のシステム構成例ではPCがコントローラとしてバスを管理しています。
また、PCには、ト一カ、リスナがありますので、データの送受信が可能です。
ところが計測器Aは、PCの管理のもとでデータの送受信が可能ですが、B、Cは各々リスナ、ト一カしかないため、受信、送信のいずれかひとつのことしかできません。



IEEE-488バスに接続されているト一力及びリスナには、すべてアドレスが割り付けられています。したがって、コントローラは、このアドレスによってインタフェ−スバスを管理することができるのです。
コントローラは、まずアドレスをバス上に出力して、どの装置からどの装置ヘデータを転送するのかを指示します。このときのモードをコマンドモードと呼び、このモード時に出力されるデータは、すぺての装置が受信します。
コマンドモード時に出カされるものは、アドレスだけではなく、コントローラがバスを管理するために必要なコマンド(マルチライン・メッセージ)の場合もあります。
コマンドモードが終了すると、そのときのアドレスを指定されたトーカとリスナとの問でデータ転送が行なわれます。

 

bullet

2.3 バスライン

IEEE-488バスは、16本の信号と8本のGND線からなっています。16本の信号は、3つのグループに分けられます。 信号論理はオープンコレクタ又は、トライステート出力の負論理です。

(1)データライン(DI01〜DI08)
 双方向性のデータバスです。
(2)ハンドシエークライン(DAV、NRFD、NDAC)
 DAV……“L"の時、トーカ、コントローラから送出されたデータが
有効であることを示します。
 NRFD……“L"の時、リスナがビジーであることを示します。O.C.
 NDAC……“L"の時、リスナが受信を完了していないことを示します。O.C.
(3)管理ライン(ATN、REN、IFC、SRQ、EOI)
 ATN……“L"の時、コマンドモードであることを示します。
 REN……“L"の時、各装置をリモート状態にします。
 IFC……“L"のパルスでインタフェースをクリアします。
 SRQ……“L"の時、ある装置がコントローラに対して、サービスを要求していることを示します。O.C.
 EOI……“L"の時、デリミタとして使用されます。又、パラレルポールの時にも使用されます。

 

bullet

2.4 ハンドシェーク

IEEE-488バスでは、データの送受信には3線式ハンドシェークが用いられています。
3線式ハンドシェークは、(2.3)項で述べたハンドシェークライン(DAV、NRFD、NDAC)により行なわれます。図−3にハンドシェークのタイミングチャートを示します。
3線式ハンドシェークは、ソースハンドシェーク(SH)とアクセプタハンドシェーク(AH)との間で行なわれます。



@、ASHはDAVを"H"にします(データが有効でないことを示します )。AHはNRFDを"L"にします(ビジーであることを示します。)
又、NDACを"L"にします(データの受信を完了していないことを示します)。
BSHはデータをDIOラインに出力します。
CAHは受信がレディになるとNRFDを"H"にします。
DすべてのAHがレディになったことを確認した後、SHはDAVを"L"にします。
EAHはNRFDを"L"にします。
FAHはデータ受信を行ない 、受信を完了するとNDACを"H"にします。
GすべてのAHが受信を完了したことを確認した後、SHはDAVを"H"にもどします。
HAHはDAVが"H"になったことを確認した後、NDACを"L"にもどします。
Iハンドシェークが完了し、SHは次のデータを出力します。

 

bullet

2.5 コマンド、データの受信

IEEE-488バスを動作させるために、まずコントローラ机バ又に接続されているすべての装置に対してコマンドを送信しますμコマンドも2・4項のハンドシェークによって各装置に送信されるわけです。
バスがコマンドモードにあることは、コントローラが制御するATNフインが“L"になることによつ各装置に知らされます。つまり、IEEE-488バスに接続されているすべての装置は、ATNが"L"の期間こデータバスより送信されてくるデータは、すべてコマンド(アドレスもコマンドの一種とみなします。)として受信します。
ここで図−4を参照してください。コントローラが、バスをコマンドモードとし、UNL(アンリスン)コマンドを送ると、それまでアドレスされていたリスナが解除されます。続いてデータを送信させるトーカのアドレスが送信されます。さらに続けて、そのデータを受信させるリスナのアドレスが送信されます。ところで、ト一力は必ず1つしか指定できませんが、

リスナは複数個指定することができます。
送信を打ち切ったり、終わらせたりする場合 、あるいは、コントローラがコマンドモードを終了し、ATNを"H"にもどすと、バスはデータモードとなり、そのときコントローラによって指定されているトーカからリスナに対して 、データの転送が行なわれます。そして一つのデータ列は、デリミタによって区切られます。
このデリミタは、装置によってまちまちです。一般的なコントローラは、次のデリミタに対応しています。




CR+LF

CR

LF

ASCII文字転送時
EOI バイナリ転送時


 

bullet

2.6 シリアルポール、パラレルポール

IEEE-488バスに接続されている装置から、コントローラに対して、割込みをかける機能があります。この割込みの要求は、SR機能によって行なわれ、SRQラインがこれに使用されます。
コントローラに対して割込みを要求する場合は、SRQラインを"L"にします。
バスに接続されている装置のいずれかが、サービスを要求しているかどうかは、まだこの時点ではわかりません。そこでコントローラはSRQラインが"L"になると、各装置に対してポーリングを行ないます。
このとき、ポーリングの方法としてシリアルポールとパラレルポールとがあります。
一般的なコントローラはシリアルポール、パラレルポール両方の機能を持っています。



 

bullet

<注意>

IEEE-488バスを構成するケーブルや装置を、途中ではずしたり、短絡させたり、電源をON、OFFさせたりしてはいけません。
この様なことをすると動作が止まってしまったり、エラーになったりして、トラブルの原因になります。
この様な事が原因であると思われるトラブルが起きたならば、IEEE-488バスを構成しているすべての装置をリセットして、始めからやり直さなくてはなりません。
IEEE-488バスを使用する時に、始めから使用しない装置やケーブルは、はずしておいてください。
また途中で使用しなくなった装置やケーブル、新し<使用した装置やケーブルは、IEEE-488バスを構成するすべての装置をリセットしてから、IEEE-488バスから、はずしたり、IEEE-488バスに入れたりしてください。

 

bullet

<参考>入出力のタイミング






 

bullet

<参考>IEEE488.1、IEEE488.2とSCPI

1987年発行のVersion IEEE 488.2 とSCPIの関連図

 

horizontal rule

[トップページ]《←当Webの表玄関です》

BC-1000写真/真空管紹介 ] [ GPIBインターフェースのハンドシェーク ] オシロスコープ・プローブ ] 10M330のメンテナンス情報 ] HP4275Aのメンテナンス情報 ] TEK TDS420のメンテナンス情報 ] TEK 2430のメンテナンス情報 ] TEK 2465のメンテナンス情報 ] TR5822のメンテナンス情報 ] VG4429のメンテナンス情報 ]

horizontal rule