1. トップ
  2. 新着ニュース
  3. IT
  4. IT総合

測定器やFDDなどどんな機器も接続できたGPIB 消え去ったI/F史

ASCII.jp / 2024年3月11日 12時0分

 消え去ったI/F史の3回目はGPIBを取り上げたい。これに関しては、自宅でパソコンを使っていた「だけ」の方はあまりおなじみではないと思うが、職場や学校などでも使っていた方の中にはなじみがあったかもしれない。筆者の場合、大学で研究室に入った時にずいぶん使う羽目になった。

GPIB(IEEE-488)コネクター

GPIBの原点は測定器を接続するために誕生したHP-IB

 GPIB(General Purpose Interface Bus)は、もともと1965年9月にHPで開発された。それもあって当初はHP-IB(Hewlett-Packard Interface Bus)と呼ばれていた。このHP-IBの主な目的は測定器の接続である。連載509回でHPの歴史を紹介したが、HPは計測器関連から大きくなった会社であり、1960年代後半に初めてコンピュータビジネスに参入する。

 計測器とコンピューターがそろうとどうなるか? と言えば、「測定したデータをコンピューターで取り込んで処理したい」というニーズが出るのは当然である。例えばデータの変動を連続的に測定したい、という場合にこれまでは目で測定値を読み取って、それを記録するという苦行を強いられていたわけだ。

 もちろん測定間隔が1分ならこれも可能だが、毎秒では絶対に人手では間に合わない。ではどうするか? というと、プリンターなりプロッターなりに結果を記録し、測定後にその出力を人手で拾うという、これはこれで苦行が続いたわけだ。

 ところが測定結果をそのままコンピューターに送り出せるなら、もっと測定間隔が短くできるし、そのデータの集計もずっと簡単である。間に人手が入らないので、データを書き写す際のミスなどもなくなるのでいいことづくめである。

 先にプリンターなりプロッターなりに出力と書いたが、初期の場合は計測器にプリンターなりプロッターが内蔵(というか内蔵しきれないので外付けで、計測器のサイズが2~3倍になった)されていたが、個々の計測器にいちいちプリンターなりプロッターなりを付けるのはコスト的にも無駄が多い。

 連載759回で紹介したセントロニクスは1970年に入ってからの規格なので、まだ1960年代後半は汎用的なI/Fもなかった。そこでHPは、こうした計測器やプリンター/プロッター、さらにはその他の周辺機器もまとめてコンピューターと接続できるようなI/Fを開発した。これがHP-IBというわけだ。

HPが1980年に出したチュートリアルの表紙。HPのコンピューターの右に計測器らしきものが並んでいる

 HP-IBの特徴は以下のとおり。

接続模式図。これではSCSIみたいにまるで1本のケーブルに複数のデバイスがつながるように見えるが、電気的にはともかく機械的にはやや異なる。ネットワークトポロジーとしてはスター型に相当する

 8bitのパラレルバスでデータ転送。最大転送速度は1MB/秒(つまり信号速度は1MHz)だが、実効転送速度は250~500KB/秒程度。

 共有バス方式。後述するがアドレスそのものは31(2Byteアドレスでは961)個設定可能だが、実際に1本のバスに接続できるデバイスは15台まで(うち1台はホストになるので周辺機器や測定器などは最大14台という計算に)。共有バスなので通信は当然半二重方式。

 Controller/Talker/Listenerの3種類のデバイスがある。Listenerはデータを受け取るデバイスであり、最大14個のListenerが1本のバス上で同時に受信待機できる。一方Talkerはデータを送信するデバイスで、1本のバス上では同時に1台だけがTalkerになれる。このTalker/Listenerの動作を制御するのがControllerで、複数台のControllerが1本のバス上に存在することは可能だが、バスの制御をできるのは一度に1台のControllerのみである(このバス制御を行なうものをSystem Controllerと称する)。ControllerはTalker/Listenerの機能を持つことも可能である。

 信号線は合計16本。うち8本がData(DIO 1~8)、3本(DAV/NRFD/NDAC)が転送のハンドシェイク用、5本(IFC/ATN/SRQ/REN/EOI)が管理用となっている。

 コネクターは24ピンのRibbon Type。HP-IBが標準規格化されていく中で、25ピンのD-Subも追加されたが、24ピンのRibbon Typeの方が一般的だった。ちなみに信号線は16本だけで、余った8なり9本のピンは全部GNDになっている。

HP-IBで使われたのは当然下側

 複数台接続の場合、複数のコネクターを重ねる形になる。下の画像のように、もともとそれぞれのコネクターは両面に端子が出ており、またネジ穴も重ねてねじ留めできるようになっている。

