USB Class API
The
top layer, USB Class API, provides class-specific services for the
applications.
Class Driver Layer
This layer provides device drivers for various USB devices, classes, and sub-classes,
such as:
- Mass storage (flash drives, DVD etc.)
- HID (keyboard, mouse etc.)
- CDC (USB-Ethernet dongles, Wi-Fi, etc.)
- Others (providers of specific device classes)
USB Core Layer
The USB D (system software) layer configures the device, loads the respective
drivers and provides mechanisms for the data transfer.
Host Controller Driver Layer
The bottom layer implements the Host Controller Driver Interface (HCDI). It
communicates with the host controller hardware to send data through the USB
bus.
Platform-Independent Services
The platform-independent services are used by the entire stack to establish
compatibility across various platforms.

