HOME   -   PRODUCTS    -   SERVICES    -   FAQ    -   NEWS    -   CONTACT

Architecture Description Function Drivers

Function drivers may either be simple (non-composite), or part of the composite architecture. The composite architecture divides responsibility for a function among three types of drivers as noted below. Note that a single-function peripheral can quite conveniently use the composite architecture and for this reason all the Belcarra-supplied functions are supplied in this way.

Composite functions are the management of the composite system. It is their responsibility to define a configuration of one or more interface drivers (see below). Composite drivers declare configurations, one of which may be activated either by being the default configuration or by administrative action (see usbadmin) below. Activated means made available to the host. If the host selects such as configuration, then USB resources (endpoints) are assigned to the component interface functions which perform all of the logical functions with the host after enumeration.

Class drivers are a response to the possibility implicit in the USB 2.0 standard for USB device requests to be directed to a USB device class. This would be required, for instance if several instances of a mass storage driver interface driver were collected in the current configuration, and the host found it necessary to affect the entire class of interface simultaneously. However, no operational need for this has so far been identified.

An interface driver is the operational part of a simple function, abstracted in two different ways to facilitate composite architecture. First of, configuration information, such as the vendor and product ID values, are left to the managing composite driver. Secondly, the driver declares one or more interfaces that it wishes to use (which become consecutive interfaces of the composite configuration), each with one or more endpoint requests. Interface drivers register themselves with the core. A composite configuration can include one or more instances of this. At the time that a composite configuration is enabled (that is its enable method is called), interfaces and endpoints are allocated (if possible) from those available. Each interface instance, if it avoids global structures, and has proper interfaces with the surrounding OS, can operate fully independently. This independence has been achieved in practice with Belcarra\u2019s ACM (serial) and random mouse (a test driver that does not expose an upper level interface to the OS).

BELCARRA NEWS

Copyright 2003-2007 Belcarra Technologies Corp. info@belcarra.com