The Full Wiki

USB: Wikis

  
  

Note: Many of our articles have direct quotes from sources you can cite, within the Wikipedia article! This article doesn't yet, but we're working on it! See more info or our list of citable articles.

Encyclopedia

(Redirected to Universal Serial Bus article)

From Wikipedia, the free encyclopedia

USB
Universal Serial Bus
Logo with white capitals reading "Certified USB" on a light blue background in the shape of a USB connector.}}
Original Universal Serial Bus Logo
Year created January 1996
Created by Intel, Compaq, Microsoft, Sony, Digital Equipment Corporation, IBM, Northern Telecom
Width in bits 1
Number of devices 127 per host controller
Capacity 1.5, 12, 480, or 4800 Mbit/s (0.2, 1.5, 60, 500 MByte/s)
Style Serial
Hotplugging interface Yes
External interface Yes
The OSI Model
7. Application Layer
NNTP  · SIP  · SSI  · DNS  · FTP  · Gopher  · HTTP  · NFS  · NTP  · SMPP  · SMTP  · SNMP  · Telnet (more)
6. Presentation Layer
MIME  · XDR
5. Session Layer
Named Pipes  · NetBIOS  · SAP
4. Transport Layer
TCP  · UDP  · SCTP  · SSL  · TLS
3. Network Layer
IP  · ICMP  · IPsec  · IGMP  · IPX  · AppleTalk
2. Data Link Layer
ARP  · CSLIP  · SLIP  · Ethernet  · Frame relay  · ITU-T G.hn DLL  · L2TP  · PPP  · PPTP
1. Physical Layer
RS-232  · RS-485  · V.35  · V.34  · I.430  · I.431  · T1  · E1  · POTS  · SONET/SDH  · OTN  · DSL  · 802.11a/b/g/n PHY  · ITU-T G.hn PHY  · Ethernet  · USB  · Bluetooth
Large circle is left end of horizontal line. The line forks into three branches ending in circle, triangle and square symbols.
The basic USB trident logo; each released variant has a specific logo variant
A USB Series "A" plug, the most common USB plug.

USB (Universal Serial Bus) is a specification[1] to establish communication between devices and a host controller (usually personal computers), developed and invented by Ajay Bhatt working in Intel.[2][3] USB is intended to replace many varieties of serial and parallel ports. USB can connect computer peripherals such as mice, keyboards, digital cameras, printers, personal media players, flash drives, and external hard drives. For many of those devices, USB has become the standard connection method. USB was designed for personal computers[citation needed], but it has become commonplace on other devices such as smartphones, PDAs and video game consoles, and as a power cord between a device and an AC adapter plugged into a wall plug for charging. As of 2008, there are about 2 billion USB devices sold per year, and approximately 6 billion total sold to date.[4]

The design of USB is standardized by the USB Implementers Forum (USB-IF), an industry standards body incorporating leading companies from the computer and electronics industries. Notable members have included Agere (now merged with LSI Corporation), Apple Inc., Hewlett-Packard, Intel, Microsoft, Sony and NEC.

Contents

History

The Universal Serial Bus (USB) is a standard for peripheral devices. It began development in 1994 by a group of seven companies: Compaq, DEC, IBM, Intel, Microsoft, NEC and Nortel. USB was intended to make it fundamentally easier to connect external devices to PCs by replacing the multitude of connectors at the back of PCs, addressing the usability issues of existing interfaces, and simplifying software configuration of all devices connected to USB, as well permitting greater bandwidths for external devices. The first silicon for USB was made available by Intel in 1995.[5]

The USB 1.0 specification was introduced in 1996. The original USB 1.0 specification had a data transfer rate of 12 Mbit/s.[5] The first widely used version of USB was 1.1, which was released in September 1998. It allowed for a 12 Mbps data rate for higher-speed devices such as disk drives, and a lower 1.5 Mbps rate for low bandwidth devices such as joysticks.[6]

The USB 2.0 specification was released in April 2000 and was standardized by the USB-IF at the end of 2001. Hewlett-Packard, Intel, Lucent Technologies (now Alcatel-Lucent following its merger with Alcatel in 2006), NEC and Philips jointly led the initiative to develop a higher data transfer rate, with the resulting specification achieving 480 Mbit/s, a fortyfold increase over 12 Mbit/s for the original USB 1.0. data.

Overview

A USB system has an asymmetric design, consisting of a host, a multitude of downstream USB ports, and multiple peripheral devices connected in a tiered-star topology. Additional USB hubs may be included in the tiers, allowing branching into a tree structure with up to five tier levels. A USB host may have multiple host controllers and each host controller may provide one or more USB ports. Up to 127 devices, including the hub devices, may be connected to a single host controller.

USB devices are linked in series through hubs. There always exists one hub known as the root hub, which is built into the host controller. So-called sharing hubs, which allow multiple computers to access the same peripheral device(s), also exist and work by switching access between PCs, either automatically or manually. They are popular in small-office environments. In network terms, they converge rather than diverge branches.

A physical USB device may consist of several logical sub-devices that are referred to as device functions. A single device may provide several functions, for example, a webcam (video device function) with a built-in microphone (audio device function). Such a device is called a compound device in which each logical device is assigned a distinctive address by the host and all logical devices are connected to a built-in hub to which the physical USB wire is connected. A host assigns one and only one device address to a function.

Diagram: inside a device are several endpoints, each of which is connected by a logical pipes to a host controller. Data in each pipe flows in one direction, although there are a mixture going to and from the host controller.
USB endpoints actually reside on the connected device: the channels to the host are referred to as pipes.

USB device communication is based on pipes (logical channels). A pipe is a connection from the host controller to a logical entity, found on a device, and named an endpoint. The term endpoint is occasionally incorrectly used for referring to the pipe, although while an endpoint exists on the device permanently, a pipe is only formed when the host makes a connection to the endpoint. Therefore, when referring to the connection between a host and an endpoint, the term pipe should be used. A USB device can have up to 32 active pipes, 16 into the host controller and 16 out of the controller.

There are two types of pipes: stream and message pipes depending on the type of data transfer.

  • isochronous transfers - at some guaranteed data rate (often but not necessarily as fast as possible) but with possible data loss, e.g. realtime audio or video
  • interrupt transfers - devices that need guaranteed quick responses (bounded latency), e.g. pointing devices and keyboards
  • bulk transfers - large sporadic transfers using all remaining available bandwidth (but with no guarantees on bandwidth or latency), e.g. file transfers
  • control transfers - typically used for short, simple commands to the device, and a status response, used e.g. by the bus control pipe number 0

A stream pipe is a uni-directional pipe connected to a uni-directional endpoint that transfers data using an isochronous, interrupt, or bulk transfer. A message pipe is a bi-directional pipe connected to a bi-directional endpoint that is exclusively used for control data flow. An endpoint is made into the USB device by the manufacturer, and therefore, exists permanently. An endpoint of a pipe is addressable with tuple (device_address, endpoint_number) as specified in a TOKEN packet that the host sends when it wants to start a data transfer session. If the direction of the data transfer is from the host to the endpoint, an OUT packet, which is a specialization of a TOKEN packet, having the desired device address and endpoint number is sent by the host. If the direction of the data transfer is from the device to the host, the host sends an IN packet instead. If the destination endpoint is a uni-directional endpoint whose manufacturer's designated direction does not match the TOKEN packet (e.g., the manufacturer's designated direction is IN while the TOKEN packet is an OUT packet), the TOKEN packet will be ignored. Otherwise, it will be accepted and the data transaction can start. A bi-directional endpoint, on the other hand, accepts both IN and OUT packets.

Rectangular opening where the width is twice the height. The opening has metal rim, and within the opening a flat rectangular bar runs parallel to the top side.
Two USB connections on the front of a computer.

Endpoints are grouped into interfaces and each interface is associated with a single device function. An exception to this is endpoint zero, which is used for device configuration and which is not associated with any interface. A single device function composed of independently controlled interfaces is called a composite device. A composite device only has a single device address because the host only assigns a device address to a function.

When a USB device is first connected to a USB host, the USB device enumeration process is started. The enumeration starts by sending a reset signal to the USB device. The data rate of the USB device is determined during the reset signaling. After reset, the USB device's information is read by the host, then the device is assigned a unique 7-bit address. If the device is supported by the host, the device drivers needed for communicating with the device are loaded and the device is set to a configured state. If the USB host is restarted, the enumeration process is repeated for all connected devices.

The host controller directs traffic flow to devices, so no USB device can transfer any data on the bus without an explicit request from the host controller. In USB 2.0, the host controller polls the bus for traffic, usually in a round-robin fashion. The slowest device connected to a controller sets the bandwidth of the interface. For SuperSpeed USB (USB 3.0), connected devices can request service from host, and because there are two separate controllers in each USB 3.0 host, USB 3.0 devices will transmit and receive at USB 3.0 data rates, regardless of USB 2.0 or earlier devices connected to that host. Operating data rates for them will be set in the legacy manner.

Device classes

USB defines class codes used to identify a device’s functionality and to load a device driver based on that functionality. This enables every device driver writer to support devices from different manufacturers that comply with a given class code.

Device classes include:[7]

Class Usage Description Examples
00h Device Unspecified

‹The template Fn is being considered for deletion.›  class 0

(Device class is unspecified. Interface descriptors are used for determining the required drivers.)
01h Interface Audio Speaker, microphone, sound card
02h Both Communications and CDC Control Ethernet adapter, modem
03h Interface Human Interface Device (HID) Keyboard, mouse, joystick
05h Interface Physical Interface Device (PID) Force feedback joystick
06h Interface Image Webcam, scanner
07h Interface Printer Laser printer, inkjet printer, CNC machine
08h Interface Mass Storage USB flash drive, memory card reader, digital audio player, digital camera, external drive
09h Device USB hub Full bandwidth hub
0Ah Interface CDC-Data (This class is used together with class 02h - Communications and CDC Control.)
0Bh Interface Smart Card USB smart card reader
0Dh Interface Content Security -
0Eh Interface Video Webcam
0Fh Interface Personal Healthcare -
DCh Both Diagnostic Device USB compliance testing device
E0h Interface Wireless Controller Wi-Fi adapter, Bluetooth adapter
EFh Both Miscellaneous ActiveSync device
FEh Interface Application Specific IrDA Bridge, Test & Measurement Class (USBTMC)[8]
FFh Both Vendor Specific (This class code indicates that the device needs vendor specific drivers.)

‹The template Fnb is being considered for deletion.›  Note class 0: Use class information in the Interface Descriptors. This base class is defined to be used in Device Descriptors to indicate that class information should be determined from the Interface Descriptors in the device.

USB mass-storage

A flash drive, a typical USB mass-storage device.

USB implements connections to storage devices using a set of standards called the USB mass storage device class (referred to as MSC or UMS). This was initially intended for traditional magnetic and optical drives, but has been extended to support a wide variety of devices, particularly flash drives. This generality is because many systems can be controlled with the familiar metaphor of file manipulation within directories (the process of making a novel device look like a familiar device is also known as extension).

Though most newer computers are capable of booting off USB mass storage devices, USB is not intended to be a primary bus for a computer's internal storage: buses such as ATA (IDE), Serial ATA (SATA), or SCSI fulfill that role in PC class computers. However, USB has one important advantage in that it is possible to install and remove devices without rebooting the computer (hotswapping), making it useful for mobile peripherals, including drives of various kinds. Originally conceived and still used today for optical storage devices (CD-RW drives, DVD drives, etc.), several manufacturers offer external portable USB hard drives, or empty enclosures for disk drives, which offer performance comparable to internal drives, limited by the current number and type of attached USB devices and by the upper limit of the USB interface (in practice about 40 MiB/s for USB 2.0 and perhaps potentially 400 MiB/s or more[9] for USB 3.0). These external drives have typically included a "translating device" that bridges between a drive's interface (IDE, ATA, SATA, PATA, ATAPI, or even SCSI) to a USB interface port. Functionally, the drive appears to the user much like an internal drive. Other competing standards for external drive connectivity include eSATA, ExpressCard (now at version 2.0), and FireWire (IEEE 1394).

