Parallel Communication Overview

In the Beginning

The original 8-bit parallel port was developed by IBM in 1981 as a faster interface to dot matrix printers than the then standard one-bit serial port. The parallel port greatly increases transfer speeds by using an eight wire connector which transmits the eight bits in a byte of data simultaneously, thus sending an entire byte of data in the time it takes to send a single bit in a serial system. This byte of data is supplemented by several other handshaking signals, each sent on its own wire, which ensure that data transfer takes place smoothly.

Serial Communication - Parallel COmmunications
Serial vs. Parallel Communication

The major drawback to the original parallel port or Standard Parallel Port (SPP) was that it allowed for communication in only one direction--computer to printer. While there were wires which the printer could use to indicate its status to the computer, it could do no more than put a positive or negative charge on these wires. (See the table below for a comparison of parallel protocols.) This arrangement effectively limited the parallel port's potential and precluded it from being used in bi-directional communication such as is required for external storage devices.

PIN SPP Function EPP Function
1 STROBE: Used by computer to tell printer that a complete character has been transmitted and is ready for printing WRITE: Indicates a write or read cycle is in progress
2-9 Data transmission from computer to printer Bi-directional address/data lines
10 ACK: Used by printer to tell computer it has received and printed the transmitted data and is ready for more. INTR: Used by an EPP peripheral to generate an interrupt on the host computer
11 BUSY: Used by printer to regulate data flow from computer WAIT: Handshaking signal indicates when a read or write cycle may be stopped or begun
12 PE: Used by printer to tell computer it is out of paper Defined differently by each EPP peripheral
13 SELECT: Used to indicate to the computer that the printer is online Defined differently by each EPP peripheral
14 AUTOFEED: Printer carriage return DATASTB: Indicates that a Data_Read or Data_Write is in progress
15 ERROR: Printer indicates an unspecified operational error Defined differently by each EPP peripheral
16 INIT: Computer initializes printer RESET: EPP Peripheral is reset by computer
17 SELECTIN: Allows printer to be brought on or off line by computer ADDRSTB: Indicates an Address_Read or Address_Write operation
18-25 Ground Ground


The EPP Advantage

IBM soon realized the advantages to be gained from enabling the parallel port for bidirectional communication. While early bidirectional efforts did indeed provide for two way transfer, they did little to make the parallel port a viable alternative for high speed data transfer.

To address this problem, a new standard for parallel communications, known as IEEE 1284 for the committee which established it, was approved in 1994. This new standard sought to correct the major drawbacks to the original parallel port structure. The first major drawback was that not all parallel peripherals used the same mechanical interface, and thus the maximum cable distance between computer and peripheral could only extend 6 feet. IEEE 1284 sets standards for the cable, connector and electrical interface which guarantees interoperability between all parallel peripherals. The specified configuration ensures that data integrity is maintained, even at the highest data rates, and at a distance of up to 30 feet.

IEEE 1284 also set design standards for true bidirectional communication between devices. However, the real advance came with the Enhanced Parallel Port (EPP) protocol. EPP utilizes data cycles that not only enable bidirectional communication, but also provide for real-time data transfers by permitting intermixing of block transfers, read operations and write operations.

The EPP specification also solves the speed problem. Parallel data transfer was largely performed by software in SPP systems, and thus data transfer rates were limited to 150 kbps. The new EPP standard specifies a hardware driven handshake system of data transfer that allows significantly higher transfer speeds--up to 2 Mbps. In EPP mode, data transfer takes place as a single software instruction, and the rest of the transfer is handled by hardware. This allows an EPP port to function as a 16- or 32-bit data transfer interface using 8-bit I/O hardware, in effect enabling EPP peripherals to achieve the same speed and efficiency as their ISA bus counterparts.