Figure 4. USB cable, four wires.
a USB host/device is shown in Figure 1. Figure 6 shows an
expanded view of a USB host/device in layered form. The
darkened arrows show the actual communication flow
Figure 5. USB cable connectors.
between the host and device. The lighter arrows show the
logical communication flow within a layer. This basically
shows that the function of the USB device is regulated by
the client software via the actual communications flow. As
seen in Figure 2, USB devices are physically connected to
the host in a tiered, star topology; the host communicates
with each logical device as if it were directly connected to
the root port. The logical communication flow in the USB
device layer is seen in Figure 6.
The rectangular boxes in Figure 6 show the four
entities you need in order to implement a USB system.
These entities are the client software, USB system
software, USB host controller, and physical USB device.
The client software is executed on the host and corresponds to a USB device. The client software is usually provided
along with the USB device or supplied with the operating
system. Client software is only good for the particular
device or function that it was written for and is independent
of other devices that may be connected to the USB system.
The second entity you need for implementation is the
USB system software; this is supplied with the operating
system to support the USB logical device. The USB system
software — which includes the USB driver, host software,
and host controller driver — is independent of any
particular USB devices or client software.
The USB host controller is also necessary; it is the
NUTS & VOLTS
Circle #72 on the Reader Service Card.