JustKernel

Ray Of Hope

USBOIP – USB System Architecture

Architecture of USB for USBOIP System.

USB Transfer of Data: When a client driver wishes to perform a transfer to or from a given endpoint, it calls the USB driver to initiate the transfer. The request transfer is called IRP. Some transfers consists a large block of data. Since USB is a shared bus, a single device cannot typically perform an entire block transfer across the USB at one time. Rather a transfer is splitup and performed in segments (called transactions) over a longer period of time. <em><strong>(USBOIP system needs to manage it).</strong></em> This ensures that a portion of USB bandwidth can be allocated for the other USB devices residing on the bus.

Host Controller Driver And Transaction (This is important and we need to implement virtual host controller driver in USBOIP system): The host controller driver receives the packet request from the USB driver and schedules them to be performed during a series of frames (On similar ground we need to register our virtual host controller driver so that it receives the request from the client driver instead of actual host controller driver). The scheduling order is based on the algorithm defined by the host controller driver. (In our virtual host controller driver, do we need to define this algorithm? We will try to make it simple for the initial version).

Scheduling is performed by building a series of data strucutres (called transfer descriptors – <em><strong>from where we can get definitions of these data structures</strong></em> ?) that define each sequential transaction to be performed over the USB. The USB host controller reads and interprets these transfer descriptors (TDs) and executes the USB transaction described.

The root hub:  The transactions generated by the host controller are forwarded to the root hub to be transmitted to the USB. Consequently, every USB transaction originates at the root hub. The root hub provides the connection points for the USB devices and performs the following key operations:

  1.  Controls power to its USB hubs.
  2. enables and disables the ports.
  3. recognizes the devices attached to each port.
  4. sets and reports status events associated with each port.

USB System Software: Note that one set of USB system software exists in the system to manage accesses to all USB devices attached to the USB bus. USB system software consists of the following entities:

  •  USB driver: provides interface and services for the client software, allocates bus bandwidth and manages the configuration process.
  • USB host controller driver:  Controls operation of the host controller, schedules transactions and monitors completion status of  transactions (Broad level functionality that our USBOIP virtual Host COntroller Drivers needs to achieve).

Originally Posted On: 2010-10-06 08:57:56

Anshul Makakr, anshul_makkar@justkernel.com

Tags:


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.