Another use for USB mass storage devices is the portable execution of software applications (such as web browsers and VoIP clients) without requiring installation on the host computer.[10][11]

Human-interface devices (HIDs)

Mice and keyboards are frequently fitted with USB connectors, but because most PC motherboards still retain PS/2 connectors for the keyboard and mouse as of 2007, they are often supplied with a small USB-to-PS/2 adaptor, allowing use with either USB or PS/2 interface. There is no logic inside these adaptors: they make use of the fact that such HIDs are equipped with controllers that are capable of serving both the USB and the PS/2 protocol, and automatically detect which type of port they are plugged into. Joysticks, keypads, tablets and other human-interface devices are also progressively migrating from MIDI, PC game port, and PS/2 connectors to USB.

Signaling

USB supports following signaling rates:

  • A low-bandwidth rate of 1.5 Mbit/s (~183 KB/s) is defined by USB 1.0. It is very similar to "full-bandwidth" operation except each bit takes 8 times as long to transmit. It is intended primarily to save cost in low-bandwidth human interface devices (HID) such as keyboards, mice, and joysticks.
  • The full-bandwidth rate of 12 Mbit/s (~1.43 MB/s) is the basic USB data rate defined by USB 1.1. All USB hubs support full-bandwidth.
  • A hi-speed (USB 2.0) rate of 480 Mbit/s (~57 MB/s) was introduced in 2001. All hi-speed devices are capable of falling back to full-bandwidth operation if necessary; they are backward compatible. Connectors are identical.
  • A SuperSpeed (USB 3.0) rate of 4.8 Gbit/s (~572 MB/s). The written USB 3.0 specification was released by Intel and partners in August 2008. The first USB 3 controller chips were sampled by NEC May 2009 [12] and products using the 3.0 specification are expected to arrive beginning in Q3 2009 and 2010.[13] USB 3.0 connectors are generally backwards compatible, but include new wiring and full duplex operation. There is some incompatibility with older connectors.[citation needed]

USB signals are transmitted on a twisted-pair data cable with 90Ω ±15% Characteristic impedance,[14] labeled D+ and D−. Prior to USB 3.0, these collectively use half-duplex differential signaling to reduce the effects of electromagnetic noise on longer lines. Transmitted signal levels are 0.0–0.3 volts for low and 2.8–3.6 volts for high in full-bandwidth and low-bandwidth modes, and −10–10 mV for low and 360–440 mV for high in hi-bandwidth mode. In FS mode the cable wires are not terminated, but the HS mode has termination of 45 Ω to ground, or 90 Ω differential to match the data cable impedance, reducing interference due to signal reflections. USB 3.0 introduces two additional pairs of shielded twisted wire and new, mostly interoperable contacts in USB 3.0 cables, for them. They permit the higher data rate, and full duplex operation.

A USB connection is always between a host or hub at the "A" connector end, and a device or hub's "upstream" port at the other end. Originally, this was a "B' connector, preventing erroneous loop connections, but additional upstream connectors were specified, and some cable vendors designed and sold cables which permitted erroneous connections (and potential damage to the circuitry). USB interconnections are not as fool-proof or as simple as originally intended.

The host includes 15 kΩ pull-down resistors on each data line. When no device is connected, this pulls both data lines low into the so-called "single-ended zero" state (SE0 in the USB documentation), and indicates a reset or disconnected connection.

A USB device pulls one of the data lines high with a 1.5 kΩ resistor. This overpowers one of the pull-down resistors in the host and leaves the data lines in an idle state called "J". For USB 1.x, the choice of data line indicates a device's bandwidth support; full-bandwidth devices pull D+ high, while low-bandwidth devices pull D− high.

USB data is transmitted by toggling the data lines between the J state and the opposite K state. USB encodes data using the NRZI convention; a 0 bit is transmitted by toggling the data lines from J to K or vice-versa, while a 1 bit is transmitted by leaving the data lines as-is. To ensure a minimum density of signal transitions, USB uses bit stuffing; an extra 0 bit is inserted into the data stream after any appearance of six consecutive 1 bits. Seven consecutive 1 bits is always an error. USB 3.00 has introduced additional data transmission encodings.

A USB packet begins with an 8-bit synchronization sequence '00000001'. That is, after the initial idle state J, the data lines toggle KJKJKJKK. The final 1 bit (repeated K state) marks the end of the sync pattern and the beginning of the USB frame. For high bandwidth USB, the packet begins with a 32-bit synchronization sequence.

A USB packet's end, called EOP (end-of-packet), is indicated by the transmitter driving 2 bit times of SE0 (D+ and D− both below max) and 1 bit time of J state. After this, the transmitter ceases to drive the D+/D− lines and the aforementioned pull up resistors hold it in the J (idle) state. Sometimes skew due to hubs can add as much as one bit time before the SE0 of the end of packet. This extra bit can also result in a "bit stuff violation" if the six bits before it in the CRC are '1's. This bit should be ignored by receiver.

A USB bus is reset using a prolonged (10 to 20 milliseconds) SE0 signal.

USB 2.0 devices use a special protocol during reset, called "chirping", to negotiate the high bandwidth mode with the host/hub. A device that is HS capable first connects as an FS device (D+ pulled high), but upon receiving a USB RESET (both D+ and D− driven LOW by host for 10 to 20 ms) it pulls the D− line high, known as chirp K. This indicates to the host that the device is high bandwidth. If the host/hub is also HS capable, it chirps (returns alternating J and K states on D− and D+ lines) letting the device know that the hub will operate at high bandwidth. The device has to receive at least 3 sets of KJ chirps before it changes to high bandwidth terminations and begins high bandwidth signaling. Because USB 3.0 uses wiring separate and additional to that used by USB 2.0 and USB 1.x, such bandwidth negotiation is not required.

Clock tolerance is 480.00 Mbit/s ±500 ppm, 12.000 Mbit/s ±2500 ppm, 1.50 Mbit/s ±15000 ppm.

Though high bandwidth devices are commonly referred to as "USB 2.0" and advertised as "up to 480 Mbit/s", not all USB 2.0 devices are high bandwidth. The USB-IF certifies devices and provides licenses to use special marketing logos for either "basic bandwidth" (low and full) or high bandwidth after passing a compliance test and paying a licensing fee. All devices are tested according to the latest specification, so recently-compliant low bandwidth devices are also 2.0 devices.

The actual throughput currently (2006) of USB 2.0 high bandwidth attained with real-world devices is about two thirds of the maximum theoretical bulk data transfer rate of 53.248 MiB/s. Typical high bandwidth USB devices operate at lower data rates, often about 3 MiB/s overall, sometimes up to 10–20 MiB/s.[15]

Data packets

USB communication takes the form of packets. Initially, all packets are sent from the host, via the root hub and possibly more hubs, to devices. Some of those packets direct a device to send some packets in reply.

After the sync field described above, all packets are made of 8-bit bytes, transmitted least-significant bit first. The first byte is a packet identifier (PID) byte. The PID is actually 4 bits; the byte consists of the 4-bit PID followed by its bitwise complement. This redundancy helps detect errors. (Note also that a PID byte contains at most four consecutive 1 bits, and thus will never need bit-stuffing, even when combined with the final 1 bit in the sync byte. However, trailing 1 bits in the PID may require bit-stuffing within the first few bits of the payload.)

USB PID bytes
Type PID value
(msb-first)
Transmitted byte
(lsb-first)
Name Description
Reserved 0000 0000 1111
Token 1000 0001 1110 SPLIT High-bandwidth (USB 2.0) split transaction
0100 0010 1101 PING Check if endpoint can accept data (USB 2.0)
Special 1100 0011 1100 PRE Low-bandwidth USB preamble
Handshake ERR Split transaction error (USB 2.0)
0010 0100 1011 ACK Data packet accepted
1010 0101 1010 NAK Data packet not accepted; please retransmit
0110 0110 1001 NYET Data not ready yet (USB 2.0)
1110 0111 1000 STALL Transfer impossible; do error recovery
Token 0001 1000 0111 OUT Address for host-to-device transfer
1001 1001 0110 IN Address for device-to-host transfer
0101 1010 0101 SOF Start of frame marker (sent each ms)
1101 1011 0100 SETUP Address for host-to-device control transfer
Data 0011 1100 0011 DATA0 Even-numbered data packet
1011 1101 0010 DATA1 Odd-numbered data packet
0111 1110 0001 DATA2 Data packet for high-bandwidth isochronous transfer (USB 2.0)
1111 1111 0000 MDATA Data packet for high-bandwidth isochronous transfer (USB 2.0)

Packets come in three basic types, each with a different format and CRC (cyclic redundancy check):

Handshake packets

Handshake packets consist of nothing but a PID byte, and are generally sent in response to data packets. The three basic types are ACK, indicating that data was successfully received, NAK, indicating that the data cannot be received at this time and should be retried, and STALL, indicating that the device has an error and will never be able to successfully transfer data until some corrective action (such as device initialization) is performed.

USB 2.0 added two additional handshake packets, NYET which indicates that a split transaction is not yet complete. A NYET packet is also used to tell the host that the receiver has accepted a data packet, but cannot accept any more due to buffers being full. The host will then send PING packets and will continue with data packets once the device ACK's the PING. The other packet added was the ERR handshake to indicate that a split transaction failed.

The only handshake packet the USB host may generate is ACK; if it is not ready to receive data, it should not instruct a device to send any.

Token packets

Token packets consist of a PID byte followed by 2 payload bytes: 11 bits of address and a 5-bit CRC. Tokens are only sent by the host, never a device.

IN and OUT tokens contain a 7-bit device number and 4-bit function number (for multifunction devices) and command the device to transmit DATAx packets, or receive the following DATAx packets, respectively.

An IN token expects a response from a device. The response may be a NAK or STALL response, or a DATAx frame. In the latter case, the host issues an ACK handshake if appropriate.

An OUT token is followed immediately by a DATAx frame. The device responds with ACK, NAK, NYET, or STALL, as appropriate.

SETUP operates much like an OUT token, but is used for initial device setup. It is followed by an 8-byte DATA0 frame with a standardized format.

Every millisecond (12000 full-bandwidth bit times), the USB host transmits a special SOF (start of frame) token, containing an 11-bit incrementing frame number in place of a device address. This is used to synchronize isochronous data flows. High-bandwidth USB 2.0 devices receive 7 additional duplicate SOF tokens per frame, each introducing a 125 µs "microframe" (60000 high-bandwidth bit times each).

USB 2.0 added a PING token, which asks a device if it is ready to receive an OUT/DATA packet pair. The device responds with ACK, NAK, or STALL, as appropriate. This avoids the need to send the DATA packet if the device knows that it will just respond with NAK.

USB 2.0 also added a larger 3-byte SPLIT token with a 7-bit hub number, 12 bits of control flags, and a 5-bit CRC. This is used to perform split transactions. Rather than tie up the high-bandwidth USB bus sending data to a slower USB device, the nearest high-bandwidth capable hub receives a SPLIT token followed by one or two USB packets at high bandwidth, performs the data transfer at full or low bandwidth, and provides the response at high bandwidth when prompted by a second SPLIT token. The details are complex; see the USB specification.

