Linux/FreeBSD 用 GPIB デバイス・ドライバ

注意 - 古い情報です。 今は、VXI-11 を使うほうが良いと思いますので、 社内用に開発したソフトウェアを無償公開しています。 そちらをご検討ください。

概要

PC Unix の性能が上がってきて、EWS 不要の時代になりつつありますが、Linux と FreeBSD 用の「GPIB デバイス・ドライバ」を下記の3種類のハードウェアについて 用意しました。(Windows 95 のドライバもあります)
2076 - GPIB PCI Card (PROGRAM_IO with FIFO)
2075 - GPIB PCMCIA Card (PROGRAM_IO with FIFO)
2071 - GPIB XT Card (DMA/PROGRAM_IO)
「2075」は「PCMCIA Card」ですからノート・タイプのマシンを使った、なんとも 便利で、機動力のあるシステムが作れます。例えば、下記のケースでは、東芝の 「Libretto 50」で、「2075」を使用して、「HP54616B」デジタイジング・オシロ スコープの画面データを「X11」上に取り込んでいます。

「PCMCIA」スロットでは「DMA」が使えませんが、「2075」の場合は「FIFO」バッ ファがありますので、「DMA」に匹敵する早さで、データ転送ができます。

「2071」はデスクトップ機の「ISA」スロットに挿入して使用するタイプの製品で、 「DMA」か「プログラム I/O」で使います。「2076」は「PCI」スロットに挿入 するタイプの製品です。GP-IB は速度が遅いですから、「PCI」のメリットは少ない のですが、「PCI」しか使えない状況でご利用ください。

なお、いずれの場合も、割り込みを1つ使います。また、当社の他の製品と同様に、 ソース・コードが付属していますので、大きな財産になります。

プログラム例

例えば、「HP 3478A デジタル・マルチメータ」から直流電圧の測定値を読みだす Cのプログラムを例示すると、次のようになります。

#include <stdio.h>

char buf[BUFSIZ];

main()
{
  gbopn();
  gbcmod(3);	/* GP-IB ポートをオープン */
  gbwrt(23, "F1N5T1M00", 0, 2);	/* ファンクション設定コマンド */
  for(;;) {
  	gbred(23, buf, BUFSIZ, 2);	/* 測定データの読みだし */
  	printf("%s\n", buf);
  }
}

Unixではsignal(2)を使ったSRQ割り込みルーチンも使えます。