Universal Serial Bus

Type A USB connector Dual images of the two Type B USB connectors, mini and full size, side and front view, compared with a U.S. 5¢ piece (nickel) in both images for scale. USB 2.0 "trident" logo

Universal Serial Bus (USB) provides a serial bus standard for connecting devices, usually to computers such as PCs and the Apple Macintosh, but is also becoming commonplace on video game consoles such as Sony's PlayStation 2, Microsoft's Xbox 360, Nintendo's Revolution, and PDAs, and even devices like televisions and home stereo equipment.

Overview

A USB system has an asymmetric design, consisting of a host controller and multiple daisy-chained devices. Additional USB hubs may be included in the chain, allowing branching into a tree structure, subject to a limit of 5 levels of branching per controller. Not more than 127 devices, including the bus devices, may be connected to a single host controller. Modern computers often have several host controllers, allowing a very large number of USB devices to be connected. USB cables do not need to be terminated.

USB was designed to allow peripherals to be connected without the need to plug expansion cards into the computer's ISA, EISA, or PCI bus, and to improve plug-and-play capabilities by allowing devices to be hot-swapped (connected or disconnected without powering down or rebooting the computer). When a device is first connected, the host enumerates and recognises it, and loads the device driver it needs

A USB hub

USB can connect peripherals such as mice, keyboards, gamepads and joysticks, scanners, digital cameras, printers, external storage, networking components, etc. For many devices such as scanners and digital cameras, USB has become the standard connection method. USB is also used extensively to connect non-networked printers, replacing the parallel ports which were widely used; USB simplifies connecting several printers to one computer. As of 2004 there were about 1 billion USB devices in the world. As of 2005, the only large classes of peripherals that cannot use USB, because they need a higher data rate than USB can provide, are displays and monitors, and high-quality digital video components.

Standardization

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 Apple Computer, Hewlett-Packard, NEC, Microsoft, Intel, and Agere.

The USB specification is at version 2.0 (with revisions) as of February 2006. Hewlett-Packard, Intel, Lucent, Microsoft, NEC, and Philips jointly led the initiative to develop a higher data transfer rate than the 1.1 specification. The USB 2.0 specification was released in April 2000 and was standardized by the USB-IF at the end of 2001. Previous notable releases of the specification were 0.9, 1.0, and 1.1. Equipment conforming with any version of the standard will also work with devices designed to any of the previous specifications (backwards compatibility).

Smaller USB plugs and receptacles, called Mini-A and Mini-B, are also available, as specified by the On-The-Go Supplement to the USB 2.0 Specification. The specification is at revision 1.0a (Jan 2006).

Technical details

PCB mounting female USB connectors

USB connects several devices to a host controller through a chain of hubs. In USB terminology devices are referred to as functions, because in theory what we know as a device may actually host several functions, such as a router that is a Secure Digital Card reader at the same time. 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.

USB endpoints actually reside on the connected device: the channels to the host is referred to as a pipe

These devices/functions (and hubs) have associated pipes (logical channels) which are connections from the host controller to a logical entity on the device named an endpoint. The pipes are synonymous to byte streams such as in the pipelines of Unix, however in USB lingo the term endpoint is (sloppily) used as a synonym for the entire pipe, even in the standard documentation.

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 inward and 16 outward. (The OUT direction shall be interpreted out of the host controller and the IN direction is into the host controller.) Endpoint 0 is however reserved for the bus management in both directions and thus takes up two of the 32 endpoints. 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, 512 or 1024 bytes.

Each endpoint can transfer data in one direction only, either into or out of the device/function, so each pipe is uni-directional. All USB devices have at least two such pipes/endpoints: namely endpoint 0 which is used to control the device on the bus. There is always an inward and an outward pipe numbered 0 on each device. 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 bandwidth 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.

USB Enumeration Trace

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 does 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.

USB device descriptors are hierarchical and quite complex. This UML diagram tries to give a entity relation between the different descriptors: the lower left device descriptor is highest in the hierarchy, this has configuration descriptors, which have interface descriptors, which have interface settings which in turn hold the actual endpoints.

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.

The hardware that contains the host controller and the root hub has an interface 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 (excluding the license fees). 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 high-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.

On Microsoft Windows platforms, one can tell whether a USB controller is version 2.0 by opening the Device Manager and checking for the word "Enhanced" in its description; only USB 2.0 drivers will contain the word "Enhanced." On Linux systems, the lspci -v command will list all PCI devices, and controllers will be named OHCI, UHCI or EHCI respectively, which is also the case in the Mac OS X system profiler. Most Linux systems also provide the lsusb command which provides USB-specific details about ports and controllers. On BSD systems, dmesg will show the detailed information hierarchy.

Device classes

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 classes are decided upon by the Device Working Group of the USB Implementers Forum. If the class is to be set for the entire device, the number 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. Both of these are a single byte each, so a maximum of 253 different device classes are possible (values 0x00 and 0xFF are reserved). If bDeviceClass is set to 0x00, the operating system will look at bInterfaceClass of 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 device classes (grouped by assigned class ID) are:

0x00 
0x01 
0x03 
0x06 
0x07 
0x08 
0x09 
0x0A 
0x0E 
0xE0 
0xFF 

