70
Cost Effective Smart Appliance Solution Provider A Mixed Signal System on Chip Design House USB Discussion USB Discussion USB Discussion 義隆電子 義隆電子 義隆電子 義隆電子 吳進男 吳進男 吳進男 吳進男

USB Discussion

Embed Size (px)

DESCRIPTION

USB Discussion義隆電子吳進男

Citation preview

Page 1: USB Discussion

Cost Effective Smart Appliance Solution ProviderA Mixed Signal System on Chip Design House

USB DiscussionUSB DiscussionUSB Discussion

義隆電子義隆電子義隆電子義隆電子 吳進男吳進男吳進男吳進男

Page 2: USB Discussion

Cost Effective Smart Appliance Solution ProviderA Mixed Signal System on Chip Design House

USB DiscussionUSB DiscussionUSB Discussion�USB Introduction

�USB Standard Command

�USB Descriptor

Page 3: USB Discussion

Cost Effective Smart Appliance Solution ProviderA Mixed Signal System on Chip Design House

USB Introduction

USB USB IntroductionIntroduction

�Preface

�USB Architecture

�USB transfer data format

Page 4: USB Discussion

Elan Microelectronics Corporation

4

USB Preface• USB origin

– 1996 USB 1.0 12/1.5 Mbits• Compaq, Intel, Microsoft, NEC

– 1998 USB 1.1

– 2000 USB 2.0 480Mbits

– 2004 Wireless USB

Page 5: USB Discussion

Elan Microelectronics Corporation

5

USB Preface• Shortcoming of existing PC I/O Paradigm– Interrupts

– I/O Addresses Conflict

– Non-Shareable Interface

– Cable Crazed

– Installation and Configuration of Expansion Cards

– No Hot Attachment of Peripheral

– Cost

Page 6: USB Discussion

Elan Microelectronics Corporation

6

USB Preface

Page 7: USB Discussion

Elan Microelectronics Corporation

7

USB PrefaceClass (群組)• HID Class 人機介面裝置群組人機介面裝置群組人機介面裝置群組人機介面裝置群組

• Keyboard Mouse…..

• Audio Class 聲音裝置群組聲音裝置群組聲音裝置群組聲音裝置群組• USB Mac USB Speaker

• Mass Storage Class 大量儲存裝置群大量儲存裝置群大量儲存裝置群大量儲存裝置群• Flash Disk USB CD-ROM

• Display Class 顯示器裝置群組顯示器裝置群組顯示器裝置群組顯示器裝置群組• USB Monitor

• Communication Class 通訊裝置群組通訊裝置群組通訊裝置群組通訊裝置群組• Phone

Page 8: USB Discussion

Cost Effective Smart Appliance Solution ProviderA Mixed Signal System on Chip Design House

USB introduction

USB USB introductionintroduction

�Preface

�USB Architecture

�USB transfer data format

Page 9: USB Discussion

Elan Microelectronics Corporation

9

USB Architecture• USB Peripheral Connection

• Root Hub, Topology

• 127 devices (including root hub)

• Up to 6 tiers (up to 5 meters per segment)

Page 10: USB Discussion

Elan Microelectronics Corporation

10

• USB Connector

– 4 pin connector, 4 wire cable

– 2-wire differential signaling, NRZI Supply

– Sourcing +5V

– Signaling at 3.3V

USB Architecture

Page 11: USB Discussion

Elan Microelectronics Corporation

11

USB Architecture• USB Device Concept

Address

– 7 bits record for 128 address. (0 ~ 127)

– Each USB Device has one Device Address.

– One Host has support max 127 devices.

– Address 0 reserve for initial plug in device.

Page 12: USB Discussion

Elan Microelectronics Corporation

12

USB Architecture• USB Device ConceptEndpoint

– 4 bits record for 16 Endpoints. (0 ~ 15)

– Endpoint 0 reserve for Control Endpoint.

– Direction• IN Device to Host

• OUT Host to Device

– Transfer Type• Control

• Interrupt

• Isochronous

• Bulk

Page 13: USB Discussion

Elan Microelectronics Corporation

13

USB Architecture• Transfer Type

– Control Transfer 控制型傳輸• For All Device

– Interrupt Transfer 中斷型傳輸• Mouse / Keyboard

– Isochronous Transfer 即時型傳輸• Audio / Video

– Bulk Transfer 巨量型傳輸• Printer / Scanner

Page 14: USB Discussion

Elan Microelectronics Corporation

14

USB Architecture

MassYesNonBulk

NormalYesInterrupt

MassNo90%Isochronous

NormalYes10%Control

Data

Amount

Error

Recovery

Bandwidth

Guarantee

Transfer

Type

Page 15: USB Discussion

Elan Microelectronics Corporation

15

• Frame 訊框

USB Architecture

