23.2 Parallel Port Types
Parallel port hardware may be of five types, described below in the
order of their appearance in PCs. A computer may contain any of these
port types, and may include ports of more than one type. Earlier
ports are limited in functionality and performance. Later ports
provide increased functionality and performance, and may often be
configured to emulate earlier port types when necessary to support
older peripherals.
- Unidirectional 4-bit parallel ports
-
The unidirectional 4-bit parallel port, also
called a standard parallel port (SPP), is based
on the defacto Centronics standard, and was the
type of parallel port supplied with the original IBM PC and its
clones. These ports are misnamed, as they are not unidirectional and
are not limited to 4-bit transfers. An SPP does 8-bit output and can
accept 4-bit (nibble) input.
In theory, these ports are limited to using a two-meter (about
six-foot) cable, but this distance can be extended to three to five
meters (10 to 16 feet) by using a high-grade parallel cable.
Unidirectional 4-bit parallel ports are commonly found in older
desktop and laptop systems, and are still supplied on some low-end
I/O cards. These ports provide native throughput of 40 to 60 KB/s,
although certain design tricks can push this to the 150 KB/s range.
- Bidirectional 8-bit parallel ports
-
When IBM introduced the PS/2 line in 1987, all but the two
lowest-cost models (the Models 25 and 30) included a
bidirectional 8-bit parallel port. Initially,
these were non-DMA ports, called Type
1 ports by IBM. The parallel ports
included with later PS/2 systems could also be configured as
Type 3 ports, which use
DMA. These ports support both 8-bit input and output, and provide
about 75 KB/s to 300 KB/s throughput, depending on characteristics of
the port itself, how it is configured, the speed of the external
device, and the quality of the port driver.
Recent notebook and desktop systems often provide a bidirectional
8-bit mode for their parallel ports, as do some add-on port cards.
Bidirectional 8-bit parallel ports provide better throughput than do
4-bit ports for connecting external devices like tape drives and
parallel port network adapters, if the device can take advantage of
the 8-bit functionality. Note that some vendors also call 4-bit ports
"bidirectional," so the terminology
used to describe the port does not guarantee its level of
functionality.
- Enhanced parallel ports (EPP)
-
The throughput limitations of even the Type 3 bidirectional 8-bit
parallel ports soon became obvious as page printer technology
improved. Manufacturers of scanners, storage devices, and other
external peripherals were also starting to use the parallel port as
an inexpensive alternative to expensive SCSI or proprietary
interfaces. A superior parallel port technology was clearly needed.
Xircom, Intel, and Zenith Data Systems got together and came up with
the enhanced parallel port, or EPP.
EPP offered performance and other advantages while maintaining
backward SPP compatibility, so it quickly came into widespread use.
There soon coalesced an informal confederation of manufacturers whose
purpose was to promote and enhance the EPP standard. This group
ultimately solidified as the EPP Committee, and successfully lobbied
the IEEE 1284 committee to include EPP as an advanced mode in the
IEEE 1284 specification described later in this section.
EPP supports 8-bit bidirectional communications at ISA bus speeds,
providing throughput similar to that of 8-bit ISA bus cards. EPP
provides theoretical maximum throughput of about 2 MB/s, and typical
real-world throughput of more than 1 MB/s. Many 386 and 486 systems
and most reasonably recent I/O expansion cards include EPP-capable
parallel ports.
- Extended capabilities ports (ECP)
-
EPP was a reasonably satisfactory solution and was first to market,
but Microsoft and Hewlett-Packard had been working on their own
improved parallel port technology, which they named the
extended capabilities port, or ECP. Like EPP,
ECP supports 8-bit bidirectional communications at ISA bus speeds.
Unlike EPP, ECP uses DMA, provides a FIFO buffer of at least 16
bytes, and includes hardware data compression. These features allow
ECP to provide better throughput than EPP—theoretically more
than 2 MB/s, but typically about 2 MB/s actual. Some 486 systems,
most Pentium and higher systems, and recent I/O expansion cards
include ECP-capable parallel ports.
- IEEE 1284 parallel ports
-
The increasing diversity of parallel port hardware and the resulting
potential for incompatibilities made it desirable to develop an
umbrella standard that would combine and codify these earlier
adhoc standards into a single formal standard.
The resulting document, 1284-1994
IEEE Standard
Signaling Method for a Bidirectional
Parallel Peripheral Interface for Personal Computers, does so by
defining five parallel transmission modes. IEEE 1284-compliant
parallel port hardware, available on recent computers, motherboards,
and expansion cards, can use one or more of the following modes to
emulate earlier parallel port hardware, thereby ensuring both
compatibility and optimum performance with almost any parallel
peripheral.
- Compatibility Mode
-
Compatibility Mode, also called
Centronics Mode or Standard
Mode, is a forward unidirectional mode that corresponds to
the original SPP definition, and is included in the IEEE 1284
definition for backward compatibility with the installed base of
SPP-only peripherals. Transferring a byte in Compatibility Mode
requires four I/O instructions and additional overhead instructions,
which limits throughput to about 150 KB/s. Pure IEEE 1284
Compatibility Mode is seldom seen in practice. Compatibility Mode as
implemented by most integrated 1284-compliant controllers includes a
FIFO buffer, which is used in conjunction with the Compatibility Mode
protocol. This hybrid mode, which is not a part of the official IEEE
1284 standard, may be called Buffered Mode,
Fast Centronics Mode, FIFO
Mode, or Parallel Port FIFO Mode. It
improves Compatibility Mode throughput to 500 KB/s or more by
substituting hardware strobing for the software strobing used in true
IEEE 1294 Compatibility Mode. The elimination of software handshaking
nearly eliminates latency, and can increase throughput to 500 KB/s or
more.
- Nibble Mode
-
Nibble Mode is the slower of the two reverse
channel modes defined by IEEE 1284. Nibble Mode may be combined with
Compatibility Mode or a proprietary forward channel mode to yield
full bidirectional capability. The advantage to Nibble Mode is that
it can be used with any parallel cable and any parallel port
hardware, including the original unidirectional 4-bit ports. The
disadvantage to Nibble Mode is that it is the slowest way to send
data from a peripheral to the PC. Like Compatibility Mode, Nibble
Mode data transfer is managed by a software driver, which restricts
throughput to about 50 KB/s. For printers, which use the reverse
channel to transfer only small amounts of status information, this is
not a significant limitation. For parallel interface disk and tape
drives, network adapters, and similar devices that need full
bidirectional bandwidth, Nibble Mode reverse channel throughput is
wholly inadequate and should be used only as a last resort.
- Byte Mode
-
Byte Mode is the faster of the two reverse
channel modes defined by IEEE 1284. Byte Mode corresponds to the
reverse channel mode of the 8-bit bidirectional parallel interface
originally supplied with IBM PS/2 computers. In contrast to Nibble
Mode, which transfers four bits at a time and requires two data
transfer cycles to transfer one byte, Byte Mode transfers a full byte
in one data cycle, using the eight data lines to do so. Byte Mode
reverse channel throughput is comparable to forward channel
throughput in unbuffered Compatibility Mode—about 150 KB/s.
Using Compatibility Mode and Byte Mode together provides a
half-duplex bidirectional connection that is comparable to the
original IBM PS/2 bidirectional parallel interface.
- EPP Mode
-
EPP Mode corresponds to the adhoc Xircom/Intel/ZDS EPP definition. Intel first
implemented EPP on the 82360 I/O chip that was part of the 386SL
chipset. This pre-1284 EPP implementation is called EPP 1.7. The IEEE
1284-1994 EPP Mode definition formalizes EPP 1.7, but with some minor
changes in signal definitions. As a result, not all EPP peripherals
work reliably with all EPP ports. Any 1284-compliant EPP peripheral
may be used with either an EPP 1.7 port or a 1284-compliant EPP port.
An EPP 1.7 peripheral may be used with an EPP 1.7 port, but may or
may not function properly with a 1284-compliant EPP port. EPP Mode
can achieve data throughput comparable to an ISA bus card—on
the close order of 0.5 to 2.0 MB/s.
- ECP Mode
-
ECP Mode corresponds to the adhoc Microsoft/HP ECP specification.
|
The original IEEE-1994 standard is supplemented by IEEE P1284.3,
Standard for Interface and Protocol Extensions to IEEE 1284-1994
Compliant Peripherals and Host Adapters. For our purposes, the only
notable new feature of IEEE P1284.3 is that it defines additional
protocols that allow daisy-chaining parallel-connected devices.
Windows versions prior to Windows 2000 do not support IEEE P1284.3
functions. Windows 2000/XP has partial IEEE P1284.3 support,
including the ability to select and operate more than one IEEE 1284.3
daisy-chain device and an end-of-chain device, and basic support for
the Datalink Layer. Windows 2000/XP does not
support IEEE 1284.3 multiplexors or interrupts for IEEE 1284.3
daisy-chain devices.
|
|
|