USB Tutorial - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

USB Tutorial

Description:

Isochronous: constant-rate, error tolerant transfers ... A constant interval width is allocated to isochronous and interrupt transfer ... – PowerPoint PPT presentation

Number of Views:1131
Avg rating:3.0/5.0
Slides: 30
Provided by: allu169
Category:

less

Transcript and Presenter's Notes

Title: USB Tutorial


1
USB Tutorial
2
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

3
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 gt 4.35V. 100mA, (500mA after negociation),
    500uA in suspend mode
  • Host disables power to ill-behaved peripherals

Host
HUB
HUB
4
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 (lt 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

5
USB Topology
  • A unique device address is assigned to each USB
    device
  • Physical tiered start network

Dok
_at_ 3
HOST
Hub
_at_ 2
Mouse
_at_ 4
Root Hub
_at_ 1
USB cable
  • Logical network

Root Hub
_at_ 1
  • A driver has no information on the topology of
    the physical network

HOST
Hub
_at_ 2
Logical link
  • Each device sees all traffic generated by the
    host
  • A device does not see data sent by another
    peripheral

6
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
_at_6EP1
_at_5EP0
_at_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

7
USB pipes
  • Device address is affected by the host
  • Endpoint configuration depends on the device
    implementation
  • Time multiplexing of transfer is under host
    control

8
Example of USB controller
9
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)

10
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

11
USB Transactions (2)
  • Example of bulk OUT transaction

Endpoint Address
Device Address
PID
Host
Token
Data
Device
Handshake
12
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
13
Control transfer
The device is not ready The device does not
acknowledge the transaction
The host retries The device has Acknowledged
the transaction
14
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

15
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
Fixed width
Valible 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

16
Bandwidth
  • Theorically up to 1216 bytes can be transferred
    through a bulk endpoint in a frame
  • In practice 950 bytes

1ms frame
17
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
18
Enumeration
  • Enumeration is the Process of Assigning Addresses
    and Setting Configurations

19
Enumeration trace
Default Address, default control endpoint
Enter Address State
Enter Configured State
20
USB Device State
After 3ms of bus inactivitythe device must enter
Suspended state and drain less than 500uA
21
Standard requests
  • A setup transaction includes an 8-byte formatted
    data packet
  • Standard requests are defined in Chapter 9 of the
    USB spec

22
Host software architecture
  • Linux and WIN CE provide
  • OHCI/UHCI/EHCI HCD driver
  • USBD Driver
  • Main class drivers Hub, HID, Mass storage,
    Printer,

MS
HUB
Etc
HID
  • 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
23
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
StatusControl
Pull-UpResistor
ClockRegisters
USB ControllerRegisters
24
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
25
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

26
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

27
What is happening?
Transaction NACKed by the device
28
What is the physical topology?
How many device connected? Which device
answers? Where is connected the bus analyser?
29
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
Write a Comment
User Comments (0)
About PowerShow.com