Keil Logo

Technical Support

On-Line Manuals

RL-ARM User's Guide (MDK v4)

RL-RTX RL-FlashFS RL-TCPnet RL-CAN RL-USB RL-USB for USB Device Applications RL-USB Device Library RL-USB Device Features RL-USB Device Software Stack RL-USB Device Functions RL-USB Device Source Files RL-USB Device Configuration Audio Device (ADC) Options Communication Device (CDC) - ACM Options Human Interface Device (HID) Options Mass Storage Device (MSC) Options Create USB Device Applications Create ADC Applications Create CDC ACM Applications Create HID Applications Create MSC Applications Create Composite Applications Test USB Device Applications Compliance Tests Test HID Client Application RL-USB for USB Host Applications RL-USB Host Library RL-USB Host Features RL-USB Host Software Stack RL-USB Host Functions RL-USB Host Source Files RL-USB Host Configuration Host Controller Driver Selection Host Controller Driver Configuration Host Class Driver Selection Create USB Host Applications Create USB Host HID Applications HID_Kbd Example Create USB Host MSC Applications Create USB Host Class Driver RL-USB Host Constants and Structures Error constants Speed constants Transaction Packet Type constants Transaction Error Type constants USB Request Block structure (USBH_URB) Endpoint structure (USBH_EP) Driver Capabilites structure (USBH_HCI_CAP) Device Class Instance structure (USBH_DCI) Host Controller Instance structure (USBH_HCI) Host Controller Driver structure (USBH_HCD) USB Concepts USB Transfer Rates USB Network Basic Communication Model USB Protocol Control Transfer Interrupt Transfer Isochronous Transfer Bulk Transfer Descriptors Device Configuration Device Descriptor Configuration Descriptor Interface Descriptor Endpoint Descriptor Device Qualifier Descriptor Example Programs Library Reference Appendix

RL-USB Host Software Stack

The RL-USB Host Software Stack consists of the following layers:

  • USB Host Class Driver
  • USB Host Core
  • USB Host Controller Driver

RL-USB Host Software Stack

The USB Host Class Driver is a hardware independent layer containing functions that are class specific and application dependent. The following USB classes are supported:

  • Human Interface Device (HID)
  • Mass Storage Device (MSC)

The USB Host Core is a hardware independent layer and contains the functions to manage USB peripherals and the USB bus. This layer is an interface between the USB Host Controller Driver and the USB Host Class Driver. The most important functions in this layer are:

  • usbh_init() which initializes the USB Host.
  • usbh_engine() which enables the USB Host Core to react to USB bus events. This function must be called periodically from the main application.

The USB Host Controller Driver is the layer between the USB Host Controller Hardware and the USB Host Core. This layer handles hardware specific interfaces. Two types of USB Host Controller Drivers are available:

  1. The USB Host Controller Driver for custom EHCI for NXP Devices is packed in the library, whereas the USB Host Controller Hardware Driver is delivered as a source module. However, the two parts are used as an entity by devices having custom EHCI for NXP Devices USB Host Controllers.
  2. The USB Host Controller Driver for OHCI is packed in the library, whereas the USB Host Controller Hardware Driver is delivered as a source module. However, the two parts are used as an entity by devices having OHCI USB Host Controllers.
  3. The USB Host Controller Driver and Hardware Driver for Custom USB Host Controller is delivered as source module and is included for devices that do not support the USB OHCI standard (this is not referring to EHCI).
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.