Nibble Mode

The Nibble mode is the most common way to get reverse channel data from a printer or peripheral. This mode is usually combined with the Compatibility mode or a proprietary forward channel mode to create a complete bi-directional channel.

All of the standard parallel ports provide 5 lines from the peripheral to the PC to be used for external status indications. Using these lines, a peripheral can send a byte of data (8-bits) by sending 2 nibbles (4-bits) of information to the PC in two data transfer cycles. Unfortunately, since the nACK line is generally used to provide a peripheral interrupt, the bits used to transfer a nibble are not conveniently packed into the byte defined by the Status register. For this reason, the software must read the status byte and then manipulate the bits in order to get a correct byte.

Table 1 identifies the signal names for the Nibble mode. Figure 1 shows the basic data handshake for a nibble mode transfer from the peripheral to the host.

Table 1 -- Nibble Mode Signals

SPP Signal

Nibble Mode Name

In/Out

Description -- Signal usage when in Nibble Mode data transfer

nSTROBE

nSTROBE

Out

Not used for reverse data transfer

nAUTOFEED

HostBusy

Out

Host nibble mode handshake signal. Set low to indicate host is ready for nibble. Set high to indicate nibble has been received.

nSELECTIN

1284Active

Out

Set high when host is in a 1284 transfer mode.

nINIT

nINIT

Out

Not used for reverse data transfer

nACK

PtrClk

In

Set low to indicate valid nibble data, set high in response to HostBusy going high.

BUSY

PtrBusy

In

Used for Data bit 3, then 7

PE

AckDataReq

In

Used for Data bit 2, then 6

SELECT

Xflag

In

Used for Data bit 1, then 5

nERROR

nDataAvail

In

Used for Data bit 0, then 4

DATA[8:1]

Not Used

 


Figure 1 -- Nibble Mode Data Transfer Cycle 1284 Nibble Mode phase transition:

  1. Host signals ability to take data by asserting HostBusy low
  2. Peripheral responds by placing first nibble on status lines
  3. Peripheral signals valid nibble by asserting PtrClk low
  4. Host sets HostBusy high to indicate that it has received the nibble and is not yet ready for another nibble.
  5. Peripheral sets PtrClk high to acknowledge host
  6. States 1 through 5 repeat for the second nibble

Nibble mode, like the Compatible mode, requires that the software drive the protocol by setting and reading the lines on the parallel port. Nibble mode is the most software intensive mode for reverse channel data communication. For this reason, there is a severe limitation of approximately 50K bytes per second for this type of data transfer. The major advantage of this combination of modes is the ability to operate on all PCs that have a parallel port. The performance limitations incurred by the Nibble mode operation does not have much visible effect on peripherals that have low reverse channel requirements, such as printers, but can be nearly intolerable when used for LAN adapters, disk drives or CD ROM drives.

 

   | Home | Support | Product | News | 1284 Info | Ordering | Contact Us | Search |