560 likes | 723 Views
Embedding USB. Lane Hauck Cypress Semiconductor. Agenda. Why USB? USB Advantages USB Basics With embedded system emphasis An Implementation Roadmap USB On The Go An Embedded Host Example Conclusion. Agenda. Why USB? USB Advantages USB Basics With embedded system emphasis
E N D
Embedding USB Lane Hauck Cypress Semiconductor
Agenda • Why USB? • USB Advantages • USB Basics • With embedded system emphasis • An Implementation Roadmap • USB On The Go • An Embedded Host Example • Conclusion
Agenda • Why USB? • USB Advantages • USB Basics • With embedded system emphasis • An Implementation Roadmap • USB On The Go • An Embedded Host Example • Conclusion
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
Agenda • Why USB? • USB Advantages • USB Basics • With embedded system emphasis • An Implementation Roadmap • USB On The Go • An Embedded Host Example • Conclusion
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
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
Agenda • Why USB? • USB Advantages • USB Basics • With embedded system emphasis • An Implementation Roadmap • USB On The Go • An Embedded Host Example • Conclusion
USB Basics with embedded system emphasis • Speeds • Cables • Topology • Endpoints • Transfer Types • Handshakes
USB Basics cont’d • Hubs • Power Management • Device Classes • Host Chips & Drivers • Protocol
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
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
Cables1 foot cable Driver Receiver
Cables2 meter cable Driver Receiver
Cables5 meter cable Driver Receiver
Topologytiered star • One USB connector can support up to 127 devices
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
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
1 msec frame ... SOF SOF Video Mouse Control Printer Audio Printer Isochronous Interrupt Control Bulk 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
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
H H P S D C A E C E A 8 bytes R A H is Host P is Peripheral D N R SETUP T T Setup C C D D C U A Data 1 K R P 5 P 0 6 Data Packet Token Packet H/S Pkt H P H D C A E C A R A I D N R Payload DATA T C C N D D C Data A 1 K R P 5 1 6 Token Packet H/S Pkt Data Packet H H P H H P D D C C A E C A E C O A O A R N R A D N R D N R U T U T C A C C HANDSHAKE D D C D D C T A T A 1 K 1 K R P 5 R P 5 1 1 6 6 TokenPacket H/S Pkt H/S Pkt Token Packet Data Pkt Data Pkt (Operation not completed) (Operation completed) Handshakesa CONTROL Transfer
PC PC USB USB USB USB Hub Device Device Device USB USB USB USB Device Device Hubs
Hubspower PC USB USB 500 500 Hub Device USB USB USB USB 100 100 Device Device
500 500 500 500 Hubsmore power Wall Wart PC USB USB Hub Device USB USB USB USB Device Device
500 500 500 500 500 USB USB USB USB Hubsmore devices Wall Wart PC USB USB Hub Device USB USB USB Device Device Device • Easy way to expand and power devices
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
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
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
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)
X X X X 0 0 1 1 0 1 1 0 X X X X X X X X X X X X X X X X X X X X ProtocolChapter 9 Requests bmRequestType STALL Class Standard Vendor bRequest 00 Custom GET_STATUS Programming 01 CLR_FEATURE 03 SET_FEATURE 05 SET_ADDRESS wValueH 06 GET_DESCRIPT0R 01 DEVICE 07 SET_DESCRIPT0R 02 CONFIGURATION 08 GET_C0NFIG 03 STRING 09 SET_CONFIG 0A GET_INTERFACE 0B SET_INTERFACE 0C SYNC_FRAME other STALL other STALL
X X X X 0 0 1 1 0 1 1 0 X X X X X X X X X X X X X X X X X X X X Protocoladded HID Class Requests bmRequestType STALL Class Standard Vendor bRequest bRequest 00 Custom GET_STATUS 01 GET_REPORT Programming 01 CLR_FEATURE 02 GET_IDLE 03 SET_FEATURE 03 GET_PROTOCOL 05 SET_ADDRESS 09 SET_REPORT wValueH 06 GET_DESCRIPT0R 0A SET_IDLE 01 DEVICE 07 SET_DESCRIPT0R 0B SET_PROTOCOL 02 CONFIGURATION 08 GET_C0NFIG other STALL 03 STRING 09 SET_CONFIG 21 HID 0A GET_INTERFACE 22 REPORT 0B SET_INTERFACE 23 PHYSICAL 0C SYNC_FRAME other STALL other STALL
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
Host Chips & Drivers PC Simple Embedded
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
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
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 Simple Embedded
Host Chips & DriversRTOS provides a ‘middle’ solution • Host Controller vendor may provide a small driver to make the chip look like something the RTOS supports • Examples • WinCE • Linux • VxWorks
Agenda • Why USB? • USB Advantages • USB Basics • With embedded system emphasis • An Implementation Roadmap • USB On The Go • An Embedded Host Example • Conclusion
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
Agenda • Why USB? • USB Advantages • USB Basics • With embedded system emphasis • An Implementation Roadmap • USB On The Go • An Embedded Host Example • Conclusion
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
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)
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
Agenda • Why USB? • USB Advantages • USB Basics • With embedded system emphasis • An Implementation Roadmap • USB On The Go • An Embedded Host Example • Conclusion
Serial PC Develop--Debug USB Test USB USB peripheral dev tools Full-speed USB Development Board
Test Host Transfers Simple embedded host Serial PC Develop--Debug USB Add-on board contains USB host plus 4-port hub Full-speed USB Development Board