USB signaling

Standard USB signaling

USB Standard-A, B plugs showing pin numbers (Not drawn to scale)

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− operate together; they are not separate simplex connections.

Transfer speed

USB supports three data rates.

  • A Low Speed rate of 1.5 Mbit/s (183 KiB/s) that is mostly used for Human Interface Devices (HID) such as keyboards, mice and joysticks.
  • A Full Speed rate of 12 Mbit/s (1.4 MiB/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 480 Mbit/s (57 MiB/s).

Though Hi-Speed devices are commonly referred to as "USB 2.0", not all USB 2.0 devices are Hi-Speed. A USB device should specify the speed it will use by correct labeling on the box it came in or sometimes on the device itself. The USB-IF certifies devices and provides licenses to use special marketing logos for either "Basic-Speed" (low and full) or High-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 should 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.

Mini USB signaling

USB Mini-A, B plugs showing pin numbers (Not drawn to scale) Mini-A (left) Rounded, Mini B (Right) Square

Most of the pins of a mini USB connector are the same as a standard USB connector, except pin 4. Pin 4 is called ID and is connected to pin 5 for a mini-A. This indicates if a device supporting usb on the go (with a mini AB socket) should initially act as host, in the mini B this is open circuit. The Mini A also has an additional piece of plastic inside to prevent insertion into slave only device.

USB connectors

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 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 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 type 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).
  • 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.

The USB 1.0, 1.1 and 2.0 specifications define two types of connectors for the attachment of devices to the bus: A, and B. The USB 2.0 specification also introduces the mini-B connector, for smaller devices such as PDAs, mobile phones or digital cameras. All connectors are mechanically incompatible, with an A connector always used on the upstream (host) end, and a B connector always used on the downstream (device) end. Hosts and devices include connectors (female) while cables contain plugs (male). Thus all compliant USB cables have an A plug on one end, and either a B or Mini-B on the other end. The A-plug is approximately 4x12 mm, the B-plug is approximately 7x8 mm, and the B-mini plug is approximately 3x7 mm.

However, the mechanical layer has 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 hermaphroditic 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 [1].

Power supply

The USB connector provides a single nominally 5 volt wire from which connected USB devices may power themselves. In practice, delivered voltage can drop well below 5 V, to only slightly above 4 V. The compliance spec requires no more than 5.25 V anywhere and no less than 4.375 V at the worst case; a low-power function after a bus-powered hub. In typical situations the voltage is close to 5 V.

A given segment of the bus is specified to deliver up to 500 mA. This is often enough to power several devices, although this budget must be shared among all devices downstream of an unpowered hub. A bus-powered device may use as much of that power as allowed by the port it is plugged into.

Bus-powered hubs can continue to distribute the bus provided power to connected devices but the USB specification only allows for a single level of bus-powered devices from a bus-powered hub. This disallows connection of a bus-powered hub to another bus-powered hub. Many hubs include external power supplies which will power devices connected through them without taking power from the bus. Devices that need more than 500 mA must provide their own power.

When USB devices (including hubs) are first connected they are interrogated by the host controller, which inquires of each their maximum power requirements. 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 (and will generally shut down devices or hubs in order to keep power consumption within the available resource).

A number of devices use this power supply without participating in a proper USB network. The typical example is a USB-powered reading light, but fans, battery chargers (particularly for mobile telephones) and even miniature vacuum cleaners are available. In most cases, these items contain no electronic circuitry, and thus are not proper USB devices at all. This can cause problems with some computers—the USB specification requires 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.

Some USB devices draw more power than is permitted by the specification for a single port. This is a common requirement of external hard and optical disc drives and other devices with motors or lamps. Such devices can be used with an external power supply of adequate rating; some external hubs may, in practice, supply sufficient power. For portable devices where external power is not available, but not more than 1 A is required at 5 V, devices may have connectors to allow the use of two USB cables, doubling available power but reducing the number of USB ports available to other devices. Amongst others, a number of peripherals for IBM laptops (now made by Lenovo) are designed to use dual USB connections.

USB-powered devices attempting to draw large currents without requesting the power will not work with certain USB controllers, and will either disrupt other devices on the bus or fail to work themselves (or both). Those problems with the abuse of the USB power supply have inspired a number of April Fool hoaxes, like the introduction of a USB-powered George Foreman iGrill [2] and a desktop USB Fondue Set [3].

USB compared to other standards

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. This was initially intended for traditional magnetic and optical drives, but has been extended to support a wide variety of devices. USB is not intended to be a primary bus for a computer's internal storage: buses such as ATA (IDE) and SCSI fulfill that role.

However, USB has one important advantage in making it possible to install and remove devices without opening the computer case, making it useful for external drives. Today, a number of manufacturers offer external, portable USB hard drives, or empty enclosures for drives, that offer performance comparable to internal drives. These external drives usually contain a translating device that interfaces a drive of conventional technology (IDE, ATA, SATA, ATAPI, or even SCSI) to a USB port. Functionally, the drive appears to the user just like another internal drive..

