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