USB Device Stack
Overview
USB Device Stack
(henceforth: "the Device Stack") is
designed as a modular and scalable stack. It is comprised of three logical software
layers; the Function Driver(s) (FD), the USB Core, and the Device Controller Driver
(DCD).Each layer is responsible for handling a different aspect of the stack′s functionality
and communicates only with the layers directly above and beneath it.
The upper-most layer of the device stack is comprised of Function Drivers (FD),
which are responsible for handling the device-specific functionality of a custom or
standard USB device function
(such as mass storage
or HID).
The FD interfaces between the client application and the device stack′s USB
Core. It handles the function-specific logic and utilizes the USB Core to
perform USB data transfers.
Spec
The USB Core constitutes the
device stack′s
main engine. It interfaces between
the FD and DCD layers and provides uniform, platform-independent,
interfaces to each of these layers. This allows for both easy addition and modification
of device functionality, and easy porting of the
device stack between different
USB device controllers.
The USB Core abstracts the USB for the function drivers. It is responsible for
managing the device′s USB pipe configuration and handling all USB requirements
described in Chapter 9 of the USB Specification. This includes handling of all
non-class control pipe (endpoint zero) requests, such as GET_DESCRIPTOR and
SET_CONFIGURATION.
The USB Core creates and manages all USB descriptors. These structures
are transparent to the function drivers, which rely on the USB Core for the
implementation of the USB protocol.
The USB descriptors are either hard-coded, or created ″on the fly″ according to the
loaded function drivers and to the pipe configurations supported by the DCD and
requested by the FD.
Implementation
USB provides an expandable, hot-pluggable Plug and Play serial interface
that ensures a standard,low-cost connection for peripheral devices such as keyboards, mice, joysticks, printers, scanners,
storage devices, modems, and video conferencing cameras.
The USB device stack is
divided into three main layers: the USB Core Layer,
the Function Driver (FD) and the Device Controller Driver (DCD). Beneath these layers
lies the Hardware Controller, which is an environment-specific USB hardware controller
Resources
- USB-IF-Handling the interrupt in USB device driver development
- USB Device Stack-This section describes the USB device stack...Learn more
- USB Device Stack-USB function/device stack, including Application Programming Interfaces (APIs) and services that enable software and device manufacturers to incorporate standard USB device/function connectivity in their embedded devices.
- Read more on USB Device Stack on Jan Axelson's book
- Bitpipe.com-Information on USB Device stack
For further details and to contribute information relevant to our website, please Contact us