FireWire technology is also commonly used with portable hard drives; some have both USB and FireWire ports. FireWire tends to perform better in speed benchmark tests than even Hi-Speed USB 2.0, although the latter supports a numerically higher bit-rate. The main reason for this is that the tests are conducted point to point (only one device) which means the USB system is always waiting for the drive. Additionally, some operating systems transfer blocks limited to the USB 1.1 size of 64 bytes, without taking advantage of the larger block sizes allowed by USB 2.0. An operating system designed to handle Hi-Speed USB 2.0 optimally is capable of data rates higher than Firewire, but the most commonly found [early 2006] operating systems and drivers are not. However, USB ports are more usual than Firewire on consumer-level computers, which enhances the compatibility of a USB drive. Additionally, when multiple devices are connected, USB has significant advantages over FireWire,

Human-interface devices (HIDs)

As of 2006, most PCs and motherboards have at least one USB port, but still retain PS/2 keyboard and mouse connectors. AT keyboard connectors are less frequently found. Motherboards for non-portable PCs usually have a number of USB 2.0 high-speed ports, some available at the back of the computer case, others requiring USB sockets on the front or rear of the computer to be connected via a cable to a header on the motherboard. Joysticks, keypads, tablets and other human-interface devices are also progressively migrating from MIDI, PC game port, and PS/2 connectors to USB. Mouses and keyboards are frequently fitted with USB connectors, but supplied with a small USB-to-PS/2 adaptor so that they can be used with either USB or PS/2 ports.

Apple computers have used USB mice and keyboards exclusively since January 1999.

FireWire

USB was originally seen as a complement to FireWire, which was designed as a high-speed 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.

However, because FireWire ports were more costly to implement than USB ports, primarily due to their per-port licence fee, they were rarely provided as standard equipment on computers, and peripheral manufacturers offered many more USB devices. The introduction of USB 2.0 Hi-Speed, with its widely advertised 480 Mbit/s signaling rate, convinced many consumers that FireWire was outdated (although this was not necessarily the case; see "USB 2.0 Hi-Speed vs FireWire" below).

Today, USB Hi-Speed is rapidly replacing FireWire in consumer products. FireWire retains its popularity in many professional settings, where it is used for audio and video transfer, and data storage.

Technical differences

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

  • USB networks use a tiered-star topology, while FireWire networks use a repeater-based topology.
  • USB uses a "speak-when-spoken-to" protocol; peripherals cannot communicate with the host unless the host specifically requests communication. 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.

These and other differences reflect the differing design goals of the two busses: 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.

USB 2.0 Hi-Speed vs FireWire

The signalling rate of USB 2.0 Hi-Speed mode is 480 megabits per second, while the signalling rate of FireWire 400 (IEEE 1394a) is 393.216 Mbit/s [4]. USB can require more host resources than Firewire due to the need for the host to provide the arbitration and scheduling of transactions. USB transfer rates are generally higher than Firewire due to the need for Firewire devices to arbitrate for bus access. A single Firewire device may achieve a transfer rate for Firewire 400 as high as 41 MB/s. While for USB 2.0 the rate can be higher 55 MB/s (for a single device). In a multi device environment Firewire rapidly loses ground to USB: Firewire's mixed speed networks and long connection chains dramatically affect its performance.

The peer to peer nature of Firewire requires devices to arbitrate, which means a FireWire bus must wait until a given signal has propagated to all devices on the bus. The more devices on the bus the lower the peak performance. Conversely, for USB the maximum timing model is fixed and is limited only by the host-device branch (not the entire network). Furthermore, the host-centric nature of USB allows the host to allocate more bandwidth to high priority devices instead of forcing them to compete for bandwidth as in Firewire. Why then can some USB devices only sustain 34 MB/s not 55 MB/s? The main reason is usually that the devices themselves are slow and spend most of the time NAK'ing the host to indicate they are not ready - this is particularly true of memory sticks. So the sustained transfer rate is a limitation of the individual device technology not the infrastructure. It is a testament to the flexibilty of the USB bus that it can handle wide variances in device performances. In addition to this some operating systems take a conservative approach to scheduling transactions and limit the number of transfers per frame. Reducing the maximum transfers from say the theoretical 13 per frame to 10 or 9. Therefore if high speed transfer is what you need you should match this with a good host controller and operating system.

In 2003, FireWire was updated with the IEEE 1394b specification. This provides a new mode called S800, which operates at 786.432 Mbit/s. S800 requires a new physical layer, but S800 nodes can be connected to existing FireWire 1394a ports, just as USB Hi-Speed nodes will operate with older full-speed hosts. However unlike USB Hi-Speed systems which can change the speeds on each branch a 1394a device on a 1394b system requires all devices to fall to 1394a speeds. IEEE 1394b also provides rates up to approximately 3.2 Gbit/s; however, the higher rates use special physical layers which are incompatible with 1394a devices.

Version history

USB

  • USB 1.0 FDR: Released in November 1995, the same year that Apple adopted the IEEE 1394 standard known as FireWire.
  • USB 1.0: Released in January 1996.
  • USB 1.1: Released in September 1998.
  • USB 2.0: Released in April 2000. The major feature of this standard was the addition of high-speed mode. This is the current revision.
  • USB 2.0: Revised in December 2002. Added three speed distinction to this standard, allowing all devices to be USB 2.0 compliant even if they were previously considered only 1.1 or 1.0 compliant. This makes the backwards compatibility explicit, but it becomes more difficult to determine a device's throughput without seeing the symbol. As an example, a computer's port could be incapable of USB 2.0's hi-speed fast transfer rates, but still claim USB 2.0 compliance (since it supports some of USB 2.0).

