Interrupt Traffic; Isochronous Operations; Isochronous Transfers In A Nutshell - Motorola DragonBall MC9328MX1 Reference Manual

Integrated portable system processor
Table of Contents

Advertisement

Data Transfer Operations
register in units of the associated endpoint's maximum packet size. The end-of-frame can be indicated
through the WFR bit in the Endpoint n FIFO Control Register (USB_EPn_FCTRL) or via the end-of-frame
tag signal from the DMA controller.
In the USB protocol, the last packet in a transfer is allowed to be short (smaller than endpoint's maximum
packet size) or even zero length. To indicate a zero length packet, the software sets the ZLPS bit in the
associated Endpoint n Status/Control Register. The ZLPS bit automatically clears after the zero length
packet is successfully sent to the host.
The EOT interrupt asserts to indicate that the last packet of the IN transfer has completed. Software clears
any pending interrupts (EOT and EOF) to begin the next data transfer.

28.7.5 Interrupt Traffic

Interrupt endpoints are a special case of bulk traffic. Interrupt endpoints are serviced on a periodic basis by
the USB host. Interrupt endpoints are guaranteed to transfer one packet per polling interval. Therefore, an
endpoint with an 8 byte packet size and serviced every 2 ms would move 16 Kb/sec across the USB.
The only difference between interrupt transfers and bulk transfers from the device standpoint is that every
time an interrupt packet is transferred, regardless of size, the EOT interrupt asserts. The device driver
software must service this interrupt packet before the next interrupt servicing interval to prevent the device
from NAKing the poll.
Device driver software must ensure that the interrupt endpoint polling interval is longer than the device's
interrupt service latency.

28.7.6 Isochronous Operations

Isochronous operations are a special case of USB traffic. Instead of guaranteeing delivery with unbounded
latency, isochronous traffic flows over the bus at a guaranteed rate with no error checking.

28.7.6.1 Isochronous Transfers in a Nutshell

The USB host guarantees an endpoint exactly one isochronous packet per frame. Isochronous packets can
range from 0 bytes to 1023 bytes. See the USB specification for more information on isochronous transfer.
Because isochronous packets can be as large as 1023 bytes, it is not practical to implement large FIFOs for
each endpoint. Instead, the software drivers are responsible for keeping the FIFOs serviced. When an IN or
OUT request is received on an isochronous endpoint, the software drivers must ensure that the correct
amount of data can be transferred without emptying the FIFO. When the FIFO empties during an
isochronous packet transfer, the host terminates the packet immediately and the device loses its time slot
until the next USB frame.
For DMA access, the maximum packet size for isochronous endpoints is restricted by the endpoint's FIFO
size. For programmed I/O, isochronous data packets can take any size from 0 to 1023 bytes.
To allow the driver software to maintain synchronization with the USB host, the USB Core maintains a
register that holds the current USB frame number. An interrupt is asserted each time the frame number
changes or when a specific USB frame number is received. The interrupts are maskable.
The EOT interrupt asserts for isochronous packet transfers when the UDC module reports that the packet
data is error free. This can be used along with the EOF interrupt to determine when a transfer error of some
sort occurs on an isochronous endpoint.
MOTOROLA
USB Device Port
28-43

Advertisement

Table of Contents
loading

Table of Contents