Professional Documents
Culture Documents
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
USB Tutorial
HUB
Keyboard
Disk
Power Management
Speaker
Printer
USB Tutorial
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
USB Tutorial
USB Topology
A unique device address is assigned to each USB device Physical tiered start network:
HOST Root Hub @: 1
USB cable
Dok
@: 3 @: 4
Hub @: 2 Keyboard @: 6
Mouse
Logical network:
HOST HUB Driver MSD Driver
Audio Driver
HID Driver
Logical link
IP phone @: 5 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 - Endpoint number - Transfer type
SOF @5EP0 @6EP1 @6EP2
Transfer type:
Type Control Bulk Isochronous Interrupt
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 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
Control Transfer Bulk IN Transfer Bulk OUT Transfer Control Transfer Interrupt IN Transfer
Device Address 3 Ep0 Disk On Key Ep1 Ep2 Device Address 4 Ep0 Mouse Ep3 Device Address 5 Ep0 IP Phone Ep1 Ep2 Device Address 2
Host
Ep0 Ep1
Hub
Logical Pipe
7
USB Tutorial
USB Tutorial
USB transactions
A transfer is composed of one or several transactions Example of control transfer (several transactions)
USB Tutorial
Handshake
10
USB Tutorial
Data Transfer
Handshake
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
Device address
Transfer
Handles
Offers
Control
2+
Bulk
1+
Iso
1+
Int
1+
Pipe/Endpoint
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
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
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
Fixed width
Valible width
Variable width
Control transfers
Bulk transfer
-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
DM
DP DM
15 Kohms
Device
17
USB Tutorial
Enumeration
Powered
Reset Device Get Device Descriptor via default Pipe and Address Assign a Unique Address
Default
Addressed
Configured
18
USB Tutorial
Enumeration trace
Default Address, default control endpoint Enter Address State
19
USB Tutorial
After 3ms of bus inactivity the device must enter Suspended state and drain less than 500uA
20
USB Tutorial
Standard requests
21
USB Tutorial
HID
MS
HUB Etc
Host Controller
regs
22
USB Tutorial
Management
Clock Registers
Pull-Up Resistor
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 Endpoint Descriptor Endpoint Descriptor Endpoint Descriptor
24
Endpoint Descriptor
USB Tutorial
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?
27
USB Tutorial
28
USB Tutorial
Answer
Bus Analyzer
HUB
Upstream Port Downstream Ports
New Device
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