USB On-The-Go Supplement

  • USB On-The-Go Supplement 1.0: Released in December 2001.
  • USB On-The-Go Supplement 1.0a: Released in June 2003. This is the current revision.

Wireless USB

Released in May 12, 2005. Wireless USB uses UWB (Ultra Wide Band) as the radio technology.

Extensions to USB

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

Microsoft's Xbox game console uses standard USB 1.1 signalling in its controllers, but features a proprietary connector rather than the standard USB connector. (However, Microsoft uses standard USB 2.0 connectivity in its newer Xbox 360.) Similarly IBM UltraPort uses standard USB signalling, but uses a proprietary connection format. And [Powered USB] uses standard USB signalling with the addition of extra power lines for Point of sale terminals.

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. Wireless USB is well suited to wireless connection of PC centric devices, just as Bluetooth is now widely used for mobile phone centric personal networks (at much lower data rates). See http://www.usb.org/developers/wusb/ for more details.

Communication with USB devices

Communication between software and USB devices depends upon the Operating System (Windows, Macintosh, Linux etc) and the language you choose (Java, C++, Delphi etc).

Communication from the Linux OS

  • General - http://www.linux-usb.org/
  • Java - The jUSB project provides a Free Software (and Open Source) Java API for USB, supporting applications using Java host-side software to drive USB devices. This API is unfortunately limited to Linux.

Communication from the Mac OS

  • General - Apple has this page on General Mac USB Development
  • Java - No info is available on this combination.

Communication from the Windows OS

  • General - USBIO has C++ drivers for USB communication on windows from C & C++. Their COM interface allows for Delphi, C# and VB development. Java development is possible via JNI.
  • Java - The Mike Stahl started work on this combination in 2003. The usb.windows package has a partial Windows implementation of a usb.core.Host object, bootstrapping support, and other classes leveraging Windows USB support. It appears that no work has been done on this package since 2003 so it may be abandoned.

Other communication options

If your Operating System and language combination is not supported, another option is a USB to RS-232 bridge. FTDI Chip provides virtual COM drivers with its chips, to make the USB device look to the host software like a COM (RS-232) port. Alternatively, Microchip offers COM port emulation firmware for their range of USB PIC microcontrollers.


This page about USB includes information from a Wikipedia article.
Additional articles about USB
News stories about USB
External links for USB
Videos for USB
Wikis about USB
Discussion Groups about USB
Blogs about USB
Images of USB

Alternatively, Microchip offers COM port emulation firmware for their range of USB PIC microcontrollers. In 1987 Wedgwood merged with Waterford Crystal to become Waterford Wedgwood.

. FTDI Chip provides virtual COM drivers with its chips, to make the USB device look to the host software like a COM (RS-232) port. Here, Wedgwood continues its living tradition of progress in design, in production methods and in the skills of its many craftspeople.

. If your Operating System and language combination is not supported, another option is a USB to RS-232 bridge. It is the British pottery industry’s most up-to-date factory. Communication between software and USB devices depends upon the Operating System (Windows, Macintosh, Linux etc) and the language you choose (Java, C++, Delphi etc). Production started in the 1940’s and since then, the factory has expanded to four times its original size.

See http://www.usb.org/developers/wusb/ for more details. A country estate near the village of Barlaston was purchased and a new, modern factory was built. Wireless USB is well suited to wireless connection of PC centric devices, just as Bluetooth is now widely used for mobile phone centric personal networks (at much lower data rates). During the 1930’s, when many English potteries were forced to close down due to unfavourable conditions, Wedgwood’s success continued and in order to increase efficiency, the fifth Josiah Wedgwood decided to build a new factory. 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. Wedgwood bone china tableware was to grace the tables of many illustrious homes throughout the world, including the dinner service which President Theodore Roosevelt ordered for the White House.

. The USB Implementers Forum is working on a wireless networking standard based on the USB protocol. In the nineteenth century, important progress was made at the Wedgwood factory in the use of new machinery, the introduction of the first coloured earthenware bodies and, most importantly, the manufacture of bone china.

And [Powered USB] uses standard USB signalling with the addition of extra power lines for Point of sale terminals. During his lifetime he invented and produced what remain today three of Wedgwood’s most famous ceramic bodies – Queen’s Ware (1762), Black Basalt (1768) and finally Jasper (1774).

. (However, Microsoft uses standard USB 2.0 connectivity in its newer Xbox 360.) Similarly IBM UltraPort uses standard USB signalling, but uses a proprietary connection format. Josiah was to sow the first seeds of the innovative spirit which continues to be an integral part of Wedgwood. Microsoft's Xbox game console uses standard USB 1.1 signalling in its controllers, but features a proprietary connector rather than the standard USB connector. By 1766 he had prospered sufficiently to build a new factory which he named Etruria. It typically uses USB as the underlying communication layer. He served his apprenticeship as a potter before setting up his own business in 1759.