F ram eF ram eF ram eF ram e

�10% for Control Transfer

�MAX 90% for (Isochronous + Interrupt)

�Remain for Bulk Transfer

Page 16: USB Discussion

Elan Microelectronics Corporation

16

USB Architecture

Full / Low Speed Frame Size (1ms)Full / Low Speed Frame Size (1ms)

High Speed MicroHigh Speed Micro--Frames (125us)Frames (125us)

1ms1ms 1ms1ms

Classic USB Frame Ticks Classic USB Frame Ticks Full Speed Isochronous Data PayloadFull Speed Isochronous Data Payload

USB 2.0 MicroUSB 2.0 Micro--Frame TicksFrame Ticks

(1/8(1/8thth Classic Frame) Classic Frame) High Speed Isochronous Data PayloadHigh Speed Isochronous Data Payload

. . . . . .

. . . . . .

• Frame 訊框

Page 17: USB Discussion

Elan Microelectronics Corporation

17

• Frame 訊框

– UHC Host Controller

– OHC Host Controller

USB Architecture

SOF 即時傳輸 中斷型 控制型 巨量型

1ms

SOF 非週期性 週期性(isochronous; bulk) 非週

期性

1ms

Page 18: USB Discussion

Elan Microelectronics Corporation

18

USB Architecture

• USB 1.1– Low Speed : 1.5Mb/s

– Full Speed : 12Mb/s

• USB 2.0– Low Speed : 1.5Mb/s

– Full Speed : 12Mb/s

– High Speed : 480Mb/s

Page 19: USB Discussion

Elan Microelectronics Corporation

19

USB Architecture• USB Bus speed model

Page 20: USB Discussion

Elan Microelectronics Corporation

20

USB Architecture• Low/Full-speed Identification

Page 21: USB Discussion

Elan Microelectronics Corporation

21

USB Architecture• High-speed Identification

– The hub drives SE0 to device

– The device creates a Chirp K

– The hub sends an alternating sequence of Chirp K’s and Chirp J’s

– The hub asserts SE0, then to the high-speed Enable state

– The device disconnects the D+ pull-up resistor, enter the high-speed Default state

Page 22: USB Discussion

Elan Microelectronics Corporation

22

USB Architecture• The elements

– USB Hardware• USB Host Controller/Root Hub

– UHCI– OHCI– Enhanced Host Controller Interface

• USB Hub• USB Device

– USB Software• USB Device Driver• USB Driver• Host Controller Driver

Page 23: USB Discussion

Elan Microelectronics Corporation

23

USB Architecture

End PointElectrical ,

mechanical,

signal transaction

Include 1.USBD

2. HCD

Page 24: USB Discussion

Elan Microelectronics Corporation

24

ClientClient

SoftwareSoftware

InterfaceInterface

EndpointsEndpoints

Data FlowsData Flows

BuffersBuffers

USB DeviceUSB Device

HostHost

PipesPipes

USB Architecture

• Endpoint

Page 25: USB Discussion

Elan Microelectronics Corporation

25

USB Architecture

• How Device Present Themselves to SW• Device Descriptor 裝置描述元

• Configuration Descriptor 設定描述元

• Interface Descriptor 界面描述元

• Endpoint Descriptor 終點描述元

• String Descriptor 字串描述元

• Class specific Descriptor 群組特定描述元

Page 26: USB Discussion

Cost Effective Smart Appliance Solution ProviderA Mixed Signal System on Chip Design House

USB introduction

USB USB introductionintroduction

�Preface

�USB Architecture

�USB Transfer Data Format

Page 27: USB Discussion

Elan Microelectronics Corporation

27

USB transfer data formatToken Packet

Data Packet

Handshake Packet

Setup stage

Data stage

Status stage

Page 28: USB Discussion

Elan Microelectronics Corporation

28

USB transfer flow• Control transfer

Page 29: USB Discussion

Elan Microelectronics Corporation

29

USB transfer flow• Bulk transfer

Page 30: USB Discussion

Elan Microelectronics Corporation

30

USB transfer flow• Interrupt transfer

Page 31: USB Discussion

Elan Microelectronics Corporation

31

USB transfer flow• Isochronous transfer

Page 32: USB Discussion

Elan Microelectronics Corporation

32

Token Packet Format

• Packets– The basic building blocks of USB transaction

Data length

– SYNC:8bit

– PID:4bit (and 4bits check field)

– Data: Depend on transfer type

– CRC: 5bit or 16bit

– EOP:3 bits time

SYNC PID DATA CRC EOP

Page 33: USB Discussion

Elan Microelectronics Corporation

33

Packet Identifier Type– PID:

• Token Packet– SOF

» PID [3:0] 0101» Start of frame

– In » PID[3:0] 1001» Transfer direction , device to host

