Peripheral Control Module

11.8.1.3Field Formats

Individual bits are assembled into groups called fields. Fields are used to construct packets and packets are used to construct frames or transactions. The seven USB field types include: sync, packet identifier, address, endpoint, frame number, data, and CRC fields.

A sync is preceded by the idle state on the USB bus and is always the first field of every packet. The first bit of a sync field signals the start of packet (SOP) to the UDC or host. A sync is 8 bits wide and consists of seven zeros followed by a one (0x80).

The packet identifier (PID) is 1 byte wide and always follows the sync field. The first 4 bits contain an encoded value that represents packet type (token, data, handshake, special), packet format, and type of error detection. The last four bits contain a check field that ensures the PID is transmitted without errors. The check field is generated by performing a ones complement of the PID. The UDC automatically XORs the PID and check field and takes the appropriate action (as prescribed by the USB standard) if the result does not contain all ones, indicating an error has occurred in transmission.

The UDC’s three endpoints are accessed using the address and endpoint fields. The address field contains 7 bits and permits 128 unique devices to be placed on the USB. After the SA-1100 is reset, or a reset is signalled via the USB bus, the UDC (and all other 127 possible devices) is assigned the default address of zero. The host is then responsible for assigning unique addresses for each device on the bus. This is performed in the enumeration process one device at a time. Once the host assigns the UDC an address, it responds only to transactions addressed to it. The address field is transmitted in every packet and follows the PID field.

When the UDC detects that a packet is addressed to it, the endpoint field is used to determine which of the UDC’s three endpoints are being addressed. The endpoint field is 4 bits. However, only the encodings for endpoints 0 through 2 are allowed. The endpoint field follows the address field. Table 11-11shows the valid values for the endpoint field.

.

Table 11-11. Endpoint Field Addressing

Endpoint Field Value

UDC Endpoint Selected

 

 

0000

Endpoint 0

 

 

0001

Endpoint 1

 

 

0010

Endpoint 2

 

 

0011

Invalid

 

 

01xx

Invalid

 

 

10xx

Invalid

 

 

11xx

Invalid

 

 

The frame number is an 11-bit field that is incremented by the host each time a frame is transmitted. When it reaches its maximum value of 2047 (0x7FF), it rolls over. It is transmitted in the start of frame (SOF) packet, which is output by the host in 1 ms intervals. The frame number field is used only by device controllers to control isochronous transfers, and therefore, does not affect the UDC. Data fields are used to transmit the bulk data between the host and the UDC. A data field is made up of 0 to 1023 bytes. Each byte is transmitted LSB first.

Cyclic redundancy check fields are used to detect errors introduced during transmission of token and data packets, and is applied to all the fields in the packet except the PID field (recall the PID contains its own 4-bit ones complement check field for error detection). Token packets use a 5-bit CRC (x5+x2+1) and data packets use a 16-bit CRC (x16+x15+x2+1). For both CRCs, the checker is reset to all ones at the start of each packet.

SA-1100 Developer’s Manual

11-59

Page 209
Image 209
Intel SA-1100 manual Field Formats, Endpoint Field Addressing, Endpoint Field Value UDC Endpoint Selected, Invalid