複数台接続の場合。これはPhotoshopで模式図的に作ったものなので、不自然なのはご容赦願いたい

 ちなみにケーブル長の制限としては、「全部あわせて20m」となっている。上の画像の構成なら4本のケーブルが出ているので、最大でも5mまでということになる。もっとも実際は4mが普通に購入できる最長で、これを超える場合は(非標準の)エクステンダーを挟む必要がある。以上が、HP-IBの特徴だ。

HPがHP-IBの標準化に動き出す

 HPはこのHP-IBを標準化すべくIEC(International Electrotechnical Commission:国際電気標準会議)に働きかけを行ない、1972年3月にIECはTechnical Committee 66, Working Group 3を結成してこのHP-IBを元にした標準化作業を開始する。

 1974年9月には標準規格のドラフトが策定され、1975年4月にIEEE-488/1975として正式に国際標準化される。この後もいろいろ改定が続くのだが、そのあたりの話はまた後でするとして、この1970年代中旬になってくると、HP以外のメーカーもHP-IBを利用するようになってきた。

 そもそも1965年にHP-IBの仕様が策定された際に、HPは非常に安価なライセンス料でHP-IBの仕様を提供したため、多くのメーカーがこれを利用するようになった。ただ"HP-IB"はHPの名前がモロに入っているので、これは都合が悪いと感じたのか、業界ではHP-IB互換I/FをGPIBと呼ぶようになった。したがって、HPは引き続きHP-IBの名称を使い続けたが、それ以外のメーカーはGPIBと称するのが一般的になっている。

 さてそのGPIBだが、HPでは計測器だけでなくプリンターやプロッターなど幅広い接続に利用した。HPだけでなく、例えばCommodoreはPET 2001にGPIB I/Fを搭載しており、これでフロッピードライブを接続していたほか、他社の各種機器(プリンター、プロッター、モデム、テープドライブ、etc...)を接続することもできた。

J1がGPIBポート。カードエッジの形で16本の信号ピンが出てるだけだが、これを24ピンのリボンコネクターに変換するケーブルもあった

 "PET and the IEEE 488 Bus (GPIB)"にはHPのデジタル電圧計や周波数カウンター、CentronicsのModel P1マイクロプリンター、Tektronixのロジックアナライザー、ICSのインターフェースカプラーなどさまざまな機器を接続する場合の配線とプログラム例が示されている。"プログラム例"というのが味噌で、当時のことだから、自分でBASICを使ってプログラムを書いて使う形になっていたわけだ。

 これは別に珍しくなく、日本でもPC-8001のN-BASICには標準でGPIB用の命令が用意されており、PC-8800/9800シリーズ用のN88-BASICにも引き継がれている(ただしI/Fそのものは標準では搭載されていなかったので、別売のI/Fカードが必要だったが)。

 ただプリンターはセントロニクス、FDDやHDDなどはSASI、モデムなどはRS-232-Cを使うようになっていったことで、GPIBは計測器以外の市場ではあまり広く使われなかったものの、逆に計測器市場ではその後も延々と使われ続けることになった。

 変なところで言えば、現在は神戸大学大学院におられる牧野淳一郎教授が、まだ東京大学に在籍中の1989年に完成させたGRAPE-1は、「とりあえずホストにつなぐ」ことを目的にGPIBを使って接続したものの、性能が出なくて悪戦苦闘したという話が論文の70ページあたりに載っている。

 GPIBは純粋にハードウェアというか通信規格であり、そのうえでどんなデータを流すかは勝手にできた。上で「BASICのプログラム例が載ってた」というのは、要するに接続する機器ごとに、どんなデータがどんなタイミングで流れて来るかまちまちであり、接続するものに合わせてプログラムを書いてやる必要があったという意味でもある。だからこそ、自分で作ったハードウェアをつなぐのに手っ取り早いI/FとしてGPIBが選ばれたわけだ。

 この「なにを流すかは機器ごとに勝手に決められる」というのは、ある意味GPIBの長所でもあるのかもしれないが、広範に使おうとするといろいろ面倒になってくることも多い。そこで、「もう少し上位レベルの規定をしよう」という機運が高まった。

 ここで先程の標準化の話に戻る。1975年にIEEE-488/1975が出て最初の標準化が完了したわけだが、これはANSI(American National Standards Institute:米国国家規格協会)でもそのままANSI MC1.1として1976年1月に標準化されている。

 さて、これに続きIEEEは1978年11月にIEEE-488/1978を発表するが、これは不明確な記述の明確化や、若干の補足がある程度で大きな違いはない。またこのIEEE-488/1978をベースにIECでもIEC 625-1をリリースしている。ここまでは基本HP-IBと大差ない。変わるのはここからだ。

