PBIO(4) | FreeBSD Kernel Interfaces Manual (i386) | PBIO(4) |
名称
pbio — 8255 パラレル周辺機器インタフェース基本 I/O ドライバ書式
device pbio In /boot/device.hints:
hint.pbio.0.at="isa"
hint.pbio.0.port="0x360"
#include < dev/pbio/pbioio.h>
解説
pbio ドライバは、モード 0 (単純な I/O) で実行する Intel 8255A プログラマブル周辺機器インタフェース (PPI) チップへの直接アクセスをサポートします。そのようなインタフェースは 24 デジタル I/O 線を提供します。このドライバは、モード 0 の Intel 8255A PPI をエミュレートする、 Advantech PCL-724 カードのような周辺機器を使用してプログラムの制御下で I/O を実行するように設計されています。また、 BMC Messsysteme PIO24II カードのような他の 8255A ベースの周辺機器も動作すると報告されています。PPI は 2 つの 8 ビットポート (ポート A とポート B) と 2 つの 4 ビットポート(ポート C 上側、ポート C 下側) を提供します。各ポートは、入力と (ラッチされた) 出力で個別にプログラムすることができ、デバイスベースの I/O アドレスの異なったオフセットに現れます。
個別のレジスタは入力または出力のためのポートの設定を許します。デバイスは、とても簡単であるので、入力データが端末に到着するとき、それを確実にプローブ (調べる) ことは不可能です。したがって、カーネル設定では、デバイスのベースアドレスを指定しなければなりません。デバイスドライバは、周辺機器の I/O ポートに対応する 4 つのキャラクタデバイスを提供します。読み込みまたは書き込みのためにデバイスをオープンすることは、入力または出力のための対応するハードウェアポートを自動的に設定します。ブート時には、すべてのポートは、外部の回路を破損することを避けるために入力として設定します。
一連の ioctl(2) 要求によって、ポーリングされた入力と一定速度の出力は高価なユーザ/カーネルコンテキストスイッチなしでドライバレベルで効率的に実行されるます。ドライバは 3 つの異なった方法で I/O を実行することができます:
- Basic
- 読み込みまたは書き込み操作は、読み込みか、またはバス速度でポートにデータを書き込んだ後に直ちに返ります。
- Paced
- データは、個別の ioctl(2) 呼び出しによって指定された間隔でポートへ、または、ポートから転送されます。
- Differential
- (入力専用です。) 前のポート値と異なっているポート値だけを返します。
ペース間隔は増加する Hz 単位で指定されます。 n 秒のペースに設定すると、 n 秒ごとに読み込まれるか、または書き込まれている 1 未満の値となります。単一バイトの読み込み/書き込み操作は、完了するのに少なくとも n 秒かかります。
次の ioctl(2) 呼び出しがサポートされています:
- PBIO_SETDIFF
- 3 番目の引数のポインタを整数として受け付けて、整数が 0 以外であるなら、差異 (differential) 入力としてドライバを設定します。入力ペース速度は、ドライバが変更された値のためのポートを調べるために使用される周期的な間隔を決定します。
- PBIO_GETDIFF
- 3 番目の引数のポインタを整数として受け付けて、整数を差異入力のための最後に設定された値に設定します。
- PBIO_SETIPACE
- 3 番目の引数のポインタを整数として受け付けて、ドライバの入力ペース速度を、その整数の値に設定します。
- PBIO_GETIPACE
- 3 番目の引数のポインタを整数として受け付けて、整数を入力ペースのために最後に設定された値に設定します。
- PBIO_SETOPACE
- 3 番目の引数のポインタを整数として受け付けて、ドライバの出力ペース速度を、その整数の値に設定します。
- PBIO_GETOPACE
- 3 番目の引数のポインタを整数として受け付けて、整数を出力ペースのために最後に設定された値に設定します。
関連ファイル
- /dev/pbio0a
- ポート A (8 ビット I/O)。
- /dev/pbio0b
- ポート B (8 ビット I/O)。
- /dev/pbio0ch
- ポート C 上側 (4 ビット I/O)。
- /dev/pbio0cl
- ポート C 下側 (4 ビット I/O)。
関連項目
Diomidis Spinellis, The information furnace: Consolidated home control, Personal and Ubiquitous Computing, 1, 7, 53-69, 2003.歴史
pbio デバイスは、 FreeBSD 4.1 下ではじめて使用されました。作者
<dds@aueb.gr>バグ
PCL-724 カードの入力の 1 つは、割り込みを発生させるようにオプションで配線することができます。この機能はサポートされていません。January 14, 2005 | FreeBSD |