Universal Serial Bus (USB) is a serial bus standard to interface devices. It was designed for computers such as PCs and the Apple Macintosh, but its popularity has prompted it to also become commonplace on video game consoles, PDAs, cellphones; and even devices such as televisions and home stereo equipment, and portable memory devices.
The radio spectrum-based USB implementation is known as Wireless USB.
Because of the capability of daisy-chaining USB devices, early USB announcements predicted that each USB device would include a USB port to allow for long chains of devices. In this model, computers would not need many USB ports, and computers shipped at this time typically had only two. However, for economical and technical reasons, daisy chaining never became widespread. To reduce the necessity of USB hubs, computers now come with a large number of USB ports, typically six.
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. 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.
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 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).
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 the term endpoint is also (sloppily) used to mean the entire pipe, even in the standard USB 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.)
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 bytes, so a USB packet will often contain something on the order of 8, 16, 32, 64, 128, 256, 512 or 1024 bytes.
The pipes are also divided into four different categories by way of their transfer type:
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 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.
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 port 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 a controllers will be named OHCI, UHCI or EHCI respectively, which is also the case in the Mac OS X system profiler. On BSD systems, dmesg will show the detailed information hierarchy.
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:
Pin numbers (looking at socket):
| Pin | Function | |
|---|---|---|
| 1 | VBUS (4.75–5.25 V) | |
| 2 | D− | |
| 3 | D+ | |
| 4 | GND | |
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.
| Pin | Function |
|---|---|
| 1 | VBUS (4.4–5.25 V) |
| 2 | D− |
| 3 | D+ |
| 4 | ID |
| 5 | Ground |
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 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 *.
Initially a device is only allowed to draw 100 mA, additional units of 100 may be requested 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 as a valid usb device). If a (compliant) device requires more power than is availible 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 bus powered hub is used then the devices downstream may only use a total of 4 units of power (this limits compliant bus powered hubs to 4 port among other things). Equipment requiring more than 500 mA, hubs with more than 4 ports and hubs with downstream devices using more than 4 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.
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 and a desktop USB Fondue Set [http://www.thinkgeek.com/stuff/41/fundue.shtml.
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.
Apple computers have used USB mice and keyboards exclusively since January 1999.
However, FireWire ports were more costly to implement than USB ports, in part due to their per-port license fee (between 75 cents and $1.50 in bulk licenses), and the more complex circuitry the controller required. As a result, they were rarely provided as standard equipment on computers other than Apple's Macintoshes (Apple owns rights to the FireWire standard), 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.
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 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.
Despite all this and despite USB's theoretically higher speed, in real life benchmarks the actual speed of firewire hard drives nearly always beats USB 2 hard drives by a significant margin. 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.
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. 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.
A company called Fiberbyte have developed an open industry software specification called USB-inSync, which allows real-time control of multiple USB devices. The standard USB interface is asynchronous, which leads to poor control of temporal parameters. See http://www.fiberbyte.com/usbinsync.htm for more details
For other buses, see:
USB | USB | Bus sèrie universal | USB | Universal Serial Bus | Universal Serial Bus | Ενιαίος Σειριακός Δίαυλος | USB | USB | USB | Universal Serial Bus | USB | USB | USB | Universal Serial Bus | Universal Serial Bus | USB | USB | USB | Universal Serial Bus | Universal Serial Bus | USB | USB | Universal Serial Bus | USB | USB | Universal Serial Bus | USB | Univerzalno serijsko vodilo | USB | USB | USB | ยูเอสบี | USB | 通用串行总线
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Universal Serial Bus".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world