USB Fundamentals and Applications for Digital Signal Processing

Slides:



Advertisements
Similar presentations
So, you think you need USB On-The-Go?. Agenda Introduction Embedded Host terminology OTG – Electrical – Protocol When to use OTG 2.
Advertisements

Protocol Layer Bottom-up view of the USB protocol Bottom-up view of the USB protocol –Byte/Bit Ordering –SYNC Field –Packet Field Formats PID Field PID.
Universal Serial Bus Grant Heileman. The History of USB In 1994 a collaborative effort to design a standard for peripheral devices was made between Compaq,
PH4705 ET4305 Interface Standards A number of standard digital data interfaces are used in measurement systems to connect instruments and computers for.
May 16, Data Transfer & Framework John Garney Hub Working Group Chair Intel Corporation John Garney Hub Working Group Chair Intel Corporation.
USB: Data Flow Sukesh Shenoy. USB implementation areas.
1 USB 2.0 Specification  General Description  From where we could begin the work  What would be valid to do?  Main doubts  What is OTG (On the Go)
1 USB 2.0 Specification  General Description  What is OTG (On the Go)  From where we could begin the work  What would be valid to do?
USB – An Overview Group 3 Kaushik Nandha Bikram What is the Universal Serial bus (USB)? Is a cable bus that supports data exchange between a host computer.
Chapter 10 Supporting I/O Devices. You Will Learn…  How to install peripheral I/O devices  How to use ports and expansion slots for add- on devices.
Anush Rengarajan Feng Zheng Thomas Madaelil
Dr A Sahu Dept of Comp Sc & Engg. IIT Guwahati. USB Introduction USB Architecture USB Framming USB Drivers URB (USB request Block)
USB 2.0 INTRODUCTION NTUT CSIE 學 生:許家豪 指導教授:柯開維教授.
© 2006 Pearson Education, Upper Saddle River, NJ All Rights Reserved.Brey: The Intel Microprocessors, 7e Chapter 15 PC Standard Bus Interfaces WK.
Introduction to USB. 2 Agenda Introduction to USB LPC23xx Block diagram MCB2300 demo.
Computer Architecture Ports.  There are lots of external devices that you can connect to your computer. All external devices connect to the computer’s.
EE 446 Embedded Architecture. Universal Serial Bus A representative peripheral interface Universal Serial Bus (USB) provides a serial bus standard for.
USB: UNIVERSAL SERIAL BUS Joe Kaewbaidhoon Alex Motalleb Vishal Joshi Prepared for EECS 373 University of Michigan, Ann Arbor 1.
Choosing (and Implementing) the Correct USB Connectivity for Your Embedded System Steve Wetterling, MSEE = Pat Barrett,
18 - Winter 2003 EE EE 766 Computer Interfacing and Protocols 1 USB (Universal Serial Bus) Need for “Plug and Play” capability for PC peripherals outside.
- Madhav Singh-.  This presentation describe the basics of USB device and Host side i.e. descriptors, endpoints, device controller, root hub etc.  It.
USB Josh Rickmar John Marcoux. Topics Purpose and Goals History Bus Design Power Differential Signaling Connectors Changes in USB 3.0.
Zach Little Program Manager Microsoft Corporation.
Universal Serial Bus Evann Seary Mike Kezele. Content Overview History of USB Overview Future of USB USB 3.0 WUSB.
Peripheral Buses COMP Jamie Curtis. PC Buses ISA is the first generation bus 8 bit on IBM XT 16 bit on 286 or above (16MB/s) Extended through.
May 8, The EASY Way to Create I/O Devices John Hyde Intel Corporation intel.com.
May 9, USB 2.0 Opportunities in Retail Dan Clements Consumer Products and Technology Manager Circuit City Stores Inc.
USART Communication using the RS standard ETEC6416.
May 8, USB 2.0 Support in Windows ® Operating Systems Fred Bhesania Microsoft.
May 9, USB 2.0 High Bandwidth Peripheral Design Challenges Robert Shaw Cypress Semiconductor Robert Shaw Cypress Semiconductor
May 17, USB2.0 Host Controller John S. Howard Staff Engineer Intel Architecture Labs Intel Corporation.
USB host for web camera connection
Embedded Systems Architecture Class Project USB 2.0 Function Controller December 12, 2008 Brandon Wolfe, Ben Marrou, Daniel Chan.
Copyright 2003 Ryan Rangel. All rights reserved. Got USB? The questions to ask when adding USB Host to your Embedded System. By Ryan Rangel
Introduction Electrical Considerations Data Transfer Synchronization Bus Arbitration VME Bus Local Buses PCI Bus PCI Bus Variants Serial Buses 11/06/20141Input/Output.
XP Practical PC, 3e Chapter 17 1 Upgrading and Expanding your PC.
Peripheral Busses COMP Jamie Curtis. PC Busses ISA is the first generation bus 8 bit on IBM XT 16 bit on 286 or above (16MB/s) Extended through.
October 10, USB OnTheGo Ed Beeman Hewlett Packard.
Introduction to USB Development. USB Development Introduction Technical Overview USB in Embedded Systems Recent Developments Extensions to USB USB as.
Embedding USB Lane Hauck Cypress Semiconductor. Embedded Systems Conference, March 2002 Embedding USB 1 Agenda  Why USB?  USB Advantages  USB Basics.
Introduction to USB © 2010 Renesas Electronics America Inc. All rights reserved.
USB host for web camera connection
Using the PSoC USB March 17, 2012 Lloyd Moore, President/Owner.
USB Link Layer Protocol
ECE 371 – UNIT 20 Universal Serial Bus (USB). References 1. Universal Serial Bus Specification, Revision 2.0. This specification is available on the World.
May 9, USB On-The-Go Kosta Koeman Cypress Semiconductor Kosta Koeman Cypress Semiconductor.
October 10, USB 2.0 Peripheral Design Options Dave Podsiadlo Product Marketing Manager Cypress Semiconductor Single-Chip, Internal.
Universal Serial Bus - USB Historical Perspective The Universal Serial Bus was originally developed in 1995 by a group of industry.
Basic LAN techniques IN common with all other computer based systems networks require both HARDWARE and SOFTWARE to function. Networks are often explained.
CMPF124:Basics Skills for Knowledge Workers Introduction to Windows OS.
BR 6/001 Universal Serial Bus Universal Serial Bus is a new synchronous serial protocol for low to medium speed data transmission Full speed signaling.
Computer Maintenance Copyright © Texas Education Agency, All rights reserved. 1 FireWire Ports.
Chapter 3 System Configuration The Complete A+ Guide to PC Repair 5/e Update.
Data Communications (E&T2760): USB and IEEE USB and IEEE 1394.
Team 4 Project 1 Presentation Mapping Parallel Ports to LPT’s & USB Host Controller Interfaces Tom, Jen, Curtis, Ashley, Scott.
Intel Open Source Technology Center Lu Baolu 2015/09
Computer Maintenance UNT in partnership with TEA, Copyright ©. All rights reserved1 FireWire Ports.
بسم الله الرحمن الرحيم MEMORY AND I/O.
SEPTEMBER 8, 2015 Computer Hardware 1-1. HARDWARE TERMS CPU — Central Processing Unit RAM — Random-Access Memory  “random-access” means the CPU can read.
USB Universal Serial Bus. University of Tehran 2.
USB The topics covered, in order, are USB background
USB PHYISICAL LAYER PROTOCOL ENGINE LAYER APPLICATION LAYER
USB Universal Serial Bus
USB- Universal Serial Bus
USB : Universal Serial Bus
Greg Bell Business Development Mgr Industrial & Security Markets
I/O BUSES.
Universal Serial Bus (USB)
Presentation transcript:

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 Considerations for DSP Applications USB Resources

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

