1 / 54

Embedding USB

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

Download Presentation

Embedding USB

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Embedding USB Lane Hauck Cypress Semiconductor

  2. Agenda • Why USB? • USB Advantages • USB Basics • With embedded system emphasis • An Implementation Roadmap • USB On The Go • An Embedded Host Example • Conclusion

  3. Agenda • Why USB? • USB Advantages • USB Basics • With embedded system emphasis • An Implementation Roadmap • USB On The Go • An Embedded Host Example • Conclusion

  4. 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

  5. Agenda • Why USB? • USB Advantages • USB Basics • With embedded system emphasis • An Implementation Roadmap • USB On The Go • An Embedded Host Example • Conclusion

  6. 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

  7. 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

  8. Agenda • Why USB? • USB Advantages • USB Basics • With embedded system emphasis • An Implementation Roadmap • USB On The Go • An Embedded Host Example • Conclusion

  9. USB Basics with embedded system emphasis • Speeds • Cables • Topology • Endpoints • Transfer Types • Handshakes

  10. USB Basics cont’d • Hubs • Power Management • Device Classes • Host Chips & Drivers • Protocol

  11. 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

  12. 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

  13. Cables1 foot cable Driver Receiver

  14. Cables2 meter cable Driver Receiver

  15. Cables5 meter cable Driver Receiver

  16. Topologytiered star • One USB connector can support up to 127 devices

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. PC PC USB USB USB USB Hub Device Device Device USB USB USB USB Device Device Hubs

  23. Hubspower PC USB USB 500 500 Hub Device USB USB USB USB 100 100 Device Device

  24. 500 500 500 500 Hubsmore power Wall Wart PC USB USB Hub Device USB USB USB USB Device Device

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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)

  30. Protocolthe eight bytes in a SETUP packet

  31. 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

  32. 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

  33. 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

  34. Host Chips & Drivers PC Simple Embedded

  35. 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

  36. 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

  37. 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

  38. 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

  39. Agenda • Why USB? • USB Advantages • USB Basics • With embedded system emphasis • An Implementation Roadmap • USB On The Go • An Embedded Host Example • Conclusion

  40. 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

  41. Agenda • Why USB? • USB Advantages • USB Basics • With embedded system emphasis • An Implementation Roadmap • USB On The Go • An Embedded Host Example • Conclusion

  42. 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

  43. USB On The Gomarketing foil

  44. 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)

  45. 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

  46. Agenda • Why USB? • USB Advantages • USB Basics • With embedded system emphasis • An Implementation Roadmap • USB On The Go • An Embedded Host Example • Conclusion

  47. Serial PC Develop--Debug USB Test USB USB peripheral dev tools Full-speed USB Development Board

  48. 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

  49. Simple embedded host

  50. Simple embedded host

More Related