USB Fundamentals and Applications for Digital Signal Processing - PowerPoint PPT Presentation

1 / 81
About This Presentation
Title:

USB Fundamentals and Applications for Digital Signal Processing

Description:

Title: PowerPoint Presentation Author: Lane Hauck Last modified by: Greg Burk Created Date: 7/11/2000 3:56:28 AM Document presentation format: On-screen Show – PowerPoint PPT presentation

Number of Views:205
Avg rating:3.0/5.0
Slides: 82
Provided by: Lane180
Category:

less

Transcript and Presenter's Notes

Title: USB Fundamentals and Applications for Digital Signal Processing


1
USB Fundamentals and Applications for Digital
Signal Processing
  • Greg Burk
  • J. Gordon Electronic Design
  • burk_at_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
USB 1.0 USB 2.0
Compaq Compaq
Intel Intel
Microsoft Microsoft
NEC NEC
IBM Lucent
DEC HP
Northern Telecom Philips
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 compatibleplug existing 1.1 devices into
    new 2.0 hosts
  • Backward compatibleplug 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
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, its not a drop-in replacement
  • Its 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 (lt 500ma to each device)
  • Bus-Powered (lt 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 (lt 100mA)
  • High Power Bus Powered gt100mA, lt500mA)
  • 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
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
    dont 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 whats 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
...
SOF
SOF
Video
Audio
Mouse
Control
Printer
Printer
Isochronous
Interrupt
Control
Bulk
  • 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

41
Packet Sizes
42
Bulk IN Transfer (a)
H
D
H
H
H
D
D
D
C
C
A
E
C
A
E
C
A
R
A
A
R
A
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
goodnote the data toggle
good
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
N
A
A
A
A
R
R
Payload
Payload
I
D
N
R
I
D
N
R
I
D
N
R
A
T
C
T
C
C
C
N
D
D
C
N
D
D
C
Data
Data
N
D
D
C
K
A
K
A
K
1
1
R
P
5
R
P
5
R
P
5
1
6
0
6
Token Packet
Token Packet
Data Packet
Data Packet
H/S Pkt
H/S Pkt
Token Packet
H/S Pkt
good
good
not ready
44
Bulk IN Transfer (c)
H
(H)
D
H
H
D
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
Data
N
D
D
C
Data
A
1
A
1
K
R
P
5
R
P
5
1
1
6
6
Token Packet
Token Packet
Data Packet
Data Packet
H/S Pkt
goodnote same data and data toggle
host sees error no response
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
D
H
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
T
C
U
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
goodnote the data toggle
good
47
Bulk OUT Transfer (b)
H
D
H
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
A
A
N
R
O
R
O
R
Payload
Payload
Payload
D
N
R
D
N
R
D
N
R
U
T
C
T
C
T
A
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
6
0
6
0
6
Token Packet
Data Packet
H/S Pkt
Token Packet
Data Packet
H/S Pkt
Token Packet
Data Packet
H/S Pkt
good
good
device not ready for data host sends data anyway
48
Bulk OUT Transfer (c)
H
(D)
H
H
D
H
D
D
C
C
A
E
C
A
E
C
O
A
O
A
A
R
R
Payload
Payload
D
N
R
D
N
R
U
T
U
T
C
C
C
D
D
C
D
D
Data
C
Data
T
A
T
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
C
D
C
S
A
E
A
E
C
C
A
O
R
A
O
R
T
Payload
Payload
D
N
R
D
N
R
T
U
C
T
U
A
C
D
D
C
Data
Data
D
D
C
A
T
T
1
A
1
L
R
P
5
R
P
5
1
6
1
6
L
Data Packet
Token Packet
Token Packet
Data Packet
H/S Pkt
device detects token error
device has problem
50
Control Transfer
H
H
D
D
C
S
A
E
C
A
8 bytes
R
A
E
D
N
R
SETUP
T
Setup
C
C
T
D
D
C
A
Data
1
K
U
R
P
5
0
6
P
Data Packet
H/S Pkt
Token Packet
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
A
O
A
O
R
N
R
A
D
N
R
D
N
R
T
U
T
U
C
A
C
C
HANDSHAKE
D
D
C
D
D
C
A
T
1
K
A
T
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
51
Interrupt IN OUT
H
D
H
H
H
D
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
Data
N
D
D
C
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
goodnote the data toggle
good
H
H
D
H
D
H
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
C
T
C
C
D
D
C
D
D
C
Data
Data
T
T
A
1
K
A
1
K
R
P
5
R
P
5
0
1
6
6
Token Packet
Token Packet
Data Packet
Data Packet
H/S Pkt
H/S Pkt
goodnote the data toggle
good
Interrupt transfers are indistinguishable from
BULK transfers. They occur at most once per
frame.
52
Isochronous Transfer
H
D
D
C
A
E
C
A
Payload
R
I
D
N
R
T
C
N
D
D
C
Data
A
1
R
P
5
0
6
Token Packet
Data Packet
H
H
D
C
A
E
C
O
A
Payload
R
D
N
R
U
T
C
D
D
C
Data
T
A
1
R
P
5
0
6
Token Packet
Data Packet
Note Always DATA0 PID, no ACK
53
Requests
54
Standard USB Requests
  • Get Status
  • Set Address
  • Get Descriptor
  • Set Descriptor
  • Get Configuration
  • Set Configuration
  • Get Interface
  • Set Interface
  • Set Feature
  • Clear Feature
  • Sync Frame