Data packets

A data packet consists of the PID followed by 0–1023 bytes of data payload (up to 1024 in high bandwidth, at most 8 at low bandwidth), and a 16-bit CRC.

There are two basic data packets, DATA0 and DATA1. They must always be preceded by an address token, and are usually followed by a handshake token from the receiver back to the transmitter. The two packet types provide the 1-bit sequence number required by Stop-and-wait ARQ. If a USB host does not receive a response (such as an ACK) for data it has transmitted, it does not know if the data was received or not; the data might have been lost in transit, or it might have been received but the handshake response was lost.

To solve this problem, the device keeps track of the type of DATAx packet it last accepted. If it receives another DATAx packet of the same type, it is acknowledged but ignored as a duplicate. Only a DATAx packet of the opposite type is actually received.

When a device is reset with a SETUP packet, it expects an 8-byte DATA0 packet next.

USB 2.0 added DATA2 and MDATA packet types as well. They are used only by high-bandwidth devices doing high-bandwidth isochronous transfers which need to transfer more than 1024 bytes per 125 µs "microframe" (8192 kB/s).

PRE "packet"

Low-bandwidth devices are supported with a special PID value, PRE. This marks the beginning of a low-bandwidth packet, and is used by hubs which normally do not send full-bandwidth packets to low-bandwidth devices. Since all PID bytes include four 0 bits, they leave the bus in the full-bandwidth K state, which is the same as the low-bandwidth J state. It is followed by a brief pause during which hubs enable their low-bandwidth outputs, already idling in the J state, then a low-bandwidth packet follows, beginning with a sync sequence and PID byte, and ending with a brief period of SE0. Full-bandwidth devices other than hubs can simply ignore the PRE packet and its low-bandwidth contents, until the final SE0 indicates that a new packet follows.

Protocol analyzers

Due to the complexities of the USB protocol, USB protocol analyzers are invaluable tools to USB device developers. USB analyzers are able to capture the data on USB and display information from low-level bus states to high-level data packets and class-level information.

Connector properties

Series "A" plug and receptacle.

The connectors specified by the USB committee were designed to support a number of USB's underlying goals, and to reflect lessons learned from the menagerie of connectors which have been used in the computer industry.

Usability

  • It is deliberately difficult to attach a USB connector incorrectly. Most connectors cannot be plugged in upside down, and it is clear from the appearance and kinesthetic sensation of making a connection when the plug and socket are correctly mated. However, it is not obvious at a glance to the inexperienced user (or to a user without sight of the installation) which way around the connector goes, thus it is often necessary to try both ways. More often than not, however, the side of the connector with the trident logo should be on "top" or "toward" the user. Most manufacturers do not, however, make the trident easily visible or detectable by touch.
  • Only moderate insertion / removal force is needed (by specification). USB cables and small USB devices are held in place by the gripping force from the receptacle (without need of the screws, clips, or thumbturns other connectors have required). The force needed to make or break a connection is modest, allowing connections to be made in awkward circumstances (i.e., behind a floor mounted chassis, or from below) or by those with motor disabilities. This has the disadvantage of easily and unintentionally breaking connections that one has intended to be permanent in case of cable accident (e.g., tripping, or inadvertent tugging).
  • The standard connectors were deliberately intended to enforce the directed topology of a USB network: type A connectors on host devices that supply power and type B connectors on target devices that receive power. This prevents users from accidentally connecting two USB power supplies to each other, which could lead to dangerously high currents, circuit failures, or even fire. USB does not support cyclical networks and the standard connectors from incompatible USB devices are themselves incompatible. Unlike other communications systems (e.g. RJ-45 cabling) gender changers make little sense with USB and are almost never used.
USB extension cord

Durability

  • The standard connectors were designed to be robust. Many previous connector designs were fragile, specifying embedded component pins or other delicate parts which proved liable to bending or breaks, even with the application of only very modest force. The electrical contacts in a USB connector are protected by an adjacent plastic tongue, and the entire connecting assembly is usually further protected by an enclosing metal sheath. As a result USB connectors can safely be handled, inserted, and removed, even by a young child.
  • The connector construction always ensures that the external sheath on the plug makes contact with its counterpart in the receptacle before any of the four connectors within make electrical contact. The external metallic sheath is typically connected to system ground, thus dissipating any potentially damaging static charges (rather than via delicate electronic components). This enclosure design also means that there is a (moderate) degree of protection from electromagnetic interference afforded to the USB signal while it travels through the mated connector pair (this is the only location when the otherwise twisted data pair must travel a distance in parallel). In addition, because of the required sizes of the power and common connections, they are made after the system ground but before the data connections. This type of staged make-break timing allows for electrically safe hot-swapping and has long been common practice in the design of connectors in the aerospace industry.
  • The newer Micro-USB receptacles are designed to allow up to 10,000 cycles of insertion and removal between the receptacle and plug, compared to 1500 for the standard USB and 5000 for the Mini-USB receptacle. This is accomplished by adding a locking device and by moving the leaf-spring connector from the jack to the plug, so that the most-stressed part is on the cable side of the connection. This change was made so that the connector on the (inexpensive) cable would bear the most wear instead of the micro-USB device.

Compatibility

  • The USB standard specifies relatively loose tolerances for compliant USB connectors, intending to minimize incompatibilities in connectors produced by different vendors (a goal that has been very successfully achieved). Unlike most other connector standards, the USB specification also defines limits to the size of a connecting device in the area around its plug. This was done to prevent a device from blocking adjacent ports due to the size of the cable strain relief mechanism (usually molding integral with the cable outer insulation) at the connector. Compliant devices must either fit within the size restrictions or support a compliant extension cable which does.
  • Two-way communication is also possible. In USB 3.0, full-duplex communications are done when using SuperSpeed (USB 3.0) transfer. In previous USB versions (i.e., 1.x or 2.0), all communication is half-duplex and directionally controlled by the host.

In general, cables have only plugs (very few have a receptacle on one end), and hosts and devices have only receptacles. Hosts almost universally have type-A receptacles, and devices one or another type-B variety. Type-A plugs mate only with type-A receptacles, and type-B with type-B; they are deliberately physically incompatible. However, an extension to USB standard specification called USB On-The-Go allows a single port to act as either a host or a device — chosen by which end of the cable plugs into the receptacle on the unit. Even after the cable is hooked up and the units are talking, the two units may "swap" ends under program control. This capability is meant for units such as PDAs in which the USB link might connect to a PC's host port as a device in one instance, yet connect as a host itself to a keyboard and mouse device in another instance.

  • USB 3.0 receptacles are electrically compatible with USB 2.0 device plugs if they can physically match. Most combinations will work, but there are a few physical incompatibilities. However, only USB 3.0 Standard-A receptacles can accept USB 3.0 Standard-A device plugs.

Host Interface receptacles (USB 1.x/2.0)

Receptacle Plug
USB-A USB-B Mini-B Micro-A Micro-B
USB-A Yes No No No No
USB-B No Yes No No No
Mini-B No No Yes No No
Micro-AB No No No Yes Yes
Micro-B No No No No Yes

Cable plugs (USB 1.x/2.0)

Plug Plug
Micro-B Micro-A Mini-B USB-B USB-A
USB-A Yes NS Yes Yes NS
USB-B No NS No No
Mini-B No NS No
Micro-A Yes No
Micro-B No

NS: non-standard, existing for specific proprietary purposes, and not interoperable with USB-IF compliant equipment.

In addition to these cable assemblies a cable with Micro-A and Standard-A receptacle is compliant with USB specifications. Other combinations of connectors are not compliant. However, some older devices and cables with Mini-A connector have been certified by USB-IF; the Mini-A connectors have been deprecated though some are still in use, and no new certification for assemblies using Mini-A connector will be allowed.[16]

Connector types

Pinouts of Standard, Mini, and Micro USB connectors.
Different types of USB connectors from left to right:
• male proprietary "micro" USB
• male mini USB B-type
• male B-type
• female A-type
• male A-type
B receptor to A receptor plug adapter connecting a beige USB “printer cable” to a grey USB digital camera cable
Pin configuration of the USB connectors Standard A/B, viewed from face of plug

There are several types of USB connectors, including some that have been added while the specification progressed. The original USB specification detailed Standard-A and Standard-B plugs and receptacles. The first engineering change notice to the USB 2.0 specification added Mini-B plugs and receptacles.

The data connectors in the A - Plug are actually recessed in the plug as compared to the outside power connectors. This permits the power to connect first which prevents data errors by allowing the device to power up first and then transfer the data. Some devices will operate in different modes depending on whether the data connection is made. This difference in connection can be exploited by inserting the connector only partially. For example, some battery-powered MP3 players switch into file transfer mode (and cannot play MP3 files) while a USB plug is fully inserted, but can be operated in MP3 playback mode using USB power by inserting the plug only part way so that the power slots make contact while the data slots do not. This enables those devices to be operated in MP3 playback mode while getting power from the cable.

USB-A

The Standard-A type of USB plug is a flattened rectangle which inserts into a "downstream-port" receptacle on the USB host, or a hub, and carries both power and data. This plug is frequently seen on cables that are permanently attached to a device, such as one connecting a keyboard or mouse to the computer via usb connection.

USB-B

A Standard-B plug — which has a square shape with bevelled exterior corners — typically plugs into an "upstream receptacle" on a device that uses a removable cable, e.g. a printer. A Type B plug delivers power in addition to carrying data. On some devices, the Type B receptacle has no data connections, being used solely for accepting power from the upstream device. This two-connector-type scheme (A/B) prevents a user from accidentally creating an electrical loop.[17]

Mini and Micro

Various connectors have been used for smaller devices such as PDAs, mobile phones or digital cameras. These include the now-deprecated[16] (but standardized) Mini-A and the currently standard Mini-B[18], Micro-A, and Micro-B connectors. The Mini-A and Mini-B plugs are approximately 3 by 7 mm, while the Micro plugs have a similar width but approximately half the thickness, enabling their integration into thinner portable devices.

The Micro-USB connector was announced by the USB-IF on January 4, 2007[19] and the Mini-A and Mini-AB USB connectors were deprecated at the same time. As of February 2009, many currently available devices and cables still use Mini plugs, but the newer Micro connectors are being widely adopted. The thinner micro connectors are intended to replace the Mini plugs in new devices including smartphones and personal digital assistants. The Micro plug design is rated for 10,000 connect-disconnect cycles which is significantly more than the Mini plug design.[20] The Universal Serial Bus Micro-USB Cables and Connectors Specification[20] details the mechanical characteristics of Micro-A plugs, Micro-AB receptacles, and Micro-B plugs and receptacles, along with a Standard-A receptacle to Micro-A plug adapter.

The cellular phone carrier group, Open Mobile Terminal Platform (OMTP), have recently endorsed Micro-USB as the standard connector for data and power on mobile devices.[21] These include various types of battery chargers, allowing Micro-USB to be the single external cable link needed by some devices. As of January 30, 2009 Micro-USB has been accepted by almost all cell phone manufacturers as the standard charging port (including Apple, Motorola, Nokia, LG, RIM, Samsung, Sony Ericsson) in the EU and most of the world. Worldwide conversion to the new cellphone charging standard is expected to be completed between 2010 to 2012.

Micro-AB Socket OTG

An OTG device is required to have one, and only one USB connector: a Micro-AB receptacle as defined in [Micro-USB1.01]. This receptacle is capable of accepting either a Micro-A plug or a Micro-B plug attached to any of the legal cables and adapters defined in [Micro-USB1.01].

