Usb tutorial
Download
1 / 29

USB Tutorial - PowerPoint PPT Presentation


  • 851 Views
  • Updated On :

USB Tutorial. Objectives. Review USB functionalities Be able to read a USB trace Understand the enumeration process Highlight that class drivers are part of the USB success. Keyboard. Root Hub. Speaker. Printer. Disk. Few generalities on USB. Tiered start topology

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'USB Tutorial' - Antony


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Objectives l.jpg
Objectives

  • Review USB functionalities

  • Be able to read a USB trace

  • Understand the enumeration process

  • Highlight that class drivers are part of the USB success


Few generalities on usb l.jpg

Keyboard

Root Hub

Speaker

Printer

Disk

Few generalities on USB

  • Tiered start topology

  • 2 types of peripherals:

    • HUB

    • Function

    • Up to 127 peripherals

  • A master/slave architecture

  • USB 2.0 spec supercedes USB 1.1 spec

    • USB 2.0 LS (  USB1.1 at 1.5Mbps)

    • USB 2.0 FS (  USB 1.1 at 12Mbps)

    • USB 2.0 HS (480 Mbps)

  • Power Management

    • Different device class: bus powered or self powered

    • Vbus > 4.35V. 100mA, (500mA after negociation), 500uA in suspend mode

    • Host disables power to ill-behaved peripherals

Host

HUB

HUB


The transaction protocol is host based l.jpg
The Transaction Protocol is Host Based

  • Host based token polling

    • Data from host-to-function and function-to-host

    • Host handles most of the protocol complexity

    • Peripheral design is simple and low-cost

  • Robustness

    • Handshake to acknowledge data transfer and flow control

    • Very low raw physical bit error rate (< 10 –10)

    • CRC protection plus hardware retry option

    • Data toggle Sequence bits

  • Bounded transfer characteristics

    • Data transfer bandwidth and latency prenegociated

    • Flow control for peripheral buffer management

  • No asynchronous message/interrupt from the peripheral


Usb topology l.jpg

Dok

@: 3

Mouse

@: 4

Keyboard

Keyboard

IP phone

@: 6

@: 6

@: 5

IP phone

@: 5

Audio Driver

MSD Driver

HUB Driver

HID Driver

USB Topology

  • A unique device address is assigned to each USB device

  • Physical tiered start network:

Dok

@: 3

HOST

Hub

@: 2

@: 1

Mouse

@: 4

Root Hub

USB cable

  • Logical network:

Root Hub

@: 1

A driver has no information on the topology of the physical network

HOST

Hub

@: 2

Logical link

  • Each device sees all traffic generated by the host

  • A device does not see data sent by another peripheral


Usb transfer l.jpg
USB transfer

  • A device has several endpoints

  • Each endpoint is assigned to a logical pipe with the host

  • Each pipe is characterized by:

    • Device address

    • Endpoint number

    • Transfer type

  • Transfer type:

SOF

@5EP0

@6EP1

@6EP2

A 1ms USB Frame

  • Control: configuration/command/status type communication

  • Bulk: large amounts of data at highly variable times

  • Isochronous: constant-rate, error tolerant transfers

  • Interrupt: send or receive data infrequently but with bounded service periods


Usb pipes l.jpg

Disk On Key

Device Address 3

Host

Control Transfer

Ep0

Bulk IN Transfer

Ep1

Bulk OUT Transfer

Ep2

Mouse

Device Address 4

Control Transfer

Ep0

Interrupt IN Transfer

Ep3

IP Phone

Device Address 5

Control Transfer

Ep0

Iso IN Transfer

Ep1

Iso OUT Transfer

Ep2

Hub

Device Address 2

Control Transfer

Ep0

Interrupt IN Transfer

Ep1

Logical Pipe

USB pipes

  • Device address is affected by the host

  • Endpoint configuration depends on the device implementation

  • Time multiplexing of transfer is under host control



Usb transactions l.jpg
USB transactions

  • A transfer is composed of one or several transactions

  • Example of control transfer (several transactions)

Setup Stage

Data Stage

Status Stage

  • Example of bulk transfer (one transaction)


Usb transactions 1 l.jpg

Token

Data Transfer

Handshake

USB Transactions (1)

  • A transaction is made of 3 packets

    • Token: device address, endpoint number, transfer type

    • Data : data to be sent

    • Handshake: acknowledge

  • Example of bulk transaction:


Usb transactions 2 l.jpg

Token

Data Transfer

Handshake

USB Transactions (2)

  • Example of bulk OUT transaction:

Endpoint Address

Device Address

PID

Host

Token

Data

Device

Handshake


Summary l.jpg

Control

Bulk

Iso

Int

Handshake pkt

Token pkt

Data pkt

Summary

  • The host affects an address to the device

  • The device has several endpoints

  • To each endpoint corresponds a pipe and a type of transfer

  • Transfer is made of one or several transactions

  • Transactions are composed of 3 packets

Transfer

  • Device

  • Device address

Handles

Offers

  • Pipe/Endpoint

  • Endpoint number

  • Endpoint type

2+

1+

1+

1+

Transaction


Control transfer l.jpg
Control transfer

The device is not ready…

The device does not

acknowledge the transaction

The host retries…

The device has

Acknowledged the transaction


Usb scheduling 1 l.jpg

@3

@6

@6

@6

@5

@2

@5

@5

SOF

SOF

SOF