USB Founding Companies Compaq Intel Microsoft NEC IBM Lucent DEC HP Northern Telecom Philips

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

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

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

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)

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)

USB Basics

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

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

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

USB Components

Components of USB Systems USB Host Controllers USB Hubs USB Cables USB Peripheral Devices

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)

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

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

USB Devices Devices can be: Devices are “self describing” 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

Compound and Composite Devices 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

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)

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

USB Transfer Speeds USB 1.1: USB 2.0 Low speed is 1.5Mb/s Full speed is 12Mb/s USB 2.0 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!

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)

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

USB Descriptors Device Descriptors Configuration 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

The USB Onion OS Interface Requests Transfers Packets Signaling

Signaling

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

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

Packets

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

Packet IDs (PIDS) Token Packets Data Packets Handshake 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)

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.

Packets: Identified by PIDS

Three Packet Types

Transfers

USB Transfer Types Bulk Isochronous Control Interrupt 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

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.

... Anatomy of a USB Frame 12MHz = 1.5MB/s or 1500 bytes/ms 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

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

Bulk IN Transfer (a) good good—note the data toggle H D H H D H C D C A E C A E C A Payload R A A R A I D N R I D N R Payload T C C T C C N D D C Data N D D C Data A 1 K A 1 K R P 5 R P 5 1 6 6 Token Packet Data Packet H/S Pkt Token Packet Data Packet H/S Pkt good good—note the data toggle “H” means sent by the host, “D” means sent by the device.

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

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