The PictBridge standard allows for interconnecting consumer imaging devices. The founder, Josiah Wedgwood (1730-1795), who is remembered as ‘the Father of English Potters’, was born in Burslem, Staffordshire, in the heart of the English potteries. Wireless USB uses UWB (Ultra Wide Band) as the radio technology. Founded in 1759 upon the highest standards of design, craftsmanship, quality and innovation, the company continues to uphold these essential factors in maintaining its leading position throughout the markets of the world.

. Released in May 12, 2005. Wedgwood has been an international company for over two centuries. IEEE 1394b also provides rates up to approximately 3.2 Gbit/s; however, the higher rates use special physical layers which are incompatible with 1394a devices.

However unlike USB Hi-Speed systems which can change the speeds on each branch a 1394a device on a 1394b system requires all devices to fall to 1394a speeds. S800 requires a new physical layer, but S800 nodes can be connected to existing FireWire 1394a ports, just as USB Hi-Speed nodes will operate with older full-speed hosts. This provides a new mode called S800, which operates at 786.432 Mbit/s. In 2003, FireWire was updated with the IEEE 1394b specification.

Therefore if high speed transfer is what you need you should match this with a good host controller and operating system. Reducing the maximum transfers from say the theoretical 13 per frame to 10 or 9. In addition to this some operating systems take a conservative approach to scheduling transactions and limit the number of transfers per frame. It is a testament to the flexibilty of the USB bus that it can handle wide variances in device performances.

So the sustained transfer rate is a limitation of the individual device technology not the infrastructure. Why then can some USB devices only sustain 34 MB/s not 55 MB/s? The main reason is usually that the devices themselves are slow and spend most of the time NAK'ing the host to indicate they are not ready - this is particularly true of memory sticks. Furthermore, the host-centric nature of USB allows the host to allocate more bandwidth to high priority devices instead of forcing them to compete for bandwidth as in Firewire. Conversely, for USB the maximum timing model is fixed and is limited only by the host-device branch (not the entire network).

The more devices on the bus the lower the peak performance. The peer to peer nature of Firewire requires devices to arbitrate, which means a FireWire bus must wait until a given signal has propagated to all devices on the bus. In a multi device environment Firewire rapidly loses ground to USB: Firewire's mixed speed networks and long connection chains dramatically affect its performance. While for USB 2.0 the rate can be higher 55 MB/s (for a single device).

A single Firewire device may achieve a transfer rate for Firewire 400 as high as 41 MB/s. USB transfer rates are generally higher than Firewire due to the need for Firewire devices to arbitrate for bus access. USB can require more host resources than Firewire due to the need for the host to provide the arbitration and scheduling of transactions. The signalling rate of USB 2.0 Hi-Speed mode is 480 megabits per second, while the signalling rate of FireWire 400 (IEEE 1394a) is 393.216 Mbit/s [4].

These and other differences reflect the differing design goals of the two busses: 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. The most significant technical differences between FireWire and USB include the following:. FireWire retains its popularity in many professional settings, where it is used for audio and video transfer, and data storage. Today, USB Hi-Speed is rapidly replacing FireWire in consumer products.

The introduction of USB 2.0 Hi-Speed, with its widely advertised 480 Mbit/s signaling rate, convinced many consumers that FireWire was outdated (although this was not necessarily the case; see "USB 2.0 Hi-Speed vs FireWire" below). However, because FireWire ports were more costly to implement than USB ports, primarily due to their per-port licence fee, they were rarely provided as standard equipment on computers, and peripheral manufacturers offered many more USB devices. 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. USB was originally seen as a complement to FireWire, which was designed as a high-speed serial bus which could efficiently interconnect peripherals such as hard disks, audio interfaces, and video equipment.

Apple computers have used USB mice and keyboards exclusively since January 1999. Mouses and keyboards are frequently fitted with USB connectors, but supplied with a small USB-to-PS/2 adaptor so that they can be used with either USB or PS/2 ports. Joysticks, keypads, tablets and other human-interface devices are also progressively migrating from MIDI, PC game port, and PS/2 connectors to USB. Motherboards for non-portable PCs usually have a number of USB 2.0 high-speed ports, some available at the back of the computer case, others requiring USB sockets on the front or rear of the computer to be connected via a cable to a header on the motherboard.

AT keyboard connectors are less frequently found. As of 2006, most PCs and motherboards have at least one USB port, but still retain PS/2 keyboard and mouse connectors. Additionally, when multiple devices are connected, USB has significant advantages over FireWire,. However, USB ports are more usual than Firewire on consumer-level computers, which enhances the compatibility of a USB drive.

An operating system designed to handle Hi-Speed USB 2.0 optimally is capable of data rates higher than Firewire, but the most commonly found [early 2006] operating systems and drivers are not. Additionally, some operating systems transfer blocks limited to the USB 1.1 size of 64 bytes, without taking advantage of the larger block sizes allowed by USB 2.0. The main reason for this is that the tests are conducted point to point (only one device) which means the USB system is always waiting for the drive. FireWire tends to perform better in speed benchmark tests than even Hi-Speed USB 2.0, although the latter supports a numerically higher bit-rate.

