USB Design by Example by John Hyde is aimed at those who must develop USB hardware devices as well as drivers and software applications to use them. It begins with an overview of USB, its electrical and other features, its limitations and implementations in current PCs.
It covers USB device enumeration and the operating system software that supports it. Then you're off to get an overview of the various USB development tools you'll need and there's a discussion on using bond-out microcontrollers (with debugging features) for USB device development.
The bulk of the book is given over to discussions of real world USB development examples, hence the title. These include switches, controllers, sound, light, sensors, IrDA (infra red connections), video, analog to digital and much more. Near the end of the book you even get a complete DSLUSB modem reference design.
Despite its highly technical subject matter, USB Design By Exampleis accessible to any electronics hobbyist or a PC programmer with some electronics background. It's both highly informative and surprisingly approachable. Anyone looking to develop USB devices commercially or who needs to create one off USB I/O devices for use in a research or bespoke application is unlikely to find a better source book. --Steve Patient