Designing USB Into Embedded Systems: Issues and Answers
The interoperability, performance, and ease-of-use of USB has led to its overwhelming acceptance in the marketplace. It is the interface of choice for all but the highest performance and lowest cost applications. This near-ubiquity has led many companies to investigate adding USB to existing embedded designs, thus providing compatibility with a wide variety of devices with a minimum of development effort.
However, the ease-of-use of USB from a consumer standpoint belies the serious complexity of the software and hardware design. Making poor decisions before beginning a USB design can lead to long development times, poor system performance, and non-existent long-term maintainability.
This paper attempts to detail some of the thoughts that should go into adding USB to a design.