FireWire technology is also commonly used with portable hard drives; some have both USB and FireWire ports. Functionally, the drive appears to the user just like another internal drive.. These external drives usually contain a translating device that interfaces a drive of conventional technology (IDE, ATA, SATA, ATAPI, or even SCSI) to a USB port. Today, a number of manufacturers offer external, portable USB hard drives, or empty enclosures for drives, that offer performance comparable to internal drives.

However, USB has one important advantage in making it possible to install and remove devices without opening the computer case, making it useful for external drives. USB is not intended to be a primary bus for a computer's internal storage: buses such as ATA (IDE) and SCSI fulfill that role. This was initially intended for traditional magnetic and optical drives, but has been extended to support a wide variety of devices. USB implements connections to storage devices using a set of standards called the USB mass-storage device class.

Those problems with the abuse of the USB power supply have inspired a number of April Fool hoaxes, like the introduction of a USB-powered George Foreman iGrill [2] and a desktop USB Fondue Set [3]. USB-powered devices attempting to draw large currents without requesting the power will not work with certain USB controllers, and will either disrupt other devices on the bus or fail to work themselves (or both). Amongst others, a number of peripherals for IBM laptops (now made by Lenovo) are designed to use dual USB connections. For portable devices where external power is not available, but not more than 1 A is required at 5 V, devices may have connectors to allow the use of two USB cables, doubling available power but reducing the number of USB ports available to other devices.

Such devices can be used with an external power supply of adequate rating; some external hubs may, in practice, supply sufficient power. This is a common requirement of external hard and optical disc drives and other devices with motors or lamps. Some USB devices draw more power than is permitted by the specification for a single port. This can cause problems with some computers—the USB specification requires 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 most cases, these items contain no electronic circuitry, and thus are not proper USB devices at all. The typical example is a USB-powered reading light, but fans, battery chargers (particularly for mobile telephones) and even miniature vacuum cleaners are available. A number of devices use this power supply without participating in a proper USB network. 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 (and will generally shut down devices or hubs in order to keep power consumption within the available resource).

When USB devices (including hubs) are first connected they are interrogated by the host controller, which inquires of each their maximum power requirements. Devices that need more than 500 mA must provide their own power. Many hubs include external power supplies which will power devices connected through them without taking power from the bus. This disallows connection of a bus-powered hub to another bus-powered hub.

Bus-powered hubs can continue to distribute the bus provided power to connected devices but the USB specification only allows for a single level of bus-powered devices from a bus-powered hub. A bus-powered device may use as much of that power as allowed by the port it is plugged into. This is often enough to power several devices, although this budget must be shared among all devices downstream of an unpowered hub. A given segment of the bus is specified to deliver up to 500 mA.

In typical situations the voltage is close to 5 V. The compliance spec requires no more than 5.25 V anywhere and no less than 4.375 V at the worst case; a low-power function after a bus-powered hub. In practice, delivered voltage can drop well below 5 V, to only slightly above 4 V. The USB connector provides a single nominally 5 volt wire from which connected USB devices may power themselves.

The maximum length of a USB cable is 5 meters; greater lengths require hubs [1]. 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. USB On-The-Go has therefore defined two small form factor connectors, the mini-A and mini-B, and a hermaphroditic socket (mini-AB), which should stop the proliferation of proprietary designs. 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.

Even after the cable is hooked up and the units are talking, the two units may "swap" ends under program control. 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. For specification purposes, these devices were treated as having a captive cable. Other manufacturers of small items also developed their own small form factor connector, and a wide variety of these have appeared.

It uses a different mechanical connector while preserving the USB signaling and protocol. For example, the IBM UltraPort is a proprietary USB connector located on the top of IBM's laptop LCDs. However, the mechanical layer has changed in some examples. The A-plug is approximately 4x12 mm, the B-plug is approximately 7x8 mm, and the B-mini plug is approximately 3x7 mm.

Thus all compliant USB cables have an A plug on one end, and either a B or Mini-B on the other end. Hosts and devices include connectors (female) while cables contain plugs (male). All connectors are mechanically incompatible, with an A connector always used on the upstream (host) end, and a B connector always used on the downstream (device) end. The USB 2.0 specification also introduces the mini-B connector, for smaller devices such as PDAs, mobile phones or digital cameras.

The USB 1.0, 1.1 and 2.0 specifications define two types of connectors for the attachment of devices to the bus: A, and B. In particular:. 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. The Mini A also has an additional piece of plastic inside to prevent insertion into slave only device.

This indicates if a device supporting usb on the go (with a mini AB socket) should initially act as host, in the mini B this is open circuit. Pin 4 is called ID and is connected to pin 5 for a mini-A. Most of the pins of a mini USB connector are the same as a standard USB connector, except pin 4. This segregation is for bandwidth only; bus rules about power and hub depth still apply.

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. Hi-Speed hubs have a special function called the Transaction Translator that segregates Full Speed and Low Speed bus traffic from Hi-Speed traffic. Hi-Speed devices should fall back to the slower data rate of Full Speed when plugged into a Full Speed hub. All devices are tested according to the latest spec, so recently-compliant Low Speed devices are also 2.0.