55
Class Specific Requests
  • Specific to a given class, see the class
    specification for details.
  • Examples
  • The Human Interface Device (HID) Class adds Get
    Report and Set Report requests
  • The Hub Class adds a Get Port Status request

56
Enumeration
  1. The user plugs the device into a USB port.
  2. The hub detects the device.
  3. The host learns of the devices presence from the
    hub (Get Port Status Request)
  4. The hub detects whether a device is Low speed or
    Full Speed.
  5. The hub resets the device.
  6. The host learns if a full speed device supports
    high speed.
  7. The hub establishes a signal path between the
    device and the bus.
  8. The host sends a Get Descriptor Request to learn
    the maximum packet size of the default pipe.
  9. The host assigns an address (Set Address
    Request).
  10. The host learn about a devices abilities (Get
    Descriptor Request).
  11. The host assigns and loads a device driver.
  12. The hosts device driver selects a configuration
    (Set Configuration Request).

57
Operating System Interface
58
Host Controller Driver
  • Fundamental component of Operating System support
    for USB
  • USB host controllers are PCI devices
  • What Does it Do?
  • Handles USB peripheral enumeration
  • Provides USB services for higher level drivers.
    All access to USB peripherals is via these
    services

59
Which OSs support USB
  • Pretty much all of themMore and more every day
  • Windows
  • MacOS
  • Linux
  • Solaris
  • VxWorks

60
Windows 95 OSR2.1
  • Microsofts first attempt to support USB
  • Only available to OEMs
  • Full of bugs
  • No HID support
  • Avoid it!

61
Windows 98/98SE
  • First Microsoft OS with full USB support
  • Class drivers for HID and USB speakers
  • 98SE fixed a few minor bugs, enhanced
    performance, added class drivers for USB modems

62
Windows Me (Millennium)
  • Windows 98 was supposed to be the last OS in the
    Win9x family, but...
  • Follow on to Windows 98
  • Adds performance tweaks, bug fixes, USB audio
    without clicks and pops, USB Mass Storage class
    driver

63
Windows NT 4
  • NO SUPPORT FOR USB PROVIDED BY Microsoft!!!!
  • 3rd party NT 4 USB drivers are available

64
Windows 2000
  • Robust USB Support including USB 2.0 High Speed
  • Shares common driver model (WDM) with Windows 98

65
Windows XP
  • Microsofts unified home/business operating
    system
  • Based on Windows 2000
  • Same basic USB support as Windows 2000 with some
    changes under the hood
  • Supports USB 2.0 High Speed