The OTG device with the A-plug inserted is called the A-device and is responsible for powering the USB interface when required and by default assumes the role of host. The OTG device with the B-plug inserted is called the B-device and by default assumes the role of peripheral. An OTG device with no plug inserted defaults to acting as a B-device. If an application on the B-device requires the role of host, then the HNP protocol is used to temporarily transfer the host role to the B-device.

OTG devices attached either to a peripheral-only B-device or a standard/embedded host will have their role fixed by the cable since in these scenarios it is only possible to attach the cable one way around.

Proprietary connectors and formats

  • Microsoft's original Xbox game console uses standard USB 1.1 signalling in its controllers and memory cards, but uses proprietary connectors and ports.
  • IBM UltraPort uses standard USB signalling, but via a proprietary connection format.
  • American Power Conversion uses USB signalling and HID device class on its uninterruptible power supplies using 10P10C connectors.
  • HTC ExtUSB
    HTC manufactures Windows Mobile and Android-based Communicators which have a proprietary connector called HTC ExtUSB (Extended USB). ExtUSB combines mini-USB (with which it is backwards-compatible) with audio input as well as audio and video output in an 11-pin connector.
  • Nokia's Pop-Port connector
    Nokia includes a USB connection as part of the Pop-Port connector on some older mobile phone models.
  • The second- and third-generation iPod Shuffle use a TRRS connector to carry USB, audio, or power signals.
  • iriver added a fifth power pin within USB-A plugs for higher power and faster charging, used for the iriver U10 series. A mini-USB version contains a matching extra power pin for the cradle.
  • Apple has shipped non-standard USB extension cables with some of their computers, for use with the included Apple USB keyboards. The extension cable's socket is keyed with a small protrusion to prevent the insertion of a standard USB plug, while the Apple USB keyboard's plug has a matching indentation. The indentation on the keyboard's plug does not interfere with insertion into a standard USB socket. Despite the keying, it is still possible to insert standard USB plugs into the extension cord. The protrusion can also be shaved off with an appropriate blade.
  • HP Tablet computers use non-standard connectors to transmit the USB signals between the keyboard/mouse unit and the Computer Tablet Unit.

Comparisons with other device connection technologies

FireWire

USB was originally seen as a complement to FireWire (IEEE 1394), which was designed as a high-bandwidth serial bus which could efficiently interconnect peripherals such as hard disks, audio interfaces, and video equipment. USB originally operated at a far lower data rate and used much simpler hardware, and was suitable for small peripherals such as keyboards and mice.

The most significant technical differences between FireWire and USB include the following:

  • USB networks use a tiered-star topology, while FireWire networks use a tree topology.
  • USB 1.0, 1.1 and 2.0 use a "speak-when-spoken-to" protocol. Peripherals cannot communicate with the host unless the host specifically requests communication. USB 3.0 is planned to allow for device-initiated communications towards the host (see USB 3.0 below). A FireWire device can communicate with any other node at any time, subject to network conditions.
  • A USB network relies on a single host at the top of the tree to control the network. In a FireWire network, any capable node can control the network.
  • USB runs with a 5 V power line, while Firewire (theoretically) can supply up to 30 V.
  • Standard USB hub ports can provide from the typical 500mA[2.5 Watts] of current, only 100mA from non-hub ports. USB 3.0 & USB On-The-Go 1800mA[9.0W] (for dedicated battery charging, 1500mA[7.5W] Full bandwidth or 900mA[4.5W] High Bandwidth), while FireWire can in theory supply up to 60 watts of power, although 10 to 20 watts is more typical.

These and other differences reflect the differing design goals of the two buses: USB was designed for simplicity and low cost, while FireWire was designed for high performance, particularly in time-sensitive applications such as audio and video. Although similar in theoretical maximum transfer rate, FireWire 400 has performance advantage over USB 2.0 Hi-Bandwidth in real-use,[22] especially in high-bandwidth use such as external hard-drives.[23][24][25][26] The newer FireWire 800 standard being twice as fast as FireWire 400 outperforms USB 2.0 Hi-Bandwidth both theoretically and practically.[27] The chipset and drivers used to implement USB and Firewire have a crucial impact on how much of the bandwidth prescribed by the specification is achieved in the real world, along with compatibility with peripherals.[28]

Power over Ethernet

The 802.3af Power over Ethernet has superior power negotiation and optimization capabilities to powered USB. Power over Ethernet also supplies more power because it operates at 48V, 720mA while USB operates at 5V, 500mA. Ethernet also operates many more meters, with significant DC power loss, and will remain accordingly the preferred option for VoIP, security camera and other applications where networks extend through a building. However, USB is preferred when cost is critical.

Digital musical instruments

Digital musical instruments are another example of where USB is competitive for low-cost devices. However power over ethernet and the MIDI plug standard are preferred in high-end devices that must work with long cables. USB can cause ground loop problems in audio equipment because it connects the ground signals on both transceivers. By contrast, the MIDI plug standard and ethernet have built-in isolation to 500V or more.

eSATA

The eSATA connector is a more robust SATA connector, intended for connection to external hard drives and SSDs. It has a far higher transfer rate (3Gbps, bi-directional) than USB 2.0. A device connected by eSATA appears as an ordinary SATA device, giving both full performance and full compatibility associated with internal drives.

eSATA does not supply power to external devices. This may seem as a disadvantage compared to USB, but in fact USB's 2.5W is usually insufficient to power external hard drives. eSATAp (power over eSATA) is a new (2009) standard that supplies sufficient power to attached devices using a new, backwards-compatible, connector.

eSATA, like USB, supports hot plugging, although this might be limited by OS drivers.

Cables

USB 1.x/2.0 cable wiring
Pin Name Cable color Description
1 VCC Red +5 V
2 D− White Data −
3 D+ Green Data +
4 GND Black Ground

The maximum length of a standard USB cable (for USB 2.0 or earlier) is 5.0 metres (16.4 ft). The primary reason for this limit is the maximum allowed round-trip delay of about 1,500 ns. If USB host commands are unanswered by the USB device within the allowed time, the host considers the command lost. When adding USB device response time, delays from the maximum number of hubs added to the delays from connecting cables, the maximum acceptable delay per cable amounts to be 26 ns.[29] The USB 2.0 specification requires cable delay to be less than 5.2 ns per meter (192,000 km/s, which is close to the maximum achievable bandwidth for standard copper cable).[30] This allows for a 5 meter cable. The USB 3.0 standard does not directly specify a maximum cable length, requiring only that all cables meet an electrical specification. For copper wire cabling, some calculations have suggested a maximum length of perhaps 3m. No fiber optic cable designs are known to be under development, but they would be likely to have a much longer maximum allowable length, and more complex construction.

USB 1.x/2.0 Miniplug/Microplug
Pin Name Color Description
1 VCC Red +5 V
2 D− White Data −
3 D+ Green Data +
4 ID none permits distinction of

Micro-A- and Micro-B-Plug

Type A: connected to Ground

Type B: not connected

5 GND Black Signal Ground

The data cables for USB 1.x and USB 2.x use a twisted pair to reduce noise and crosstalk. They are arranged much as in the diagram below. USB 3.0 cables are more complex and employ shielding for some of the added data lines (2 pairs); a shield is added around the pair sketched.

USB Twisted Pair.svg

Maximum useful distance

USB 1.1 maximum cable length is 3 metres (9.8 ft) and USB 2.0 maximum cable length is 5 metres (16 ft).[31] Maximum permitted hubs connected in series is 5. Although a single cable is limited to 5 metres, the USB 2.0 specification permits up to five USB hubs in a long chain of cables and hubs. This allows for a maximum distance of 30 metres (98 ft) between host and device, using six cables 5 metres (16 ft) long and five hubs. In actual use, since some USB devices have built-in cables for connecting to the hub, the maximum achievable distance is 25 metres (82 ft) + the length of the device's cable. For longer lengths, USB extenders that use CAT5 cable can increase the distance between USB devices up to 50 metres (160 ft).

A method of extending USB beyond 5 metres (16 ft) is by using low resistance cable.[citation needed] The higher cost of USB 2.0 Cat 5 extenders has urged some manufacturers to use other methods to extend USB, such as using built-in USB hubs, and custom low-resistance USB cable. It is important to note that devices which use more bus power, such as USB hard drives and USB scanners will require the use of a powered USB hub at the end of the extension, so that a constant connection will be achieved. If power and data does not have sufficient power then problems can result, such as no connection at all, or intermittent connections during use.[citation needed]

USB 3.0 cable assembly may be of any length as long as all requirements defined in the specification are met. However, maximum bandwidth can be achieved across a maximum cable length of approximately 3 metres.[32]

Power

The USB 1.x and 2.0 specifications provide a 5 V supply on a single wire from which connected USB devices may draw power. The specification provides for no more than 5.25 V and no less than 4.75 V (5 V±5%) between the positive and negative bus power lines. For USB 2.0 the voltage supplied by low-powered hub ports is 4.4 V to 5.25 V.[33]

A unit load is defined as 100 mA in USB 2.0, and was raised to 150 mA in USB 3.0. A maximum of 5 unit loads (500 mA) can be drawn from a port in USB 2.0, which was raised to 6 (900 mA) in USB 3.0. There are two types of devices: low-power and high-power. Low-power devices draw at most 1 unit load, with minimum operating voltage of 4.4 V in USB 2.0, and 4 V in USB 3.0. High-power devices draw the maximum number of unit loads supported by the standard. All devices default as low-power but the device's software may request high-power as long as the power is available on the providing bus.[34]

A bus-powered hub is initialized at 1 unit load and transitions to maximum unit loads after hub configuration is obtained. Any device connected to the hub will draw 1 unit load regardless of the current draw of devices connected to other ports of the hub (i.e. one device connected on a four-port hub will only draw 1 unit load despite the fact that all unit loads are being supplied to the hub).[34]

A self-powered hub will supply maximum supported unit loads to any device connected to it. A battery-powered hub may supply maximum unit loads to ports. In addition, the VBUS will supply 1 unit load upstream for communication if parts of the Hub are powered down.[34]

In Battery Charging Specification[35], new powering modes are added to the USB specification. A host or hub Charging Downstream Port can supply a maximum of 1.5 A when communicating at low-bandwidth or full-bandwidth, a maximum of 900 mA when communicating at high-bandwidth, and as much current as the connector will safely handle when no communication is taking place; USB 2.0 standard-A connectors are rated at 1500 mA by default. A Dedicated Charging Port can supply a maximum of 1.8 A of current at 5.25 V. A portable device can draw up to 1.8 A from a Dedicated Charging Port. The Dedicated Charging Port shorts the D+ and D- pins with a resistance of at most 200Ω. The short disables data transfer, but allows devices to detect the Dedicated Charging Port and allows very simple, high current chargers to be manufactured. The increased current (faster, 9W charging) will occur once both the host/hub and devices support the new charging specification.

Mobile device charger standards

The Micro-USB interface is a new standard charger for mobile phones.

As of June 14, 2007, all new mobile phones applying for a license in China are required to use the USB port as a power port.[36][37] This was the first standard to use the convention of shorting D+ and D-.[38]

In September 2007, the Open Mobile Terminal Platform group — a forum of mobile network operators and manufacturers such as Nokia, Samsung, Motorola, Sony Ericsson and LG — announced that its members had agreed on micro-USB as the future common connector for mobile devices.[39][40]

On 17 February 2009, the GSM Association announced[41] that they had agreed on a standard charger for mobile phones. The standard connector to be adopted by 17 manufacturers including Nokia, Motorola and Samsung is to be the micro-USB connector (several media reports erroneously reported this as the mini-USB). The new chargers will be much more efficient than existing chargers[41]. Having a standard charger for all phones means that manufacturers will no longer have to supply a charger with every new phone. The basis of the GSMA's Universal Charger Solution (UCS) is the technical recommendation from OMTP and the USB-IF battery charging standard.[42][43][44]

