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.