– Out » PID [3:0] 0001» Transfer direction, host to device

– Setup » PID [3:0] 1101» A control transfer start

• Data Packet- For data toggle – Data0– Data1– Data2(USB 2.0)– MData(USB 2.0)

Page 34: USB Discussion

Elan Microelectronics Corporation

34

Packet Identifier Type– PID:

• Handshake Packet – Acknowledge (ACK)– No Acknowledge (NAK)– STALL– NYET(USB 2.0)

» in response to a CSPLIT or PING• Special Packet

– Preamble Packet» For Low Speed device communication» Without EOP

– ERR(USB 2.0)» Split Transaction Error Handshake

– SPLIT(USB 2.0)» Using at high-speed hub with Full/Low speed device

– PING(USB 2.0)» High-speed flow control probe for a bulk/control endpoint

Page 35: USB Discussion

Elan Microelectronics Corporation

35

Other Token packets– Start-/Complete-Split Transaction Token

• SC : 0=Start , 1=Complete

• S : for Control/Interrupt– 0=Full speed , 1=Low speed

• ET : Endpoint type

Page 36: USB Discussion

Elan Microelectronics Corporation

36

PID for data packet– Isochronous IN High bandwidth Endpoints

– Isochronous OUT High bandwidth Endpoints

Page 37: USB Discussion

Elan Microelectronics Corporation

37

USB Transaction• Transaction

– Setup Transaction• Two-Stage Control Transfer

– Setup stage, Status stage

– EX: Remote weak up

• Three-Stage Control Transfer – Setup stage/ Data stage/ Status stage

Setup IN IN IN IN OUT

Setup Stage Data Stage Status Stage

Page 38: USB Discussion

Elan Microelectronics Corporation

38

– IN Transactions

USB Transaction

Host���� Device

Token stage

Host ���� Device

Handshake

Device���� Host

Data stage

SYNC IN TOKEN EOP

SYNC Data (MAX 64byte) EOP

SYNC ACK EOP

NOTE: “Isochronous In” transaction maximum data

packet1024 bytes (USB 1.1) and without handshake stage

Page 39: USB Discussion

Elan Microelectronics Corporation

39

– OUT Transactions

USB Transaction

Host���� Device

Token stage

Device���� Host

Handshake

Host ���� Device

Data stage

SYNC OUT TOKEN EOP

SYNC Data (MAX 64byte) EOP

SYNC ACK EOP

NOTE: “Isochronous OUT” transaction maximum data

packet1024 bytes (USB 1.1) and without handshake stage

Page 40: USB Discussion

Elan Microelectronics Corporation

40

– Split Transactions (USB 2.0)• Start-split

USB Transaction

• Complete-split

Page 41: USB Discussion

Elan Microelectronics Corporation

41

USB Architecture• USB Bus speed model

Page 42: USB Discussion

Elan Microelectronics Corporation

42

– Split Transactions• High-speed Split IN transaction

USB Transaction

Page 43: USB Discussion

Elan Microelectronics Corporation

43

– Split Transactions• High-speed Split OUT transaction

USB Transaction

Page 44: USB Discussion

Elan Microelectronics Corporation

44

Bus EnumerationFive bus states during the USB device plug in:– Attached

• Device plug in/out USB port

– Powered state• Disable port >100ms (for stable)

– Defaule state• Reset signal 10ms• Draw no more than 100mA from Vbus

– Address state• Assign a new address

– Configured state

Page 45: USB Discussion

Elan Microelectronics Corporation

45

Device state

Page 46: USB Discussion

Cost Effective Smart Appliance Solution ProviderA Mixed Signal System on Chip Design House

USB Standard Command

USB Standard USB Standard CommandCommand

Page 47: USB Discussion

Elan Microelectronics Corporation

47

USB Standard Command

• Command Length: 8 Bytes

0706050403020100

Request wValue wIndex wLengthType

Page 48: USB Discussion

Elan Microelectronics Corporation

48

USB Standard Command

Page 49: USB Discussion

Elan Microelectronics Corporation

49

USB Standard Command

Page 50: USB Discussion

Elan Microelectronics Corporation

50

USB Standard Command

Example: • Get Status8a 00 0000 XX00 0200a =0x00: DEVICEa=0x01 : INTERFACEa=0x02 : ENDPOINT

Page 51: USB Discussion

Elan Microelectronics Corporation

51

USB Standard Command

• Reply “ Get Status”For DEVICE

For ENDPOINT

Page 52: USB Discussion

Elan Microelectronics Corporation

52

USB Standard Command

• Set Address00 05 XX 00 00 00 00 00

XX : Address number

Page 53: USB Discussion

Elan Microelectronics Corporation

53

USB Standard Command• Get Descriptor

80 06 00 0X 00 00 L1 L2

0X : Descriptor Type

