CADX Services, Inc. Logo

CADX Services, Inc.
(585) 624-1491

10 Year Seal

EPP Printer Port / Enhanced Parallel Port

Pin No. Signal Name
1 Write #
2 Address/Data 0
3 Address/Data 1
4 Address/Data 2
5 Address/Data 3
6 Address/Data 4
7 Address/Data 5
8 Address/Data 6
9 Address/Data 7
10 Interrupt #
11 Wait # (paired with 16)
12 Paper End *
13 Select *
14 Data Strobe #
15 Error *
16 Initialize Printer *(paired with 11)
17 Address Strobe #
18 Ground (data)
19 Ground (Paired with 1)
20 Ground (Paired with 10)
21 Ground (Paired with 12)
22 Ground (Paired with 13)
23 Ground (Paired with 14)
24 Ground (Paired with 15)
25 Ground (Paired with 17)
25 Pin Parallel Connector

Each signal is identified by its pin number on a DB-25 connector and its signal name.

In it's SPP mode, all signals are essentially the same as a Standard Parallel Port. When the enhanced features are enabled all eight data lines are used and only five signal lines, although these lines change definition (changed lines are indicated by a '#' in the table above). The other four lines (indicated by a '*') are used for application-specific purposes.

Address/Data bits

These 8 lines carry the information from device to device, each line carries a bit of information to be sent or received, the information here travels in both ways since this is a bidirectional port unlike the SPP port where information on these lines travel from the computer to the device. These lines function with standard TTL voltages, 5 volts for a logical 1 and 0 volts for a logical 0.

Write

This line is used to let devices connected to the port, that data is beeing sent on the data lines (pins 2-9), it is normally high and goes low when data is being transmitted.

Interrupt

Used by devices connected to the EPP to request an interrupt, when in normal mode the line is low and goes high when an interrupt requested by a device.

Wait

The wait line is used to indicate that a data transfer was successfull. The line is high in it's normal state, when data has been received it goes low and will go back high when it's ready to receive the next byte.

Data strobe

This line is essentially the same as the strobe line on the SPP, when a device sends data, it will put the byte information on all 8 data lines and then will put this line low to let the other device connected that it can sample the data present.

Address strobe

The address strobe works the same as the data strobe line, but instead of indicating regular data, it an adress, that can be used to select a device connected to the port or select a register. The line is normally high and goes low when active.

Other lines

The EPP specification lets the four other lines used by the Standard Parallel Port, to be deffined as needed by the specific needs of each application. The four lines are pin 12 (Paper End), 13 (Select), 15 (Error) and 16 (Init).


ECP Printer Port Extended Capabilities Port

ECP is an extension of the EPP design, since EPP didn't provide for the way to carry out each transfer every step of the way, Hewlett-Packard and Microsoft combined their efforts to pick up where EPP leaves off. The first version (1.0) was first published in November 1992 and many new versions have been published since. ECP adds two different modes of communications. A fast two way mode and another faster two way mode by using simple RLE compression scheme.

ECP as with EPP is backwards compatible with old style printers and devices, but when advance devices are connected the ECP port can transfer data at higher speeds and with more versatility. By including a complete protocol, every transfer is negotiated by asking the connected device it's capabilities. This means that when using a printer with ECP capabilities and using compression, the port will automatically transfer the data in the best and fastest possible way.

By using a simple compression called RLE (Run Length Encoding), the ECP port can boost the speed of transmitting data. The RLE scheme is a simple byte level data compression system that will effectively compress long sequences of the same byte by using a two byte code that is transmitted by sending the repeated byte and the number of times it is repeated in the sequence. This method works over repeated byte strings of up to 128 bytes, which means that it allows a maximum compression of 64:1. This method is good for images that often contain long streams of the same bytes, but in regular text output, this method is not very effective.

The ECP port is also designed to accept multiple devices on a single port. To accomplish this task, it uses its own addressing scheme, it sends a channel address command on the parallel port bus (data lines). By doing this the port tells all devices, except the one to witch the stream of data is meant for, to ignore all forthcoming data, until the next channel address command. If no channel address command is sent for a given transfer, it defaults to the address zero. This addressing scheme gives it the possibility to connect up to 128 different devices or channel addresses.


Each signal is identified by its pin number on a DB-25 connector and its signal name.

25 Pin Parallel Connector36 Pin Parallel Connector
DB25   Centronic 36 Pin
Pin No. Signal Name   Pin No. Signal Name
1 Strobe   1 nStrobe
2 Data 0   2 Data 0
3 Data 1   3 Data 1
4 Data 2   4 Data 2
5 Data 3   5 Data 3
6 Data 4   6 Data 4
7 Data 5   7 Data 5
8 Data 6   8 Data 6
9 Data 7   9 Data 7
10 nAcknowledge   10 nAcknowledge
11 Busy   11 Busy
12 PError   12 PError
13 Select   13 Select
14 nAutoFeed   14 nAutoFeed
15 nFault   15 N/C
16 nInit   16 N/C
17 nSelectIn   17 N/C
18 Ground   18 N/C
19 Ground   19 Ground
20 Ground   20 Ground Connector
21 Ground   21 Ground
22 Ground   22 Ground Connector
23 Ground   23 Ground
24 Ground   24 Ground Connector
25 Ground   25 Ground
      26 Ground Connector
      27 Ground
      28 Ground Connector
      29 Ground
      30 Ground
      31 nInit
      32 nFault
      33 Ground
      34 N/C
      35 N/C
      36 nSelectIn

