Agenda
 USB Specifications
 USB Basics
 Components
 Onion introduction
 Signaling
 Packets
 Transfers
 Requests
 Operating System Interface
 USB Resources
USB in 1996:
Initially introduced as an
additional connector for new
applications.
USB
PC Connectivity Vision
Universal Serial Bus
Keyboard
Mouse
Serial
Port
Parallel
Port
SCSI
Port
Sound/Game
Ports
Graphics
Port
LAN Modem
Graphics
Port
LAN
USB Future:
The PC evolves into a simpler,
easier to use appliance. USB USB USB
Telephony, Modem, Keyboard, Mouse,Game ports, Serial
ports Device,Digital Audio, Printer, Scanner
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.
USB Founding Companies
USB 1.0 USB 2.0
Compaq Compaq
Intel Intel
Microsoft Microsoft
NEC 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
Hardware Overview...
 Topology
 Tiered Star (Distributes Connectivity Points)
 127 logical connections (upto 5 meters per segment)
 Upto 6 tiers
 ...
Universal Serial Bus
USB
Monitor
SpeakerPen Mouse
Kbd
Mic Phone
PC
HUBHUB
HOST/HUB
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
Camera
Exchange songsMP3 playerMP3 player
Exchange Contact info
Print call info
Upload pictures to web
Cell Phone
Printer
Camera
Cell
Phone
Synchronize phone list, meetings
Upload pictures
Download songs
Cell Phone
Camera
MP3 player
PC
ApplicationsPeripheralHost
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)
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 127 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:
 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
 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
 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
USB USB
“Tiered Star”
Hub
USB USB USB USB
PC
USB USB
Device Device Device
Device Device
Host
Root Hub
Device
DeviceDevice
Device
HUB
Device
HUB
Hot Plug and Play feature
 Device attachment on Hub port
 Device is detected
 Downstream port is enabled
 Configuration of Device by Host
Device
USB Configuration Process
Enumeration
 Host Software is responsible for Device
configuration
Host
Root Hub
Device
DeviceDevice
Device Device
HUB
Device
HUB
Universal Serial Bus, details
Process of Configuration is
accomplished via Control Transfers
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!
Device Abstractions...
- Device
 Common features and interactions of devices
 Typically controlled by system software
- Function
 Highest level I/F between device driver and function
- End Point
 Ultimate data source or sink at the device end
 Each endpoint is unidirectional and has a transfer
type associated with it‘s Peripheral
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
 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
OS Interface
Requests
Transfers
The USB Onion
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)
Serial
Interface
Engine
(SIE)
D+
Bytes
USB
Transceiver
D+
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
 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
D
A
T
A
0
D
A
T
A
1
I
N
O
U
T
A
C
K
N
A
K
S
O
F
S
E
T
U
P
S
T
A
L
L
P
R
E
Three Packet Types
O
U
T
A
D
D
R
E
N
D
P
C
R
C
5
Token Packet
H
D
A
T
A
0
Payload
Data
C
R
C
1
6
Data Packet
H
A
C
K
H/S Pkt
D

Advance of usb

  • 2.
    Agenda  USB Specifications USB Basics  Components  Onion introduction  Signaling  Packets  Transfers  Requests  Operating System Interface  USB Resources
  • 3.
    USB in 1996: Initiallyintroduced as an additional connector for new applications. USB PC Connectivity Vision Universal Serial Bus Keyboard Mouse Serial Port Parallel Port SCSI Port Sound/Game Ports Graphics Port LAN Modem Graphics Port LAN USB Future: The PC evolves into a simpler, easier to use appliance. USB USB USB Telephony, Modem, Keyboard, Mouse,Game ports, Serial ports Device,Digital Audio, Printer, Scanner
  • 4.
    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.
  • 5.
    USB Founding Companies USB1.0 USB 2.0 Compaq Compaq Intel Intel Microsoft Microsoft NEC NEC IBM Lucent DEC HP Northern Telecom Philips
  • 6.
    USB 2.0 ina 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
  • 7.
    Hardware Overview...  Topology Tiered Star (Distributes Connectivity Points)  127 logical connections (upto 5 meters per segment)  Upto 6 tiers  ... Universal Serial Bus USB Monitor SpeakerPen Mouse Kbd Mic Phone PC HUBHUB HOST/HUB
  • 8.
    USB On-the-Go (USBOTG)  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
  • 9.
    USB OTG ExampleApplications Source: Beeman: www.usbonthego.com Exchange pictures Upload pictures to web Print pictures Camera Cell Phone Printer Camera Exchange songsMP3 playerMP3 player Exchange Contact info Print call info Upload pictures to web Cell Phone Printer Camera Cell Phone Synchronize phone list, meetings Upload pictures Download songs Cell Phone Camera MP3 player PC ApplicationsPeripheralHost
  • 10.
    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)
  • 11.
  • 12.
    USB Basics USBis 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 127 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
  • 13.
    USB is notSimple  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
  • 14.
    USB Projects CanRequire a Significant Code Development Effort  Device side  USB houskeeping firmware  Application firmware  Host side  Driver (maybe)  Application software
  • 15.
  • 16.
    Components of USBSystems USB Host Controllers USB Hubs USB Cables USB Peripheral Devices
  • 17.
    USB Host Controllers Residein 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)
  • 18.
    USB Cables  Transportboth 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
  • 19.
    USB Hubs  Ahub 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
  • 20.
    USB Devices Devices canbe:  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
  • 21.
    Compound and CompositeDevices  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
  • 22.
    USB is aPolled 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)
  • 23.
    USB Topology PC USB USB “TieredStar” Hub USB USB USB USB PC USB USB Device Device Device Device Device
  • 24.
    Host Root Hub Device DeviceDevice Device HUB Device HUB Hot Plugand Play feature  Device attachment on Hub port  Device is detected  Downstream port is enabled  Configuration of Device by Host Device USB Configuration Process Enumeration  Host Software is responsible for Device configuration Host Root Hub Device DeviceDevice Device Device HUB Device HUB Universal Serial Bus, details Process of Configuration is accomplished via Control Transfers
  • 25.
    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!
  • 26.
    Device Abstractions... - Device Common features and interactions of devices  Typically controlled by system software - Function  Highest level I/F between device driver and function - End Point  Ultimate data source or sink at the device end  Each endpoint is unidirectional and has a transfer type associated with it‘s Peripheral
  • 27.
    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)
  • 28.
    Pipes  An abstractionused 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
  • 29.
    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
  • 30.
  • 31.
  • 32.
    USB Signaling USB utilizesdifferential 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).
  • 33.
    The SIE (Serial InterfaceEngine) Serial Interface Engine (SIE) D+ Bytes USB Transceiver D+
  • 34.
  • 35.
    USB Packets  USBdata travels in packets  Identified by “Packet ID” (PID)  Token packet tells what’s coming  Data packets deliver bytes  Handshake packets report success or otherwise
  • 36.
    Packet IDs (PIDS) TokenPackets  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)
  • 37.
    Handshaking Packets  Usedto 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.
  • 38.
    Packets: Identified byPIDS D A T A 0 D A T A 1 I N O U T A C K N A K S O F S E T U P S T A L L P R E
  • 39.
    Three Packet Types O U T A D D R E N D P C R C 5 TokenPacket H D A T A 0 Payload Data C R C 1 6 Data Packet H A C K H/S Pkt D