User:Kaean

Universal Serial Bus (USB) is a serial bus standard to interface devices. USB was designed to allow many peripherals to be connected using a single standardized interface socket and to improve the plug-and-play capabilities by allowing devices to be connected and disconnected without rebooting the computer (hot swapping). Other convenient features include providing power to low-consumption devices without the need for an external power supply and allowing many devices to be used without requiring manufacturer specific, individual device drivers to be installed. http://i27.tinypic.com/2h3mzxd.jpg USB is intended to help retire all legacy varieties of serial and parallel ports. USB can connect computer peripherals such as mice, keyboards, PDAs, gamepads and joysticks, scanners, digital cameras, printers, personal media players, and flash drives. For many of those devices USB has become the standard connection method. USB was originally designed for personal computers, but it has become commonplace on other devices such as PDAs and video game consoles. As of 2008, there are about 2 billion USB devices in the world.

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, NEC, and Microsoft.

History The USB 1.0 specification was introduced in November 1995. USB was promoted by Intel (UHCI and open software stack), Microsoft (Windows software stack), Philips (Hub, USB-Audio), and US Robotics. Originally USB was intended to replace the multitude of connectors at the back of PCs, as well as to simplify software configuration of communication devices. USB was also the primary connector on the original Apple iMac introduced 6 May 1998, including the connector for its new keyboard and mouse.[2] USB 1.1 came out in September 1998 to help rectify the adoption problems that occurred with earlier iterations of USB.[3] As of 2008, the USB specification is at version 2.0 (with revisions). Hewlett-Packard, Intel, Lucent (now Alcatel-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. Equipment conforming with any version of the standard will also work with devices designed to any previous specification (known as backward compatibility). Smaller USB plugs and receptacles for use in handheld and mobile devices, called Mini-B, were added to USB specification in the first engineering change notice. A new variant of smaller USB plugs and receptacles, Micro-USB, was announced by the USB Implementers Forum on January 4, 2007. Overview

A conventional USB hub 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, subject to a limit of 5 levels of tiers. 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-in to the host controller. So-called "sharing hubs", which allow multiple computers to access the same peripheral device(s), also exist and work by either switching access between PCs automatically or manually. They are popular in small-office environments. In network terms, they converge rather than diverge branches. A single physical USB device may consist of several logical sub-devices that are referred to as device functions, because each individual device may provide several functions, such as a webcam (video device function) with a built-in microphone (audio device function).

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). 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 pipe. A USB device 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, so each pipe is uni-directional. 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. When a new USB device is connected to a USB host, the USB device enumeration process is started. The enumeration process first sends a reset signal to the USB device. The speed of the USB device is determined during the reset signaling. After reset, USB device setup information is read from the device by the host and the device is assigned a unique host-controller-specific 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 configured state. If the USB host is restarted, the enumeration process is repeated for all connected devices. The host controller polls the bus for traffic, usually in a round-robin fashion, so no USB device can transfer any data on the bus without an explicit request from the host controller. Host controllers The computer 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 the version 1.x age, there were two competing HCD implementations, Open Host Controller Interface (OHCI) and Universal Host Controller Interface (UHCI). OHCI was developed by Compaq, Microsoft and National Semiconductor; UHCI was by Intel.

A typical USB connector. VIA Technologies licensed the UHCI standard from Intel; all other chipset implementers use OHCI. UHCI is more software-driven, making UHCI slightly more processor-intensive than OHCI but cheaper to implement. The dueling implementations forced operating system vendors and hardware vendors to develop and test on both implementations, which increased cost. HCD standards are out of the USB specification's scope, and the USB specification does not specify any HCD interfaces. In other words, USB defines the format of data transfer through the port, but not the system by which the USB hardware communicates with the computer it sits in. 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 Enhanced Host Controller Interface (EHCI). Only EHCI can support hi-speed (480 Mbps) transfers. Most of PCI-based EHCI controllers contain other HCD implementations called 'companion host controller' to support Full Speed (12 Mbps) and Low Speed (1.5 Mbps) devices. The virtual HCD on Intel and VIA EHCI controllers are UHCI. All other vendors use virtual OHCI controllers. 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.