The Parallel Port: Negotiation Sequence
Signal Flow |
※ |
A 1284 compliant peripheral device must implement the negotiation sequence, because this is how reverse channel and advanced modes are activated.
| /Select | /AutoFeed | D0,...,D7 | /Strobe | /Ack | /Error | Select | PE | |||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1284Active | HostBusy | HostClk | PtrClk | /DataAvail | XFlag | AckDataReq | ||||||||||||||||||||||||||||||||||||
| 1 |
|
|
|
|
|
|
|
|
No extended 1284 mode must be active | |||||||||||||||||||||||||||||||||
| 2 |
|
|
|
|
|
|
|
|
H ensures sane state of control lines | |||||||||||||||||||||||||||||||||
| 3 |
|
|
|
|
|
|
|
|
H places negotiation byte on data lines | |||||||||||||||||||||||||||||||||
| 4 |
|
|
|
|
|
|
|
|
H requests negotiation | |||||||||||||||||||||||||||||||||
| 5 |
|
|
|
|
|
|
|
|
P acknowledges negotiation | |||||||||||||||||||||||||||||||||
| 6 |
|
|
|
|
|
|
|
|
H strobes negotiation byte into P | |||||||||||||||||||||||||||||||||
| 7 |
|
|
|
|
|
|
|
|
H waits (for >= 0.5us?) | |||||||||||||||||||||||||||||||||
| 8 |
|
|
|
|
|
|
|
|
H requests answer | |||||||||||||||||||||||||||||||||
| 9 |
|
|
|
|
|
|
|
|
P places abilities on bus | |||||||||||||||||||||||||||||||||
| 10 |
|
|
|
|
|
|
|
|
P signals valid answer | |||||||||||||||||||||||||||||||||
| 11 |
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||
Notes
- /Init must be constantly high during negotiation.
-
If the /Strobe signal is missing, a peripheral should return to the de-selected Centronics compatibility state when /AutoFeed goes high again. There is a proper 1284 termination sequence, too.
Negotiation Byte |
※ |
The negotiation byte is a combination of bits that the host uses to negotiate a mode, select a sub-device, and possibly request a device ID from the peripheral.
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
|---|---|---|---|---|---|---|---|---|
| 0 | 0 | reserved | ||||||
| 1 | 0 | 0 | 0 | EPP mode | ||||
| 0 | 0 | 1 | 0 | ECP mode without RLE | ||||
| 0 | 1 | 1 | 0 | ECP mode with RLE | ||||
| 0 | 0 | 0 | 1 | Byte mode | ||||
| 0 | 0 | 0 | 0 | Nibble mode | ||||
| 0 | no device ID requested | |||||||
| 1 | device ID requested | |||||||
| 0 | without extensibility link | |||||||
| 1 | with extensibility link |