System information
5 Device Emulation
content. In principle, every USB port on the CHARM can be used to provide devices for
the host, but the CHARM uses only one specific port.
5.1.1 USB Bus System
The Universal Serial Bus (USB) is a serial bus standard used to interface devices. USB can
connect computer peripherals such as mouse devices, keyboards, PDAs, joysticks, scanners,
digital cameras, printers and flash drives. Originally released in 1995, USB has a throughput
of 12 Mbps, but today USB operates at 480 Mbps. The USB system has an asymmetric
design. It consists of a host, a multitude of downstream USB ports, and multiple peripheral
devices connected within a tiered-star topology.
Communication
USB systems have only one host. All bus transfers are initiated by the host controller.
Thereby, the USB device communication is based on pipes (logical channels). Pipes are
connections from the host controller to an endpoint. An endpoint is a logical entity defined
on a device. Each USB device is composed of a collection of independent endpoints. Figure
5.1 depicts the host-device communication over the logical pipes.
Host Controller
Device
Endpoints
Logical Pipes
Figure 5.1: USB logical pipes.
A USB device can have up to 32 active pipes. The endpoint can transfer data in one
direction only, either for sending or for receiving. Hence, a pipe is uni-directional. There
are four groups of endpoints:
Control-Endpoint This type of endpoint is used to control the data communication be-
tween host and device. Furthermore, the addressing and configuration of the device is
processed by the control endpoint.
Interrupt-Endpoint Interrupt transfers are typically non-periodic communication. The
device "initiated" communication requiring bounded latency. But in a USB system, an
interrupt request is queued by the device until the host polls the USB device asking for
data.
66