Download presentation
Presentation is loading. Please wait.
Published byMolly Garrison Modified over 9 years ago
1
Embedding USB Lane Hauck Cypress Semiconductor
2
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
3
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
4
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
5
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
6
Embedded Systems Conference, March 2002 Embedding USB 5 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
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-level details Flow control Error checking You decide how complex to make the firmware
8
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
9
Embedded Systems Conference, March 2002 Embedding USB 8 USB Basics with embedded system emphasis Speeds Cables Topology Endpoints Transfer Types Handshakes
10
Embedded Systems Conference, March 2002 Embedding USB 9 USB Basics cont’d Hubs Power Management Device Classes Host Chips & Drivers Protocol
11
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
12
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
13
Embedded Systems Conference, March 2002 Embedding USB 12 Cables 1 foot cable Driver Receiver
14
Embedded Systems Conference, March 2002 Embedding USB 13 Cables 2 meter cable Driver Receiver
15
Embedded Systems Conference, March 2002 Embedding USB 14 Cables 5 meter cable Driver Receiver
16
Embedded Systems Conference, March 2002 Embedding USB 15 Topology tiered star One USB connector can support up to 127 devices
17
Embedded Systems Conference, March 2002 Embedding USB 16 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
Embedded Systems Conference, March 2002 Embedding USB 17 Transfer Types four 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
Embedded Systems Conference, March 2002 Embedding USB 18 Transfer Types anatomy 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 MouseControl Printer 1 msec frame SOF... IsochronousInterruptControlBulk SOF
20
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
21
Embedded Systems Conference, March 2002 Embedding USB 20 Handshakes a 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 HP H DATA HHPHHP 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 HHP SETUP H is Host P is Peripheral
22
Embedded Systems Conference, March 2002 Embedding USB 21 Hubs PC USB Device Hub USB PC USB Device
23
Embedded Systems Conference, March 2002 Embedding USB 22 Hubs power Hub USB PC USB Device 500 100 500
24
Embedded Systems Conference, March 2002 Embedding USB 23 Hubs more power Hub USB PC USB Device 500 Wall Wart 500
25
Embedded Systems Conference, March 2002 Embedding USB 24 Hubs more devices Hub USB PC USB Device 500 Wall Wart 500 USB Device 500 Easy way to expand and power devices
26
Embedded Systems Conference, March 2002 Embedding USB 25 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
Embedded Systems Conference, March 2002 Embedding USB 26 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
Embedded Systems Conference, March 2002 Embedding USB 27 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
Embedded Systems Conference, March 2002 Embedding USB 28 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
Embedded Systems Conference, March 2002 Embedding USB 29 Protocol the eight bytes in a SETUP packet ByteFieldMeaning 0bmRequestTypeRequest type 1bRequestThe actual request 2wValueLVaries by request 3wValueH 4wIndexLVaries by request 5wIndexH 6wLengthLNumber of data bytes 7wLengthH
31
Embedded Systems Conference, March 2002 Embedding USB 30 Protocol Chapter 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 X01XXXXXX00XXXXXX11XXXXXX10XXXXX 03 DEVICE CONFIGURATION STRING 01 02 STALL other wValueH bmRequestType
32
Embedded Systems Conference, March 2002 Embedding USB 31 Protocol added 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 X01XXXXXX00XXXXXX11XXXXXX10XXXXX 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
33
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
34
Embedded Systems Conference, March 2002 Embedding USB 33 Host Chips & Drivers PCSimple Embedded
35
Embedded Systems Conference, March 2002 Embedding USB 34 Host Chips & Drivers PC 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
Embedded Systems Conference, March 2002 Embedding USB 35 Host Chips & Drivers why 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
Embedded Systems Conference, March 2002 Embedding USB 36 Host Chips & Drivers simplest 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
Embedded Systems Conference, March 2002 Embedding USB 37 Host Chips & Drivers RTOS provides a ‘middle’ solution Examples –WinCE –Linux –VxWorks Host Controller vendor may provide a small driver to make the chip look like something the RTOS supports
39
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
40
Embedded Systems Conference, March 2002 Embedding USB 39 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
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
42
Embedded Systems Conference, March 2002 Embedding USB 41 USB On The Go goals 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
Embedded Systems Conference, March 2002 Embedding USB 42 USB On The Go marketing foil
44
Embedded Systems Conference, March 2002 Embedding USB 43 USB On The Go hardware 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
Embedded Systems Conference, March 2002 Embedding USB 44 USB On The Go the 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
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
47
Embedded Systems Conference, March 2002 Embedding USB 46 USB peripheral dev tools Full-speed USB Development Board Test USB USB PC Develop--Debug Serial
48
Embedded Systems Conference, March 2002 Embedding USB 47 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
49
Embedded Systems Conference, March 2002 Embedding USB 48 Simple embedded host
50
Embedded Systems Conference, March 2002 Embedding USB 49 Simple embedded host
51
Embedded Systems Conference, March 2002 Embedding USB 50 Simple embedded host
52
Embedded Systems Conference, March 2002 Embedding USB 51 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
53
Embedded Systems Conference, March 2002 Embedding USB 52 Simple embedded host (live example)
54
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 an RTOS with USB support Third-party choices Some classes are supported USB OTG aims to provide simplified and standardized host drivers
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.