GPIB通信の概要と用語解説、プログラミングに必要なGPIB通信の基礎知識を、分かり易く解説します。
GPIB(General Purpose Interface Bus)は、コンピュータと計測器とのインターフェイスとして開発され、主にパソコンと計測器を接続するために用いられています。米国Hewlett Packard社の社内規格であった「HP-IB」がIEEE(Institute of Electrical and Electronic Engineers:アメリカ電気電子学会)によって承認され、国際標準規格となったものです。現在の計測器の多くは、このGPIBインターフェイスを標準で搭載しており、パソコンと計測器を使用した計測システムにおいて幅広く活躍しています。
GPIBの規格には「IEEE488」と、その上位プロトコルで現在主流の「IEEE488.2」があります。IEEE488.2は、IEEE488で規定された転送方法に対して、文字データや数値表現の文法や各機器が共通して使用できるコマンド(指令)、クエリ(問い合わせ)などの規定を追加したもので、IEEE488.2対応の機器は、IEEE488.2準拠の通信はもちろん、IEEE488で規定された範囲内での通信も可能です。
GPIB通信デバイス製品一覧
ピギーバック構造のコネクタ
現在でも多くの計測器にGPIBインターフェイスが搭載され、計測器業界の標準バスの地位を確立したのは、以下のようなパソコンとの接続に多くの利点があるからです。
1台のパソコンに複数の計測器を接続し、プログラムによって各機器が自動計測を行い、その計測したデータをパソコンで収集し、解析や表示処理、データ保存するという使われ方が一般的になっています。
GPIB通信機器とパソコンを使用したシステム例
GPIB通信の制約上(システム全体の総ケーブル長)、望遠鏡の近くで操作・観測しなければならないので不便であり、研究者間で情報共有をリアルタイムに行いたいという要望が多くありました。
「計測・制御機器開発」「ネットワーク機器開発」の豊富な開発経験を持つコンテックなら、このような問題点も改善できます。
1システム内の機器接続台数はコントローラ(パソコン)を含め15台と規格で定められており、これ以上の機器を1システム上に接続することはできません。
デイジ・チェーン(いもづる接続)、スター型(放射状)、その組み合わせなど、自由度の高い接続が可能です。ただし、ループ接続は禁止されています。
デイジ・チェーン接続
スター型接続
注意:ループ接続は禁止されています。
各装置間のケーブル長は4m以下、1システム中で、装置を互いに接続するのに使用できる最大ケーブル長は、「2m×(装置数)」または20mのどちらか短い方とします。
8本のデータラインを使用して一度に1バイトのデータを最大1MB/秒で転送します。しかし、計測器は通信速度が遅いものが多く、また、同一バス上に接続された機器の通信速度は、最も通信速度が遅い機器に合わされてしまいます。
バス上に接続された機器の中で、データの受信を行う機器をリスナ(聞き手)、データを送信する機器をトーカ(話し手)と表します。トーカとリスナの指定はコントローラで行います。このようにシステム全体の管理を行う装置をコントローラと呼び、通常はコンピュータ(パソコン)が担います。
マスタはその名のとおり主人(Master)でありGPIBの通信を行う上で決定権(コマンドの送出等)を持ち、それに対してスレーブは召し使い(Slave)であり、マスタの指示(コマンドの受取等)に従う必要があります。システム構成をする上でマスタは1台、スレーブは1台以上必要になり、また計測器を制御する場合はパソコンがコントローラになりますのでマスタになります。
GPIBのシステムに接続する各装置は、同一システム内でユニーク(固有)なアドレスを持ち、このアドレスにより個々が識別されます(自分自身につけられたアドレスをマイアドレスと呼びます)。機器アドレスは電話で言うと電話番号にあたり、この番号の機器に対してデータを送る、受取る事により通信ができます。機器アドレスは、同じシステム内において「0~30の間」で自由に設定ができますが、他の機器のアドレスと重なってはなりません。
ハンドシェイクとは、送信側から受信側に「データを送信中」という信号を送り、受信側はその信号を受け、信号線からデータを読み込みます。そして、送信側へ「データを受信しました」という信号を送り返しながら、互いにデータの送受信を確認しあいつつデータを転送する通信方式です。これにより、GPIBは信頼性の高いデータの受け渡しを実現しています。
GPIBのバスライン上の機器は、データの衝突を防ぐため、ある時点でデータを送信できる機器を1台に制限しています。これを実現しているのがコントローラです。コントローラは主に以下の動作を行います。すなわち、これらをプログラムで表現すれば、パソコンをコントローラとしたGPIBシステムが構築できると言えます。
8本のデータライン、3本のハンドシェイクライン、5本の管理バスラインで構成され、コネクタ・信号配置は以下のとおり規格で定められています。とくにGPIBのプログラムを組む上で必要となる管理バスラインに関しては、その役割をよく理解しておく必要があります。
GPIBのコネクタピン配置図
バスラインに接続された装置を効率よく制御し、情報の流れを管理するために使用します。GPIBの機器を制御する上で重要な役割を担っています。
マルチラインメッセージの送信、またはデータを転送するために使用されます。
データライン以外の信号線は、すべてグランドラインとツイストペア構造になっています。GPIBで使用されるケーブルとコネクタはシールド構造になっており、対ノイズ性に優れています。
データラインのハンドシェイクのために使用します。
GPIBの機器をプログラムで制御して、データを受け取るためには、管理バスラインの操作の他にSRQ(サービスリクエスト)とポーリングの動作を理解しておくと効率の良いプログラムができます。
SRQはコントローラに対して、異常の発生や送信準備完了を通知などの割り込み要求をするために付けられた機能です。SRQ要求が発生するとSRQラインが「真」になり、バスに接続されているいずれかの機器がサービス要求していることがコントローラに伝えられます。しかし、SRQ信号だけでは、どの機器が要求しているのか分からないため、コントローラは、ポーリング(世論調査)処理を行うことにより、サービスを要求している機器の特定と、その内容を確認します。
コントローラがサービスを要求していると思われる機器に対して1台づつ順番にSRQを発信したかを尋ねる方法です。シリアル・ポールされた機器は、「ステータス・バイト」と呼ばれる1バイトのデータをコントローラに送信します。コントローラは、各機器のステータス・バイトを調べ、どの機器がサービス要求を発信し、どのような要求をしているのかを把握します。一般的にはシリアル・ポールが多く使われます。
8本あるデータラインをそれぞれ1つの機器に割り当て、一度にどの機器(最大8機器)がSRQを発信しているのかを調べる方法です。パラレル・ポールを実行すると各機器は割り当てられたラインに、“0”あるいは“1”の情報を発信し、コントローラにサービスを要求したか否かの返事をします。
ステータス・バイト(1バイト)は、送受信データと同様データラインに出力されます。機器がSRQを出している場合にはステータス・バイトの6ビット目が「真(1)」になり、SRQを出していない機器は「偽(0)」になります。ステータス・バイトの残りのビットは、各機器固有の意味を持つことができるようになっています。例えば、SRQを発生した原因(計測完了や異常発生など)をコントローラに通知することができます。コントローラからポーリングされた後、ステータス・バイトの6ビット目は「0」に戻されます。
GPIBの規格では、対象となる機器の機能をインターフェイス機能とデバイス機能に分割し、インターフェイス機能のみを規格として定めています。ただし、GPIBに接続する機器はすべての機能を実装する必要はありません。
GPIBを装備した装置の構造
GPIBでは、規格により定められた様々なメッセージやコマンドが用意されています。これらを使用し、GPIB通信機器の制御を行います。
GPIBで接続された機器を動作させるために用意された規格により定められているメッセージ(コマンド)です。コントローラのみが扱えるメッセージ(コマンド)で、マルチライン・インターフェイス・メッセージは、データライン(8本)を使用して送出されます。アドレス・コマンド、ユニバーサル・コマンドがあります。
計測器が測定した電圧値などの測定データや計測器の各種設定など、GPIBのインターフェイス機能に直接関係の無いメッセージです。トーカ機能を持つ機器から送信され、リスナ機能を持つ機器により受信されます。
信号線1本だけで意味を持つメッセージです。ラインが「真」になった時が命令の開始で、「偽」になった時が命令の終わりとなります。
特定の機器に対してのみ使用する、GPIBで規格されたコマンド(指令)です。
接続されたすべての機器に対して使用する、GPIBで規格されたコマンド(指令)です。
IEEE488.2準拠の機器で共通使用できるコマンド(指令)です。GPIB通信機器を効率良く制御できます。「*RST」「*CLS」「*TRG」「*IDN」などのコマンドやクエリ(問い合わせ)が用意されています。