|This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.|
USB system software consists of two layers: an upper layer of USB device drivers and a lower layer of USB functions that are implemented by Windows CE. USB device drivers use the USB functions to establish connections to the devices they control and to configure and communicate with the devices. The lower layer of USB functions performs several interrelated tasks:
The lower layer is itself composed of two parts — the upper universal serial bus driver (USBD) module and the lower host controller driver (HCD) module. The USBD module implements the high-level USBD interface functions in terms of the functionality provided by the HCD module. USB device drivers use the USBD interface functions to communicate with their peripherals.
IHVs and manufacturers of USB devices should make use of the functions that are provided by the USBD to implement their USB device drivers. OEMs are responsible for providing an HCD module to their Windows CE–based platforms so that their hardware properly interfaces with the USBD module.
The following illustration shows the two layers of software in the context of the host's USB hardware and a peripheral device.
During a data transfer, the flow of operation typically proceeds in the following sequence:
Note: the USBD module is layered in order to assist OEMs in porting the USBD module to their USB Host Controller Hardware implementations. Internally, the USBD module contains a set of USBDI functions, in the same way that layered drivers contain DDSI functions. USB device drivers are not allowed to invoke the USBDI functions directly; they should limit themselves to the USBD interface functions. The USBDI functions are described in the Windows CE Driver Development Kit reference section for the benefit of OEMs who need to use them in their USBD module implementations.
All transactions on the bus originate from the host side; the peripherals are totally dependent.
The following sections on USB system software describe the various components of USB support in Windows CE. The primary goal of USB support provided by Microsoft, aside from enabling IHVs to write device drivers for USB devices, is to help OEMs expand existing USB support on their platforms. Windows CE also has device-side support, which enables Windows CE–based platforms to serve as USB peripherals to other USB hosts. The Windows CE Platform Builder contains sample code implementing device-side support.
Last updated on Tuesday, July 13, 2004