[PCAT]: パラレルポート関連
<Home> → <My Glossary Index> → <Development Room> → <PCAT> → <[PCAT]: パラレルポート関連>
はじめに
パラレルポートは、主にプリンターへのデータ入出力に使用されているインターフェースです。
パラレルポートの特徴としては以下の通り。
- Printer のインターフェースとして使用
パラレルポートは、主に Printer へのデータ入出力に用いられています。他にも
parallel port HDD や parallel 対応の Zip drive にも使用されています。
現在('05/01)は、パラレルポートをサポートしていない PC も多く存在しており、よりデータ転送の早い
USB に置き換われているようです。
<[USB]: USB Printer Class>
- パラレルなデータ転送方式
シリアルポートとよく比較されるのですが、パラレルポートは複数のデータ信号線を用いて一気にデータ転送を行います。それに対しシリアルポートは、少数のデータ信号線で
1-bit 単位でデータ転送を行います。パラレルポートの他にも、ATA/ATAPI、SCSI、FDC
等もパラレルでデータ転送を行うインターフェースです。
- パラレル転送方式の衰退
規格が考えられた当時は、パラレルにデータ転送を行うことが出来るのでシリアルポートより早いデータ転送が可能でした。しかし、現在では以下の理由によりパラレルポートを用いたインターフェースは少なくなり、USB
や Serial ATA や IEEE-1394 等のシリアル転送方式に置き換わっています。
- ケーブルのコスト
パラレル転送はシリアル転送と比べ、一本のケーブルに対しての線が多くなります。線が多ければ多いほどコストがかさむことより、より安く提供が可能なシリアル転送を選択するケースが多くなっています。
- ノイズの影響
ケーブルは、長くなれば長くなるほど、線が多ければ多いほど、ノイズの影響を受けやすくなります。線の間にグランド線を挟んだり、ヨリ線にする、被覆を厚くする等の工夫が用いられることになりますが、コストへの跳ね返りが大きいです。
最近の傾向では、よりデータ転送を早めるために信号線を減らす代わりに、高度なノイズ対策を用いる方法が主流になっています。
- 取りにくい同期
パラレル転送方式の場合、全ての信号線が相手側のデバイスにデータが届くタイミングの同期を取るのが難しいといわれています。パラレル転送の場合、ケーブル線が多くなるので線の品質にバラツキが出てくる可能性が高かったり、ケーブル長が揃っていないことによる遅延などの問題が多く存在します。
- セントロニクス準拠と IEEE-1284
パラレルポートは、セントロニクス (Centronics Data Computer) 社の製品を元にスタンダードデファクト
(de facto standard、業界標準) されました。「セントロニクス準拠」とはセントロニクス社の規格に合った製品のことを指します。
その後、IEEE がパラレルポートの標準化を行っています。「IEEE-1284」はIEEE
が行った標準化の仕様全般を指しています。
- 複数存在する転送モード
パラレルポートによる転送方式は、初期の STROBE 信号によるデータ転送の他に、複数のデータ転送を持っています。
- ニブル (Nibble) 転送モード
Nibble 転送は、双方向通信に使用するモードです。
初期の仕様では PC → デバイス(ex. プリンター) によるデータ転送しかありませんでした。Nibble
転送は、PC からの要求でデバイスが情報を返却するモードです。このモードをサポートしているデバイスは、PC
へ任意の情報を返却します。
また個々のデバイスを認識するための「Device ID 情報」もこの Nibble 転送の亜流として定義されています。PnP
では、Device ID を元にしてデバイスを判別します。
ちなみに Nibble とは「かじる」という意味ですが、ここでは 1byte の半分、0.5byte
の意味で使用されています。Nibble 転送は一回の転送で 0.5 byte しか取得できません。当然、データ転送速度はかなり遅いです。
- bi-directional 転送モード
別名 PS/2 転送。Nibble では 0.5byte 転送していたのを bi-di 転送では 1 byte
単位で転送します。転送速度を上げるためのモードだと思いますが、あまり使用されるケースは少なかったように感じます。
- ECP (Extended Capabilities Port) 転送モード
ECP 転送は、FIFO を用いた転送効率を上げたモードです。
ハードウェア FIFO を持つことにより、parallel port へのアクセスを極力減らすことが出来、ハードウェア側でデータ転送に関わる信号線を制御するので
CPU 使用率も下げる効果があります。この転送方式は PC、デバイス側双方でサポートされている必要があります。PC
側では ECP をエミュレート(Software ECP) することが出来ますが、効率は
Normal モードと変わりません。
[ECPとは 【Extended Capabilities Port】(IT用語辞典 e-Words)]
- EPP (Enhanced Parallel Port) 転送モード
EPP 転送は、複数の機器を制御するためのモードです。
Normal モードでは、一台のデバイスしか制御できません。EPP 転送モードはパラレルポートに複数の機器がぶら下がっている(デイジーチェーン)デバイスを制御するためのモードです。この転送方式は
PC、デバイス側双方でサポートされている必要があります。
そもそもデイジーチェーンを行う市場からの要求が少なかったためかサポートしているデバイスは非常に少なかった記憶があります。
[EPPとは 【Enhanced Parallel Port】(IT用語辞典 e-Words)]
- IEEE 1284.3
通称、dot3。ECP や EPP が定義されています。
- IEEE 1284.4
通称、dot4。一台のデバイスで複数の機能を持つことを可能にした転送方式です。パケット単位でデータ転送をやり取りするのが特徴です。USB
と似た雰囲気がありますが、dot4 が商品化されているのは HP の OfficeJet シリーズ位で他には見たことがありません。
- 制御しやすい信号線
パラレル転送は、シリアル転送と異なり、0/1 を直接制御できる信号線が多いです。このため、独自の転送方式を持つデバイスや日曜大工的な電子工作によく利用されています。ただし直接制御できるのは
DOS/Windows 9x までで、最近の OS では、オブジェクト化が進み直接制御することは困難になっています。
#直叩き出来るデバイスドライバに置き換えてしまえばよい話ですが念のため。
PC/AT での実装
以下のリソースが予約されています。
- LPT1 (parallel 2)
base I/O = 0x378, IRQ = 7
- LPT2 (parallel 1)
base I/O = 0x3BC, IRQ = 5/7
- LPT3 (paralllel 3
base I/O = 0x278, IRQ = 5/7
IBM-PC の仕様では 0x3BC が parallel 1 に割り当てられるのですが、市場では
0x378 に LPT1 が割り当てられることが多いようです。何故こんな違いが生まれたのかは定かではありません。
DMA については ECP/EPP に割り当てられることがありますが、積極的には使用されていないようです。IRQ
も安定性の面で不安定なことが多く、これもあまり利用されておらず結果、I/O
の polling による転送が一般のようです。
以下は Windows 2000 on VMware 4 から見たリソース状況です。ECP は有効に出来ない様子。
以下は Windows 2000 (実機) で ECP+EPP (IRQ=7, DMA=3) で設定したリソース状況です。base
から +0x400 取ってあるのは ECP の仕様でしょう。EISA の虫垂かな。
ハードウェア仕様
PC/AT での初期の実装では i8255 が使用されています。
- i8255 (Intel)
- μPD71055 (NEC)
- MSM82C55 (OKI)
[http://www.okisemi.com/datadocs/doc-jpn/msm82c55a_2.pdf(沖電気データシート)]
後に、Hardware ECP をサポートし、Serial port/FDC/KBC/RTC/IrDA 等の複数の機能を実装した
SuperI/O (SIO) と言われるチップに置き換わっています。
用語、特集
Linux
<Home> → <My Glossary Index> → <Development Room> → <PCAT> → <[PCAT]: パラレルポート関連>
Copyright (c) 2005 Makoto NARA (Mc.N), All rights reserved.
<Terms of Use>