On 22 April 2009, this was further endorsed by the CTIA [45]

On 29 June 2009 the European Commission announced an agreement with ten producers that starting in 2010, data-enabled mobile phones sold in the European Union would include a micro-USB connector for recharge.[46][47]

On 22 October 2009 the International Telecommunication Union (ITU) announced that it had embraced the Universal Charger Solution as its "energy-efficient one-charger-fits-all new mobile phone solution", and added: "Based on the Micro-USB interface, UCS chargers will also include a 4-star or higher efficiency rating - up to three times more energy-efficient than an unrated charger."[48]

Non-standard devices

USB vacuum cleaner novelty device

Some USB devices require more power than is permitted by the specifications for a single port. This is common for external hard and optical disc drives, and generally for devices with motors or lamps. Such devices can use an external power supply, which is allowed by the standard, or use a dual-input USB cable, one input of which is used for power and data transfer, the other solely for power, which makes the device a non-standard USB device. Some external hubs may, in practice, supply more power to USB devices than required by the specification but a standard-compliant device may not depend on this.

Some non-standard USB devices use the 5 V power supply without participating in a proper USB network which negotiates power draws with the host interface. These are usually referred to as USB decorations. The typical example is a USB-powered reading light; fans, mug coolers and heaters, battery chargers, miniature vacuum cleaners, and even miniature lava lamps are available. In most cases, these items contain no digital circuitry, and thus are not Standard compliant USB devices at all. This can theoretically cause problems with some computers; prior to the Battery Charging Specification, the USB specification required that devices connect in a low-power mode (100 mA maximum) and state how much current they need, before switching, with the host's permission, into high-power mode.

In addition to limiting the total average power used by the device, the USB specification limits the inrush current (i.e., that used to charge decoupling and filter capacitors) when the device is first connected. Otherwise, connecting a device could cause problems with the host's internal power. Also, USB devices are required to automatically enter ultra low-power suspend mode when the USB host is suspended. Nevertheless, many USB host interfaces do not cut off the power supply to USB devices when they are suspended since resuming from the suspended state would become a lot more complicated if they did.

