Embedding USB
Lane Hauck
Cypress Semiconductor
Embedded Systems Conference, March 2002
Embedding USB
1
Agenda
Why USB?
USB Advantages
USB Basics
With embedded system emphasis
An Implementation Roadmap
USB On The Go
An Embedded Host Example
Conclusion
Embedded Systems Conference, March 2002
Embedding USB
2
Agenda
Why USB?
USB Advantages
USB Basics
With embedded system emphasis
An Implementation Roadmap
USB On The Go
An Embedded Host Example
Conclusion
Embedded Systems Conference, March 2002
Embedding USB
3
Why USB?
No other way to talk to so many things
Input devices
Mice, keyboards, joysticks
Memory devices
Disk drives
Memory cards
Fingerprint scanners
It’s standard
USB Implementers Forum, Inc.
Plugfests
Embedded Systems Conference, March 2002
Embedding USB
4
Agenda
Why USB?
USB Advantages
USB Basics
With embedded system emphasis
An Implementation Roadmap
USB On The Go
An Embedded Host Example
Conclusion
Embedded Systems Conference, March 2002
Embedding USB
5
USB Advantages
Many standardized, low cost devicesare available
Connectors and cables are standard
USB devices are compliance-tested toinsure compatibility and uniformperformance
Using hubs, multiple USB devices canshare one connector
USB devices can tell you about theircapabilities
Embedded Systems Conference, March 2002
Embedding USB
6
USB Advantages(Cont’d)
USB provides device power
USB devices can:
Be put to sleep
Be awakened
Provide a system wakeup call
USB protocol takes care of low-leveldetails
Flow control
Error checking
You decide how complex to make thefirmware
Embedded Systems Conference, March 2002
Embedding USB
7
Agenda
Why USB?
USB Advantages
USB Basics
With embedded system emphasis
An Implementation Roadmap
USB On The Go
An Embedded Host Example
Conclusion
Embedded Systems Conference, March 2002
Embedding USB
8
USB Basics with embedded system emphasis
Speeds
Cables
Topology
Endpoints
Transfer Types
Handshakes
Embedded Systems Conference, March 2002
Embedding USB
9
USB Basics cont’d
Hubs
Power Management
Device Classes
Host Chips & Drivers
Protocol
Embedded Systems Conference, March 2002
Embedding USB
10
Speeds
USB 1.0 and 1.1
Low speed is 1.5 Mbits/sec
Packet size is limited to 8 bytes
Transfer type limited
Don’t want to wait slowly
Full speed is 12 Mbits/sec
USB 2.0
“Hi-speed” is 480 Mbits/sec
USB 1.x retro-named “Classic” USB
12 Mb/s is great for embedded systems
Embedded Systems Conference, March 2002
Embedding USB
11
Cables
Shielded 4-wire cables
Vbus = 4.4-5.25 volts
GND
D+ and D-
Reflected-wave signaling
Low power buffers
5 meter limit
Hubs extend effective cable length
Cables are standard, plentiful and cheap
Embedded Systems Conference, March 2002
Embedding USB
12
Cables1 foot cable
Driver
Receiver
Embedded Systems Conference, March 2002
Embedding USB
13
Cables2 meter cable
Driver
Receiver
Embedded Systems Conference, March 2002
Embedding USB
14
Cables5 meter cable
Driver
Receiver
Embedded Systems Conference, March 2002
Embedding USB
15
Topologytiered star
C:\EmbeddedSystems March 02\tiered star color.wmf
One USB connector can support up to 127devices
Embedded Systems Conference, March 2002
Embedding USB
16
Endpoints
Endpoints are logical channels inside aperipheral device
In hardware they’re addressablebuffers (FIFOS)
Every host transfer includes a 4-bitendpoint number and a direction bit
CONTROL endpoint 0 is mandatory
All others are up to the design
Endpoints are handy for separatingdata types
Embedded Systems Conference, March 2002
Embedding USB
17
Transfer Typesfour types to suit data requirements
Control
Mission-critical, highest error protection
Used to interrogate, configure and controldevices
Bulk
Interrupt
Isochronous
BULK is easiest to use and the most flexible
Embedded Systems Conference, March 2002
Embedding USB
18
Transfer Typesanatomy of a USB frame
12MHz = 1.5MB/s or 1500 bytes/ms (full speed)
Isochronous/Interrupt traffic have guaranteed bandwidth
Control traffic is “best-effort”
Bulk uses what is left
Video
Audio
Mouse
Control
Printer
Printer
1 msec frame
SOF
...
Isochronous
Interrupt
Control
Bulk
SOF
Embedded Systems Conference, March 2002
Embedding USB
19
Handshakes
ACK means “success”
NAK means “try again”
No response means error
Handshakes used for
CONTROL
BULK
INTERRUPT
You don’t need to implement flow control
Embedded Systems Conference, March 2002
Embedding USB
20
Handshakesa CONTROL Transfer
I
N
A
D
D
R
E
N
D
P
C
R
C
5
Token Packet
D
A
T
A
1
Payload
Data
C
R
C
1
6
Data Packet
A
C
K
H/S Pkt
H
P
H
DATA
H
H
P
H
H
P
D
A
T
A
1
O
U
T
A
D
D
R
E
N
D
P
C
R
C
5
Token Packet
C
R
C
1
6
Data Pkt
N
A
K
H/S Pkt
D
A
T
A
1
O
U
T
A
D
D
R
E
N
D
P
C
R
C
5
Token Packet
C
R
C
1
6
Data Pkt
A
C
K
H/S Pkt
(Operation not completed)
(Operation completed)
HANDSHAKE
D
A
T
A
0
8 bytes
Setup
Data
C
R
C
1
6
Data Packet
A
C
K
H/S Pkt
S
E
T
U
P
A
D
D
R
E
N
D
P
C
R
C
5
Token Packet
H
H
P
SETUP
H is Host
P is Peripheral
Embedded Systems Conference, March 2002
Embedding USB
21
Hubs
PC
USB
USB
Device
Device
Hub
USB
USB
USB
USB
PC
USB
USB
Device
Device
Device
Embedded Systems Conference, March 2002
Embedding USB
22
Hubspower
Hub
USB
USB
USB
USB
PC
USB
USB
Device
Device
Device
500
100
100
500
Embedded Systems Conference, March 2002
Embedding USB
23
Hubsmore power
Hub
USB
USB
USB
USB
PC
USB
USB
Device
Device
Device
500
500
Wall Wart
500
500
Embedded Systems Conference, March 2002
Embedding USB
24
Hubsmore devices
Hub
USB
USB
USB
USB
PC
USB
USB
Device
Device
Device
500
500
Wall Wart
500
500
USB
USB
USB
Device
500
Easy way to expand and power devices
Embedded Systems Conference, March 2002
Embedding USB
25
Power Management
USB power consumption is carefullycontrolled
Host determines power needs of all attacheddevices
Only configures those within power limits
USB devices must enter low power modewhen host signals ‘suspend’
500 microamps
USB devices can signal a remote wakeup
Built-in mechanism prevents peripherals fromdrawing too much power from your system
Embedded Systems Conference, March 2002
Embedding USB
26
Device Classes
USB-sanctioned method to extend thespecification to device classes
Classes are devices with similarcharacteristics
Huge advantage—the driver is built intothe OS
Not written and maintained by YOU
Immense simplification of the software effort if theOS supports your device
Embedded Systems Conference, March 2002
Embedding USB
27
Protocol
USB architects went well beyond theelectrical interface
Remember IrDa?
Protocol layer insures interoperability
Compliance testing (plugfests) enforce theprotocol
USB protocol is extensible
Device classes
Fully custom ‘vendor’ designs
Device standardization makes the embeddedsoftware task far easier than writing custom drivers
Embedded Systems Conference, March 2002
Embedding USB
28
Protocol
A large part of the embedded systemdesign is understanding the protocol
How much do you need to support?
How many devices
How many device types
How many hub layers
Embedded USB is by necessity asubset of full PC-based USB
Efforts are underway to simplify the softwaretask (more about this)
Embedded Systems Conference, March 2002
Embedding USB
29
Protocolthe eight bytes in a SETUP packet
Byte
Field
Meaning
0
bmRequestType
Request type
1
bRequest
The actual request
2
wValueL
Varies by request
3
wValueH
4
wIndexL
Varies by request
5
wIndexH
6
wLengthL
Number of data bytes
7
wLengthH
Embedded Systems Conference, March 2002
Embedding USB
30
ProtocolChapter 9 Requests
Standard
Class
Vendor
bRequest
Custom
Programming
00
GET_STATUS
0C
STALL
CLR_FEATURE
SET_FEATURE
SET_ADDRESS
GET_DESCRIPT0R
SET_DESCRIPT0R
GET_C0NFIG
SET_CONFIG
GET_INTERFACE
SET_INTERFACE
SYNC_FRAME
01
03
05
06
07
08
09
0A
0B
STALL
other
X
0
1
X
X
X
X
X
X
0
0
X
X
X
X
X
X
1
1
X
X
X
X
X
X
1
0
X
X
X
X
X
03
DEVICE
CONFIGURATION
STRING
01
02
STALL
other
wValueH
bmRequestType
Embedded Systems Conference, March 2002
Embedding USB
31
Protocoladded HID Class Requests
Standard
Class
Vendor
bRequest
Custom
Programming
00
GET_STATUS
0C
STALL
CLR_FEATURE
SET_FEATURE
SET_ADDRESS
GET_DESCRIPT0R
SET_DESCRIPT0R
GET_C0NFIG
SET_CONFIG
GET_INTERFACE
SET_INTERFACE
SYNC_FRAME
01
03
05
06
07
08
09
0A
0B
STALL
other
bRequest
X
0
1
X
X
X
X
X
X
0
0
X
X
X
X
X
X
1
1
X
X
X
X
X
X
1
0
X
X
X
X
X
03
DEVICE
CONFIGURATION
STRING
01
02
STALL
other
wValueH
0B
GET_REPORT
GET_IDLE
GET_PROTOCOL
SET_REPORT
SET_IDLE
SET_PROTOCOL
01
02
03
09
0A
STALL
other
23
HID
REPORT
PHYSICAL
21
22
bmRequestType
Embedded Systems Conference, March 2002
Embedding USB
32
Host Chips & Drivers
PC’s use OCHI/UHCI host controllers
Usually part of a ‘Southbridge’ chip
Driver software is part of the OS
Class drivers
USBD.sys
HAL: OHCI.sys or UHCI.sys
Embedded systems use different,proprietary host controllers
Hardware abstraction layer is custom
Embedded Systems Conference, March 2002
Embedding USB
33
Host Chips & Drivers
C:\EmbeddedSystems March 02\windows stack2.wmf
C:\EmbeddedSystems March 02\embedded stack.wmf
PC
Simple Embedded
Embedded Systems Conference, March 2002
Embedding USB
34
Host Chips & DriversPC implementation
Apps or class drivers create IORequest Packets (IRP)
USB Driver
Processes IRP’s
Manages CONTROL pipe
Division of duties between USBDand HCD is not defined
Host Controller Driver (HCD)
Provides abstraction
Of host controller registers
Of data transfer specifics
HCD creates a transaction list
Schedule of transfers
Host Controller turns transactionlist into packets
C:\EmbeddedSystems March 02\windows stack2.wmf
Embedded Systems Conference, March 2002
Embedding USB
35
Host Chips & Driverswhy the PC architecture is complex
App needs no knowledge of
Which host controller is installed
USB signaling details
Bus utilization details
Transaction lists
App talks to buffers in your deviceusing “pipes”
Most of the HCD/HC complexity isdue to the flexible nature of USB
127 devices
Devices appear and disappear atrandom
Bandwidth must be fairly sharedbetween devices
C:\EmbeddedSystems March 02\windows stack2.wmf
Embedded Systems Conference, March 2002
Embedding USB
36
Host Chips & Driverssimplest embedded hardware
Looks simple
The hardware is simple
But software is “low-level”
Detect USB device attachment
Detect speed
Enumerate devices
Suspend and resume devices
Manage error recovery
Generate USB resets
Conduct transfers
C:\EmbeddedSystems March 02\embedded stack.wmf
Simple Embedded
Embedded Systems Conference, March 2002
Embedding USB
37
Host Chips & DriversRTOS provides a ‘middle’ solution
Examples
WinCE
Linux
VxWorks
C:\EmbeddedSystems March 02\rtos stack.wmf
Host Controllervendor mayprovide a smalldriver to makethe chip looklike somethingthe RTOSsupports
Embedded Systems Conference, March 2002
Embedding USB
38
Agenda
Why USB?
USB Advantages
USB Basics
With embedded system emphasis
An Implementation Roadmap
USB On The Go
An Embedded Host Example
Conclusion
Embedded Systems Conference, March 2002
Embedding USB
39
An implementationroadmap
Pick a host controller
For simple interface (a few simple devices)
Write custom firmware
Use chip supplier tools
Compilers, debuggers
Sample code
For more general interface
Use an RTOS with USB support
Chip supplier usually provides hardware drivers
Check the supported device class list
Embedded Systems Conference, March 2002
Embedding USB
40
Agenda
Why USB?
USB Advantages
USB Basics
With embedded system emphasis
An Implementation Roadmap
USB On The Go
An Embedded Host Example
Conclusion
Embedded Systems Conference, March 2002
Embedding USB
41
USB On The Gogoals
Connect two peripherals together
PC is not required (but still supported)
Allow peripherals to awaken each other
Session Request Protocol (SRP)
Allow devices to exchange the host role
Host Negotiation Protocol (HNP)
New OTG devices can tap into theexisting 900 million USB devices
Forecast: 1 billion devices by 2003
Embedded Systems Conference, March 2002
Embedding USB
42
USB On The Gomarketing foil
C:\Documents and Settings\lth\Application Data\Microsoft\Media Catalog\otg-graphics.gif
Embedded Systems Conference, March 2002
Embedding USB
43
USB On The Gohardware details
Defines a new connector and cable
“Mini-AB” receptacle
Mini-A to Mini-B cable
Cable establishes the default host
A-Device is the default host
Host turns on VBUS
Dual-role USB devices:
Sometimes a peripheral, sometimes a host
Must use the new AB connector
Provide limited host capability
Supply 8 mA (min) on VBUS
Operate at full speed (high speed optional)
Embedded Systems Conference, March 2002
Embedding USB
44
USB On The Gothe best news may be on the software side
Impossible for a small battery operateddevice to support everything a PC does
Solution: a Targeted Device List
Simplifies and standardizes device classes
Example: OTG printer class
This effort is underway in the OTG DeviceWorking Group
Moves complexity from your application code anddrivers into the Operating System
Embedded Systems Conference, March 2002
Embedding USB
45
Agenda
Why USB?
USB Advantages
USB Basics
With embedded system emphasis
An Implementation Roadmap
USB On The Go
An Embedded Host Example
Conclusion
Embedded Systems Conference, March 2002
Embedding USB
46
USB peripheral dev tools
Full-speed USBDevelopment Board
Test USB
USB
PC
Develop--Debug
Serial
Embedded Systems Conference, March 2002
Embedding USB
47
Simple embedded host
D:\JK\Productlines\PCD\USB\Reference Designs\Embedded Host\EZ-USB to SL811HS\Training PPT\EZ-USB + Host.jpg
Full-speed USBDevelopment Board
Add-on boardcontains USB hostplus 4-port hub
PC
USB
Serial
Develop--Debug
D:\JK\Productlines\PCD\USB\Reference Designs\Embedded Host\EZ-USB to SL811HS\Training PPT\ezhost 1st.jpg
Test HostTransfers
D:\JK\Productlines\PCD\USB\Reference Designs\Embedded Host\EZ-USB to SL811HS\Training PPT\Compaq Keypad.jpg
D:\JK\Productlines\PCD\USB\Reference Designs\Embedded Host\EZ-USB to SL811HS\Training PPT\BTC Keyboard.jpg
D:\JK\Productlines\PCD\USB\Reference Designs\Embedded Host\EZ-USB to SL811HS\Training PPT\Creative Gamepad.jpg
Embedded Systems Conference, March 2002
Embedding USB
48
D:\JK\Productlines\PCD\USB\Reference Designs\Embedded Host\EZ-USB to SL811HS\Training PPT\EZ-USB + Host.jpg
Simple embedded host
D:\JK\Productlines\PCD\USB\Reference Designs\Embedded Host\EZ-USB to SL811HS\Training PPT\ezhost 1st.jpg
Embedded Systems Conference, March 2002
Embedding USB
49
Simple embedded host
D:\JK\Productlines\PCD\USB\Reference Designs\Embedded Host\EZ-USB to SL811HS\Training PPT\EZ-USB + Host.jpg
D:\JK\Productlines\PCD\USB\Reference Designs\Embedded Host\EZ-USB to SL811HS\Training PPT\ezhost add mouse.jpg
Embedded Systems Conference, March 2002
Embedding USB
50
Simple embedded host
D:\JK\Productlines\PCD\USB\Reference Designs\Embedded Host\EZ-USB to SL811HS\Training PPT\EZ-USB + Host.jpg
D:\JK\Productlines\PCD\USB\Reference Designs\Embedded Host\EZ-USB to SL811HS\Training PPT\ezhost read mouse.jpg
Embedded Systems Conference, March 2002
Embedding USB
51
Simple embedded host
D:\JK\Productlines\PCD\USB\Reference Designs\Embedded Host\EZ-USB to SL811HS\Training PPT\ezhost kbd+hub.jpg
Example:
BTC Keyboard + 2-port Hub withembedded Fingerprint Scanner
Addr1 = 2 port Hub
Addr2 = Fingerprint Scanner
Addr3 = Keyboard
Fuji Digital Still Camera
Addr4 = Mass Storage Class (MSC)
Mitsumi Mouse
Addr5 = HID Class
Data being read through EP1
D:\JK\Productlines\PCD\USB\Reference Designs\Embedded Host\EZ-USB to SL811HS\Training PPT\BTC Keyboard.jpg
D:\JK\Productlines\PCD\USB\Reference Designs\Embedded Host\EZ-USB to SL811HS\Training PPT\Compaq Keypad.jpg
D:\JK\Productlines\PCD\USB\Reference Designs\Embedded Host\EZ-USB to SL811HS\Training PPT\Creative Gamepad.jpg
D:\JK\Productlines\PCD\USB\Reference Designs\Embedded Host\EZ-USB to SL811HS\Training PPT\TTD Candy Boards.jpg
Embedded Systems Conference, March 2002
Embedding USB
52
Simple embedded host
(live example)
Embedded Systems Conference, March 2002
Embedding USB
53
Conclusion
Embedded host chips are here now
Software is the main effort
Point solution is easy
More complex solution requires anRTOS with USB support
Third-party choices
Some classes are supported
USB OTG aims to provide simplifiedand standardized host drivers