Embedded System USB programming in C

Course

In Carshalton

£ 1,750 + VAT

Description

  • Type

    Course

  • Location

    Carshalton

  • Duration

    5 Days

After attending this course, you will be able to: hardware and design aspects of USB enabled system development. link layer and physical layer aspects of the USB protocol. work with on chip and off chip USB peripherals. design and implement USB enabled applications ranging from human interaction device applications and communications device applications. Suitable for: This course is for engineers who have a basic knowledge of C programming, some experience of serial communications programming ( e.g. RS232 UART programming ) and some experience using USB.

Facilities

Location

Start date

Carshalton (Surrey)
See map
1-3 Fairlands House, North Street, SM5 2HW

Start date

On request

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Reviews

Course programme

Overview
Although the course will discuss the design and implementation of USB driver libraries, the emphasis will be on theory, troubleshooting and use of existing embedded system USB libraries and how to develop applications on top of these libraries. The course will cover both device and host implementation and USB On The Go (OTG). The application examples will be oriented towards embedded system applications development and will include examples such as RS232 to USB bridging, Ethernet to USB bridging, mass storage device and human interaction devices. The course will overview the implementation of device driver code running on PCs or workstations. [ Please inquire about FTT courses that cover USB device driver programming and application development on Microsoft Windows, and Unix/Linux systems. ] The course will demonstrate the use of USB protocol analysers and commercial tools for Windows USB Driver Development.

Key Skills
After attending this course, you will be able to:
  • hardware and design aspects of USB enabled system development
  • link layer and physical layer aspects of the USB protocol
  • work with on chip and off chip USB peripherals
  • design and implement USB enabled applications ranging from human interaction device applications and communications device applications through to audio and mass storage device applications
  • understand how Windows and Linux USB device drivers are implemented
  • understand the USB Bus Enumeration Sequence

Course Contents
Overview of the USB System Architecture
  • History, rationale and development of the USB Standard
  • USB software structure and organisation
  • Key USB protocol concepts - transfer, transaction and packet
  • Capturing and analysing a USB session trace
  • USB device configuration
  • Standard descriptors and commands
USB Electrical Specification
  • Overview of cables and connectors
  • USB signalling - low speed , full speed , high speed
  • reset sequence
  • chirp negotiation
Principles of the USB Transfer Protocol
  • low speed / full speed transfer protocol
  • periodic vs. non-periodic transfers in high speed systems
  • error detection and recovery
  • power management
Device Configuration and Device Classes
  • device configuration and the device initialisation sequence
  • overview of various device classes
    • human interface
    • mass storage
    • communication devices - networks and modems
    • chip/smart card interface
    • audio
    • still image capture
    • test and measurement
USB on the go (OTG)
  • Kinds of applications and background
  • plugs and receptacles
  • electrical standards
  • session request protocol
Hub and Host Controller Operation
  • Hub operation
    • humb architecture
    • hub class descriptors and commands
  • Host controller operation
    • OHCI, UHCI, EHCI
    • intialisation
    • port routing and control
    • periodic scheduling, asynchronous scheduling
    • queue heads and the management of bulk, control and interrupt transfers
Example Case Studies
  • simple hid device - emulating a mouse with some buttons and a potentiometer
  • simple data acquisition and logging device
  • implementing an RS232 to USB bridge device
  • implementation of a USB to Ethernet bridge device
  • implementating a simple mass storage device using a SD-MMC flash memory card with a FAT16 file system
Windows and Linux USB Device Drivers
  • Overview Windows driver frameworks for XP, Vista and WinCE systems
  • Using Windows standard USB drivers - an overview
  • Implementing application specific USB drivers under Windows - an overview
  • Overview of the Linux 2.6 Kernel Device Driver Framework
  • implementing Linux USB Driver applications

Embedded System USB programming in C

£ 1,750 + VAT