L1,L2 Descriptor Length

Page 54: USB Discussion

Elan Microelectronics Corporation

54

USB Standard Command

USB 2.0

Page 55: USB Discussion

Cost Effective Smart Appliance Solution ProviderA Mixed Signal System on Chip Design House

USB Descriptor

USB USB DescriptorDescriptor

Page 56: USB Discussion

Elan Microelectronics Corporation

56

Device Descriptor Definition

SubClass1bDeviceSubClass5

ValueSizeFieldOffset

Number1bMaxPacketSize07

Protocol1bDeviceProtocol6

Class1bDeviceClass4

BCD2bcdUSB2

Constant1bDescriptorType1

Number1bLength0

Page 57: USB Discussion

Elan Microelectronics Corporation

57

Device Descriptor Definition

ID1idVendor8

ID1idProduct10

Number1bNumConfigurations17

Index1iSerialNumber16

Index2iProduct15

Index1iManufacturer14

BCD1bcdDevice12

ValueSizeFieldOffset

Page 58: USB Discussion

Elan Microelectronics Corporation

58

Device Descriptor

Page 59: USB Discussion

Elan Microelectronics Corporation

59

Device_Qualifier descriptor

Protocol1bDeviceProtocol6

Number1bMaxPacketSize07

SubClass1bDeviceSubClass5

ValueSizeFieldOffset

Zero1bReserved7

Number1bNumConfigurations6

Class1bDeviceClass4

BCD2bcdUSB2

Constant1bDescriptorType1

Number1bLength0

Page 60: USB Discussion

Elan Microelectronics Corporation

60

Configuration Descriptor

Bitmap1bmAttributes7

Number1bConfigurationValue5

ValueSizeFieldOffset

mA1bMaxPower8

Index1iConfiguration6

Number1bNumInterfaces4

Number2wTotalLength2

Constant1bDescriptorType1

Number1bLength0

Page 61: USB Discussion

Elan Microelectronics Corporation

61

Configuration Descriptor

Page 62: USB Discussion

Elan Microelectronics Corporation

62

Configuration Descriptor

Page 63: USB Discussion

Elan Microelectronics Corporation

63

Other_Speed Configuration

Bitmap1bmAttributes7

Number1bConfigurationValue5

ValueSizeFieldOffset

mA1bMaxPower8

Index1iConfiguration6

Number1bNumInterfaces4

Number2wTotalLength2

Constant1bDescriptorType1

Number1bLength0

Page 64: USB Discussion

Elan Microelectronics Corporation

64

Interface Descriptor

Protocol1bInterfaceProtocol7

SubClass1bInterfaceSubClass6

Number1bNumEndpoints4

ValueSizeFieldOffset

Index1iInterface8

Class1bInterfaceClass5

Number1bAlternateSetting3

Number1bInterfaceNumber2

Constant1bDescriptorType1

Number1bLength0

Page 65: USB Discussion

Elan Microelectronics Corporation

65

Interface Descriptor

Page 66: USB Discussion

Elan Microelectronics Corporation

66

Endpoint Descriptor

Number2wMaxPacketSize4

ValueSizeFieldOffset

Number1bInterval6

Bitmap1bmAttributes3

Endpoint1bEndpointAddress2

Constant1bDescriptorType1

Number1bLength0

Page 67: USB Discussion

Elan Microelectronics Corporation

67

Endpoint Descriptor• bmAttributes

– Bits1..0 : Transfer Type• 00 = Control• 01 = Isochronous• 10 = Bulk• 11 = Interrupt

– Bits3..2 : Synchronization (for ISO)• 00 = No Synchronization• 01 = Asynchronous (Free running)• 10 = Adaptive (locked to SOF)• 11 = Synchronization (locked to sink)

– Bits5..4 : Usage Type (for ISO)• 00 = Data endpoint• 01 = Feedback endpoint• 10 = Implicit feedback Data endpoint (group)• 11 = Reserved

Page 68: USB Discussion

Elan Microelectronics Corporation

68

Endpoint Descriptor• wMaxPacketSize

– Bits10..0 : Maximum packet size– Bits12..11 : Additional transaction per microframe

• 00 = None(1 transaction per microframe)• 01 = 1 additional (2 per microframe)• 10 = 2 additional (3 per microframe)• 11 = Reserved

– Bits15..13 : Reserved and must be set to zero

• bInterval : interval for polling endpoint– Full-/High-speed ISO : 1~2^15– Full-/Low-speed INT : 1~255 – High-speed INT : 1~2^15

Page 69: USB Discussion

Elan Microelectronics Corporation

69

Endpoint Descriptor

Page 70: USB Discussion

Cost Effective Smart Appliance Solution ProviderA Mixed Signal System on Chip Design House

THE ENDTHE ENDTHE END