USB Design by Example: A Practical Guide to Building I/O Devices, Second Edition

Chapter 3: Getting to Know You: Enumeration

OVERVIEW

Let us assume that a PC host meets all of the requirements described in Chapter 1, is running a USB-aware operating system, and has an available USB port. This port could be on the PC host itself (an embedded hub), or could be on an external hub. Assume that we have a new USB I/O device that we want to add to this running system. What actually happens between the host, the hub, and the device to deliver the many USB features?

In this chapter, after understanding what the PC host is doing, we learn the responsibilities of a general I/O device. All devices describe themselves using a collection of specially formatted bytes called descriptor tables. We start by looking inside the simplest example and then expand the discussion to cover the general case. We then derive the minimum hardware requirements for an I/O device. I keep this chapter as general as possible, so that the discussion will not be constrained by specific product implementations. We shall look at real products in the next chapter.

There are many chicken-vs.-egg situations in this chapter, so I defer some technical discussions to keep the flow of the concepts moving forward.

DEVICE DETECTION

Figure 3-1 shows connection details of the USB cable. The cable has four wires: two power wires for Vbus and Gnd and two signal wires for D+ and D-. The cable end that attaches to the hub has a Series A connector, and the cable end that attaches...

UNLIMITED FREE
ACCESS
TO THE WORLD'S BEST IDEAS

SUBMIT
Already a GlobalSpec user? Log in.

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.

Customize Your GlobalSpec Experience

Category: USB Cables
Finish!
Privacy Policy

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.