USB Complete : Everything You Need to Develop Custom USB Peripherals
This guide takes the pain out of designing for this popular interface with specific, detailed examples that show how to develop USB devices and the applications that communicate with them. How the USB communicates with the PC, deciding if a project should use a USB interface, choosing a USB controller chip for peripheral design, and determining code with Windows applications are covered in detail.