USB scheduling(1)

  • USB transfers occurs in a millisecond time-frame window

  • The host sends a Start Of Frame (SOF) Packet at the beginning of each frame

  • This is the host which starts a transfer with a logical peripheral

  • Transactions are time multiplexed in one or several frames

  • This is the host which do the transaction arbitration

SOF

Time

A 1ms USB Frame

  • Host handles most of the protocol complexity

  • Peripheral design is simple and low-cost


Usb scheduling 2 l.jpg
USB scheduling (2)

  • The bus allocation depends on the host controller

  • A constant interval width is allocated to isochronous and interrupt transfer

  • A minimum interval width is reserved for control transfer

  • The rest of interval is for bulk transfer

Variable width

Valible width

Fixed width

Controltransfers

Iso + Interrupt transfer

Bulk transfer

  • A host can refuse a new peripheral which requests large isochronous transfer size

  • Such peripheral offers several configurations


Bandwidth l.jpg
Bandwidth

  • Theorically up to 1216 bytes can be transferred through a bulk endpoint in a frame

  • In practice ~950 bytes

1ms frame


Device detection l.jpg

3.3V

1.5 Kohms

Device detection

  • The host (hub) downstream port integrates 2 pull-downs (15Kohms). The bus state is SE0 (DP = DM = 0V)

  • When a device is connected, the bus state is idle (DP = 3.3V DM = 0V). DP is forced by the device pull-up (1.5Kohms).

  • The hub/host detects the port status change and forces a bus reset to the new device (DP = 0V DM = 0V).

  • Then the host sends requests to the device through the default control endpoint (endpoint number 0). A newly connected device address is 0.

HOST

DP

15 Kohms

DP

DM

DM

15 Kohms

Device


Enumeration l.jpg

Host

Hub

Device

Connect Cable

Status Change

Addressed

Configured

Attached

Powered

Default

Query Change

Port Enable

Reset Device

Get Device Descriptor via default Pipe and Address

Assign a Unique Address

Read all Configuration Information

Configure and Assign Configuration Value

Enumeration

  • Enumeration is the Process of Assigning Addresses and Setting Configurations


Enumeration trace l.jpg
Enumeration trace

Default Address, default control endpoint

Enter Address State

Enter Configured State


Usb device state l.jpg
USB Device State

After 3ms of bus inactivitythe device must enter Suspended state and drain less than 500uA


Standard requests l.jpg
Standard requests

  • A setup transaction includes an 8-byte formatted data packet

  • Standard requests are defined in Chapter 9 of the USB spec


Host software architecture l.jpg

Host

Controller

regs

Host software architecture

Linux and WIN CE provide

  • OHCI/UHCI/EHCI HCD driver

  • USBD Driver

  • Main class drivers: Hub, HID, Mass storage, Printer, …

HID

MS

HUB

Etc…

  • Symbian and RTOS does not provide USB host stack driver

  • SW IPs providers are able to provide solutions for RTOS

    • Softconnex, Philog, …

    • Expensive: (65k$ for a mass storage solution)

  • It is still possible to build a mini host from our full host:

    • the SW is only able to drive some kinds of devices

USB Protocol Driver API

Host Controller Driver (HCD)

OHCI-UHCI-EHCI


Device usb driver components l.jpg

Attach/DetachProcessing

Endpoint FIFORegisters

Device USB driver components

USB Device driver API

  • Control Protocol

  • Standard Requests

  • Class Requests

  • Vendor Requests

  • Endpoint Data

  • Transfer ProtocolsBulk In/Out

  • Isochronous In/Out

  • Interrupt In/Out

PowerManagement

Status&Control

ClockRegisters

Pull-UpResistor

USB ControllerRegisters


Device descriptor l.jpg
Device descriptor

  • The USB Host stacks uses the descriptor retrieved from the device to find the corresponding driver.

  • Windows looks for a matching Vendor ID/Product ID in its .inf library

  • If not found, it will search for a matching class driver

  • If not found then it will request the user to insert a CD to install the corresponding driver

Device Descriptor

Configuration Descriptor

Configuration Descriptor

Interface Descriptor

Interface Descriptor

Interface Descriptor

EndpointDescriptor

EndpointDescriptor

EndpointDescriptor

EndpointDescriptor

EndpointDescriptor

EndpointDescriptor


Usb class drivers l.jpg
USB class drivers

  • Building on top of the USB specifications, there are Device Class Specifications from the Device Working Group

  • Matching device class requirements allow use of standard host class drivers provided by Windows or Linux

  • Each class driver specifies the endpoint configurations required

  • Existing class drivers:

    • Audio class (speakers, …)

    • HID (keyboard, mouse, …)

    • Mass Storage (disk on key)

    • Printer class

    • Smart Card CCID

    • Communication Data Class


Objectives26 l.jpg
Objectives

  • Review USB functionalities

  • Be able to read a USB trace

  • Understand the enumeration process

  • Highlight that class drivers are part of the USB success


What is happening l.jpg
What is happening?

Transaction NACKed by the device


What is the physical topology l.jpg
What is the physical topology?

How many device connected?

Which device answers?

Where is connected the bus analyser?


Answer l.jpg
Answer

Bus Analyzer

HUB

New Device

Upstream Port

Downstream Ports

Device Nb 3

Device Nb 2

USB Wire

The bus analyzer logs all downstream packets from the host and only upstream packets from the new device


ad