The USB-IF certifies devices and provides licenses to use special marketing logos for either "Basic-Speed" (low and full) or High-Speed after passing a compliancy test and paying a licensing fee. Though Hi-Speed devices are commonly referred to as "USB 2.0", not all USB 2.0 devices are Hi-Speed. A USB device should specify the speed it will use by correct labeling on the box it came in or sometimes on the device itself. USB supports three data rates. D+ and D− operate together; they are not separate simplex connections.

These collectively use half-duplex differential signaling to combat the effects of electromagnetic noise on longer lines. USB signals are transmitted on a twisted pair of data cables, labelled D+ and D−. The most used device classes (grouped by assigned class ID) are:. These can be used as the main device classes are continuously revised.

Each class also optionally supports a SubClass and Protocol subdefinition. If bDeviceClass is set to 0x00, the operating system will look at bInterfaceClass of each interface to determine the device class. Both of these are a single byte each, so a maximum of 253 different device classes are possible (values 0x00 and 0xFF are reserved). If the class is to be set for the entire device, the number 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.

Device classes are decided upon by the Device Working Group of the USB Implementers Forum. An operating system is supposed to implement all device classes so as to provide generic drivers for any USB device. 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. 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.

On BSD systems, dmesg will show the detailed information hierarchy. Most Linux systems also provide the lsusb command which provides USB-specific details about ports and controllers. On Microsoft Windows platforms, one can tell whether a USB controller is version 2.0 by opening the Device Manager and checking for the word "Enhanced" in its description; only USB 2.0 drivers will contain the word "Enhanced." On Linux systems, the lspci -v command will list all PCI devices, and controllers will be named OHCI, UHCI or EHCI respectively, which is also the case in the Mac OS X system profiler. All other vendors use virtual OHCI controllers.

The virtual HCD on Intel and Via EHCI controllers are UHCI. Each EHCI controller contains four virtual HCD implementations to support Full Speed and Low Speed devices. Only EHCI can support high-speed transfers. The USB 2.0 HCD implementation is called the Extended Host Controller Interface (EHCI).

During the design phase of USB 2.0 the USB-IF insisted on only one implementation. The dueling implementations forced operating system vendors and hardware vendors to develop and test on both implementations which increased cost. 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 (excluding the license fees). VIA Technologies licensed the UHCI standard from Intel; all other chipset implementers use OHCI.

However, Intel subsequently created a specification they called the Universal Host Controller Interface (UHCI) and insisted other implementers pay to license and implement UHCI. Compaq's Open Host Controller Interface (OHCI) was adopted as the standard by the USB-IF. At version 1.0 and 1.1 there were two competing HCD implementations. In practice, these are hardware registers (ports) in the computer.

The hardware that contains the host controller and the root hub has an interface toward the programmer which is called Host Controller Device (HCD) and is defined by the hardware implementer. An endpoint may however be reused among several interfaces and alternate interface settings. 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. 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.

low power mode. active vs. These configurations often correspond to states, e.g. The device connected to the bus has one (and only one) device descriptor which in turn has one or more configuration descriptors.

To access an endpoint, a hierarchical configuration must be obtained. The interrupt transfers on corresponding endpoints does 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. 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. 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 pipes are also divided into four different categories by way of their transfer type:. There is always an inward and an outward pipe numbered 0 on each device. All USB devices have at least two such pipes/endpoints: namely endpoint 0 which is used to control the device on the bus. Each endpoint can transfer data in one direction only, either into or out of the device/function, so each pipe is uni-directional.

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, 512 or 1024 bytes. In these pipes, data is transferred in packets of varying length. (The OUT direction shall be interpreted out of the host controller and the IN direction is into the host controller.) Endpoint 0 is however reserved for the bus management in both directions and thus takes up two of the 32 endpoints. 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 inward and 16 outward.

The pipes are synonymous to byte streams such as in the pipelines of Unix, however in USB lingo the term endpoint is (sloppily) used as a synonym for the entire pipe, even in the standard documentation. These devices/functions (and hubs) have associated pipes (logical channels) which are connections from the host controller to a logical entity on the device named an endpoint. There always exists one hub known as the root hub, which is attached directly to the host controller. The hubs are special purpose devices that are not officially considered functions.

In USB terminology devices are referred to as functions, because in theory what we know as a device may actually host several functions, such as a router that is a Secure Digital Card reader at the same time. USB connects several devices to a host controller through a chain of hubs. The specification is at revision 1.0a (Jan 2006). Smaller USB plugs and receptacles, called Mini-A and Mini-B, are also available, as specified by the On-The-Go Supplement to the USB 2.0 Specification.

Equipment conforming with any version of the standard will also work with devices designed to any of the previous specifications (backwards compatibility). Previous notable releases of the specification were 0.9, 1.0, and 1.1. 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, Microsoft, NEC, and Philips jointly led the initiative to develop a higher data transfer rate than the 1.1 specification.

The USB specification is at version 2.0 (with revisions) as of February 2006. Notable members have included Apple Computer, Hewlett-Packard, NEC, Microsoft, Intel, and Agere. 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. As of 2005, the only large classes of peripherals that cannot use USB, because they need a higher data rate than USB can provide, are displays and monitors, and high-quality digital video components.

