Barcode Transfer 3 - 3
Handshake Mode
Transfer Control
Handshake Mode provides an acknowledgment mechanism that allows the controller to acknowledge that the
barcode data in the input buffer has been read. This alleviates the possibility of the EA3600 overwriting the input
data before it has been read by the controller.
When new data is loaded into the Input Data field, the Update Counter is incremented by one to indicate new data
is available. The Input Data field is not overwritten by the EA3600 until the ACK Counter in the Output data is set to
match the Update Counter. The controller uses the change in the Update Counter to determine that data is
available, and updates the ACK Counter once it has completed processing the data.
The Update Counter increments consecutively in the range of 1-65535. Zero (0) is a special value and is used to
indicate that there is an issue with the barcode transfer.
Barcode Data
In Handshake Mode (non-fragmented) each barcode is sent in a single block in the Input Data field to the
controller.
If the barcode data is larger than the size of the Input Data field it is truncated to the available size and the Input
Data Overflow bit is set in the Status Register to indicate that the barcode data is truncated.
Barcode Transfer Error Handling
If the EA3600 detects an error in the barcode transfer (the connection was reset, transfer was disabled, etc.), the
Update Counter is set to zero (0) and any barcode transfer that is in progress stops.
When the controller detects an error in the barcode transfer it should set the ACK Counter to zero (0). When the
EA3600 detects that the ACK Counter was set to zero (0) then any barcode transfer in progress is stopped and the
Update Counter sets to zero (0).
Once the EA3600 sets the Update Counter to zero (0), it waits for the ACK Counter to be set to zero (0) by the
controller before proceeding. Once both counters are zero (0), any pending barcode transfer is restarted.
Sequence Chart
Figure 3-1 illustrates the Handshake Mode mechanism when transferring two barcodes.