System Guide
TransCore Proprietary
6–12
with the same sequence number. If the host detects an incorrect CRC value in an
asynchronous reader transmission, it transmits a NAK message.
Transmission Timeout
If the MPRX does not respond to a host command within a specified interval, the host
software retransmits the command with the same sequence number.
Receive Timeout
If the host receives a
<
som
>
but does not receive a matching
<
eom
>
within a specified
timeout interval, it discards the incomplete message and resets its receiver.
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 MPRX’s response. The
MPRX 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 parity
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
“Timing and Synchronization” on page
.
CRC Calculation
The CRC used by the ECP is based on a 16-bit algorithm. The algorithm, as implemented,
operates on eight-bit characters, for example, a 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 MPRX.
The MPRX 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.
The MPRX implements the algorithm with a 512-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.
Example 1 presents an example of a function (CALCCRC) that calculates the CRC value
through a call to a separate function (UPDCRC).
Summary of Contents for MPRX
Page 19: ...Chapter 1 Introduction...
Page 23: ...MPRX TransCore Proprietary 1 5...
Page 24: ...Chapter 2 Developing the Site Plan...
Page 37: ...Choosing Installing and Removing Tags Chapter 3...
Page 48: ...Installing the MPRX Chapter 4...
Page 64: ...MPRX TransCore Proprietary 4 17...
Page 65: ...General Software Information 5...
Page 70: ...System Guide TransCore Proprietary 5 6...
Page 71: ...Communication Protocols Chapter 6...
Page 87: ...MPRX TransCore Proprietary 6 17...
Page 88: ...Chapter 7 Commands...
Page 127: ...Chapter 8 Configuring the MPRX...
Page 146: ...Chapter 9 Troubleshooting and Maintenance...
Page 152: ...System Guide TransCore Proprietary 9 6...
Page 153: ...Chapter 10 Interface to Train Recording Unit...
Page 158: ...Chapter 11 Check Tag to MPRX Assembly...
Page 164: ...MPRX TransCore Proprietary 11 7...
Page 165: ...Appendix A Glossary...
Page 171: ...MPRX TransCore Proprietary A 7...
Page 172: ...Technical Specifications Appendix B...
Page 175: ...Wiring Diagram C...
Page 179: ...Command Quick Reference Appendix D...
Page 203: ...MPRX TransCore Proprietary D 25...
Page 204: ...Compatible Tag Information E...
Page 208: ...MPRX TransCore Proprietary E 5...