|
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, portable dvd and media players, cellphones; and even devices such as televisions home stereo equipment (e.g., mp3 players), car stereos and portable memory devices. The radio spectrum-based USB implementation is known as Wireless USB.
Overview
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. As of 2006 the USB specification is at version 2.0 (with revisions). 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 previous specification (known as: 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. As of 2006-08-02, the specification is at revision 1.2. Technical details
Host controllers The hardware that contains the host controller and the root hub has an interface geared toward the programmer which is called Host Controller Device (HCD) and is defined by the hardware implementer. In practice, these are hardware registers (ports) in the computer. At version 1.0 and 1.1 there were two competing HCD implementations. Compaq's ''Open Host Controller Interface'' (OHCI) was adopted as the standard by the USB-IF. However, Intel subsequently created a specification they called the Universal Host Controller Interface (UHCI) and insisted other implementers pay to license and implement UHCI. VIA Technologies licensed the UHCI standard from Intel; all other chipset implementers use OHCI. The main difference between OHCI and UHCI is the fact that UHCI is more software-driven than OHCI is, making UHCI slightly more processor-intensive but cheaper to implement (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 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 254 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: 0x00Reserved value - used in the device descriptor to signify that the interface descriptor holds the device class identifier for each interface. 0x01USB audio device class, sound card-like devices. 0x02USB communications device class used for modems, network cards, ISDN connections, Fax. 0x03USB human interface device class ("HID"), keyboards, mice, etc. 0x06Still image capture device class, identical to the Picture Transfer Protocol as used across USB 0x07USB printer device class, printer-like devices. 0x08USB mass storage device class used for flash drives, portable hard drives, memory card readers, digital cameras, digital audio players etc. This device class presents the device as a block device (almost always used to store a file system). 0x09USB hubs. 0x0EUSB video device class, webcam-like devices, motion image capture devices. 0xE0Wireless controllers, for example Bluetooth dongles. 0xFFCustom device class - used to establish that a device or interface does not support any standard device class and requires custom drivers. USB signaling Pin numbers (looking at socket): USB signals are transmitted on a twisted pair of data cables, labelled D+ and D−. These collectively use half-duplex differential signaling to combat the effects of electromagnetic noise on longer lines. D+ and D− usually operate together; they are not separate simplex connections. Transmitted signal levels are 0.0–0.3 volts for low and 2.8–3.6 volts for high. Transfer speed USB supports three data rates. 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 Hi-Speed after passing a compliancy test and paying a licensing fee. All devices are tested according to the latest spec, so recently-compliant Low Speed devices are also 2.0. Hi-Speed devices 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. A hub will have one or more Transaction Translators and there is no standard way to determine the number of transaction translators a hub may have. All low and full speed devices connected to one transaction translator will share the low/full speed bandwidth. This means that hubs can have dramatically different performance depending upon the number of transaction translators and the devices plugged into their ports. e.g. a hi-speed 7 port hub with only 1 transaction translator with 7 low/full speed devices plugged in, will act no differently than a USB 1.1 hub and all devices compete for the same low/full speed bandwidth. If the hub were to have a transaction translator for each of the seven ports, then each device would have all the full/low speed bandwidth available to it and would only compete for the hi-speed bandwidth, which is much greater. * Data encoding The USB standard uses the NRZI system to encode data, and uses bit stuffing for logic 1 transmission more than five bits long (put logic 0 after five bits of logic 1). The NRZI (non-return to zero, inverted) encoding method does not change the signal for transmission of a logic 1, but it inverts the signal level for transmission of each logic 0. Mini-USB signaling
USB connectors There are several types of USB connectors, and some have been added as the specification has progressed. From the original USB specification: Added in USB 2.0 specification: Added in the On-The-Go Supplement to the USB 2.0 Specification: Adapters, also from the On-The-Go Supplement to the USB 2.0 Specification (Note that no other adapters are allowed.): Cables have only plugs, and hosts and devices have only receptacles. Hosts have type-A receptacles; devices, if they have receptacles, have type-B. Type-A plugs only mate with type-A receptacles, and type-B with type-B. The On-the-Go supplement allows a product to be either host or device, with a Mini-AB receptacle that accepts either a Mini-A plug or a Mini-B plug. Mini-A, Mini-B, and Mini-AB connectors are identified easily by color. The plastic inside Mini-A plugs and receptacles is always white, that in Mini-B connectors black, and that in Mini-AB receptacles grey. There is a limited set of cables allowed by the USB specification. Cables fall into two categories — "detachable" and "captive". For purposes of the specification, "captive" includes any cable with a custom connector on the device end. Any captive cable has only a type-A plug, either Standard-A or Mini-A. Any detachable USB cable has one type-A connector (either Standard-A or Mini-A) and one type-B connector (either Standard-B or Mini-B). Detachable USB cable types: Any cable with a receptacle or with two "A" or two "B" connectors is, by definition, not USB. * * However, many cable manufacturers make and sell USB-compatible (yet not strictly conforming) extension cables with a Standard-A plug on one end and Standard-A receptacle on one end. Cables with two type A or even two type B plugs are available from more specialist suppliers. Note that only "full-speed" and "high-speed" devices use detachable cables. Compliant "Low-speed" devices only use captive cables, because the low-speed specification does not allow for the electrical characteristics of standard detachable USB cables. The Mini-A, Mini-B, and Mini-AB connectors are used for smaller devices such as PDAs, mobile phones or digital cameras. The Series "A" plug is approximately 4 by 12 mm, the Series "B" approximately 7 by 8 mm, and the Mini-A and Mini-B plugs approximately 3 by 7 mm. The connectors which the USB committee specified were designed to support a number of USB's underlying goals, and to reflect lessons learned from the varied menagerie of connectors then in service. In particular: 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 *. USB Connections can be extended to 50M over CAT5 or up to 10KM over fiber by using special USB Extender products developed by various manufacturers *. Standard
Non-standard A number of devices use this power supply without participating in a proper USB network. The typical example is a USB-powered reading light; fans, mug heaters, battery chargers (particularly for mobile telephones) and even miniature vacuum cleaners are also available. In most cases, these items contain no digitally-based 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 * and a desktop USB Fondue Set *. Storage 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), Serial ATA (SATA), 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. Other competing standards that allow for external connectivity are eSATA and Firewire. Human-interface devices (Human interface device|HIDs) As of 2006, most PCs and motherboards have at least two USB ports, 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. Mice and keyboards are frequently fitted with USB connectors, but are generally supplied with a small USB-to-PS/2 adaptor so that they can be used with either USB or PS/2 ports. These adaptors only make use out of the fact that such HID interfaces are equipped with controllers that are capable of serving both the USB and the PS/2 protocol. Hence, there is no logic inside these adaptors. Apple computers have exclusively used USB for all wired mice and keyboards since January 1999. Apple wireless mice and keyboards have always used the Bluetooth standard. FireWire USB was originally seen as a complement to FireWire (IEEE 1394), 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, Intel was not interested in paying the near-dollar license fee to add an IEEE 1394 subsystem to their board. The fee was reduced to a flat 25 cents, but Intel prefered to push for its own USB 2.0 standard. As a result, they were rarely provided as standard equipment on computers other than Apple Macintosh computers (Apple owns rights to the FireWire standard), and peripheral manufacturers offered many more USB devices. Moreover, USB 2.0 Hi-Speed reached a performance level sufficient for consumer equipment while retaining compatibility with older devices. An example of how the popularity of USB displaced FireWire in a commercial device is the Apple iPod. It was originally released with a FireWire connector, which was eventually modified to allow for both USB and FireWire connections when the product was released for Windows. The iPod now relies solely on USB for data and only allows a FireWire connection to charge the battery. 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: These and other differences reflect the differing design goals of the two buses: USB was designed for simplicity and low cost, while FireWire was designed for high performance, particularly in time-sensitive applications such as audio and video. USB 2.0 Hi-Speed vs FireWire The signaling rate of USB 2.0 Hi-Speed mode is 480 megabits per second, while the signaling rate of FireWire 400 (IEEE 1394a) is 393.216 Mbit/s *. USB requires more host processing power than FireWire due to the need for the host to provide the arbitration and scheduling of transactions. USB transfer rates are theoretically 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 theoretically be 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 is its 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 (for example*). 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. However, on Bare Feats, the Mac only USB 2.0 vs. FireWire speed comparison, the poster notes the measured PC speed of USB 2.0 instead of Mac "The Windows PC implementation of USB 2.0 puts the Mac to shame. Today we tested the same USB 2.0 drive/enclosure on a Windows PC (3GHz Pentium 4) with built-in USB 2.0 on the motherboard, similar to Apple's approach. We measured 33MB/s READ and 27MB/s WRITE." 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. USB USB On-The-Go Supplement Wireless USB Released on 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 original Xbox game console uses standard USB 1.1 signaling in its controllers, but features a proprietary connector rather than the standard USB connector. With the introduction of the newer Xbox 360 model, Microsoft switched to the standard USB 2.0 connector. Similarly, IBM UltraPort uses standard USB signaling, but via a proprietary connection format. Powered USB uses standard USB signaling 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 usually depends upon the operating system and the language you choose. One exception is the libusb project, which provides a common library interface for use under multiple operating systems. Communication from the Linux OS Communication from the Mac OS Communication from the Solaris Operating Environment Communication from the Windows OS Communication from the Amiga OS Communication from embedded systems Embedded systems can use either a PC-based operating system or a totally proprietary architecture. USB can be adapted to an embedded system and has been seen in various appliances, such as stereo systems and PC-less high-capacity storage systems, usually for the purpose of backing up of files without the need of a personal computer. For example, Argosy manufactures a 20GB external USB hard drive device that can connect directly to a digital camera. 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. See also For other buses, see: Official Technical Information DOS Linux Other | |||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||
![]() |
|
| |