Innovation... driven by intelligence and logic

USB Device Driver


Universal Serial Bus(USB) is a standard designed in 1994 has now become a key component in today's electronic and electromechanical devices for interfacing external components and peripherals. USB provide fast (USB 3.0 support 625 MB/s) and efficient data transfer rates as compared to other methods and buses. Now a days, almost every module can be interfaced through USB. USB devices are hotplugable and can be attached to a machine on the fly without having the need to cold boot the machine. Also, USB can be used to charge and can power up devices like external hard disk ,mouse etc..


USB was designed by keeping the following things in mind:-
  • Ease-of-use: Device identification and driver linking is done automatically by operating system.
    • Therefore, user have no need to detect and install driver every time device is attached to the system.
  • High rate of data transfer:
    • With USB 3.0 data transfer of rates up to 625Mb/s can be achieved.
  • Full support for real-time data like voice, audio, and compressed video.
  • Single connector that is common to all kind of devices interfaced to the system.
  • Power management:
    • USB HUB driver automatically detects the presence of a device on USB port and powered up the device as when needed.
    • In the absence of any device will power down accordingly so that maximum power can be saved.


The physical components of the Universal Serial Bus consist of the circuits, connectors, and cables between a host and one or more devices. The host is a PC or other computer that contains a USB host controller and a root hub. These components work together to enable the operating system to communicate with the devices on the bus. The host controller formats data for transmitting on the bus and translates received data to a format that operating-system components can understand. The host controller also performs other functions related to managing communications on the bus. The root hub has one or more connectors for attaching devices. The root hub, in combination with the host controller, detects attached and removed devices, carries out requests from the host controller, and passes data between devices and the host controller. The devices are the peripherals and additional hubs that connect to the bus. A hub has one or more ports for connecting devices. Each device must contain circuits and code that know how to communicate with the host. The USB specification defines the cables and connectors that connect devices to hubs.


The USB standard is extremely usable and durable & it has massive popularity. Many mobile phones have a USB connection & USB Flash drives make the transfer of large amounts of data an extremely simple process. A subculture of USB gadgets has sprung up in recent years with weird & wacky devices like USB fridges, vacuums, toasters, slippers & back massagers all hitting the market to massive amounts of interest and varying degrees of success.

Training Objective:

This course is designed to ensure that students of Engineering College with academic capabilities will have the skill set needed to deal with the challenges involved in real-world Embedded Technologies and Device Drivers Design to meet the needs of industries both today and in the future.

The course considers programming and device design techniques which can help to ensure that single-processor embedded systems are reliable.

The course is taught mainly using the C programming language, hardware design,Data Sheet Interpertation and a PC emulated as an embedded device.


  • A prior knowledge of a basic Linux commands, general understanding about operating system concepts is assumed.
  • Must have implemented basic drivers like Pseudo Device Driver, Character Device Driver, Block Device Driver.


  • The Duration of Training is:
    • The Duration of Training would be 2 weeks
    • 8 Classroom Sessions of 2 Hrs each
    • 12 Lab Sessions of 4 hrs each
  • The course is split into Three Sub-Modules:
    • USB generic driver
    • USB core driver
    • USB Protocol
Training Topics in Brief:
  • USB generic driver
    • Registration with usb core.
    • Identification of device through Vendor ID and Product ID
    • Probe Function called by core for device probing
  • USB core driver
    • USB driver interface (USBDI),
    • Hub driver,
    • UHCI host controller driver,
    • OHCI host controller driver
  • USB Protocol
    • Token packets used to set up data packets.
    • Data packets containing the payload.
    • Handshake packets for acknowledgment.
    • Start of frame packet.


Go to Top ^