795
SAM9G45 [DATASHEET]
6438K–ATARM–12-Feb-13
38.5
Functional Description
38.5.1
USB V2.0 High Speed Device Port Introduction
The USB V2.0 High Speed Device Port provides communication services between host and attached USB
devices. Each device is offered with a collection of communication flows (pipes) associated with each endpoint.
Software on the host communicates with a USB Device through a set of communication flows.
38.5.2
USB V2.0 High Speed Transfer Types
A communication flow is carried over one of four transfer types defined by the USB device.
A device provides several logical communication pipes with the host. To each logical pipe is associated an end-
point. Transfer through a pipe belongs to one of the four transfer types:
Control Transfers: Used to configure a device at attach time and can be used for other device-specific purposes,
including control of other pipes on the device.
Bulk Data Transfers: Generated or consumed in relatively large burst quantities and have wide dynamic latitude
in transmission constraints.
Interrupt Data Transfers: Used for timely but reliable delivery of data, for example, characters or coordinates
with human-perceptible echo or feedback response characteristics.
Isochronous Data Transfers: Occupy a prenegotiated amount of USB bandwidth with a prenegotiated delivery
latency. (Also called streaming real time transfers.)
As indicated below, transfers are sequential events carried out on the USB bus.
Endpoints must be configured according to the transfer type they handle.
38.5.3
USB Transfer Event Definitions
A transfer is composed of one or several transactions;
Table 38-2.
USB Communication Flow
Transfer
Direction
Bandwidth
Endpoint Size
Error Detection
Retrying
Control
Bidirectional
Not guaranteed
8,16,32,64
Yes
Automatic
Isochronous
Unidirectional
Guaranteed
8-1024
Yes
No
Interrupt
Unidirectional
Not guaranteed
8-1024
Yes
Bulk
Unidirectional
Not guaranteed
8-512
Yes
Table 38-3.
USB Transfer Events
CONTROL
(bidirectional)
Setup transaction
→ Data IN transactions →Status OUT transaction
Setup transaction
→ Data OUT transactions →Status IN transaction
Setup transaction
→ Status IN transaction
IN
(device toward host)
Bulk IN Transfer
Data IN transaction
→ Data IN transaction
Interrupt IN Transfer
Data IN transaction
→ Data IN transaction
Isochronous IN Transfer
(2) Data IN transaction
→ Data IN transaction
OUT
(host toward device)
Bulk OUT Transfer
Data OUT transaction
→ Data OUT transaction
Interrupt OUT Transfer
Data OUT transaction
→ Data OUT transaction
Isochronous OUT Transfer
(2) Data OUT transaction
→ Data OUT transaction