Universal Serial Bus (USB) is a low to medium speed, bi-directional, isochronous, low cost, dynamically attachable serial interface. USB simplifies the task of connecting peripherals to a Windows PC or an Apple Computer. The ability to provide common connectivity at low cost for 127 different USB devices simultaneously is driving PC Hardware peripheral manufacturers to adopt this useful interface.

This paper describes the design of an embedded USB device driver compliant with the USB 1.1 specification. The design was implemented under several different Real Time Operating systems using message queues, semaphores and a timer interrupt.