It pays to investigate a USB interface for your system peripherals, due to the rich variety and sheer number of USB peripherals. The hardware side of embedding USB represents about one-hundredth of the problem. The software side is in a nascent state, with lots of RTOS and driver suppliers.

If you need only a simple solution, you can use example code from chip vendors to talk to simple devices such as hubs, mice and keyboards. A more complex system, where multiple hubs and devices are supported, is better served using a commercial RTOS that has built-in USB support.

Software support should get easier, due to the USB On-The-Go initiative. This effort may give embedded hosts the first industry-wide specification and support level enjoyed by USB.