As of 2004 there were about 1 billion USB devices in the world. USB is also used extensively to connect non-networked printers, replacing the parallel ports which were widely used; USB simplifies connecting several printers to one computer. For many devices such as scanners and digital cameras, USB has become the standard connection method. USB can connect peripherals such as mice, keyboards, gamepads and joysticks, scanners, digital cameras, printers, external storage, networking components, etc.

When a device is first connected, the host enumerates and recognises it, and loads the device driver it needs. USB was designed to allow peripherals to be connected without the need to plug expansion cards into the computer's ISA, EISA, or PCI bus, and to improve plug-and-play capabilities by allowing devices to be hot-swapped (connected or disconnected without powering down or rebooting the computer). USB cables do not need to be terminated. Modern computers often have several host controllers, allowing a very large number of USB devices to be connected.

Not more than 127 devices, including the bus devices, may be connected to a single host controller. Additional USB hubs may be included in the chain, allowing branching into a tree structure, subject to a limit of 5 levels of branching per controller. A USB system has an asymmetric design, consisting of a host controller and multiple daisy-chained devices. .

Universal Serial Bus (USB) provides a serial bus standard for connecting devices, usually to computers such as PCs and the Apple Macintosh, but is also becoming commonplace on video game consoles such as Sony's PlayStation 2, Microsoft's Xbox 360, Nintendo's Revolution, and PDAs, and even devices like televisions and home stereo equipment. It appears that no work has been done on this package since 2003 so it may be abandoned. The usb.windows package has a partial Windows implementation of a usb.core.Host object, bootstrapping support, and other classes leveraging Windows USB support. Java - The Mike Stahl started work on this combination in 2003.

Java development is possible via JNI. Their COM interface allows for Delphi, C# and VB development. General - USBIO has C++ drivers for USB communication on windows from C & C++. Java - No info is available on this combination.

General - Apple has this page on General Mac USB Development. This API is unfortunately limited to Linux. Java - The jUSB project provides a Free Software (and Open Source) Java API for USB, supporting applications using Java host-side software to drive USB devices. General - http://www.linux-usb.org/.

This is the current revision. USB On-The-Go Supplement 1.0a: Released in June 2003. USB On-The-Go Supplement 1.0: Released in December 2001. As an example, a computer's port could be incapable of USB 2.0's hi-speed fast transfer rates, but still claim USB 2.0 compliance (since it supports some of USB 2.0).

This makes the backwards compatibility explicit, but it becomes more difficult to determine a device's throughput without seeing the symbol. Added three speed distinction to this standard, allowing all devices to be USB 2.0 compliant even if they were previously considered only 1.1 or 1.0 compliant. USB 2.0: Revised in December 2002. This is the current revision.

The major feature of this standard was the addition of high-speed mode. USB 2.0: Released in April 2000. USB 1.1: Released in September 1998. USB 1.0: Released in January 1996.

USB 1.0 FDR: Released in November 1995, the same year that Apple adopted the IEEE 1394 standard known as FireWire. In a FireWire network, any capable node can control the network. A USB network relies on a single host at the top of the tree to control the network. A FireWire device can communicate with any other node at any time, subject to network conditions.

USB uses a "speak-when-spoken-to" protocol; peripherals cannot communicate with the host unless the host specifically requests communication. USB networks use a tiered-star topology, while FireWire networks use a repeater-based topology. Compliant devices must either fit within the size restrictions or support a compliant extension cable which does. This was done to avoid circumstances where a device complied with the connector specification but its large size blocked adjacent ports.

Unlike most other connector standards, the USB spec also defines limits to the size of a connecting device in the area around its plug. 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). This type 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). 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).

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. 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. 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). A moderate insertion/removal force is specified.

RJ-45 cabling) gender-changers are never used, making it difficult to create a cyclic USB network. Unlike other communications systems (e.g. USB does not support cyclical networks, so the connectors from incompatible USB devices are themselves incompatible. The connectors enforce the directed topology of a USB network.

The connectors are particularly cheap to manufacture. However, it is not obvious at a glance to the inexperienced user which way round a connector goes, so it is often necessary to try both ways. 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. It is difficult to incorrectly attach a USB connector.

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. As a result USB connectors can safely be handled, inserted, and removed, even by a small child. 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. 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 connectors are designed to be robust. A Hi-Speed rate of 480 Mbit/s (57 MiB/s). All USB Hubs support 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.

Full Speed was the fastest rate before the USB 2.0 specification and many devices fall back to Full Speed. A Full Speed rate of 12 Mbit/s (1.4 MiB/s). A Low Speed rate of 1.5 Mbit/s (183 KiB/s) that is mostly used for Human Interface Devices (HID) such as keyboards, mice and joysticks. file transfers.

bulk transfers - large sporadic transfers using all remaining available bandwidth (but with no guarantees on bandwidth or latency), e.g. pointing devices and keyboards. interrupt transfers - devices that need guaranteed quick responses (bounded latency), e.g. realtime audio or video.

isochronous transfers - at some guaranteed speed (often but not necessarily as fast as possible) but with possible data loss, e.g. by the bus control pipe number 0. control transfers - typically used for short, simple commands to the device, and a status response, used e.g.