Usb fundamentals and applications for digital signal processing
This presentation is the property of its rightful owner.
Sponsored Links
1 / 81

USB Fundamentals and Applications for Digital Signal Processing PowerPoint PPT Presentation


  • 156 Views
  • Uploaded on
  • Presentation posted in: General

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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Usb fundamentals and applications for digital signal processing

USB Fundamentals and Applications for Digital Signal Processing

Greg Burk

J. Gordon Electronic Design

[email protected]

7/30/2004


Agenda

Agenda

  • USB Specifications

  • USB Basics

  • Components

  • Onion introduction

    • Signaling

    • Packets

    • Transfers

    • Requests

    • Operating System Interface

  • Considerations for DSP Applications

  • USB Resources


Usb specifications

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

USB Founding Companies


Usb 2 0 in a nutshell

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

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

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


Usb otg details

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

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 basics1

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

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

USB Projects Can Require a Significant Code Development Effort

  • Device side

    • USB houskeeping firmware

    • Application firmware

  • Host side

    • Driver (maybe)

    • Application software


Usb components

USB Components


Components of usb systems

Components of USB Systems

  • USB Host Controllers

  • USB Hubs

  • USB Cables

  • USB Peripheral Devices


Usb host controllers

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

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

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

    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


  • Compound and composite devices

    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


    Usb is a polled bus

    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

    USB Topology

    PC

    PC

    USB

    USB

    USB

    USB

    Hub

    Device

    Device

    Device

    USB

    USB

    USB

    USB

    Device

    Device

    “Tiered Star”


    Usb transfer speeds

    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!


    Endpoints

    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

    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

    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


  • The usb onion

    OS Interface

    Requests

    Transfers

    Packets

    Signaling

    The USB Onion


    Signaling

    Signaling


    Usb 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

    The SIE(Serial Interface Engine)

    Serial

    D+

    Interface

    Bytes

    Engine

    D+

    (SIE)

    USB

    Transceiver


    Packets

    Packets


    Usb 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

    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)


  • Handshaking packets

    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

    Packets: Identified by PIDS


    Three packet types

    Three Packet Types


    Transfers

    Transfers


    Usb transfer types

    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


    Usb transfers

    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

    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


    Packet sizes

    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


    Bulk in transfer a

    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


    Bulk in transfer b

    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


    Bulk in transfer c

    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


    Bulk in transfer d

    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


    Bulk out transfer a

    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


    Bulk out transfer b

    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


    Bulk out transfer c

    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


    Bulk out transfer d

    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


    Control transfer

    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


    Interrupt in out

    Interrupt IN & OUT

    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

    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

    Interrupt transfers are indistinguishable from BULK transfers. They occur at most once per frame.


    Isochronous transfer

    Isochronous Transfer

    H

    D

    D

    C

    A

    E

    C

    Payload

    A

    R

    I

    D

    N

    R

    T

    C

    Data

    N

    D

    D

    C

    A

    1

    R

    P

    5

    0

    6

    Token Packet

    Data Packet

    H

    H

    D

    C

    A

    E

    C

    Payload

    O

    A

    R

    D

    N

    R

    U

    T

    C

    Data

    D

    D

    C

    T

    A

    1

    R

    P

    5

    0

    6

    Token Packet

    Data Packet

    Note: Always DATA0 PID, no ACK


    Requests

    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

    Standard USB Requests


    Class specific requests

    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

    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

    Operating System Interface


    Host controller driver

    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

    Which OS’s support USB

    • Pretty much all of them…More and more every day

      • Windows

      • MacOS

      • Linux

      • Solaris

      • VxWorks


    Windows 95 osr2 1

    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

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

    Windows NT 4

    • NO SUPPORT FOR USB PROVIDED BY Microsoft!!!!

    • 3rd party NT 4 USB drivers are available


    Windows 2000

    Windows 2000

    • Robust USB Support including USB 2.0 High Speed

    • Shares common driver model (WDM) with Windows 98


    Windows xp

    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

    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

    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

    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

    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

    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

    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

    Some Considerations for DSP Applications


    Usb silicon options

    USB Silicon Options

    • USB Transceiver Only

      • 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 types1

    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


    Usb resources books

    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


    Usb resources internet

    USB Resources: Internet

    • www.usb.org

      • USB Specifications and Class Specifications

      • Draft docs

      • Bulletin board (Developer Forum)

      • Product information incl. chips


    Usb resources consultants

    USB Resources: Consultants

    • J. Gordon Electronic Design

    • (763) 786-2405

    • http://www.jged.com

    • (A shameless plug for my employer)


    Questions

    Questions

    • ?


    Optional topics if there is time

    Optional Topics (if there is time)

    • Optical Isolation and USB

    • USB Tools

    • USB Serial Numbers and Windows XP


    Usb fundamentals and applications for digital signal processing

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


  • Login