Embed
Email

USB Focus

Document Sample

Shared by: hedongchenchen
Categories
Tags
Stats
views:
0
posted:
12/4/2011
language:
English
pages:
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

topology of the

Dok @: 3

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:

SOF @5EP0 @6EP1 @6EP2

- Device address

- 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 Transf er

Bulk IN Transf er

Ep0 Disk On Key

Bulk OUT Transf er

Ep1

Ep2

Device Address 4

Control Transf er

Interrupt IN Transf er

Ep0 Mouse

Ep3



Host Device Address 5

Control Transf er

Iso IN Transf er

Ep0 IP Phone

Iso OUT Transf er

Ep1

Ep2

Device Address 2

Control Transf er

Ep0 Hub

Interrupt IN Transf er

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

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

29



Related docs
Other docs by hedongchenchen
AMS11-AV-Order-form
Views: 0  |  Downloads: 0
Rural Telephone Bank
Views: 5  |  Downloads: 0
04tbl2-32a
Views: 0  |  Downloads: 0
CG9 Licence No.
Views: 0  |  Downloads: 0
1996
Views: 0  |  Downloads: 0
2011 CATALOG
Views: 11  |  Downloads: 0
NEURO-_summary.doc - STJ PA 2012
Views: 1  |  Downloads: 0
1995-1996 Prepaid Health Plan Contract
Views: 0  |  Downloads: 0
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!