USB Design by Example: A Practical Guide to Building I/O Devices (2nd Edition)