Handshaking
Three hardware handshake lines asynchronously control the transfer of message bytes between devices. This process is a three-wire interlocked handshake, and it guarantees that devices send and receive message bytes on the data lines without transmission errors.
Line | Description |
NRFD (not ready for data) | Listening device is ready/not ready to receive a data byte. This line is driven by all devices when receiving commands, but only by Listeners when receiving data messages. It is also used by the Talker to signal high-speed transfers (HS488). |
NDAC (not data accepted) | Listening device has/has not accepted a message byte. This line is driven by all devices when receiving commands, but only by Listeners when receiving data messages. |
DAV (data valid) | Talking device indicates signals on data lines are stable (valid) data and can be accepted safely by devices. The Controller controls DAV when sending commands and the Talker controls DAV when sending data messages. |
The handshaking sequence is as follows:
- The Talker unasserts DAV and then monitors the NDAC and NRFD lines that are controlled by the Listener.
- The Talker places a byte of data on the DIO lines.
- The Talker waits for NRFD to be unasserted by the Listener.
- The Talker asserts DAV.
- The Listener(s) immediately assert(s) NRFD, which acknowledges to the Talker that the current byte is being processed.
- Listener accepts the current byte and unasserts NDAC.
- The Talker unasserts DAV.
- The Listener(s) assert(s) NDAC in preparation for the next byte.