66
USB Peripheral Drivers
  • Class Drivers
  • Generic driver that supports a certain class of
    device
  • Human Interface Devices (HID), USB hubs,
    speakers, mass storage, modems
  • Note Not all USB Classes that are defined by the
    USB-IF are implemented!!! Check your target OS
    for support. (i.e. I know of no OS that has
    implemented the Firmware Update Class)
  • Custom Drivers
  • Operating Systems often include vendor specific
    drivers that have passed certification (e.g. WHQL)

67
HID Class
  • Built into Windows 98 (or later)
  • No need to write (or install) a driver!
  • Used by mice and keyboards, but can be used for
    custom devices also.
  • Communicates with devices using reports
  • Set Report, Get Report
  • Full Spec at http//www.usb.org
  • You need the spec, and the HID Usage Tables

68
Custom Device Driver Options
  • Look for an Open Source Device Driver
  • http//libusb-win32.sourceforge.net (Windows)
  • http//libusb.sourceforge.net (Linux and others)
  • Use a General Purpose Device Driver
  • Write a Proprietary Custom Device Driver (or
    have it written for you by a consultant)

69
Generic USB Device Drivers (for Windows OSs)
  • Check your silicon manufacturer, they may have a
    general purpose driver you can use with their
    silicon (Cypress and FTDI both do)
  • Thesycon USBIO (http//www.thesycon.de)
  • MCCI Virtual COM port driver (http//www.mcci.com)
  • Jungo (http//www.jungo.com)

70
Writing a Device Driver
  • Requires Specialized Knowledge (WDM and USBDI,
    Kernel Debuggers, etc.)
  • Long Learning Curve (i.e. gt6months)
  • Not very well documented
  • Avoid this if you can!!!

71
Certifications and Logos
  • USB Implementers Forum Certification
  • Needed to use the new USB Certified Logos
  • Join the USB-IF or become a non-member Logo
    Licensee
  • Attend a Plug-Fest or have your device tested
    for compliance by an independent lab
  • Windows Hardware Quality Labs (WHQL)
    Certification
  • Download the HCT and run the applicable tests (if
    a self test is permitted for your device) or have
    your device tested for compliance by an
    independent lab

72
Some Considerations for DSP Applications
73
USB Silicon Options
  • USB Transceiver Only
  • Cypress TX2, Phillips, etc.
  • These are primarily intended for FPGAs that
    implement a Serial Interface Engine (SIE)
  • USB Transciever SIE
  • Cypress SX2, Phillips, etc.
  • This would be a good option for DSPs without USB
    support
  • USB Transciever SIE Microprocessor
  • Cypress EZ-USB, EZ-USB FX, EZ-USB-FX2, Microchip
    USB PIC, DSPs that have USB Support
  • This would also be a good option for DSPs
    without USB support
  • Fixed Function Devices
  • FTDI USB to Serial Converter Chips (This is a
    good option for DSPs)
  • USB to ATAPI Bridge Chips

74
USB Transfer Types
  • Since some applications for Digital Signal
    Processing are Stream operations you might
    think that Isochronous transfers are the most
    appropriate type to use. Sometimes, but not
    alwaysConsider using RAM buffers and a Bulk or
    Interrupt Transfer Type.
  • In lower bandwidth applications, consider the
    FTDI USB to Serial Converter, they are a good
    shortcut if you can use them.

75
USB Resources
76
USB Resources Books
  • Devices
  • Jan Axelson, USB Complete, Second Edition
  • John Hyde, USB Design By Example, Second Edition
  • Windows Drivers (including USB)
  • Walter Oney, Programming the Microsoft Windows
    Driver Model
  • Chris Cant, Writing Windows WDM Device Drivers

77
USB Resources Internet
  • www.usb.org
  • USB Specifications and Class Specifications
  • Draft docs
  • Bulletin board (Developer Forum)
  • Product information incl. chips

78
USB Resources Consultants
  • J. Gordon Electronic Design
  • (763) 786-2405
  • http//www.jged.com
  • (A shameless plug for my employer)

79
Questions
  • ?

80
Optional Topics (if there is time)
  • Optical Isolation and USB
  • USB Tools
  • USB Serial Numbers and Windows XP

81
  • A special thanks to Cypress Semiconductor for
    allowing use some of the included slides.
Write a Comment
User Comments (0)
About PowerShow.com