|
USB 2.0
Multi-Point High-Speed OTG Controller
The Mentor
Graphics multi-point high-speed dual role USB controller is a complete
USB On-The-Go (OTG) solution intended for use in point-to-point communications
with other OTG devices and host computers, as well as in multipoint communications
with a network of USB 2.0 peripherals and hubs. The
controller complies with both the USB standard for high-speed and full-speed
functions and the OTG supplement to the USB 2.0
specification. The approach used in this controller is
to allow the core’s endpoints to be allocated to the
functions of different target devices. Furthermore, this allocation can be
made dynamically. In theory, a full USB tree of 128
devices could be supported in this way, though it is
likely to be used with much smaller numbers of devices in practice.
The core
offers a 32-bit AMBA AHB-compatible CPU interface and a UTMI+ Level
3 transceiver interface, together with a wrapper for connecting to a ULPI
compatible PHY. (An UTMI+ Level 3 interface is used because
it allows the core to support low-speed devices
attached through a USB 1.1 hub.) An alternative USB 1.1 PHY
interface is also provided, together with an I2C
PHY interface to facilitate use with such devices such
as the Philips ISP 1301 transceiver. The RAM interface
offered by this core is configurable for endpoint FIFO sizes from
8 to 8192 bytes (except for the endpoint 0 FIFO, which is fixed at 64
bytes). The RAM for these FIFOs needs to be added by
the user. DMA access to the endpoint FIFOs is
supported, including a DMA controller built into the AHB interface.
This controller supports transfers using INCR4, INCR8, and INCR16 4/8/16-beat
incrementing bursts as well as bursts of unspecified length.
On-The-Go
Operation
OTG is strictly
a point-to-point topology involving two “dual-role”
devices; one operating as host and the other as peripheral.
OTG devices always use mini-AB receptacles and the
initial configuration is determined by the state of its ID pin. If
sampling the ID line identifies the core as the “A” device, the
core will go into host mode. Conversely, the “B” device will
default to peripheral. This device supports host
negotiation protocol (HNP), which enables the devices
to collaborate and switch roles between as required.
Also supported is a session request protocol (SRP),
whereby the “B” device can request a new session
by pulsing the data lines and/or VBus. This allows the
“A” device to power down an idle bus and save power. Details
on both of these protocols are given in the USB On-The-Go
supplement to the USB 2.0 specification.
Host
Operation
In a
multi-point set-up, the controller acts as the host to a range
of USB peripheral devices connected directly or via a hub. Peripheral
devices are allocated to the core's individual Rx and
Tx endpoints — by recording the function address and, where
necessary, the relevant hub address and port details. This allocation
is dynamic, enabling new devices to be added to the network and old ones to
be removed. Software automatically maps active devices
to the appropriate host endpoints. In this way,
transactions can essentially be carried out as if to a single target
device — and multiple peripherals can be supported while
maintaining a simple interface and low gate count. |