Chapter 24. USB Communications
The first PCs shipped in 1981 used serial
ports and parallel ports to connect external peripherals. Although
the RS-232 serial and Centronics parallel technologies had improved
gradually over the years, by the mid-90s those technologies had
reached their limits. In terms of connectivity to external devices,
the PC of 1995 differed very little from the PC of 1981; the ports
were a bit faster, perhaps, but they were fundamentally similar.
In the interim, the bandwidth needs of external peripherals had
increased greatly. Character-mode dot-matrix and daisy-wheel printers
had given way to graphic-mode page printers. Modems were pushing the
throughput limitations of RS-232. Also, it was obvious that emerging
categories of external peripherals—such as digital cameras, CD
writers, tape drives, and other external storage devices—would
require much more bandwidth than standard serial or parallel
connections could provide. Neither was bandwidth the only limitation.
Serial and parallel ports have the following drawbacks for connecting
external peripherals:
- Low bandwidth
-
Standard serial ports top out at 115 Kb/s, and parallel ports at 500
Kb/s to 2 Mb/s. Although these speeds are adequate for low-speed
peripherals, they are unacceptably slow for high-speed peripherals.
- Point-to-point connections
-
Standard serial and parallel ports dedicate a port to each device.
Because there is a practical limit to the number of serial ports and
parallel ports that can be installed in a PC, the number and type of
external devices that can be connected are limited.
- Resource demands
-
Each serial or parallel port occupies scarce system resources, in
particular an IRQ. A PC has only 16 IRQ lines, most of which are
already occupied. It is often impossible to install the required
number of serial or parallel ports because insufficient interrupts
are available.
- Ease-of-use issues
-
Connecting devices to serial or parallel ports may be complex and
trouble-prone because cable pinouts and port configurations are not
well standardized. Serial ports in particular accept a wide variety
of different cables, none of which is likely to be interchangeable
with any other. Parallel ports use more standardized cable pinouts,
but various parallel devices may require different port
configurations. In particular, attempting to daisy-chain parallel
devices via pass-through ports often introduces incompatibilities.
Also, serial and parallel ports are always located on the rear of the
computer, which makes connecting and disconnecting them inconvenient.
What PCs really needed was a fast bus-based scheme that allowed
multiple devices to be daisy-chained together from a single port on
the PC. SCSI had the potential to fulfill this need, but its high
cost and complexity made it a non-starter for that purpose. The PC
industry had long been aware of this need, but it was not until 1996
that they finally began to address it. Their solution was called
Universal Serial Bus (USB).
USB is aptly named. It is universal because
every modern PC or motherboard includes USB and because USB allows
you to connect almost any type of peripheral, including modems,
printers, speakers, keyboards, scanners, mice, joysticks, external
drives, and digital cameras. It is serial in
that it uses serial communication protocols on a single data pair. It
is a logical bus (although the physical topology
is a tiered star) that allows up to 127 devices to be daisy-chained
on a single pair of conductors.
One convenient way to think about USB is as an outside-the-box
Plug-N-Play bus. All connected USB devices are managed by the
USB Host Controller Interface (HCI) in the PC,
and all devices share the IRQ assigned to that HCI. Devices can (in
theory, at least) be plugged or unplugged without rebooting the
computer.
Although nearly all PCs and motherboards made since 1997 have USB
ports, for a long time those ports were nearly useless, for three
reasons:
USB requires native operating system support to provide full
functionality. Until Windows 98 and Windows 2000 began to
proliferate, that support was lacking. Windows NT 4 and early Windows
95 releases have no USB support, although a few peripheral makers
provided custom drivers to allow their devices to work under these
operating systems. Windows 95 OSR 2.1 introduced limited support for
a few USB devices, but using USB under Windows 95 is an exercise in
frustration. Windows 98/98SE/Me and Windows 2000/XP support USB 1.1.
As we write this in June 2002, only Windows XP has native USB 2.0
support, although you must download the USB 2.0 driver from the
Windows Update site. Windows XP SP1 is scheduled to include that
driver. Microsoft has announced they will release native Windows 2000
USB 2.0 drivers by mid-2002.
USB peripherals were hard to find prior to 1999, and were often more
expensive than versions that used legacy interfaces. By 2000, that
situation had reversed itself, with USB peripherals readily available
and often cheaper than peripherals with legacy interfaces.
Early USB ports and peripherals often exhibited incompatibilities and
other strange behavior. Removing a connected peripheral might crash
your system, or a newly connected device might require a reboot to be
recognized. Some peripherals demanded that their drivers be
reinstalled every time they were disconnected and then reconnected.
Some peripherals drew so much power that other devices on that USB
port would cease operating or the system would refuse to boot until
the offending device was disconnected. And so on. In fact, these
conflicts and incompatibilities remain a problem with more recent USB
interfaces and devices, although the problems are less severe. We
remain hopeful that USB 2.0 will solve most USB compatibility issues.
Despite these problems, by mid-2000 USB had achieved critical mass.
With Windows 98/SE/Me and Windows 2000 available and USB peripherals
shipping in volume, USB transitioned from a developing standard with
great potential into a real-world solution, albeit a flawed one. USB
is now in the process of replacing most of the legacy connectors that
clutter the back of recent PCs.
Legacy-reduced motherboards that began shipping
in 2000 replaced or supplemented serial and parallel ports with
additional USB ports—usually four rather than the previously
standard two. Legacy-free motherboards provide
nothing but USB ports for connecting external
peripherals (other than perhaps video), and are usually equipped with
six USB ports—four at the rear and two on the front panel. Most
inexpensive printers and scanners now have a USB interface—many
have only a USB interface—as do most
digital cameras.
Despite its slow start and the nagging problems that continue to
plague it, USB really is the wave of the future. The following
sections tell you what you need to know about USB.
|