Upload
molly-garrison
View
257
Download
5
Tags:
Embed Size (px)
Citation preview
Embedding USB
Lane HauckCypress Semiconductor
2Embedded Systems Conference, March 2002Embedding USB
Agenda
Why USB? USB Advantages USB Basics
• With embedded system emphasis An Implementation Roadmap USB On The Go An Embedded Host Example Conclusion
3Embedded Systems Conference, March 2002Embedding USB
Agenda
Why USB? USB Advantages USB Basics
• With embedded system emphasis An Implementation Roadmap USB On The Go An Embedded Host Example Conclusion
4Embedded Systems Conference, March 2002Embedding USB
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
5Embedded Systems Conference, March 2002Embedding USB
Agenda
Why USB? USB Advantages USB Basics
• With embedded system emphasis An Implementation Roadmap USB On The Go An Embedded Host Example Conclusion
6Embedded Systems Conference, March 2002Embedding USB
USB Advantages
Many standardized, low cost devices are available
Connectors and cables are standard USB devices are compliance-tested to
insure compatibility and uniform performance
Using hubs, multiple USB devices can share one connector
USB devices can tell you about their capabilities
7Embedded Systems Conference, March 2002Embedding USB
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-level details• Flow control• Error checking
You decide how complex to make the firmware
8Embedded Systems Conference, March 2002Embedding USB
Agenda
Why USB? USB Advantages USB Basics
• With embedded system emphasis An Implementation Roadmap USB On The Go An Embedded Host Example Conclusion
9Embedded Systems Conference, March 2002Embedding USB
USB Basics with embedded system emphasis
Speeds Cables Topology Endpoints Transfer Types Handshakes
10Embedded Systems Conference, March 2002Embedding USB
USB Basics cont’d
Hubs Power Management Device Classes Host Chips & Drivers Protocol
11Embedded Systems Conference, March 2002Embedding USB
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
12Embedded Systems Conference, March 2002Embedding USB
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
13Embedded Systems Conference, March 2002Embedding USB
Cables1 foot cable
Dri
ve
rR
ec
eiv
er
14Embedded Systems Conference, March 2002Embedding USB
Cables2 meter cable
Dri
ve
rR
ec
eiv
er
15Embedded Systems Conference, March 2002Embedding USB
Cables5 meter cable
Dri
ve
rR
ec
eiv
er
16Embedded Systems Conference, March 2002Embedding USB
Topologytiered star
PC
Hub
P
P
P
Hub
PPP
P
USB Host
Root Hub
One USB connector can support up to 127 devices
17Embedded Systems Conference, March 2002Embedding USB
Endpoints
Endpoints are logical channels inside a peripheral device
In hardware they’re addressable buffers (FIFOS)• Every host transfer includes a 4-bit
endpoint number and a direction bit CONTROL endpoint 0 is mandatory All others are up to the design Endpoints are handy for separating
data types
18Embedded Systems Conference, March 2002Embedding USB
Transfer Typesfour types to suit data
requirements
Control• Mission-critical, highest error protection• Used to interrogate, configure and control
devices Bulk Interrupt Isochronous
BULK is easiest to use and the most flexible
19Embedded Systems Conference, March 2002Embedding USB
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
SO
F...Isochronous Interrupt Control Bulk
SO
F
20Embedded Systems Conference, March 2002Embedding USB
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
21Embedded Systems Conference, March 2002Embedding USB
Handshakesa CONTROL Transfer
IN
ADDR
ENDP
CRC5
Token Packet
DATA1
PayloadData
CRC16
Data Packet
ACK
H/S Pkt
H P H
DA
TA
H H P H H P
DATA1
OUT
ADDR
ENDP
CRC5
Token Packet
CRC16
Data Pkt
NAK
H/S Pkt
DATA1
OUT
ADDR
ENDP
CRC5
Token Packet
CRC16
Data Pkt
ACK
H/S Pkt
(Operation not completed) (Operation completed)HA
ND
SH
AK
EDATA0
8 bytesSetupData
CRC16
Data Packet
ACK
H/S Pkt
SETUP
ADDR
ENDP
CRC5
Token Packet
H H P
SE
TU
PH is Host
P is Peripheral
22Embedded Systems Conference, March 2002Embedding USB
Hubs
PCUSB USB
Device DeviceHub
USB USB USB USB
PCUSB USB
Device
Device Device
23Embedded Systems Conference, March 2002Embedding USB
Hubspower
HubUSB USB USB USB
PCUSB USB
Device
Device Device
500
100 100
500
24Embedded Systems Conference, March 2002Embedding USB
Hubsmore power
HubUSB USB USB USB
PCUSB USB
Device
Device Device
500 500
Wall Wart
500 500
25Embedded Systems Conference, March 2002Embedding USB
Hubsmore devices
HubUSB USB USB USB
PCUSB USB
Device
Device Device
500 500
Wall Wart
500 500
USB USB USB
Device
500
Easy way to expand and power devices
26Embedded Systems Conference, March 2002Embedding USB
Power Management
USB power consumption is carefully controlled
Host determines power needs of all attached devices• Only configures those within power limits
USB devices must enter low power mode when host signals ‘suspend’• 500 microamps
USB devices can signal a remote wakeup Built-in mechanism prevents peripherals from
drawing too much power from your system
27Embedded Systems Conference, March 2002Embedding USB
Device Classes
USB-sanctioned method to extend the specification to device classes
Classes are devices with similar characteristics
Huge advantage—the driver is built into the OS• Not written and maintained by YOU
Immense simplification of the software effort if the OS supports your device
28Embedded Systems Conference, March 2002Embedding USB
Protocol
USB architects went well beyond the electrical interface• Remember IrDa?
Protocol layer insures interoperability Compliance testing (plugfests) enforce the
protocol USB protocol is extensible
• Device classes• Fully custom ‘vendor’ designs
Device standardization makes the embedded software task far easier than writing custom drivers
29Embedded Systems Conference, March 2002Embedding USB
Protocol
A large part of the embedded system design 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 a subset of full PC-based USB
Efforts are underway to simplify the software task (more about this)
30Embedded Systems Conference, March 2002Embedding USB
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
31Embedded Systems Conference, March 2002Embedding USB
ProtocolChapter 9 Requests
Standard Class VendorbRequest
CustomProgramming
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
STALLother
X 0 1 X X X X XX 0 0 X X X X X X 1 1 X X X X XX 1 0 X X X X X
03
DEVICE
CONFIGURATION
STRING
01
02
STALLother
wValueH
bmRequestType
32Embedded Systems Conference, March 2002Embedding USB
Protocoladded HID Class Requests
Standard Class VendorbRequest
CustomProgramming
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
STALLother
bRequest
X 0 1 X X X X XX 0 0 X X X X X X 1 1 X X X X XX 1 0 X X X X X
03
DEVICE
CONFIGURATION
STRING
01
02
STALLother
wValueH
0B
GET_REPORT
GET_IDLE
GET_PROTOCOL
SET_REPORT
SET_IDLE
SET_PROTOCOL
01
02
03
09
0A
STALLother
23
HID
REPORT
PHYSICAL
21
22
bmRequestType
33Embedded Systems Conference, March 2002Embedding USB
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
34Embedded Systems Conference, March 2002Embedding USB
Host Chips & Drivers
Application
Class Driver
USB Driver
Host Controller Driver
Host Controller
IRP
Transaction List
Application
Host Controller
PC Simple Embedded
35Embedded Systems Conference, March 2002Embedding USB
Host Chips & DriversPC implementation
Apps or class drivers create IO Request Packets (IRP)
USB Driver• Processes IRP’s• Manages CONTROL pipe• Division of duties between USBD
and 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 transaction list into packets
Application
Class Driver
USB Driver
Host Controller Driver
Host Controller
IRP
Transaction List
36Embedded Systems Conference, March 2002Embedding USB
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 device using “pipes”
Most of the HCD/HC complexity is due to the flexible nature of USB
• 127 devices• Devices appear and disappear at
random• Bandwidth must be fairly shared
between devices
Application
Class Driver
USB Driver
Host Controller Driver
Host Controller
IRP
Transaction List
37Embedded Systems Conference, March 2002Embedding USB
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
Application
Host Controller
Simple Embedded
38Embedded Systems Conference, March 2002Embedding USB
Host Chips & DriversRTOS provides a ‘middle’ solution
• Examples– WinCE– Linux– VxWorks
Application
Class Driver
Host Controller
RTOS with aUSB
"Stack"
• Host Controller vendor may provide a small driver to make the chip look like something the RTOS supports
39Embedded Systems Conference, March 2002Embedding USB
Agenda
Why USB? USB Advantages USB Basics
• With embedded system emphasis An Implementation Roadmap USB On The Go An Embedded Host Example Conclusion
40Embedded Systems Conference, March 2002Embedding USB
An implementation roadmap
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
41Embedded Systems Conference, March 2002Embedding USB
Agenda
Why USB? USB Advantages USB Basics
• With embedded system emphasis An Implementation Roadmap USB On The Go An Embedded Host Example Conclusion
42Embedded Systems Conference, March 2002Embedding USB
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 the existing 900 million USB devices• Forecast: 1 billion devices by 2003
43Embedded Systems Conference, March 2002Embedding USB
USB On The Gomarketing foil
44Embedded Systems Conference, March 2002Embedding USB
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)
45Embedded Systems Conference, March 2002Embedding USB
USB On The Gothe best news may be on the
software side
Impossible for a small battery operated device 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 Device Working Group
Moves complexity from your application code and drivers into the Operating System
46Embedded Systems Conference, March 2002Embedding USB
Agenda
Why USB? USB Advantages USB Basics
• With embedded system emphasis An Implementation Roadmap USB On The Go An Embedded Host Example Conclusion
47Embedded Systems Conference, March 2002Embedding USB
USB peripheral dev tools
Full-speed USB Development Board
Test USB
USBPCDevelop--Debug
Serial
48Embedded Systems Conference, March 2002Embedding USB
Simple embedded host
Full-speed USB Development Board
Add-on board contains USB host plus 4-port hub
PC USB
Serial
Develop--Debug
Test Host Transfers
49Embedded Systems Conference, March 2002Embedding USB
Simple embedded host
50Embedded Systems Conference, March 2002Embedding USB
Simple embedded host
51Embedded Systems Conference, March 2002Embedding USB
Simple embedded host
52Embedded Systems Conference, March 2002Embedding USB
Simple embedded host
Example: BTC Keyboard + 2-port Hub with
embedded 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
53Embedded Systems Conference, March 2002Embedding USB
Simple embedded host
(live example)
54Embedded Systems Conference, March 2002Embedding USB
Conclusion
Embedded host chips are here now Software is the main effort Point solution is easy More complex solution requires an
RTOS with USB support• Third-party choices• Some classes are supported
USB OTG aims to provide simplified and standardized host drivers