Shopping Cart :Check Out

USB Protocol Implementation -Learing a Device Workshop

Course Introduction:

The Universal Serial Bus (USB) provides for an easy connection of external peripheral devices to PCs. USB devices currently available include input devices (e.g., keyboards and mice), a wide variety of mass storage devices, and even video cameras. The original versions of USB (1.0 and 1.1) defined transmission rates of 1.5 Mb/s (Low Speed) and 12Mb/s (Full Speed). The latest version of the USB specification (version 2.0) provides major improvements in performance (60Mb/s transmission rates) as well as the ability to support more devices simultaneously. USB 2.0 also provides backward compatibility to 1.0 and 1.1 USB devices. USB 3.0 is new which can be covered at last day half day depending on majority of participants need.
The host PC originates all communication with the peripheral devices on the USB bus and consequently USB does not support direct peer-to-peer transfers. A separate specification called USB On-the-Go was introduced to permit point-to-point communication between USB devices, thereby eliminating the need for a host system. For backward compatibility, On-the-Go devices can also operate normally in a host-based USB environment.

Who Should Attend:

This in-depth course is designed with the hardware or software engineer in mind. The course contains practical examples of USB transactions and error conditions. It describes all the rules required for a host and device to be specification compliant.

Duration: 4 Days

Level: Intermediate/Advanced


Thorough knowledge of LinuxKernel Internals and Device Drivers is a must Basic knowledge of Device Hardware


Expert with 25+years experience conducting Windows Driver / Linux Driver Implementations, Architecture related consulting and training for clients in Asia.

Course Contents

Day 1 Day 2
Introduction to USB USB Device Architecture and the USB HID Class
- Background and Overview of USB - USB Host Controller DriverResponsibilities and Functions
- Introduction to the USB 2.0Specification - USB Device ControllerArchitecture and Functions.
- Components of a USB system – Host, Device and Bus - Introduction to the USB HIDClass
- USB Device Enumeration Process - Requirements of HID DeviceClass Functionality
- USB Device Classes - HID Subclasses and ReportStructures
USB Device Architecture Handson:
- USB 2.0 Packets and Protocol - Examining HID Report MessageTraces
- USB 2.0 Transactions
- Device Power Options andRequirements - HID Subclasses and ReportStructures
- Tracing the Device EnumerationProcess
- Viewing the Device Architecture
- Analyzing Transaction Packetsusing Software (USBLyzer/Wireshark)
Day 3 Day 4
Implementing a USBMass Storage Device USB HID Host Driver Implementation
- Introduction to the USB Mass Storage Class (MSC) - Windows USB Driver Stack andIncluded Classes
* Requirements - Windows USB HID StackArchitecture
* Descriptors - Windows HID Clients,Collections and Reports
* Commands - Implementation of a SimpleWindows HID Application
- Architecture of a USB MSC Device – Controller and Memory Handson:
- Implementing SCSI commands for MSC devices - Code walkthrough of OSRFX2 USBHID Driver
* Primary Commands
* Block Commands
- Storage Media Types and Organization
- Files and File Systems on Storage Media

Training Programs