Sie sind auf Seite 1von 29

USB Tutorial

1
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

2
USB Tutorial

Few generalities on USB


Host ■ Tiered start topology
■ 2 types of peripherals:
Root Hub - HUB
- Function
HUB - 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)
HUB Keyboard Disk - 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
Speaker Printer - Vbus > 4.35V. 100mA, (500mA after negociation),
500uA in suspend mode
- Host disables power to ill-behaved peripherals
3
USB Tutorial

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

4
USB Tutorial

USB Topology
■ A unique device address is assigned to each USB device
■ Physical tiered start network:
HOST Dok @: 3
Hub @: 2
Root Hub @: 1 Mouse @: 4

USB cable Keyboard @: 6 IP phone @: 5

■ Logical network: Root Hub @: 1


HOST A driver has no
Hub @: 2 information on the
HUB Driver
Dok @: 3
topology of the
MSD Driver physical network
Mouse @: 4
Audio Driver
IP phone @: 5
HID Driver
Logical link Keyboard @: 6

■ Each device sees all traffic generated by the host


■ A device does not see data sent by another peripheral
5
USB Tutorial

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 SOF @5EP0 @6EP1 @6EP2

- Endpoint number
- Transfer type A 1ms USB Frame

■ Transfer type:
Type Direction Packets per frame M ax Packet Size
Control Bidir Several 64 Bytes
Bulk Unidir Several 64 Bytes
Isochronous Unidir One 1024 Bytes
Interrupt Unidir One max 64 Bytes
■ 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

6
USB Tutorial

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

Device Address 3
Control Transfer
Bulk IN Transfer Ep0 Disk On Key
Bulk OUT Transfer Ep1
Ep2
Control Transfer
Device Address 4
Interrupt IN Transfer Ep0 Mouse
Ep3

Host Device Address 5


Control Transfer
Iso IN Transfer Ep0 IP Phone
Iso OUT Transfer Ep1
Ep2
Device Address 2
Control Transfer
Ep0 Hub
Interrupt IN Transfer
Ep1

Logical Pipe

7
USB Tutorial

Example of USB controller

8
USB Tutorial

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)

9
USB Tutorial

USB Transactions (1)


■ A transaction is made of 3 packets
- Token: device address, endpoint number, transfer type
- Data : data to be sent
- Handshake: acknowledge Token Data Transfer Handshake
■ Example of bulk transaction:

10
USB Tutorial

USB Transactions (2)


■ Example of bulk OUT transaction:
Token Data Transfer Handshake

Endpoint Address
Device Address
PID

Host Token

Data

Device Handshake

11
USB Tutorial

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

Device Transfer
•Device address

Offers Handles
Control Bulk Iso Int
Pipe/Endpoint 2+ 1+ 1+ 1+
•Endpoint number
•Endpoint type Transaction
Token pkt
Data pkt
Handshake pkt
12
USB Tutorial

Control transfer

The device is not ready…


The device does not
acknowledge the transaction

The host retries…


The device has
Acknowledged the transaction

13
USB Tutorial

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 @5 @3 @6 SOF @5 @6 @6 SOF @5 @2 SOF

Time

A 1ms USB Frame


-Host handles most of the protocol complexity
-Peripheral design is simple and low-cost

14
USB Tutorial

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

Control Iso + Interrupt transfer Bulk transfer


transfers

-A host can refuse a new peripheral which requests


large isochronous transfer size
-Such peripheral offers several configurations

15
USB Tutorial

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

1ms frame

16
USB Tutorial

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. 3.3V
HOST
1.5 Kohms
DP
15 Kohms DP
DM
DM
15 Kohms
Device
17
USB Tutorial

Enumeration
■ Enumeration is the Process of Assigning Addresses and Setting
Configurations
Host Hub Device
Status Change Connect Cable
Attached
Query Change
Port Enable Powered

Reset Device
Get Device Descriptor via default Pipe and Address Default
Assign a Unique Address

Read all Configuration Information Addressed

Configure and Assign Configuration Value

Configured

18
USB Tutorial

Enumeration trace
Default Address, default control endpoint
Enter Address State

Enter Configured State

19
USB Tutorial

USB Device State

After 3ms of bus inactivity


the device must enter
Suspended state and drain less
than 500uA
20
USB Tutorial

Standard requests
■ A setup transaction includes an 8-byte formatted data packet

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

21
USB Tutorial

Host software architecture


Linux and WIN CE provide
 OHCI/UHCI/EHCI HCD driver
 USBD Driver
 Main class drivers: Hub, HID, Mass storage, Printer, …
• Symbian and RTOS does not HID MS HUB Etc…
provide USB host stack driver
•SW IPs providers are able to
provide solutions for RTOS USB Protocol Driver API
Softconnex, Philog, …
Expensive: (65k$ for a mass Host Controller Driver (HCD)
storage solution) OHCI-UHCI-EHCI
•It is still possible to build a mini
host from our full host:
the SW is only able to drive Host regs
some kinds of devices Controller

22
USB Tutorial

Device USB driver components

USB Device driver API

Power Attach/ Status Control Protocol Endpoint Data


Management Detach & •Standard Requests •Transfer Protocols
Processing Control •Class Requests Bulk In/Out
•Isochronous In/Out
•Vendor Requests
•Interrupt In/Out

Clock Pull-Up USB Controller Endpoint FIFO


Registers Resistor Registers Registers

23
USB Tutorial

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

Endpoint Endpoint Endpoint Endpoint Endpoint Endpoint


Descriptor Descriptor Descriptor Descriptor Descriptor Descriptor

24
USB Tutorial

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
- …

25
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

26
USB Tutorial

What is happening?

Transaction NACKed by the device

27
USB Tutorial

What is the physical topology?

How many device connected?


Which device answers?
Where is connected the bus analyser?

28
USB Tutorial

Answer
Bus Analyzer

HUB New Device


Downstream Ports
Upstream Port

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
29

Das könnte Ihnen auch gefallen