USB Libraries Help > USB Device Libraries > USB Audio 1.0 Device Library > Using the Library > Abstraction Model
MPLAB Harmony USB Stack
Abstraction Model

The Audio 1.0 Function Driver offers various services to the USB Audio 1.0 device to communicate with the host by abstracting USB specification details. It must be used along with the USB Device_layer and USB controller to communicate with the USB host. Figure 1 shows a block diagram of the MPLAB Harmony USB Device Stack Architecture and where the Audio 1.0 Function Driver is placed.

Figure 1: USB Device 1.0 Audio Device Driver 

The USB controller driver takes the responsibility of managing the USB peripheral on the device. The USB 1.0 Device Layer handles the device enumeration, etc. The USB Device 1.0 Layer forwards all Audio-specific control transfers to the Audio 1.0 Function Driver. The Audio 1.0 Function Driver interprets the control transfers and requests application's intervention through event handlers and a well-defined set of functions. The application must respond to the Audio events either in or out of the event handler. Some of these events are related to Audio 1.0 Device Class specific control transfers. The application must complete these control transfers within the timing constraints defined by USB.