Standard Parallel Port

This is the original parallel port, it's been used on all PC computers since the very beginning and has mostly remained unchanged over the years. When IBM came up with the first PC, they opted to go along the lines of the the most prominent printer manufacturer at the time, Centronics. This printer manufacturer had developed a set of control signals that was up to the task of controlling computer printers and since many printer manufacturers had been adopting this now standard design, it was the obvious choice to make.

But when IBM constructed it's PC they opted to not use the true Centronics connector which was a 36 conductor Amphenol connector (also known as the Centronics connector). IBM opted for a 25 pin D shell connector also called a DB-25 connector. Since then, printer manufacturers have always used Centronics connectors and PC manufacturers have been using DB-25 connectors. This is the reason why you need this special adapter cable that is known as a printer cable and is now a standard accessory.

Each signal is identified by its pin number on a DB-25 and Centronics 36 pin connector and its signal name.

25 Pin Parallel Connector36 Pin Parallel Connector
DB25   Centronic 36 Pin
Pin No. Signal Name   Pin No. Signal Name
1 Strobe   1 Strobe
2 Data 0   2 Data 0
3 Data 1   3 Data 1
4 Data 2   4 Data 2
5 Data 3   5 Data 3
6 Data 4   6 Data 4
7 Data 5   7 Data 5
8 Data 6   8 Data 6
9 Data 7   9 Data 7
10 Acknowledge   10 Acknowledge
11 Busy   11 Busy
12 Paper End   12 Paper End
13 Select   13 Select
14 AutoFeed   14 AutoFeed
15 Error   15 N/C
16 Init   16 N/C
17 Select In   17 N/C
18 Ground   18 N/C
19 Ground   19 Ground
20 Ground   20 Ground
21 Ground   21 Ground
22 Ground   22 Ground
23 Ground   23 Ground
24 Ground   24 Ground
25 Ground   25 Ground
      26 Ground
      27 Ground
      28 Ground
      29 Ground
      30 Ground
      31 Init
      32 Error
      33 Ground
      34 N/C
      35 N/C
      36 Select In

Strobe

The strobe line is the heart of the parallel port, it tells the printer when to sample the information of the data lines, it is usually high and goes low when a byte of data is transmitted. The timing is critical for the data to be read correctly, all bits on the data lines must be present before the strobe line goes low, to insure data integrity when the printer samples the data lines. The time needed for each byte is about half a microsecond then the the strobe line goes low for about one microsecond and then the data is usually still present for another half microsecond after the strobe goes high. So the total time needed to transmit a full byte is around two microseconds.

Data

These 8 lines carry the information to be printed and also special printer codes to set the printer in different modes like italics, each line carries a bit of information to be sent, the information here travels only from the computer to the printer or other parallel device. These lines function with standard TTL voltages, 5 volts for a logical 1 and 0 volts for a logical 0.

Acknowledge

This line is used for positive flow control, it lets the computer know that the character was successfully received and that it's been dealt with. It's normally high and goes low when it has received the character and is ready for the next one, this signal stays low for about 8 microseconds.

Busy

As seen above (strobe line), each byte takes about 2 microseconds to be sent to the printer, this means the printer is receiving about 500,000 bytes per second (1 sec divided by 2 microseconds), no printer can print this fast, so they came up with a busy line. Each time the printer receives a byte this line will send this line high to tell the computer to stop sending, when the printer is done manipulating the byte (printing, putting it in the buffer or setting it's internal functions) it then goes back low, to let the computer know that it can send the next byte.

Paper End

Also refered to as Paper Empty, this line will go high when you run out of paper, just like the paper out light on your printer, this way the computer will know and can tell you of the problem. When this happens the busy line will also go high so the computer stops sending data. Without this line when you would run out of paper the busy line would go high and the computer would seem to be hanged.

Select

This line tells the computer when it is selected (or online), just like the light on your printer. When the select line is high the printer is online and is ready to receive data, when it's low the computer will not send data.

Auto Feed

Not all printers treat the cariage return the same way, some will just bring the print head to the beginning of the the line beeing printed and some will also advance the paper one line down (or roll the paper one line up). Most printers have a DIP switch or some other way to tell your preference of how to interpret the cariage return. The auto feed signal lets your computer do the job for you, when it put's this signal low, the printer will feed one line when it gets a cariage return, by holding the signal high the software must send a line feed along with the cariage return to obtain the same effect.

Error

This is a general error line, there is no way of knowing the exact error from this line. When no errors are detected, this line is high, when an error is detected it goes low. Some of the errors that can arrise through this line are: cover open, print head jammed, a broken bealt by detecting that the head does not come back to it's home position or any other error that your printer can detect.

Initialize Printer

This line is used to reinitialize the printer, the computer will accomplish this by putting the line, wich is normally high, to it's low state. This is very useful when starting a print job, since special formating codes might have been sent to the printer on the last job, by reinitializing the printer you are sure of not messing up the whole thing, like printing the whole document in italics or something.

Select Input

Many computers give the option of letting the computer the option of putting the printer online or not, by putting this signal high the printer is kept in it's offline state and putting it low the printer is online and will accept data from the computer. Many printers have a DIP switch to let decide if the computer can control the online state, when the switch is active it will keep this line always low, thus keeping the computer from putting the printer offline.

Ground

This is a regular signal ground and is used as a reference for the low signal or logical 0.