Bulk IN Transfer (d) H D H (D) device has a problem 5 R P 5 L Token Packet H/S Pkt Token Packet device has a problem device detects token error or does not respond

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

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

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

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

Control Transfer SETUP DATA HANDSHAKE Control operation 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 6 Token Packet Data Packet H/S Pkt H D H D C A E C A R A DATA I D N R Payload T C C N D D C Data A 1 K R P 5 1 6 Token Packet Data Packet H/S Pkt H H D H H D D C D C A E C A E C O A R N O A R A D N R D N R HANDSHAKE U T C A U T C C D D C D D C T A 1 K T A 1 K R P 5 R P 5 1 6 1 6 Token Packet Data Pkt H/S Pkt Token Packet Data Pkt H/S Pkt Control operation Control operation not completed completed

Interrupt IN & OUT H D H H D H D C D C A E C A E C A Payload R A A R A I D N R I D N R Payload T C C T C C N D D C Data N D D C Data A 1 K A 1 K R P 5 R P 5 1 6 6 Token Packet Data Packet H/S Pkt Token Packet Data Packet H/S Pkt good good—note the data toggle H H D H H D D C D C A E C A E C O A R A O Payload A R A D N R D N R Payload U T C C U T C C D D C Data D D C Data T A 1 K T A 1 K R P 5 R P 5 6 1 6 Token Packet Data Packet H/S Pkt Token Packet Data Packet H/S Pkt good good—note the data toggle Interrupt transfers are indistinguishable from BULK transfers. They occur at most once per frame.

Isochronous Transfer H D Payload Data H H Payload Data 1 R P 5 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 6 Token Packet Data Packet Note: Always DATA0 PID, no ACK

Requests

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

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

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

Operating System Interface

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

Which OS’s support USB Pretty much all of them…More and more every day Windows MacOS Linux Solaris VxWorks

Windows 95 OSR2.1 Microsoft’s first attempt to support USB Only available to OEMs Full of bugs No HID support Avoid it!

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

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

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

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

Windows XP Microsoft’s 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

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)

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

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)

Generic USB Device Drivers (for Windows OS’s) 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)

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

Certifications and Logo’s 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

Some Considerations for DSP Applications

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

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 always…Consider 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.

USB Resources

USB Resources: Books Devices Windows Drivers (including USB) 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

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

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

Questions ?

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

A special thanks to Cypress Semiconductor for allowing use some of the included slides.