流すデータについて共通APIを定めた

 1982年1月、IEEEはIEEE-728をリリースする。タイトルは"Recommended Practice For Code And Format Conversions for use with ANSI/IEEE STD 488-1978, IEEE Standard Digital Interface for Programmable Instrumentation"である。これはなにを規定しているかと言うと、IEEE-488の上で送受信されるデータフォーマットの規定である。

 当初はIEEE-488と異なる番号が付いていたこの規格だが、IEEE-488の方は番号をIEEE-488.1/1987と変更して1987年6月に標準化され、一方IEEE-782の方は1992年6月にIEEE-488.2/1992となった。この2つの規格がどう違うのか? というのが下の画像である。

これは"Tutorial Description of the Hewlett-Packard Interface Bus"というHPが出した説明資料からの抜粋。HPは最後までHP-IBという名称にこだわりを持っていた

 電気機械的な接続の規定がA、メッセージ交換のフォーマットを定めたのがB、主要なコマンド類をまとめたのがC、デバイス固有の機能がDになる。

 IEEE-488.1はA、つまり電気機械的な接続の規約のみを取り扱い、その上でデータフォーマットや、よく使われる機器(測定器、プロッター、etc...)用の共通APIを定めたのがIEEE-488.2というわけだ。このIEEE-488.2が出てきたことで、ある程度まではGPIB用の標準的なソフトウェア、つまりデバイスドライバーを書けるようになった。

 この後もIEEE-488は進化する。2023年10月にEmersonに買収されて現在はEmersonの一部門になっているのだが、測定器で有名なNational Instrumentsという会社はやはり広範にGPIBを自社の製品に利用していたが、最大1MB/秒では新しい測定器でのデータサンプリングに間に合わないケースが出てきた。

 そこでGPIBと後方互換性を持ちつつ、最大8MB/秒まで転送速度を上げたHS-488という独自規格と、これをサポートするコントローラーを発表するとともに、そのHS-488をIEEEの標準化にかける。結局この8MB/秒の仕様はIEEE-488.1/2003として標準化されている。

 このIEEE-488.1/488.2はそれぞれIECでもIEC 60625-1/60625-2として標準化されたが、最終的に2004年にIEEE/IEC 60488-1とIEEE/IEC 60488-2として2つの組織の共通の仕様となった。

時代とともに転送速度がボトルネックになる

 ここまでがんばりつつも、現実問題として1980年代後半からGPIBのシェアは次第に減り始めた。まず1MB/秒という速度は、ある種の測定器にとっては残念ながら十分とは言えなかった。

 こうした機器の中には、より高速な転送速度を可能にするSCSI I/Fを搭載したものもあるし、1990年代後半にPCIをベースとしたPXI(PCI eXtensions for Instrumentation)が登場すると、特に速度が必要な計測器はこちらをベースにシステムを組んでしまい、もうGPIBが必要なくなってしまった。計測モジュールとホストモジュールをPXIで接続して1つのシステムにしたからだ。

 またGPIBでは機器の区別のためにユニークなアドレスを割り振る必要があるが、これの自動割り振りはついに実現しなかった。このため、手作業で各機器のディップスイッチやロータリースイッチでアドレスを設定しなければならなかった。

 当然このアドレスはソフトウェア側の変更も必要になるので、一度設定したら二度と変更しないような構成はともかく、ちょくちょく機器が変わる構成ではこの変更作業がバカにならない労力だった。

 ホットプラグ/アンプラグも最後まで登場しなかった。したがって機器の着脱があると、そのたびにシステム再起動が必要になった。またスタッカブルなコネクターも、なにかあるたびに外してつないで……がかなりの労力になった。2つや3つでも、長時間使っていると重みと振動で緩んできたりするので、こちらの配慮も大変だった。

 しかも1990年末からUSBが登場すると、性能的にも使い勝手的にも「USBでいいじゃん」という話になってくるのは否めない。まだGPIBを使う計測器やテスト装置の類は市場に若干残っており、それもあってUSB GPIBコンバーターが販売されている(例:https://www.amazon.co.jp/dp/B00DDDF9IO/)が、ホスト(つまりPC)側からは完全に駆逐されてしまったのがGPIBである。

 とはいえ、まだ例えばPCI Express対応 高速型GPIB通信ボードがあるので、使おうと思えば使えるのだが。

この記事に関連するニュース

トピックスRSS

ランキング

記事ミッション中・・・

10秒滞在

記事にリアクションする

記事ミッション中・・・

10秒滞在

記事にリアクションする

デイリー: 参加する
ウィークリー: 参加する
マンスリー: 参加する
10秒滞在

記事にリアクションする

次の記事を探す

エラーが発生しました

ページを再読み込みして
ください