Spinpoint M8U-Internal Product Manual REV 3.4
51
INSTALLATION
the data bit and then the remainder is shifted left one bit and the low-order bit set to zero. If the result of
that XOR is one, then the remainder is XORed with the generator polynomial.
When the last bit of the checked field is sent, the CRC in the generator is inverted and sent to the checker
MSb first. When the last bit of the CRC is received by the checker and no errors have occurred, the
remainder will be equal to the polynomial residual.
A CRC error exists if the computed checksum remainder at the end of a packet reception does not match the
residual.
Bit stuffing requirements must be met for the CRC, and this includes the need to insert a zero at the end of a
CRC if the preceding six bits were all ones.
Token CRCs
A five-bit CRC field is provided for tokens and covers the ADDR and ENDP fields of IN, SETUP, and
OUT tokens or the time stamp field of an SOF token. The PING and SPLIT special tokens also include a
five-bit CRC field. The generator polynomial is:
G(X) = X
5 + X2 + 1
The binary bit pattern that represents this polynomial is 00101B. If all token bits are received without error,
the five-bit residual at the receiver will be 01100B.
Data CRCs
The data CRC is a 16-bit polynomial applied over the data field of a data packet. The generating
polynomial is:
G(X) = X16 + X15 + X2 + 1
The binary bit pattern that represents this polynomial is 1000000000000101B. If all data and CRC bits are
received without error, the 16-bit residual will be 1000000000001101B.
6.3.3 Packet Format
This section shows packet formats for token, data, and handshake packets. Fields within a packet are
displayed in these figures in the order in which bits are shifted out onto the bus.
6.3.3.1 Token Packet
Figure 6-18 shows the field formats for a token packet. A token consists of a PID, specifying either IN,
OUT, or SETUP packet type and ADDR and ENDP fields. The PING special token packet also has the
same fields as a token packet. For OUT and SETUP transactions, the address and endpoint fields uniquely
identify the endpoint that will receive the subsequent Data packet. For IN transactions, these fields uniquely
identify which endpoint should transmit a Data packet. For PING transactions, these fields uniquely
identify which endpoint will respond with a handshake packet. Only the host can issue token packets. An
IN PID defines a Data transaction from a function to the host. OUT and SETUP PIDs define Data
transactions from the host to a function. A PING PID defines a handshake transaction from the function to
the host.
Figure 6-18: Token Format
Token packets have a five-bit CRC that covers the address and endpoint fields as shown above. The CRC
does not cover the PID, which has its own check field. Token and SOF packets are delimited by an EOP
after three bytes of packet field data. If a packet decodes as an otherwise valid token or SOF but does not
terminate with an EOP after three bytes, it must be considered invalid and ignored by the receiver.