Bulk Transfers: One of four data
transfer types on the USB bus. Bulk transfers are designed for moving high volumes of
data. They are capable of using any free bandwidth on the bus (that is, bandwidth not
already used by the other transfer types). This allows them to achieve the highest data
rates, but they are given no reserved bandwidth, so on a busy bus, bulk transfers can
receive small bandwidth or experience high latency. Transfer types are determined by the
choice of USB interface type; for example, CDC and MSC interfaces use bulk transfers.
Composite USB Device: A physical USB
device (one USB connector) that contains more than one USB interface – for example, two
CDC interfaces or CDC+HID. The host enumerates each interface as a separate logical
entity.
Control Transfers: One of four data
transfer types on the USB bus. Control transfers handle the administrative tasks of
setting up the connection, like reporting USB descriptors. The host also sends other USB
device requests, and the device responds using control transfers. There is a USB endpoint
dedicated to these transfers: endpoint 0 (EP0).
Device Class: A defined USB protocol for
a particular class of devices. Common device classes include the Communications Device
Class (CDC), Human Interface Device (HID) class, USB Audio Class (UAC), and Mass Storage
Class (MSC).
CDC: A USB
device class used for serial communication devices. CDC allows USB devices to emulate
traditional serial ports (COM), enabling data exchange between host and device.
HID: A USB device class designed for
user input devices like keyboards, mice, and game controllers. HID devices use a
standardized protocol that allows for driverless installation on most operating
systems.
UAC: A USB device class for
transmitting and receiving digital audio data between a host and device. UAC allows
USB devices to appear as standard audio IO devices to the host.
MSC: A USB device class that allows
a device to appear as an external storage drive to the host operating system, enabling
standard file system operations.
Device Installation: The first time a
USB device is enumerated, the host may perform one-time functions to install the device.
For example, Windows records information about the device in the system registry, using
the device's VID and PID as an index. In subsequent enumerations, the host draws from the
registry for much of its information about the device. Device installation may be silent
(mostly invisible to the end user) or, in the case of CDC on Windows, may require user
action.
Endpoint: The end of a pipe. This acts
as a mailbox on the USB device for that pipe. A device usually has more than one
active endpoint. When the host communicates on the bus, it first identifies the physical
USB device, then the endpoint number within that device that it wishes to speak to.
Endpoints are assigned specific functions according to the USB interfaces that were
created. HID/MSC each use one IN and one OUT endpoint, while CDC uses two IN and one OUT
endpoint. In the MSP430 API stacks, endpoint management is fully automated by the
Descriptor Tool.
Enumeration: The process by which a host
interrogates a physical USB device to determine what it is and loads an appropriate driver
so that the host application can interface with it. Enumeration happens every time the
device is attached.
Interrupt Transfers: One of the four USB
data transfer types. Interrupt transfers are designed for latency, bandwidth, and
delivery. However, the bandwidth is limited to only a single USB packet (64 bytes for
full-speed USB) per frame (1 ms). Transfer types are determined by the choice of USB
interface type; for example, HID interfaces use interrupt transfers.
Isochronous Transfers: One of the four
USB data transfer types. Isochronous transfers provide guaranteed latency and bandwidth
but not delivery. That is, if error checking shows corrupted data, the attempt is not
retried. This type is intended for streaming audio and video -- applications in which a
retry would result in an interruption and thus be more noticeable to the user than simply
missing the packet.
INF (*.inf) file: A text-based file
required during any USB device installation on Windows, allowing Windows to associate the
device with a particular driver. For some device classes, Windows contains the INF
internally, allowing for a silent device installation. For CDC, Windows prompts the end
user for the INF file.
Pipe: A single line of communication
between host and device. Pipes are either IN (into the host) or OUT (out of the host).
They are characterized by a particular transfer type (for example, bulk or
interrupt).
Descriptor: Data structures that the USB
device provides to the host during enumeration, describing the device's capabilities,
configurations, interfaces, and endpoints. Common descriptors include: Device,
configuration, interface, and endpoint descriptors.
Full-Speed USB: USB operating at 12Mbps,
the standard speed for USB 1.1 and optional for USB 2.0 devices.
Host: The USB controller that manages
the bus and initiates all data transfers. Typically a PC, but can also be embedded systems
with USB host capability.