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).
Содержание MPRX
Страница 19: ...Chapter 1 Introduction...
Страница 23: ...MPRX TransCore Proprietary 1 5...
Страница 24: ...Chapter 2 Developing the Site Plan...
Страница 37: ...Choosing Installing and Removing Tags Chapter 3...
Страница 48: ...Installing the MPRX Chapter 4...
Страница 64: ...MPRX TransCore Proprietary 4 17...
Страница 65: ...General Software Information 5...
Страница 70: ...System Guide TransCore Proprietary 5 6...
Страница 71: ...Communication Protocols Chapter 6...
Страница 87: ...MPRX TransCore Proprietary 6 17...
Страница 88: ...Chapter 7 Commands...
Страница 127: ...Chapter 8 Configuring the MPRX...
Страница 146: ...Chapter 9 Troubleshooting and Maintenance...
Страница 152: ...System Guide TransCore Proprietary 9 6...
Страница 153: ...Chapter 10 Interface to Train Recording Unit...
Страница 158: ...Chapter 11 Check Tag to MPRX Assembly...
Страница 164: ...MPRX TransCore Proprietary 11 7...
Страница 165: ...Appendix A Glossary...
Страница 171: ...MPRX TransCore Proprietary A 7...
Страница 172: ...Technical Specifications Appendix B...
Страница 175: ...Wiring Diagram C...
Страница 179: ...Command Quick Reference Appendix D...
Страница 203: ...MPRX TransCore Proprietary D 25...
Страница 204: ...Compatible Tag Information E...
Страница 208: ...MPRX TransCore Proprietary E 5...