There are also devices at the host end that do not support negotiation, such as battery packs that can power USB-powered devices; some provide power, while others pass through the data lines to a host PC. USB power adapters convert utility power and/or another power source (e.g., a car's electrical system) to run attached devices. Some of these devices can supply up to 1 A of current. Without negotiation, the powered USB device is unable to inquire if it is allowed to draw 100 mA, 500 mA, or 1 A.

Powered USB

Powered USB uses standard USB signaling with the addition of extra power lines. It uses four additional pins to supply up to 6 A at either 5 V, 12 V, or 24 V (depending on keying) to peripheral devices. The wires and contacts on the USB portion have been upgraded to support higher current on the 5 V line, as well. This is commonly used in retail systems and provides enough power to operate stationary barcode scanners, printers, pin pads, signature capture devices, etc. This modification of the USB interface is proprietary and was developed by IBM, NCR, and FCI/Berg. It is essentially two connectors stacked such that the bottom connector accepts a standard USB plug and the top connector takes a power connector.

Sleep-and-charge

Sleep-and-charge USB ports can be used to charge electronic devices even when the computer is switched off.[49]

Version history

Prereleases

  • USB 0.7: Released in November 1994.
  • USB 0.8: Released in December 1994.
  • USB 0.9: Released in April 1995.
  • USB 0.99: Released in August 1995.
  • USB 1.0 Release Candidate: Released in November 1995.

USB 1.0

  • USB 1.0: Released in January 1996.
    Specified data rates of 1.5 Mbit/s (Low-Bandwidth) and 12 Mbit/s (Full-Bandwidth). Does not allow for extension cables or pass-through monitors (due to timing and power limitations). Few such devices actually made it to market.
  • USB 1.1: Released in September 1998.
    Fixed problems identified in 1.0, mostly relating to hubs. Earliest revision to be widely adopted.

USB 2.0

The Hi-Speed USB Logo
  • USB 2.0: Released in April 2000.
    Added higher maximum bandwidth of 480 Mbit/s (now called "Hi-Speed"). Further modifications to the USB specification have been done via Engineering Change Notices (ECN). The most important of these ECNs are included into the USB 2.0 specification package available from USB.org:
    • Mini-B Connector ECN: Released in October 2000.
      Specifications for Mini-B plug and receptacle. These should not be confused with Micro-B plug and receptacle.
    • Errata as of December 2000: Released in December 2000.
    • Pull-up/Pull-down Resistors ECN: Released in May 2002.
    • Errata as of May 2002: Released in May 2002.
    • Interface Associations ECN: Released in May 2003.
      New standard descriptor was added that allows multiple interfaces to be associated with a single device function.
    • Rounded Chamfer ECN: Released in October 2003.
      A recommended, compatible change to Mini-B plugs that results in longer lasting connectors.
    • Unicode ECN: Released in February 2005.
      This ECN specifies that strings are encoded using UTF-16LE. USB 2.0 did specify that Unicode is to be used but it did not specify the encoding.
    • Inter-Chip USB Supplement: Released in March 2006.
    • On-The-Go Supplement 1.3: Released in December 2006.
      USB On-The-Go makes it possible for two USB devices to communicate with each other without requiring a separate USB host. In practice, one of the USB devices acts as a host for the other device.
    • Battery Charging Specification 1.1: Released in March 2007 (Updated 15 Apr 2009).
      Adds support for dedicated chargers (power supplies with USB connectors), host chargers (USB hosts that can act as chargers) and the No Dead Battery provision which allows devices to temporarily draw 100 mA current after they have been attached. If a USB device is connected to dedicated charger, maximum current drawn by the device may be as high as 1.8A. (Note that this document is not distributed with USB 2.0 specification package only USB 3.0 and USB On-The-Go.)
    • Micro-USB Cables and Connectors Specification 1.01: Released in April 2007.
    • Link Power Management Addendum ECN: Released in July 2007.
      This adds a new power state between enabled and suspended states. Device in this state is not required to reduce its power consumption. However, switching between enabled and sleep states is much faster than switching between enabled and suspended states, which allows devices to sleep while idle.

USB 3.0

The SuperSpeed USB Logo
The USB 3.0 Icon

On September 18, 2007, Pat Gelsinger demonstrated USB 3.0 at the Intel Developer Forum. The USB 3.0 Promoter Group announced on November 17, 2008, that version 3.0 of the specification had been completed and was transitioned to the USB Implementers Forum (USB-IF), the managing body of USB specifications.[50] This move effectively opened the spec to hardware developers for implementation in future products. The first certified USB 3.0 consumer products were announced January 5, 2010, at the Las Vegas Consumer Electronics Show (CES), including two motherboards, by ASUS and Gigabyte Technology.[51][52]

Features

  • A new major feature is the "SuperSpeed" bus, which provides a fourth transfer mode at 4.8 Gbit/s. The raw throughput is 4 Gbit/s, and the specification considers it reasonable to achieve 3.2 Gbit/s (0.4 GByte/s or 400 MByte/s) or more after protocol overhead.[53]
  • When operating in SuperSpeed mode, full-duplex signaling occurs over 2 differential pairs separate from the non-SuperSpeed differential pair. This results in USB 3.0 cables containing 2 wires for power and ground, 2 wires for non-SuperSpeed data, and 4 wires for SuperSpeed data, and a shield (not required in previous specifications).[54]
  • To accommodate the additional pins for SuperSpeed mode, the physical form factors for USB 3.0 plugs and receptacles have been modified from those used in previous versions. Standard-A cables have extended heads where the SuperSpeed connectors extend beyond and slightly above the legacy connectors. Similarly, the Standard-A receptacle is deeper to accept these new connectors. On the other end, the SuperSpeed Standard-B connectors are placed on top of the existing form factor. A legacy standard A-to-B cable will work as designed and will never contact any of the SuperSpeed connectors, ensuring backward compatibility. SuperSpeed standard A plugs will fit legacy A receptacles but SuperSpeed standard B plugs will not fit into legacy standard B receptacles (so a new cable can be used to connect a new device to an old host but not to connect a new host to an old device; for that, a legacy standard A-to-B cable will be required) [55]
  • SuperSpeed establishes a communications pipe between the host and each device, in a host-directed protocol. In contrast, USB 2.0 broadcasts packet traffic to all devices.
  • USB 3.0 extends the bulk transfer type in SuperSpeed with Streams. This extension allows a host and device to create and transfer multiple streams of data through a single bulk pipe.
  • New power management features include support of idle, sleep and suspend states, as well as Link-, Device-, and Function-level power management.
  • The bus power spec has been increased so that a unit load is 150 mA (+50% over minimum using USB 2.0). An unconfigured device can still draw only 1 unit load, but a configured device can draw up to 6 unit loads (900 mA, an 80% increase over USB 2.0 at a registered maximum of 500 mA). Minimum device operating voltage is dropped from 4.4 V to 4 V.
  • USB 3.0 does not define cable assembly lengths, except that it can be of any length as long as it meets all the requirements defined in the specification. However, electronicdesign.com estimates cables will be limited to 3 m at SuperSpeed.[32]
  • Technology is similar to a single channel (1x) of PCI Express 2.0 (5-Gbit/s). It uses 8B/10B encoding, linear feedback shift register (LFSR) scrambling for data and spread spectrum. It forces receivers to use low frequency periodic signaling (LFPS), dynamic equalization, and training sequences to ensure fast signal locking.

Availability

USB 3.0 Hub demo board using the VIA VL810 chip

Consumer products became available in January 2010.[51][52] To ensure compatibility between motherboards and peripherals, all USB-certified devices must be approved by the USB Implementers Forum. At least one complete end-to-end test system for USB 3.0 designers is on the market.[56]

In early January 2010, both Asus and Gigabyte announced the "first" USB 3.0 certified motherboard.[57][58] Previous announcements included Gigabyte's October 2009 list of seven P55 chipset USB 3.0 motherboards[59], and an ASUS motherboard that was canceled before production.[60]

Commercial controllers are expected to enter into volume production in the first quarter of 2010.[61] On September 24, 2009 Freecom announced a USB 3.0 external hard drive.[62] On January 4, 2010, Seagate announced a small portable HDD with PC Card targeted for laptops (or desktop with PC Card slot addition) at the CES in Las Vegas.[63][64]

Drivers are under development for Windows 7, but support was not included with the initial release of the operating system.[65] The Linux kernel has supported USB 3.0 since version 2.6.31, which was released in September 2009.[66][67][68]

Intel will not support USB 3.0 until 2011[69], which will slow down mainstream adoption. These delays may be due to problems in the CMOS manufacturing process,[70] a focus to advance the Nehalem platform [71] or a tactic by Intel to boost its upcoming Light Peak interface.[72] Current AMD roadmaps indicate that the new southbridges released in the beginning of 2010 will not support USB 3.0[70]. Market researcher In-Stat predicts a relevant market share of USB 3.0 not until 2011.[73]

USB 2.0 data rates

The theoretical maximum data rate in USB 2.0 is 480 Mbit/s (60 MB/s) per controller and is shared amongst all attached devices. Some chipset manufacturers overcome this bottleneck by providing multiple USB 2.0 controllers within the southbridge. Big performance gains can be achieved when attaching multiple high bandwidth USB devices such as disk enclosures in different controllers. The following table displays southbridge ICs that have multiple EHCI controllers.

Vendor Southbridge USB 2.0 ports EHCI controllers Maximum data rate
AMD SB7x0/SP5100 12 2 120 Mb/s
AMD SB8x0 14 3 180 Mb/s
Broadcom HT1100 12 3 180 Mb/s
Intel ICH8 10 2 120 Mb/s
Intel ICH9 12 2 120 Mb/s
Intel ICH10 12 2 120 Mb/s
Intel PCH 8/12/14 2 120 Mb/s
nVIDIA ION/ION-LE 12 2 120 Mb/s

Every other AMD, Broadcom, Intel southbridge supporting USB 2.0 has only one EHCI controller. All SiS southbridge supporting USB 2.0 have only one EHCI controller. All ULi, VIA southbridge, single chip northbridge/southbridge supporting USB 2.0 have only one EHCI controller. Also all PCI USB 2.0 ICs used for add-in cards have only one EHCI controller. Despite that some card manufacturers offer improved cards which have 2 PCI USB 2.0 ICs attached to one PCI to PCI bridge. In PCIe, the usual design with multiple USB ports per EHCI controller has changed with the introduction of the MosChip MCS9990 IC. MCS9990 has one EHCI controller per port so all its USB ports can operate simultaneously without any performance limitations. Dual IC cards have been introduced as well and come with 2 PCI USB 2.0 ICs attached to one PCI to PCIe bridge.

Related technologies

The PictBridge standard allows for interconnecting consumer imaging devices. It typically uses USB for its underlying communication layer.

The USB Implementers Forum is working on a wireless networking standard based on the USB protocol. Wireless USB is intended as a cable-replacement technology, and will use ultra-wideband wireless technology for data rates of up to 480 Mbit/s.

See also

References

  1. ^ "About USB-IF". USB Implementers Forum, Inc.. http://www.usb.org/about. Retrieved 2009-11-04. 
  2. ^ http://www.cnn.com/2010/TECH/02/04/ajay.bhatt.usb.inventor/index.html
  3. ^ "USB.org: Welcome". USB Implementers Forum, Inc.. http://www.usb.org/home. Retrieved 2009-11-04. 
  4. ^ "SuperSpeed USB 3.0: More Details Emerge". 6 Jan 2009. http://www.pcworld.com/article/156494/superspeed_usb_30_more_details_emerge.html. 
  5. ^ a b "Definition of Universal Serial Bus". 1394 Newsletter 2 (4): 7–9. April 1998. http://books.google.com/books?id=fRvbxgH4wmsC&pg=PA7. Retrieved 2010-03-11. 
  6. ^ Seebach, Peter (April 26, 2005). "Standards and specs: The ins and outs of USB". IBM. http://www.ibm.com/developerworks/power/library/pa-spec7.html. Retrieved 2010-03-11. 
  7. ^ USB Class Codes at USB.org
  8. ^ Universal Serial Bus Test and Measurement Class Specification (USBTMC), Revision 1.0, April 14, 2003, USB Implementers Forum, Inc.
  9. ^ Universal Serial Bus 3.0 Specification,4.4.11 "Efficiency"
  10. ^ "100 Portable Apps for your USB Stick (both for Mac and Win)". http://www.makeuseof.com/tag/portable-software-usb/. Retrieved 2008-10-30. 
  11. ^ "Skype VoIP USB Installation Guide". http://www.VoIP-Download.com/Skype.htm#USB/. Retrieved 2008-10-30. 
  12. ^ "NEC ready to sample 'world's first' USB 3.0 controller chip". http://www.reghardware.co.uk/2009/05/19/nec_usb_3_host/. Retrieved 2009-06-15. 
  13. ^ "When will USB 3.0 products hit the market?". http://www.everythingusb.com/superspeed-usb.html#6. Retrieved 2009-05-11. 
  14. ^ "USB in a NutShell—Chapter 2—Hardware". Beyond Logic.org. http://www.beyondlogic.org/usbnutshell/usb2.htm. Retrieved 2007-08-25. 
  15. ^ "How Fast Does A USB 2.0 Drive Go On The Newest Macs? How Does It Compare To FireWire?". Bare Facts. May 8, 2004. http://www.barefeats.com/usb2.html. Retrieved 2007-08-25. 
  16. ^ a b USB Implementers Forum (2007-05-27). "Deprecation of the Mini-A and Mini-AB Connectors" (PDF). Press release. http://www.usb.org/developers/Deprecation_Announcement_052507.pdf. Retrieved 2009-01-13. 
  17. ^ Quinnell, Richard A (1996). "USB: a neat package with a few loose ends - USB Fundamentals". EDN Magazine of Reed Properties Inc. http://www.edn.com/archives/1996/102496/df_01.htm#USB%20fundamentals. Retrieved 2008-08-06. 
  18. ^ "ID Pin Resistance on Mini B-plugs and Micro B-plugs Increased to 1 Mohm". USB IF Compliance Updates. December 2009. http://compliance.usb.org/index.asp?UpdateFile=Cables%20and%20Connectors&Format=Standard#63. Retrieved 2010-03-01. 
  19. ^ USB Implementers Forum (2007-01-04). "Mobile phones to adopt new, smaller USB connector" (PDF). Press release. http://www.usb.org/press/pressroom/2007_01_04_usbif.pdf. Retrieved 2007-01-08. 
  20. ^ a b (.zip) Universal Serial Bus Micro-USB Cables and Connectors Specification to the USB 2.0 Specification, Revision 1.01. USB Implementers Forum, Inc.. 2007-04-07. http://www.usb.org/developers/docs/usb_20_052709.zip. Retrieved 2009-10-07. "Section 1.3: Additional requirements for a more rugged connector that will have durability past 10,000 cycles and still meet the USB 2.0 specification for mechanical and electrical performance was also a consideration. The Mini-USB could not be modified and remain backward compatible to the existing connector as defined in the USB OTG specification". 
  21. ^ "OMTP Local Connectivity: Data Connectivity". Open Mobile Terminal Platform. 17 September 2007. http://www.omtp.org/Publications/Display.aspx?Id=08d2e4e3-ebee-407c-a51b-94057e7f7b19. Retrieved 2009-02-11. 
  22. ^ Qimaging.com
  23. ^ "FireWire vs. USB 2.0 - Bandwidth Tests". http://www.cwol.com/firewire/firewire-vs-usb.htm. Retrieved 2007-08-25. 
  24. ^ "USB 2.0 vs FireWire". Digit-Life. http://www.digit-life.com/articles/usb20vsfirewire. Retrieved 2007-08-25. 
  25. ^ Metz, Cade. "The Great Interface-Off: FireWire Vs. USB 2.0". PC Magazine. http://www.pcmag.com/article2/0,4149,847716,00.asp. Retrieved 2007-08-25. 
  26. ^ Heron, Robert. "USB 2.0 Versus FireWire". TechTV. http://www.g4tv.com/techtvvault/features/39129/USB_20_Versus_FireWire_pg3.html. Retrieved 2007-08-25. 
  27. ^ "FireWire vs. USB 2.0". USB Ware. http://www.usb-ware.com/firewire-vs-usb.htm. Retrieved 2007-03-19. 
  28. ^ Key, Gary (2005-11-15). "Firewire and USB Performance". http://www.anandtech.com/mb/showdoc.aspx?i=2602&p=15. Retrieved 2008-02-01. 
  29. ^ USB Frequently Asked Questions at USB.org
  30. ^ "Propagation Delay". http://www.wildpackets.com/support/compendium/ethernet/propagation_delay. Retrieved 2008-10-31. 
  31. ^ Discountcablesusa.com
  32. ^ a b Electronicdesign.com
  33. ^ "“7.3.2 Bus Timing/Electrical Characteristics”". Universal Serial Bus Specification. USB.org. http://www.usb.org/developers/docs/. 
  34. ^ a b c USB.org
  35. ^ "Battery Charging Specification". USB Implementers Forum, Inc. 15 April 2009. http://www.usb.org/developers/devclass_docs/batt_charging_1_1.zip. Retrieved 23 September 2009. 
  36. ^ Cai Yan (2007-05-31). "China to enforce universal cell phone charger". EETimes.com. http://www.eetimes.com/rss/showArticle.jhtml?articleID=199800238&cid=RSSfeed_eetimes_newsRSS. Retrieved 2007-08-25. 
  37. ^ The Chinese FCC's technical standard: YD/T 1591-2006, "Technical Requirements and Test Method of Charger and Interface for Mobile Telecommunication Terminal Equipment." (Chinese)
  38. ^ http://www.wirelessnetdesignline.com/202800278?printableArticle=true
  39. ^ "Pros seem to outdo cons in new phone charger standard". news.com. September 20, 2007. http://www.news.com/2100-1041_3-6209247.html. Retrieved 2007-11-26. 
  40. ^ "Press Release: Broad Manufacturer Agreement Gives Universal Phone Cable Green Light". OTMP. September 17, 2007. http://www.omtp.org/News/Display.aspx?Id=4ec69ecb-0978-4df6-b045-34557aabbcbd. Retrieved 2007-11-26. 
  41. ^ a b "GSM World agreement on Mobile phone Standard Charger". http://www.gsmworld.com/newsroom/press-releases/2009/2548.htm. 
  42. ^ "Common Charging and Local Data Connectivity". Open Mobile Terminal Platform. 11 February 2009. http://www.omtp.org/Publications/Display.aspx?Id=4dda105f-8472-4c12-ba04-75dd3c1d4ca6. Retrieved 2009-02-11. 
  43. ^ http://www.gsmworld.com/our-work/mobile_planet/universal_charging_solution.htm
  44. ^ http://www.planetanalog.com/article/printableArticle.jhtml?articleID=218501515
  45. ^ CTIA–The Wireless Association Announces One Universal Charger Solution to Celebrate Earth Day
  46. ^ Ec.europa.eu
  47. ^ Wired.com
  48. ^ Itu.int
  49. ^ Usb-core.co.uk
  50. ^ Usb.org
  51. ^ a b http://www.pcworld.com/article/186209/first_certified_usb_30_products_announced.html?tk=rel_news
  52. ^ a b http://www.usb.org/pres/SuperSpeed_USB_Consumer_Cert_FINAL_2_.pdf
  53. ^ Universal Serial Bus 3.0 Specification, 4.4.11 "Efficiency"
  54. ^ Universal Serial Bus 3.0 Specification, 5.4 "Cable Construction and Wire Assignments"
  55. ^ Universal Serial Bus 3.0 Specification, 5.2.1 "Connectors"
  56. ^ Lecroy.com
  57. ^ http://usa.asus.com/News.aspx?N_ID=8avVkB0IqOx0m8Pr
  58. ^ http://www.gigabyte.us/News/Motherboard/News_List.aspx?NewsID=1509
  59. ^ [1]
  60. ^ http://www.theinquirer.net/inquirer/news/1495417/asus-cancels-usb-motherboard
  61. ^ Digitimes.com
  62. ^ Freecom.com
  63. ^ http://ces.cnet.com/8301-31045_1-10420360-269.html
  64. ^ http://www.seagate.com/www/en-us/products/external/blackarmor/blackarmor_ps_110_usb3/?intcmp=bac-en-us-home-h_hero1-baps110kit
  65. ^ Apcmag.com
  66. ^ Kernelnewbies.org
  67. ^ Heise.de
  68. ^ Linux-magazine.com
  69. ^ Eetimes.com
  70. ^ a b Heise.de (German)
  71. ^ Fiercecio.com
  72. ^ Techspot.com
  73. ^ Heise.de (German)

External links

USB 3.0


Wiktionary

Up to date as of January 15, 2010

Definition from Wiktionary, a free dictionary

Contents

English

Wikipedia-logo.png
Wikipedia has an article on:

Wikipedia

Initialism

Wikipedia-logo.png
Wikipedia has an article on:

Wikipedia

USB

  1. (computing) Universal Serial Bus; a serial bus standard for connecting devices

Derived terms

Anagrams


Wikibooks

Up to date as of January 23, 2010
(Redirected to Serial Programming/USB article)

From Wikibooks, the open-content textbooks collection

Contents

What is USB?

USB connects several devices to a host controller through a chain of hubs. In USB terminology, devices are referred to as functions, because each individual physical device may actually host several functions, such as a webcam with a built-in microphone. The hubs are special-purpose devices that are not officially considered functions. There always exists one hub known as the root hub, which is attached directly to the host controller.

These devices/functions (and hubs) have associated pipes (logical channels). The pipes are synonymous to byte streams such as in the pipelines of Unix. Pipes are connections from the host controller to a logical entity on the device named an endpoint. The term endpoint is also occasionally used to refer to the entire pipe.

These endpoints (and their respective pipes) are numbered 0-15 in each direction, so a device/function can have up to 32 active pipes, 16 into the host controller and 16 out of the controller.

Each endpoint can transfer data in one direction only, either into or out of the device/function, so each pipe is uni-directional. Endpoint 0 is however reserved for the bus management in both directions and thus takes up two of the 32 endpoints — all USB devices are required to implement endpoint 0, so there is always an inward and an outward pipe numbered 0 on any given device.

In these pipes, data is transferred in packets of varying length. Each pipe has a maximum packet length, typically 2n bytes, so a USB packet will often contain something on the order of 8, 16, 32, 64, 128, 256 up to 512 bytes.

The pipes are also divided into four different categories by way of their transfer type:

  • control transfers - typically used for short, simple commands to the device, and a status response, used e.g. by the bus control pipe number 0
  • isochronous transfers - at some guaranteed speed (often but not necessarily as fast as possible) but with possible data loss, e.g. realtime audio or video
  • interrupt transfers - devices that need guaranteed quick responses (bounded latency), e.g. pointing devices and keyboards
  • bulk transfers - large sporadic transfers using all remaining available bandwidth (but with no guarantees on throughput or latency), e.g. file transfers

When a device (function) or hub is attached to the host controller through any hub on the bus, it is given a unique 7 bit address on the bus by the host controller.

The host controller then polls the bus for traffic, usually in a round-robin fashion, so no device can transfer any data on the bus without explicit request from the host controller. The interrupt transfers on corresponding endpoints do not actually interrupt any traffic on the bus: they are just scheduled to be queried more often and in between any other large transfers, thus "interrupt traffic" on a USB bus is really only high-priority traffic.

To access an endpoint, a hierarchical configuration must be obtained. The device connected to the bus has one (and only one) device descriptor which in turn has one or more configuration descriptors. These configurations often correspond to states, e.g. active vs. low power mode. Each configuration descriptor in turn has one or more interface descriptors, which describe certain aspects of the device, so that it may be used for different purposes: for example, a camera may have both audio and video interfaces. These interface descriptors in turn have one default interface setting and possibly more alternate interface settings which in turn have endpoint descriptors, as outlined above. An endpoint may however be reused among several interfaces and alternate interface settings.

Host controllers

A USB Series “A” plug

The hardware that contains the host controller and the root hub has an interface geared toward the programmer which is called Host Controller Device (HCD) and is defined by the hardware implementer. In practice, these are hardware registers (ports) in the computer.

At version 1.0 and 1.1 there were two competing HCD implementations. Compaq's Open Host Controller Interface (OHCI) was adopted as the standard by the USB-IF. However, Intel subsequently created a specification they called the Universal Host Controller Interface (UHCI) and insisted other implementers pay to license and implement UHCI. VIA Technologies licensed the UHCI standard from Intel; all other chipset implementers use OHCI. The main difference between OHCI and UHCI is the fact that UHCI is more software-driven than OHCI is, making UHCI slightly more processor-intensive but cheaper to implement. The dueling implementations forced operating system vendors and hardware vendors to develop and test on both implementations which increased cost. During the design phase of USB 2.0 the USB-IF insisted on only one implementation. The USB 2.0 HCD implementation is called the Extended Host Controller Interface (EHCI). Only EHCI can support hi-speed transfers. Each EHCI controller contains four virtual HCD implementations to support Full Speed and Low Speed devices. The virtual HCD on Intel and VIA EHCI controllers are UHCI. All other vendors use virtual OHCI controllers.

Class Codes

The device descriptor of a USB device has a signature that tells what kind of device has been attached to the bus. This signature consists of class code, subclass code and protocol fields. Together, these identify what operating system driver should be used to communicate with the device. Additionally, each USB device interface descriptor contains the same signature fields. The interface signature allows multiple operating system drivers to simultaneously communicate with a single USB device (for example USB device with audio and video interfaces) and they also allow multiple instances of the same driver to communicate with separate interfaces of the same USB device (for example USB ethernet adapter with multiple ethernet ports)

Devices that attach to the bus can be full-custom devices requiring a full-custom device driver to be used, or may belong to a device class. These classes define an expected behavior in terms of device and interface descriptors so that the same device driver may be used for any device that claims to be a member of a certain class. An operating system is supposed to implement all device classes so as to provide generic drivers for any USB device.

Device class codes are decided upon by the Device Working Group of the USB Implementers Forum. If the class applies to the entire device, the class code is assigned to the bDeviceClass field of the device descriptor, and if it is to be set for a single interface on a device, it is assigned to the bInterfaceClass field of the interface descriptor. It is also possible that multiple interfaces of the device are grouped by using an Interface Association Descriptor, in which case the class code is assigned to bFunctionClass fields of the descriptor. Class code is a single byte, so a maximum of 254 different device classes are possible (values 0x00 and 0xFF are reserved). If bDeviceClass is set to 0x00, the operating system will look at bFunctionClass for Interface Association Descriptors and bInterfaceClass for each interface to determine the device class. Each class also optionally supports a SubClass and Protocol subdefinition. These can be used as the main device classes are continuously revised.

The most used class codes (grouped by assigned class ID) are:[1]

0x00 - Unspecified Class (Device Descriptor) 
The USB device has no assigned class code. The class codes of the device interface descriptors should be used to identify which drivers are supported by the device.
0x01 - Audio Class (Interface Descriptor) 
The interface follows USB audio device class specification. This class code is used by sound card-like devices.
0x02 - CDC / Communication Device Class (Device or Interface Descriptor) 
USB communications device class ("CDC"), used for modems, network cards, ISDN connections, Fax.
0x03 - HID Class / Human Interface Device Class (Interface Descriptor) 
USB human interface device class ("HID"), keyboards, mice, etc.
0x05 - Physical Device Class (Interface Descriptor) 
 ?
0x06 - Still Imaging Class (Interface Descriptor) 
Still image capture device class, identical to the Picture Transfer Protocol as used across USB
0x07 - Printer Class (Interface Descriptor) 
USB printer device class, printer-like devices.
0x08 - Mass Storage Class (Interface Descriptor) 
USB mass storage device class used for flash drives, portable hard drives, memory card readers, digital cameras, digital audio players etc. This device class presents the device as a block device (almost always used to store a file system).
0x09 - Hub (Device Descriptor) 
USB hubs.
0x0A - CDC Data / Communication Device Class Data (Interface Descriptor) 
CDC-Data (Communications Class Device).
0x0B - Smart Card Class (Interface Descriptor) 
Smart card readers.
0x0D - Content Security Class (Interface Descriptor) 
Content Security.
0x0E - Video Class (Interface Descriptor) 
USB video device class, webcam-like devices, motion image capture devices.
0xDC - Diagnostics Device Class (Device or Interface Descriptor) 
Class for diagnostics devices. This class has a single subclass for USB 2.0 compliance testing devices.
0xE0 - Wireless Controller Class (Device or Interface Descriptor) 
Wireless controllers, for example Bluetooth dongles. This class code is usually used only in interface descriptors, only bluetooth subclass allows use in device descriptors.
0xEF - Miscellaneous Class (Device or Interface Descriptor) 
 ?
0xFE - Application Specific Class (Interface Descriptor) 
 ?
0xFF - Vendor Specific Class (Device or Interface Descriptor) 
Custom device class - used to establish that a device or interface does not support any standard device class and requires custom drivers.

USB signaling

Pin numbers (looking at socket)
Pin assignments[2]
Pin Function
  1 VBUS (4.75–5.25 volts)
  2 D−
  3 D+
  4 GND
  Shell Shield

Mnemonic: Victor Dashes Across Ground-Zero (Vbus , - , + , GND , Shield/Blank)

USB signals are transmitted on a twisted pair of data cables, labelled D+ and D−. These collectively use half-duplex differential signaling to combat the effects of electromagnetic noise on longer lines. D+ and D− usually operate together; they are not separate simplex connections. Transmitted signal levels are 0.0–0.3 volts for low and 2.8–3.6 volts for high.

Transfer modes

USB supports four transfer modes:

  • Control
  • Interrupt
  • Bulk
  • Isochronous
Transfer speed

USB supports three data rates:

  • A Low Speed rate of up to 1.5 Mbit/s (187.5 kB/s) that is mostly used for Human Interface Devices (HID) such as keyboards, mice, and joysticks.
  • A Full Speed rate of up to 12 Mbit/s (1.5 [MB/s). Full Speed was the fastest rate before the USB 2.0 specification and many devices fall back to Full Speed. Full Speed devices divide the USB bandwidth between them in a first-come first-served basis and it is not uncommon to run out of bandwidth with several isochronous devices. All USB Hubs support Full Speed.
  • A Hi-Speed rate of up to 480 Mbit/s (60 MB/s).

Hubs, even Hi-Speed hubs, serving a number of non-hi-speed devices, are likely to divide up a total bandwidth of 12 Mbit/s for such devices, which will slow them down unless the hub has transaction translator for each port. [3]

Though Hi-Speed devices are commonly referred to as "USB 2.0" and advertised as "up to 480 Mbit/s", not all USB 2.0 devices are Hi-Speed. Hi-speed devices typically only operate at half of the full theoretical (60 MB/s) data throughput rate. The maximum rate currently (2006) attained with real devices is about half, 30 MB/s.[4] Most hi-speed USB devices typically operate at much slower speeds, often about 3 MB/s overall, sometimes up to 10-20 MB/s. The USB-IF certifies devices and provides licenses to use special marketing logos for either "Basic-Speed" (low and full) or Hi-Speed after passing a compliancy test and paying a licensing fee. All devices are tested according to the latest spec, so recently-compliant Low Speed devices are also 2.0.

Hi-Speed devices are intended to fall back to the slower data rate of Full Speed when plugged into a Full Speed hub. Hi-Speed hubs have a special function called the Transaction Translator that segregates Full Speed and Low Speed bus traffic from Hi-Speed traffic. The Transaction Translator in a Hi-Speed hub (or possibly each port depending on the electrical design) will function as a completely separate Full Speed bus to Full Speed and Low Speed devices attached to it. This segregation is for bandwidth only; bus rules about power and hub depth still apply.

A hub will have one or more Transaction Translators and there is no standard way to determine the number of transaction translators a hub may have. All low and full speed devices connected to one transaction translator will share the low/full speed bandwidth. This means that hubs can have dramatically different performance depending upon the number of transaction translators and the devices plugged into their ports. e.g. a hi-speed 7 port hub with only 1 transaction translator with 7 low/full speed devices plugged in, will act no differently than a USB 1.1 hub and all devices compete for the same low/full speed bandwidth. If the hub were to have a transaction translator for each of the seven ports, then each device would have all the full/low speed bandwidth available to it and would only compete for the hi-speed bandwidth, which is much greater.[5]

Data encoding

The USB standard uses the NRZI system to encode data, and uses bit stuffing for logic 1 transmission six bits long (put logic 0 after six bits of logic 1; the receiver ignores a 0 following six logic 1). Moreover, receiving a block of seven consecutive bits of logic 1 will be signaled as a bit stuffing error at the receiver. The NRZI (non-return to zero, inverted) encoding method does not change the signal for transmission of a logic 1, but it inverts the signal level for transmission of each logic 0.

Mini-USB signaling

USB Mini-A, and -B plugs showing pin numbers (not to scale)
Mini-A plug (left), Mini-B plug (right)
Mini-USB connector pinout
Pin Function
1 VBUS (4.4–5.25 V)
2 D−
3 D+
4 ID
5 Ground

Most of the pins of a Mini-USB connector are the same as those in a standard USB connector, except pin 4. Pin 4 is called "ID" and, in the Mini-A plug, is connected to ground, but in the Mini-B plug it is not connected. This causes a device supporting USB On-The-Go (with a Mini-AB socket) to initially act as host when connected to a USB Mini-A plug (the "A" end of a Mini-A– Mini-B cable). The Mini-A connector also has an additional piece of plastic inside to prevent insertion into a slave-only (B-only) device.

USB connectors

Connector types

There are several types of USB connectors, and some have been added as the specification has progressed. From the original USB specification:

  • Standard-A plug
  • Standard-A receptacle
  • Standard-B plug
  • Standard-B receptacle

Added in the first engineering change noticed to the USB 2.0 specification:

  • Mini-B plug
  • Mini-B receptacle

Added in the Universal Serial Bus Micro-USB Cables and Connectors Specification:

  • Micro-A plug (white)
  • Micro-AB receptacle (gray)
  • Micro-B plug (black)
  • Micro-B receptacle (black)

Adapters, also from the Universal Serial Bus Micro-USB Cables and Connectors Specification (Note that no other adapters are allowed.):

  • Standard-A receptacle to Micro-A plug
Micro-USB plug
Micro-USB plug
  • "Micro-series USB technology will replace Mini-series USB in OTG products" [1] "Beaverton, OR, 2007-01-04 -- The USB Implementers Forum, Inc. (USB-IF) today announced the completion of the Micro-USB specification, a new connector technology that will replace many of the Mini-series plugs and receptacles currently used in portable products." The Micro-USB plug is rated for 10,000 connect-disconnect cycles. It is about half the height of the mini-USB connector in widespread use today but features a similar width.

Cables and connectors

Series "A" plug and receptacle.

Cables have only plugs, and hosts and devices have only receptacles. Hosts have type-A receptacles; devices, if they have receptacles, have type-B. Type-A plugs only mate with type-A receptacles, and type-B with type-B.

The On-the-Go supplement allows a product to be either host or device, with a Micro-AB receptacle that accepts either a Micro-A plug or a Micro-B plug. Micro-A, Micro-B, and Micro-AB connectors are identified easily by color. The plastic inside Micro-A plugs and receptacles is always white, that in Micro-B connectors black, and that in Micro-AB receptacles grey.

There is a limited set of cables allowed by the USB specification. Cables fall into two categories — "detachable" and "captive". All allowed USB cables have one type-A plug, either Standard-A or Micro-A. The other end of a "captive" cable is either not removable or it has a custom connector on the device end. If the cable is "detachable", the other end of the cable must have a type-B plug. There also exists a special adapter cable that has micro-A plug and standard-A receptacle.

Captive USB cable types:

  • Standard-A plug to device.
    This cable may have a custom connector on the device end.
  • Micro-A plug to device.
    This cable is not intended to be removed by the end user of the device.

Detachable USB cable types:

  • Standard-A plug to Standard-B plug.
    This is the most popular cable for connecting USB devices to host.
  • Standard-A plug to Mini-B plug.
    Used to connect older mobile devices to host.
  • Standard-A plug to Micro-B plug.
    Used to connect newer mobile devices to host.
  • Micro-A plug to Micro-B plug.
    Used to connect mobile devices to each other.
  • Micro-A plug to Standard-A receptacle.
    This is a special adapter cable that is allowed to be at most 150 mm long. It is needed in order to allow mobile devices to act as USB hosts for devices which are not using Micro-USB connectors.

Any cable with a receptacle (except the special case above) or with two "A" or two "B" connectors is, by definition, not USB.[6] However, many cable manufacturers make and sell USB-compatible (yet not strictly conforming) extension cables with a Standard-A plug on one end and Standard-A receptacle on the other end. Note that these non-conforming extension cables should not be mixed with conforming cables that contain a small bus-powered hub. Cables with two type A or even two type B plugs are available from more specialist suppliers.

Note that only "full-speed" and "hi-speed" devices use detachable cables. Compliant "Low-speed" devices only use captive cables, because the low-speed specification does not allow for the electrical characteristics of standard detachable USB cables.

The Mini-B, Micro-A, Micro-B, and Micro-AB connectors are used for smaller devices such as PDAs, mobile phones or digital cameras. The Standard-A plug is approximately 4 by 12 mm, the Standard-B approximately 7 by 8 mm, and the Micro-A and Micro-B plugs approximately 2 by 7 mm.

The connectors which the USB committee specified were designed to support a number of USB's underlying goals, and to reflect lessons learned from the varied menagerie of connectors then in service. In particular:

  • The connectors are designed to be robust. Many previous connector designs were fragile, with pins or other delicate components prone to bending or breaking, even with the application of only very modest force. The electrical contacts in a USB connector are protected by an adjacent plastic tongue, and the entire connecting assembly is further protected by an enclosing metal sheath. As a result USB connectors can safely be handled, inserted, and removed, even by a small child. The encasing sheath and the tough moulded plug body mean that a connector can be dropped, stepped upon, even crushed or struck, all without damage; a considerable degree of force is needed to significantly damage a USB connector.
  • It is difficult to incorrectly attach a USB connector. Connectors cannot be plugged-in upside down, and it is clear from the appearance and kinesthetic sensation of making a connection when the plug and socket are correctly mated. However, it is not obvious at a glance to the inexperienced user (or to a user without sight of the installation) which way round a connector goes, so it is often necessary to try both ways.
  • The connectors are particularly cheap to manufacture.
  • The connectors enforce the directed topology of a USB network. USB does not support cyclical networks, so the connectors from incompatible USB devices are themselves incompatible. Unlike other communications systems (e.g. RJ-45 cabling) gender-changers are almost never used, making it difficult to create a cyclic USB network.
  • A moderate insertion/removal force is specified. USB cables and small USB devices are held in place by the gripping force from the receptacle (without the need for the screws, clips, or thumbturns other connectors require). The force needed to make or break a connection is modest, allowing connections to be made in awkward circumstances or by those with motor disabilities.
  • The connector construction always ensures that the external sheath on the plug contacts with its counterpart in the receptacle before the four connectors within are connected. This sheath is typically connected to the system ground, allowing otherwise damaging static charges to be safely discharged by this route (rather than via delicate electronic components). This means of enclosure also means that there is a (moderate) degree of protection from electromagnetic interference afforded to the USB signal while it travels through the mated connector pair (this is the only location when the otherwise twisted data pair must travel a distance in parallel). In addition, the power and common connections are made after the system ground but before the data connections. This type of staged make-break timing allows for safe hot-swapping and has long been common practice in the design of connectors in the aerospace industry.
  • The USB standard specifies relatively low tolerances for compliant USB connectors, intending to minimize incompatibilities in connectors produced by different vendors (a goal that has been very successfully achieved). Unlike most other connector standards, the USB spec also defines limits to the size of a connecting device in the area around its plug. This was done to avoid circumstances where a device complied with the connector specification but its large size blocked adjacent ports. Compliant devices must either fit within the size restrictions or support a compliant extension cable which does.

However, the physical layer is changed in some examples. For example, the IBM UltraPort is a proprietary USB connector located on the top of IBM's laptop LCDs. It uses a different mechanical connector while preserving the USB signaling and protocol. Other manufacturers of small items also developed their own small form factor connector, and a wide variety of these have appeared. For specification purposes, these devices were treated as having a captive cable.

An extension to USB called USB On-The-Go allows a single port to act as either a host or a device - chosen by which end of the cable plugs into the socket on the unit. Even after the cable is hooked up and the units are talking, the two units may "swap" ends under program control. This facility targets units such as PDAs where the USB link might connect to a PC's host port as a device in one instance, yet connect as a host itself to a keyboard and mouse device in another instance. USB On-The-Go has therefore defined two small form factor connectors, the Mini-A and Mini-B, and a universal socket (Mini-AB), which should stop the proliferation of proprietary designs.

Wireless USB is a standard being developed to extend the USB standard while maintaining backwards compatibility with USB 1.1 and USB 2.0 on the protocol level.

The maximum length of a USB cable is 5 meters; greater lengths require hubs [2]. USB Connections can be extended to 50 m over CAT5 or up to 10 km over fiber by using special USB Extender products developed by various manufacturers.

Power supply

Standard

The USB specification provides a 5 V (volts) supply on a single wire from which connected USB devices may draw power. The specification provides for no more than 5.25 V and no less than 4.35 V between the +ve and -ve bus power lines.

Initially, a device is only allowed to draw 100 mA. It may request more current from the upstream device in units of 100 mA up to a maximum of 500 mA. In practice, most ports will deliver the full 500 mA or more before shutting down power, even if the device hasn't requested it or even identified itself. If a (compliant) device requires more power than is available, then it cannot operate until the user changes the network (either by rearranging USB connections or by adding external power) to supply the power required.

If a USB device sees that the data lines of the USB bus have been idle for 3 milliseconds, the device must go into suspend state. Suspended devices are allowed to draw 500 μA. If the device was configured to use more than 100 mA of current, before the device was suspended, and the device was configured as a remote wakeup source, the device is allowed to draw 2.5 mA while suspended. The current limits during suspend are one second averages.

Note that On-The-Go and Battery Charging Specification both add new powering modes to the USB specification.

If a bus-powered hub is used, the devices downstream may only use a total of four units — 400 mA — of current. This limits compliant bus-powered hubs to 4 ports, among other things. Equipment requiring more than 500 mA, hubs with more than 4 ports and hubs with downstream devices using more than four 100 mA units total must provide their own power. The host operating system typically keeps track of the power requirements of the USB network and may warn the computer's operator when a given segment requires more power than is available.

  • Type A USB
  • Type B USB
  • Mini Type A USB
  • Mini Type B USB
  • Micro Type AB USB

For further reading

References


Gaming

Up to date as of February 01, 2010
(Redirected to Universal Serial Bus article)

From Wikia Gaming, your source for walkthroughs, games, guides, and more!

"Universal" is a relative term; we're pretty sure extraterrestrial aliens don't use this

USB stands for Universal Serial Bus, a data transfer format that has become, well, universal in the past several years. The USB standard is used for everything from printers to hard drives, to lights, to flash memory units. The popularity of USB has made the technology inexpensive to the point where basically anyone can make a USB device.

USB comes in three versions: 1.0, 1.1, and 2.0. Modern implementations allow for things like power over the USB line, and faster data transfer rates. A popular trend in the PC market is to make USB 1.1 hardware and advertise it as "Hi-Speed" USB, which implies 2.0 compatibility and makes more money.


This article uses material from the "Universal Serial Bus" article on the Gaming wiki at Wikia and is licensed under the Creative Commons Attribution-Share Alike License.







Got something to say? Make a comment.
Your name
Your email address
Message