Intel® IXP400 Software

Access-Layer Components: USB Access (ixUSB) API

The eight possible types of bulk transactions based on data direction, error, and stall conditions are shown in Table 54. (Packets sent by the UDC to the host are highlighted in boldface type. Packets sent by the host to the UDC are not boldfaced.)

Table 54. Bulk Transaction Formats

Action

Token Packet

Data Packet

Handshake Packet

 

 

 

 

Host successfully received data from UDC

In

DATA0/DATA1

ACK

 

 

 

 

UDC temporarily unable to transmit data

In

None

NAK

 

 

 

 

UDC endpoint needs host intervention

In

None

STALL

 

 

 

 

Host detected PID, CRC, or bit-stuff error

In

DATA0/DATA1

None

 

 

 

 

UDC successfully received data from host

Out

DATA0/DATA1

ACK

 

 

 

 

UDC temporarily unable to receive data

Out

DATA0/DATA1

NAK

 

 

 

 

UDC endpoint needs host intervention

Out

DATA0/DATA1

STALL

 

 

 

 

UDC detected PID, CRC, or bit stuff error

Out

DATA0/DATA1

None

 

 

 

 

NOTE: Packets from UDC to host are boldface.

Isochronous transactions guarantee constant rate, error-tolerant transmission of data between the host and UDC. The host schedules isochronous packets during every frame on the USB, typically 1 ms, 2 ms, or 4 ms.

USB protocol allows for isochronous transfers to take up to 90% of the USB bandwidth. Unlike bulk transactions, if corrupted data is received, the UDC will continue to process the corrupted data that corresponds to the current start of frame indicator.

Isochronous transactions do not support a handshake phase or retry capability. The two packet types used to construct isochronous transactions are token and data. The two possible types of isochronous transactions, based on data direction, are shown in Table 55.

Table 55. Isochronous Transaction Formats

Action

 

Token Packet

Data Packet

 

 

 

 

Host successfully received data from UDC

 

In

DATA0/DATA1

 

 

 

 

UDC successfully received data from host

 

Out

DATA0/DATA1

 

 

 

 

NOTE: Packets from UDC to host are boldface.

 

 

Control transactions are used by the host to configure endpoints and query their status. Like bulk transactions, control transactions begin with a setup packet, followed by an optional data packet, then a handshake packet. Note that control transactions, by default, use DATA0 type transfers.

Table 56 shows the four possible types of control transactions.

April 2005

IXP400 Software Version 2.0

Programmer’s Guide

300

Document Number: 252539, Revision: 007

 

Page 300
Image 300
Intel IXP400 Bulk Transaction Formats, Isochronous Transaction Formats, Action Token Packet Data Packet Handshake Packet