TransCore 05531 User Manual
Encompass 4/4800 Multiprotocol Reader System Guide
6-14
Asynchronous Message/Command Message Collision
If the host receives an asynchronous reader transmission at the same time it transmits
a command, it ignores the asynchronous message and waits for the Encompass 4/4800
Multiprotocol Reader’s response. The Encompass 4/4800 Multiprotocol Reader
retransmits asynchronous data after it transmits the command message.
a command, it ignores the asynchronous message and waits for the Encompass 4/4800
Multiprotocol Reader’s response. The Encompass 4/4800 Multiprotocol Reader
retransmits asynchronous data after it transmits the command message.
ECP Reliability
An undetected error is defined as a message having incorrect data or status but no par-
ity or CRC errors. An error transaction is defined as a message having either a parity
or CRC error. Laboratory testing indicates an undetected error rate of less than one
undetected error per 1,000,000 error transactions with parity enabled.
ity or CRC errors. An error transaction is defined as a message having either a parity
or CRC error. Laboratory testing indicates an undetected error rate of less than one
undetected error per 1,000,000 error transactions with parity enabled.
To ensure this error rate is not exceeded, the host must enable parity and adhere
closely to the timing specifications discussed previously in this chapter in the “Timing
and Synchronization” section.
closely to the timing specifications discussed previously in this chapter in the “Timing
and Synchronization” section.
CRC Calculation
The CRC used by the ECP is based on a 16-bit algorithm. The algorithm, as imple-
mented, operates on eight-bit characters, for example, seven-bit ASCII character plus
one optional parity bit. The 16-bit result is converted to four ASCII hex characters and
is appended to messages transmitted by the Encompass 4/4800 Multiprotocol Reader.
mented, operates on eight-bit characters, for example, seven-bit ASCII character plus
one optional parity bit. The 16-bit result is converted to four ASCII hex characters and
is appended to messages transmitted by the Encompass 4/4800 Multiprotocol Reader.
The Encompass 4/4800 Multiprotocol Reader accepts four ASCII < ` > characters (60
hex) as a wild card CRC value in lieu of a valid four-character CRC value to facilitate
testing and diagnostic checkout.
hex) as a wild card CRC value in lieu of a valid four-character CRC value to facilitate
testing and diagnostic checkout.
The Encompass 4/4800 Multiprotocol Reader implements the algorithm with a 512-
byte lookup table to reduce the processing overhead requirements.
byte lookup table to reduce the processing overhead requirements.
To simplify the implementation of the CRC algorithm by host software developers,
several examples of the calculation are provided in C source code on the following
pages. The calculation may be performed with or without a lookup table, depending
on the trade-off between code memory and processing overhead.
several examples of the calculation are provided in C source code on the following
pages. The calculation may be performed with or without a lookup table, depending
on the trade-off between code memory and processing overhead.
Example 1 presents an example of a function (CALCCRC) that calculates the CRC
value through a call to a separate function (UPDCRC).
value through a call to a separate function (UPDCRC).
unsigned short calccrc(char *message)
{
unsigned short crc = 0;
for ( ; *message != (char)0;message++)
crc = updcrc(*message & 0xff, crc);
return (crc)
}