Brief USB Overview and USB History
USB Overview
In the past, connecting multiple peripheral devices to computer has been a real problem. There were too many different port types (serial port, parallel port, PS/2 etc.) and their use imposes limitations such as no hot-pluggability and automatic configuration. There are very limited number of ways to attach the peripheral devices in the original IBM PC implementation due to the requirements in terms of non-shareable IRQ lines and I/O address space. The main reason that Universal Serial Bus (USB) was implemented was to provide a replacement for those legacy ports on a computer to make the addition of the peripheral devices quick and easy for end user.
USB provides an expandable, fast, bi-directional, low-cost, hot-pluggable Plug and Play serial hardware interface that makes the life of the computer users easier allowing them to plug different peripheral devices into a USB port and have them automatically configured and ready to use. Using a single connector type, USB allows the user to connect a wide range of peripheral devices, such as keyboards, mice, printers, scanners, mass storage devices, telephones, modems, digital still-image cameras, video cameras, audio devices to a computer. USB devices do not directly consume system resources. They are not mapped into I/O address space, nor do they use IRQ lines or DMA channels. The only system resources required by a USB system are the memory buffers used by the USB system software. Due to its success and widespread acceptance, USB became the 'de-facto' industry standard for connecting peripheral devices to PCs and laptops.
The USB has the following key features:
Single connector type: USB replaces all the different legacy connectors with one well-defined, standardized USB connector for all USB peripheral devices, eliminating the need for different cables and connectors and thus simplifying the design of the USB devices. So all USB devices can be connected directly to a standard USB port on a computer.
Hot-swappable: USB devices can be safely plugged and unplugged as needed while the computer is running. So there is no need to reboot.
Plug and Play: Operating system software automatically identifies, configures, and loads the appropriate device driver when a user connects a USB device.
High performance: USB offers low speed (1.5 Mbits/s), full speed (12 Mbits/s) and high speed (up to 480 Mbits/s) transfer rates that can support a variety of USB peripherals. USB 3.0 (SuperSpeed USB) achieves the throughput up to 5.0 Gbit/s.
Expandability: Up to 127 different peripheral devices may theoretically be connected to a single bus at one time.
Power supplied from the bus: USB distributes the power to all connected devices eliminating the need for external power source for low-power devices. High-power devices can still require their own local power supply. USB also supports power saving suspend/resume modes.
Easy to use for end user: A single standard connector type for all USB devices simplifies the end user's task at figuring out which plugs go into which sockets. The operating system automatically recognizes the USB device attachment and loads appropriate device drivers.
Low-cost implementation: Most of the complexity of the USB protocol is handled by the host, which along with low-cost connection for peripherals makes the design simple and low cost.
A Brief USB History
The USB was developed and standardized by a group of leading companies from the computer and electronics industries in 1995.
The Universal Serial Bus specification, which defines all aspects of the USB system from the physical layer (mechanical and electrical) all the way up to the software layer, was developed by Compaq, Digital Equipment Corporation (DEC), IBM, Intel, Microsoft and NEC, joined later by Hewlett-Packard, Lucent and Philips. Compaq, which merged with Hewlett Packard, bought DEC and Lucent merged with Alcatel to form Alcatel-Lucent.
These companies also formed the USB Implementers Forum, Inc. (USB-IF) as a non-profit corporation to publish the specifications and provide a support organization and forum for the advancement and adoption of USB technology.
USB Specification
The design of USB is standardized in Universal Serial Bus Specification that provides the technical details to understand USB requirements. The specification describes the bus attributes, the protocol definition, types of transactions, bus management, and the programming interface required to design USB compatible peripherals and software. USB Specifications and all related documents are freely downloadable from USB Implementers Forum web site.
Versions of USB specification:
Revision 1.0 released on January 15, 1996, introduced a low-speed transfer rate of 1.5 Mbits/s and a full-speed transfer rate of 12 Mbits/s.
Revision 1.1 released on September 23, 1998, introduced the improved specification and was the first widely used version of USB.
Revision 2.0 released on April 27, 2000. The major feature of revision 2.0 was the addition of a high-speed transfer rate of 480 Mbits/s.
Revision 3.0 released on November 17, 2008, brings significant performance enhancements to the USB standard while offering backward compatibility with the peripheral devices currently in use. Delivering data transfer rates up to ten times faster (the raw throughput is up to 5.0 Gbit/s) than Hi-Speed USB (USB 2.0), SuperSpeed USB is the next step in the continued evolution of USB technology.
Note, however, that all above mentioned are theoretical maximum data transfer rates that do not take into consideration some USB protocol overhead and bus utilization, which makes a difference in actual maximum throughput. The actual maximum throughput may vary depending on the transfer type, maximum packet size, time reserved for control transfers, the overhead due to signaling imposed bit stuffing etc.
Each iteration of the specification is backward compatible with previous revisions. Since all USB devices use the same cables, connectors and software interfaces, there is no change in the usage model for the end user. USB 1.0, USB 1.1 and USB 2.0 compliant peripheral devices can operate on a computer at the same time. It is possible for a high-speed USB 2.0 device to plug into a USB1.1 port and operate at the appropriate transfer rate.
Using USBlyzer - Viewing the USB Specification Version
You can view USB Specification revision number for USB devices and external hubs.
To view USB Specification revision number a USB device compliant with
|
Device Descriptor VOIP USB Phone
| Offset | Field | Size | Value | Description |
| 0 |
bLength |
1 |
12h |
|
| 1 |
bDescriptorType |
1 |
01h |
Device |
| 2 |
bcdUSB |
2 |
0101h |
Fails WHQL testing. Should be 0110h |
| 4 |
bDeviceClass |
1 |
00h |
Class information in the Interface Descriptors |
| 5 |
bDeviceSubClass |
1 |
00h |
|
| 6 |
bDeviceProtocol |
1 |
00h |
|
| 7 |
bMaxPacketSize0 |
1 |
40h |
64 bytes |
| 8 |
idVendor |
2 |
6993h |
Freshtel |
| 10 |
idProduct |
2 |
B001h |
|
| 12 |
bcdDevice |
2 |
0000h |
0.00 |
| 14 |
iManufacturer |
1 |
01h |
"Yealink Network Technology Ltd." |
| 15 |
iProduct |
1 |
02h |
"VOIP USB Phone" |
| 16 |
iSerialNumber |
1 |
00h |
|
| 17 |
bNumConfigurations |
1 |
01h |
|
|
Note, that in the above example the U.S. Robotics USB Phone 9600 incorrectly reports its compliance with the USB Specification 1.1 as 0101h.
bcdUSB field in the standard USB Device Descriptor may have the following values:
0100h - USB Specification 1.0
0110h - USB Specification 1.1
0200h - USB Specification 2.0
Since some devices incorrectly expose bcdUSB field as 0101h instead of 0110h, the operating system accepts both as valid revision number. But failure to correctly report this value can prevent the driver from passing the Windows Hardware Quality Labs (WHQL) testing and may also cause a device to fail tests in the USB test tools available on http://www.microsoft.com/whdc/whql/device/usb.mspx.
USB Logo
To complement the USB specification in real products, the USB-IF maintains a Compliance Program that provides reasonable measures of acceptability. Products that pass compliance testing have the right to license the USB-IF certified USB Logo. Products that operate at either low-speed or full-speed can use only the Basic-Speed version of the logo. Only products that support high-speed can use the Hi-Speed version of the logo.
Certified Logo for USB Devices
USB Extensions
There are also the extensions to the original USB design. These are USB On-The-Go (OTG) and Certified Wireless USB. USB On-The-Go allows connecting portable peripheral devices to each other directly without having to connect to a PC. Certified Wireless USB is a wireless radio communication protocol that combines the ease-of-use of USB with the convenience of wireless technology. Like standard USB, the USB-IF also maintains the Compliance Program for OTG and Wireless USB devices.
Certified Logo for USB OTG and Wireless USB Devices
USB On-The-Go and Certified Wireless USB technologies are beyond the scope of this article series, the details and specifications can be found on the USB-IF website.
|