1 / 81

USB Fundamentals and Applications for Digital Signal Processing

USB Fundamentals and Applications for Digital Signal Processing. Greg Burk J. Gordon Electronic Design burk@jged.com 7/30/2004. Agenda. USB Specifications USB Basics Components Onion introduction Signaling Packets Transfers Requests Operating System Interface

demitrius
Download Presentation

USB Fundamentals and Applications for Digital Signal Processing

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. USB Fundamentals and Applications for Digital Signal Processing Greg Burk J. Gordon Electronic Design burk@jged.com 7/30/2004

  2. Agenda • USB Specifications • USB Basics • Components • Onion introduction • Signaling • Packets • Transfers • Requests • Operating System Interface • Considerations for DSP Applications • USB Resources

  3. USB Specifications • USB 1.0 – The original spec, superseded quickly by USB 1.1 • USB 1.1 – Minor enhancements to the USB 1.0 spec, supported Low and Full speed devices • USB 2.0 – The Current Standard, added “high speed’ to USB 1.1 • USB OTG – USB On-the-Go, a supplement to the USB 2.0 spec that added a form of device to device communications. • WUSB – Wireless USB, a work in progress -- not a standard yet

  4. USB Founding Companies

  5. USB 2.0 in a Nutshell • Runs 40X faster than USB 1.1 • Low speed: 1.5Mb/s • Full speed: 12Mb/s • High speed: 480Mb/s • Fully supports existing USB devices • Forward compatible—plug existing 1.1 devices into new 2.0 hosts • Backward compatible—plug new 2.0 devices into existing 1.1 hosts • Uses the same cables as USB 1.1

  6. USB On-the-Go (USB OTG) • Connect two ‘peripherals’ together • PC is not required (but still supported) • Allow peripherals to wake up hosts • Allow two devices to exchange the host role • New OTG devices can tap into the existing 900 million USB devices

  7. Host Peripheral Applications PC Cell Phone Camera MP3 player Synchronize phone list, meetings Upload pictures Download songs Cell Phone Cell Phone Printer Camera Exchange Contact info Print call info Upload pictures to web Camera Camera Cell Phone Printer Exchange pictures Upload pictures to web Print pictures MP3 player MP3 player Exchange songs USB OTG Example ApplicationsSource:Beeman: www.usbonthego.com

  8. USB OTG 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 • Dual-role USB devices: • Are sometimes a peripheral, sometimes a host • Must use the new AB connector • Provide limited host capability • Targeted peripheral list • Operate at full speed (high speed optional)

  9. Wireless USB (WUSB) • Specification currently under development (expected release early 2005) • Key players are: Intel, Microsoft, HP, NEC, Phillips Semiconductors, Agere Systems, and Samsung Electronics • Based on Ultra-wideband (UWB) standard • Supposed to support USB 2.0 bandwidth (480 Mb/s) at distances of up to 10 meters • Projected Feature Set: • Compatibility with USB 2.0 Standard • Security at same level as wired USB • Connections up to 127 WUSB device • For More info see: http://www.intel.com/labs/wusb/ • (This is NOT the same as Cypress Semiconductors Wireless USB)

  10. USB Basics

  11. USB Basics • USB is a Master/Slave Polled Bus (PC is the “Master”, Devices are the “Slaves”) • USB has a “tiered star” architecture that can USB can support up to 126 devices • 7-bit address = 128 – root hub – reserved addr 0 for enumeration • USB is “Hot Pluggable” • USB connections can provide both data and power to the devices

  12. USB is not Simple • Outside, it is simple • The “rich user experience” requires some inner complexity • Even though it replaces serial and parallel ports, it’s not a drop-in replacement • It’s electrically simple, but a whole protocol layer is added

  13. USB Projects Can Require a Significant Code Development Effort • Device side • USB houskeeping firmware • Application firmware • Host side • Driver (maybe) • Application software

  14. USB Components

  15. Components of USB Systems • USB Host Controllers • USB Hubs • USB Cables • USB Peripheral Devices

  16. USB Host Controllers • Reside in PC on motherboard or add-in card • Are the “master” device on the USB bus • Host Controller has integral “Root Hub” • Host Controller Interfaces: • Universal Host Controller Interface (UHCI) • Open Host Controller Interface (OHCI) • Enhanced Host Controller Interface (EHCI)

  17. USB Cables • Transport both Data and Power • Four wires: Vbus, GND, D+, D– • Cables are 5 meters MAX • Two connector types, “A” and “B” • Prevents illegal topologies • “A” connectors are the ones that goes to the PC or Hub, “B” connectors goes to the device) (OTG adds Miny A and Mini B connectors) • Cables can be either “captive” (like mice) or detachable • Cables can be unshielded (Low speed devices) or shielded (Full Speed and High Speed devices) • USB extension cables are ILLEGAL

  18. USB Hubs • A hub provides additional connection points (ports) for devices • Hubs can be: • Self-Powered (<= 500ma to each device) • Bus-Powered (<= 100mA to each device) • Hubs contain most of the “magic” and differences between USB 1.1 and USB 2.0

  19. USB Devices • Devices can be: • Self-Powered • External Power Source (i.e. wall wart) • Batteries • Bus-Powered • Low Power Bus Powered (<= 100mA) • High Power Bus Powered >100mA, <=500mA) • Devices are “self describing” • Devices return data (USB descriptors) to host to indicate its capabilities, configurations, and how the device is able to communicate

  20. Compound and Composite Devices • Composite Device • Multiple interfaces, independently controlled • Each interface can have a different driver • Compound Device • Collection of separate functions, each with a USB address, connected to an internal hub • Example: Keyboard & Trackball in same package

  21. USB is a Polled BUS • The Host (PC) initiates all transfers • Devices respond to host requests • Direction: OUT is host-to-device • Direction: IN is device-to-host • USB is NOT peer-to-peer (not even in USB OTG)

  22. USB Topology PC PC USB USB USB USB Hub Device Device Device USB USB USB USB Device Device “Tiered Star”

  23. USB Transfer Speeds • USB 1.1: • Low speed is 1.5Mb/s • Full speed is 12Mb/s • USB 2.0 • Low speed is 1.5Mb/s • Full speed is 12Mb/s • High speed is 480 Mb/s There is a VERY common misconception that say a device is USB 2.0 compliant that it means that it is High Speed device. It does NOT!

  24. Endpoints • USB Spec: “a source or sink of data” • A Control Transfer Type endpoint is bi-directional • Others are uni-directional • Four address bits plus a direction bit selects between up to 32 buffers (FIFOs) • Different USB chips support • Various numbers of endpoints • Various buffer sizes • Each device must have 1 Control Type Endpoint (Commonly referred to as Endpoint 0 or the Default Endpoint)

  25. Pipes • An abstraction used by the USB spec used to indicate that 2 endpoints are joined (one in the PC Host and the other in the device). • CONTROL pipe is bi-directional • Others are uni-directional

  26. USB Descriptors • Device Descriptors • Contains the VID/PID/DID/Serial Number • Configuration Descriptors • Interface Descriptors • Endpoint Descriptors • String Descriptors • Device Qualifier Descriptors (USB 2.0) • Other Speed Configuration Descriptors (USB 2.0) • USB “Classes” can add other class specific Descriptors

  27. OS Interface Requests Transfers Packets Signaling The USB Onion

  28. Signaling

  29. USB Signaling • USB utilizes differential signaling on the D+ and D- lines. • Data is encoded in “non-return to zero with bit stuffing” • Bit stuffing is used to ensure enough transitions for the clock recovery circuitry. • Most designs use silicon that incorporates an integral Serial Interface Engine (SIE) so you don’t have to worry about the decoding yourself. • PCB layout of D= and D- requires care (especially on High Speed devices).

  30. The SIE(Serial Interface Engine) Serial D+ Interface Bytes Engine D+ (SIE) USB Transceiver

  31. Packets

  32. USB Packets • USB data travels in packets • Identified by “Packet ID” (PID) • Token packet tells what’s coming • Data packets deliver bytes • Handshake packets report success or otherwise

  33. Packet IDs (PIDS) • Token Packets • IN, OUT, SOF, SETUP • Data Packets • DATA0, DATA1 (USB LS/FS) • DATA2, MDATA (USB HS) • Handshake Packets • ACK, NAK, STALL (USB LS/FS) • NYET (USB HS)

  34. Handshaking Packets • Used to ensure correct data delivery on Control, Bulk and Interrupt Transfers • ACK – Received with out Error • NAK – Device Busy, has no data • Stall – Unsupported Request, Request Failed • No Response – Request not received or corrupt, will be retried up to 3 times.

  35. Packets: Identified by PIDS

  36. Three Packet Types

  37. Transfers

  38. USB Transfer Types • Bulk • Guaranteed accuracy, but delivery time is variable • Best for “bursty” data • Isochronous • Guaranteed delivery time, but accuracy is not guaranteed • Control • Enumeration and device control • Interrupt • Predictable polling time

  39. USB Transfers • USB Transfers Occur in 1ms Frames (USB 2.0 adds 125 uS Microframes) • Host sends “SOF” (Start Of Frame) token every 1ms • Host schedules packets inside frames.

  40. Anatomy of a USB Frame 1 msec frame • 12MHz = 1.5MB/s or 1500 bytes/ms • Isochronous/Interrupt traffic have guaranteed bandwidth • Control traffic is “best-effort” • Bulk uses what is left • Actual scheduling order depends on host controller • UHCI, OHCI ... SOF SOF Video Mouse Control Printer Audio Printer Isochronous Interrupt Control Bulk

  41. Transfer Type Packet Size USB 1.1 USB 2.0 Control Bulk Interrupt Isochronous 8, 16, 32, 64 8, 16, 32, 64 1–64 1023 64 512 1024 1024 Packet Sizes

  42. Bulk IN Transfer (a) H D H H D H D D C C A E C A E C A A A A R R Payload Payload I D N R I D N R T C T C C C N D D C N D D C Data Data A K A K 1 1 R P 5 R P 5 1 0 6 6 Token Packet Token Packet Data Packet Data Packet H/S Pkt H/S Pkt good good—note the data toggle

  43. Bulk IN Transfer (b) H D H H D D H H D D C C A E C A E C A E C A A N A A R R Payload Payload I D N R I D N R I D N R T C A T C C C N D D C N D D C Data Data N D D C A K K A K 1 1 R P 5 R P 5 R P 5 1 0 6 6 Token Packet Token Packet Data Packet Data Packet H/S Pkt H/S Pkt Token Packet H/S Pkt good not ready good

  44. Bulk IN Transfer (c) H D (H) H D H D D C C A E C A E C A A A R R Payload Payload I D N R I D N R T T C C C N D D C N D D C Data Data A A K 1 1 R P 5 R P 5 1 1 6 6 Token Packet Token Packet Data Packet Data Packet H/S Pkt host sees error; no response good—note same data and data toggle

  45. Bulk IN Transfer (d) H D H (D) S A E C A E C T I D N R I D N R A N D D C N D D C L R P 5 R P 5 L Token Packet Token Packet H/S Pkt device has a problem device detects token error or does not respond

  46. Bulk OUT Transfer (a) H H D H H D D D C C A E C A E C O O A A A A R R Payload Payload D N R D N R U U T C T C C C D D C D D C Data Data T T A K A K 1 1 R P 5 R P 5 0 1 6 6 Token Packet Token Packet Data Packet Data Packet H/S Pkt H/S Pkt good good—note the data toggle

  47. Bulk OUT Transfer (b) H H D H D H D H H D D D C C C A E C A E C A E C O A A A N A A R O R O R Payload Payload Payload D N R D N R D N R U T C T A T C C U C U C D D C Data Data Data D D C D D C T A K A K A K 1 T 1 T 1 R P 5 R P 5 R P 5 1 0 0 6 6 6 Token Packet Data Packet Data Packet Data Packet H/S Pkt Token Packet H/S Pkt Token Packet H/S Pkt good good device not ready for data host sends data anyway

  48. Bulk OUT Transfer (c) H H (D) H H D D D C C A E C A E C O O A A A R R Payload Payload D N R D N R U U T T C C C D D C D D C Data Data T T A A K 1 1 R P 5 R P 5 1 1 6 6 Token Packet Token Packet Data Packet Data Packet H/S Pkt good device sees error; no response

  49. Bulk OUT Transfer (d) (D) H H H H D D D C C S A E C A E C A A O R O R T Payload Payload D N R D N R T T U C U C A Data Data D D C D D C A A T 1 T 1 L R P 5 R P 5 1 1 6 6 L Data Packet Data Packet Token Packet Token Packet H/S Pkt device detects token error device has problem

  50. Control Transfer H H D S D C A E C E A 8 bytes R A D N R SETUP T T Setup C C D D C U A Data 1 K R P 5 P 0 6 Token Packet Data Packet H/S Pkt H D 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 Data Packet Token Packet H/S Pkt H H D H H D 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 Token Packet Data Pkt Token Packet Data Pkt H/S Pkt H/S Pkt Control operation Control operation not completed completed

More Related