スポンサーリンク

LABPC(4) FreeBSD/i386 カーネルインタフェースマニュアル LABPC(4)

名称

labpc − National Instruments 社の LABPC と LABPC+ のドライバ

書式

device labpc0 at isa? port 260 tty irq 5

解説

このドライバは National Instruments 社の LABPC と LABPC+ の低コストマルチ ファンクション I/O ボードをサポートします。

このボードは 8 つの 12 ビット A-D 入力チャネル、 2 つの 12 ビット D-A 出 力チャネル、 3 つの 8 ビットデジタル I/O ポートを提供します。また、デジタ ル I/O ポートとは別に、 National Instruments 社の SCXI バスの設定をサポー トしていますが、そのソフトウェアは現在は、ドライバの一部としてではなく、 外部プログラムとして提供されています。

入出力デバイス、モード、チャネルの選択はマイナ番号を通して行ないます。

     8 ビットのマイナ番号の形式は UUSIDCCC で、以下のようになります。
      UU: ボードユニット
       S: SCAN ビット (スキャン可)
       I: INTERVAL (インターバルサポート)
       D: 1: デジタル I/O, 0: アナログ I/O
     CCC: チャネルの選択 :
          アナログ:
          入力: チャネルは AD0 から AD 7 に対応して 0 から 7 まで
          出力: チャネルは 0 から 2 まで
                  0: D-A 0
                  1: D-A 1
                  2: チャネル 0 と 1 を交互に

         デジタル:
          入力: チャネルは 0 から 2 まで
          出力: チャネルは 0 から 2 まで

"sh MAKEDEV labpcaio" や "sh MAKEDEV labpcdio" を実行すると、 /dev/MAKEDEV スクリプトは基本的なアナログとデジタルのデバイスを作成します が、 INTERVAL や SCAN デバイスのためのデバイスエントリは作成しません。 SCAN デバイスは、自動的に全チャネルを 0 に向かって走査します。 (例えば /dev/ad7 に対する SCAN は AD7 から AD0 までのチャネルを読みだします) INTERVAL デバイスは、外部信号を待ち、そして、選択されたチャネル番号から 0 までの全チャネルを可能な限りの速さで読みだします。これはハードウェアが実 行し、 (この機能をオンにすることを除いて)ドライバはなにもしません。センサ が動かない時は LabPC+User’s Manual やソースコードを参照して下さい。

このドライバは複数の一般的なアナログ I/O ioctl 呼出しをサポートしていま す。これらは sys/dataacq.h で定義されており、他のデータ取得 (acquisition) ボードのデバイスドライバで実装されているものと同じ意味です。

AD_MICRO_PERIOD_SET はサンプリングの間隔をマイクロ秒で表した long 値への ポインタを引数にとります。

AD_MICRO_PERIOD_GET は long 値へのポインタを引数にとり、現在のサンプリン グ間隔をマイクロ秒で表した整数値を返します。

AD_NGAINS_GET は整数値へのポインタを引数にとり、ボードがサポートする差分 ゲイン設定値の個数を返します。これは LabPC ボードでは 8 です。

AD_NCHANS_GET は整数値へのポインタを引数にとり、ボードがサポートするチャ ネルの数を返します。これは LabPC ボードでは 8 です。

AD_SUPPORTED_GAINS は NGAINS (AD_NGAINS_GET で取得した数) の長さの double 配列を返します。これらはボードがサポートするゲインです。

AD_GAINS_SET は NCHAMS (AD_NCHANS_GET で取得した数) の長さの整数配列を引 数にとり、ボードのゲインを設定します。これらは、サポートされているゲイン の配列に対する、各チャネルのゲインを指すインデックスです。

AD_GAINS_GET は NCHANS (AD_NCHANS_GET が返します) の長さの整数配列を引数 にとり、現在のボードのゲインを返します。

バグ

一般的には、私が必要とした能力のみが提供されています。特に、以下の目立つ 制限があります。

アナログ入力は、クロックによる変換モードでのみサポートされています。

サンプリングクロックは 15 Hz までしか下げられません。もっと遅くするために は、ドライバを修正して TCINTEN をサポートすることにより、カウンタの連鎖に より低いクロックレートを得ることが必要です。

クロックによる D-A 出力はサポートしていません。

デジタル I/O ポートを提供している 8255 はモード 0 (3 つの 8 ビットポート) でのみサポートされています。

LABPC ボードとは別に SCXI バスをサポートしています。これはドライバの中に はなく、デジタル入出力デバイスへアクセスするための別のユーザプロセスで す。これについては dufault@hda.com に尋ねて下さい。

MAKEDEV は「基本的な」デバイスのみを作成します。 INTERVAL や SCAN デバイ スは手動で作成しなければなりません。

INTERVAL デバイスはクロックレートを可能な限り高く設定します。外部信号の 後、できる限り素早く全チャネルをサンプリングするためです。これはばかげた 制限です。シンプルにクロックの設定を使用するべきです。

警告

National Instrument 社 (他の大抵の実験室レベルの品質のボードベンダもそう ですが) の低コストの定義は、インターネット上の多くのものとは劇的に異なり ます。

FreeBSD April 26, 1995 FreeBSD

スポンサーリンク