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


For further details and to contribute information relevant to our website, please Contact us