62
Wireless USB Wire Adapter John Keys Software Architect Intel Corporation

Wireless USB Wire Adapter

Embed Size (px)

Citation preview

Page 1: Wireless USB Wire Adapter

Wireless USB Wire AdapterJohn Keys

Software ArchitectIntel Corporation

Page 2: Wireless USB Wire Adapter

2

AgendaAgenda

• Overview• Software-Hardware Overview• Data Delivery Mechanism: RPipe• Hardware Architecture• Wire Adapter Device Class• Software Architecture• Summary

Page 3: Wireless USB Wire Adapter

3

Purpose of Wire AdapterPurpose of Wire Adapter

• To provide a USB to Wireless USB bridge• Host side wireless extension

• To easily convert wired USB devicesto wireless

• Device side wireless extension

• To be an enabler of Wireless USB technology inheriting the popularity of the most successful interface in the world

Page 4: Wireless USB Wire Adapter

4

Two Types of Wire AdapterTwo Types of Wire Adapter

Host Wire Adapter &Device Wire Adapter

USB2.0USB2.0

Device Wire Adapter: DWAHost Wire Adapter: DWA

Page 5: Wireless USB Wire Adapter

5

AgendaAgenda

• Overview• Software-Hardware - Overview• Data Delivery Mechanism: RPipe• Hardware Architecture• Software-Hardware Interface• Wire Adapter Device Class• Summary

Page 6: Wireless USB Wire Adapter

6

Topology Topology

Driver StackTopology

USB HostUSB HostUSB Host

HWAHWAHWAUSB2

DWADWADWA DWADWADWA

USBUSBUSB

USBUSBUSB

WUSBNative Device

WUSBWUSBNative DeviceNative Device

USB HostUSB HostUSB Host

HWAHWAHWA

DWADWADWA DWADWADWA WUSBNative Device

WUSBWUSBNative DeviceNative Device

USBUSBUSB USBUSBUSB USBUSBUSB USBUSBUSB

USBUSB

USBUSB

WirelessUSB

USBDIUSBDI

Existing USB Device Drivers

Page 7: Wireless USB Wire Adapter

7

Data Transfer Overview: USBData Transfer Overview: USB

Hardware Driver Stack

64KB64KB

TransferredData

Data toTransferPipes

Virtual ConnectionUSB Device

DriverUSB DeviceUSB Device

DriverDriverUSBUSB

USBDIUSBDI

USB HostUSB HostUSB Host

USB2

USB HostDriver

USB HostUSB HostDriverDriver64KB

USB Device Max Packet Size

Page 8: Wireless USB Wire Adapter

8

Data Transfer Overview: WUSBData Transfer Overview: WUSBHardware Driver Stack

USB HostUSB HostUSB Host

HWAHWAHWA

DWADWADWA

USB HostUSB HostUSB Host

HWAHWAHWA

DWADWADWA

USBUSB

USBDIUSBDI

64KB

32KB 32KB

32KB 32KB

32KB 32KB

64KB

TransferredData

Wireless USBWireless USB

Data toTransferPipes

Virtual Connection USB DeviceUSB DeviceDriverDriver

USB2USB2

USB2USB2

HWA Max Packet Size

DWA Max Packet Size

USB Device Max Packet Size

Page 9: Wireless USB Wire Adapter

9

AgendaAgenda

• Overview• Software-Hardware Overview• Data Delivery Mechanism: RPipe• Hardware Architecture• Wire Adapter Device Class• Software Architecture• Summary

Page 10: Wireless USB Wire Adapter

10

Basic Theory of Data DeliveryBasic Theory of Data Delivery

WirelessWirelessUSBUSBHostHost

< Wireless USB >Dev ID = 02hEP # = 3hDirection = OUTTransfer Type=BulkMPS = 2KBSpeed = 480MbpsBurst Size = 4

DataData

DWADWA USBUSBDeviceDevice

Let’s assume this Host is like the current USB Host. In this case, the driver knows all the transfer information and sets registers with appropriate values to transfer the data to the DWA.

Page 11: Wireless USB Wire Adapter

11

Basic Theory of Data DeliveryBasic Theory of Data Delivery

< Wireless USB >Dev ID = 02hEP # = 3hDirection = OUTTransfer Type=BulkMPS = 2KBSpeed = 480MbpsBurst Size = 4

DataData

< USB >Dev Address = 01hEP # = 4hDirection = OUTTransfer Type=BulkMPS = 512BSpeed = HS

WirelessWirelessUSBUSBHostHost

Let’s add all the transfer information on the top of the data packet.

< USB >Dev Address = 01hEP # = 4hDirection = OUTTransfer Type=BulkMPS = 512BSpeed = HS

Same Information

DWADWA USBUSBDeviceDevice

Page 12: Wireless USB Wire Adapter

12

Basic Theory of Data DeliveryBasic Theory of Data Delivery

WirelessWirelessUSBUSBHostHost

< Wireless USB >Dev ID = 02hEP # = 3hDirection = OUTTransfer Type=BulkMPS = 2KBSpeed = 480MbpsBurst Size = 4

DataData

< USB >Dev Address = 01hEP # = 4hDirection = OUTTransfer Type=BulkMPS = 512BSpeed = HS

DWADWA USBUSBDeviceDevice

DWA retrieves the transfer DWA retrieves the transfer information from the data information from the data packet and uses it to packet and uses it to initiate the transfer.initiate the transfer.

Page 13: Wireless USB Wire Adapter

13

Basic Theory of Data DeliveryBasic Theory of Data Delivery

WirelessWirelessUSBUSBHostHost

DataData

DWADWA USBUSBDeviceDevice

Page 14: Wireless USB Wire Adapter

14

Local Database of Transfer InformationLocal Database of Transfer Information

WirelessWirelessUSBUSBHostHost

ID Dev Addr, EP#, Dir, T.Type, MPS, Speed

0 01h, 0h, CTL, 512B, HS

1 01h, 1h, IN, INT, 64B, HS

2 01h, 4h, OUT, BLK, 512B, HS

3 03h, 0h, CTL, 64, FS

4 03h, 3h, IN, ISO, 1023B, FS

DWADWA USBUSBDeviceDevice

DataData

< Wireless USB >< Wireless USB >Dev ID = 02hDev ID = 02hEP # = 3hEP # = 3hDirection = OUTDirection = OUTTransfer Type=BulkTransfer Type=BulkMPS = 2KBMPS = 2KBSpeed = 480MbpsSpeed = 480MbpsBurst Size = 4Burst Size = 4

ID=2ID=2

Data Packet to DWA only has to have Transfer Information ID

Page 15: Wireless USB Wire Adapter

15

Local Database of Transfer InformationLocal Database of Transfer Information

WirelessWirelessUSBUSBHostHost

ID Dev Addr, EP#, Dir, T.Type, MPS, Speed

0 01h, 0h, CTL, 512B, HS

1 01h, 1h, IN, INT, 64B, HS

2 01h, 4h, OUT, BLK, 512B, HS

3 03h, 0h, CTL, 64, FS

4 03h, 3h, IN, ISO, 1023B, FS

DWADWA USBUSBDeviceDevice

TRTR Transfer Request Packet with RPipe Index

DataData

DataData

DataData

DataData

Data Packet in MPS on Wireless

One Transfer

Each transfer information set is called

“Remote Pipe”, or “RPipe”

Page 16: Wireless USB Wire Adapter

16

Data Delivery SummaryData Delivery SummaryTRTR

Data

Host Wire Adapter &Device Wire Adapter

USB2.0USB2.0

Device Wire Adapter: DWAHost Wire Adapter: DWA

Page 17: Wireless USB Wire Adapter

17

Data Delivery Detail: Bulk, ControlData Delivery Detail: Bulk, Control

WirelessWirelessUSBUSBHostHost

DWADWA USBUSBDeviceDevice

DataData

TRTR

DataData

DataData

DataData

TRTR

DataData

DataData

Step 0: RPipe Setup

Step 1: Send Data

Step 2: Send Data

Step 3: Send Data

Step 4: Send Data

Step 5: Send Data

Step 6: Send Data

Step 7: Send Data

Step 8: Send DataDataDataDataDataDataDataDataData

DataDataDataDataDataDataDataData

This Period varies

StepNumber

Time

0 1 2 3 4 1 2 3 4

Execution Timing

5 6 7 8 5 6 78Upstream BUS

Downstream BUS

Page 18: Wireless USB Wire Adapter

18

Data Delivery Detail: ISOData Delivery Detail: ISO

WirelessWirelessUSBUSBHostHost

DWADWA USBUSBDeviceDevice

Step 0: RPipe Setup

Step 1: Send Data

Step 2: Send Data

Step 3: Send Data

Step 4: Send Data

Step 5: Send Data

Step 6: Send Data

Step 7: Send DataDataDataDataDataDataDataDataDataDataData

DataData

DataData

DataData

DataData

DataData DataDataDataDataDataDataDataData

StepNumber

Time

0 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3

Execution Timing

4 5 6 7 4 5 6 7 4 5 6 7 4 5 6 7

1 Upstream BUS Service Period

Upstream BUS

Downstream BUS

1 Downstream BUS Service Period

Page 19: Wireless USB Wire Adapter

19

AgendaAgenda

• Overview• Software-Hardware Overview• Data Delivery Mechanism: RPipe• Hardware Architecture• Wire Adapter Device Class• Software Architecture• Summary

Page 20: Wireless USB Wire Adapter

20

Hardware ArchitectureHardware Architecture

““MediaMedia””DeviceDevice

ControllerController

““HostHost””TransactionTransaction

EngineEngine

Port Port CtlCtl/Status/Status(DWA Only)(DWA Only)

DeviceDeviceCtlCtl/Status/Status

Port

Remote PipesRemote Pipes

PortPortsPorts

(DWA Only)(DWA Only)

Page 21: Wireless USB Wire Adapter

21

Media Device ControllerMedia Device Controller

• Handles upstream communicationswith host

• Choice of upstream media type is dependent on the of type of WA

• HWA: USB 2.0 Device Controller

• DWA: Wireless USB Device Controller

• Processes Wire Adapter Class Specific requests

• Handles USB / Wireless USB Standard requests

• Usually implemented as Endpoint Controller

““MediaMedia””DeviceDevice

ControllerController

““HostHost””TransactionTransaction

EngineEngine

Port Port CtlCtl/Status/Status(DWA Only)(DWA Only)

DeviceDeviceCtlCtl/Status/Status

Port

Remote PipesRemote Pipes

PortPortsPorts(DWA Only)(DWA Only)

Page 22: Wireless USB Wire Adapter

22

Device Control and StatusDevice Control and Status

• Provides Device Control and Status Information

• Controlled using standard and class specific USB command

• Standard requests• Get Device Descriptor• Set Address

• Class Specific requests• Get Wire Adapter Status• Set/Clear Wire Adapter

Feature

““MediaMedia””DeviceDevice

ControllerController

““HostHost””TransactionTransaction

EngineEngine

Port Port CtlCtl/Status/Status(DWA Only)(DWA Only)

DeviceDeviceCtlCtl/Status/Status

Port

Remote PipesRemote Pipes

PortPortsPorts(DWA Only)(DWA Only)

Page 23: Wireless USB Wire Adapter

23

Port Control and StatusPort Control and Status

• Controlled using class specific WUSB requests

• Class Specific Root Port requests

• Reset• Enable/Disable• Suspend/Resume

• Ports are only present on DWAs

• Similar to Port Control of wired USB 2.0 Hub

• Controls the physical downstream ports on a Device Wire Adapter

““MediaMedia””DeviceDevice

ControllerController

““HostHost””TransactionTransaction

EngineEngine

Port Port CtlCtl/Status/Status(DWA Only)(DWA Only)

DeviceDeviceCtlCtl/Status/Status

Port

Remote PipesRemote Pipes

PortPortsPorts(DWA Only)(DWA Only)

Page 24: Wireless USB Wire Adapter

24

Remote Pipe RPipeRemote Pipe RPipe

• Resource that is usedto manage the data flow between host software and an endpoint onthe device

• The Information that describes the target endpoint and the associated buffer(s) is located in an RPipe Descriptor

• Examples of fields in RPipeDescriptor:

• Endpoint Context (Device address, Endpoint number, MPS, etc)

• Amount of buffer allocated to RPipe

• Number of simultaneous requests• Type of transfer

““MediaMedia””DeviceDevice

ControllerController

““HostHost””TransactionTransaction

EngineEngine

Port Port CtlCtl/Status/Status(DWA Only)(DWA Only)

DeviceDeviceCtlCtl/Status/Status

Port

Remote PipesRemote Pipes

PortPortsPorts(DWA Only)(DWA Only)

Page 25: Wireless USB Wire Adapter

25

Remote PipeRpipe (cont.)Remote PipeRpipe (cont.)

• RPipes may bere-configured

• Needed when Numberof Endpoints > Numberof RPipes

• Get RPipe & Save• Set RPipe w/New• Restore w/Set RPipe

w/Old Descriptor

• Number of RPipesis implementation dependent

• Minimum 1, Maximum 3937• Recommended – 2X number

of supported devs

• Affects Performance• Dedicated DWAs need

minimal number of RPipes

““MediaMedia””DeviceDevice

ControllerController

““HostHost””TransactionTransaction

EngineEngine

Port Port CtlCtl/Status/Status(DWA Only)(DWA Only)

DeviceDeviceCtlCtl/Status/Status

Port

Remote PipesRemote Pipes

PortPortsPorts(DWA Only)(DWA Only)

Page 26: Wireless USB Wire Adapter

26

Remote PipeRPipe (cont.)Remote PipeRPipe (cont.)

• Accept transfer requests and data from host

• OUT: Transfer Request + Data to send to Device

• IN: Transfer Request• Convert transfer

requests to individual transactions

• Pass transactions to Host Transaction Engine

• Return transfer status and data to host

• OUT: Transfer Result

• IN: Transfer Result + Data received from Device

““MediaMedia””DeviceDevice

ControllerController

““HostHost””TransactionTransaction

EngineEngine

Port Port CtlCtl/Status/Status(DWA Only)(DWA Only)

DeviceDeviceCtlCtl/Status/Status

Port

Remote PipesRemote Pipes

PortPortsPorts(DWA Only)(DWA Only)

Page 27: Wireless USB Wire Adapter

27

Host Transaction EngineHost Transaction Engine

• Executes USB/WUSB transactions to downstream connected devices

• USB/WUSB host controller

• Full/Subset of features supported

• Does not interpret the data

• RPipes provide the work to be done

• Data• Control Information

““MediaMedia””DeviceDevice

ControllerController

““HostHost””TransactionTransaction

EngineEngine

Port Port CtlCtl/Status/Status(DWA Only)(DWA Only)

DeviceDeviceCtlCtl/Status/Status

Port

Remote PipesRemote Pipes

PortPortsPorts(DWA Only)(DWA Only)

Page 28: Wireless USB Wire Adapter

28

Host Transaction Engine(cont.)Host Transaction Engine(cont.)

• Priority service to Periodic RPipes

• Isochronous, Interrupt

• Round-Robin service to Asynchronous RPipes

• Bulk, Control

• SOF and Token Generation (DWA)

• MMC and WXCTA Generation (HWA)

• Execute RPipe-prepared transactions

• Prioritize RPipe by transfer types ““MediaMedia””

DeviceDeviceControllerController

““HostHost””TransactionTransaction

EngineEngine

Port Port CtlCtl/Status/Status(DWA Only)(DWA Only)

DeviceDeviceCtlCtl/Status/Status

Port

Remote PipesRemote Pipes

PortPortsPorts(DWA Only)(DWA Only)

Page 29: Wireless USB Wire Adapter

29

Synchronization TimingSynchronization Timing

Bus B

Bus C SOF SOF SOF

MMC

X microseconds

SOF

PC or

DWA

DWADWA USB 2.0 USB 2.0 DeviceDevice

Wireless USB USB .2.0

Bus B Bus C

Bus Timings

= N FrameNumber = N FrameNumber = N+1 FrameNumber = N+1

DriftSynchronizeCounter (DWA)

MMC

Y microseconds

Drift

All clocks under an HWA are synchronized.- Device Wire Adapters- Wireless USB Devices

Frame counter 125 usCounter

17 bit 8 bit

FrameNumber

SynchronizeCounter(DWA)

Page 30: Wireless USB Wire Adapter

30

Architecture SummaryArchitecture Summary

• Wire Adapters expose a USB Interface• Host Wire Adapter is a USB 2.0 device• Device Wire Adapter is a Wireless USB device

• Scalability• No data rate relationships between layers• Specification allows vendors to develop both complex wire

adapters as well as simple dedicated wire adapters• Cost sensitivity

• Managed within the USB device framework• Buffer oriented data delivery model• DWAs synchronize their downstream USB clock to the

upstream Wireless USB clock

Page 31: Wireless USB Wire Adapter

31

AgendaAgenda

• Overview• Software-Hardware Overview• Data Delivery Mechanism: RPipe• Hardware Architecture• Wire Adapter Device Class• Software Architecture• Summary

Page 32: Wireless USB Wire Adapter

32

Wire Adapter Device ClassWire Adapter Device Class

• The class definition describes the USB interface to a WA• Descriptors (Standard and Class specific)

• Describes Wire Adapter data delivery model• Applies to both Host and Device Wire Adapters

Dev

ice

Con

trol

Wire

Ada

pter

(WA)

Func

tion

UW

BR

adio

Con

tr ol

UWB Radio

Isoc

hSt

ream

ing

USB 2.0 Ports & Electricals

HWA DWA

WA Data Transfer Interface Isochronous Data

Streaming Interface

Host Transaction Engine

Remote Pipes

Wire

Ada

pter

(WA)

Func

tion

Host Transaction Engine

Remote Pipes

Dev

ice

Con

trol

UWB Radio Control Interface

Device Control (Default Control Pipe

Page 33: Wireless USB Wire Adapter

33

Wire Adapter Device ControlWire Adapter Device Control

• The default endpoint is used to manage the WA Device

• Categories of requests:• Wire Adapter control• Remote Pipe Control and Status• Port Control and Status (DWA Only)• Association and Security (HWA Only)

Page 34: Wireless USB Wire Adapter

34

Wire Adapter ControlWire Adapter Control

• Ability to reset, enable/disablethe Wire Adapter

• Set/Clear Wire Adapter Feature

• Get the current status of the Wire Adapter

• Get Wire Adapter Status

DisabledReset

InProgress

Enabled

Reset Complete

READY

Set Feature Reset or

Set Config

Un-Initialized

WA Enable

WA Disableor

(WUSB Channel Stop and HWA)

Page 35: Wireless USB Wire Adapter

35

Host Wire Adapter ControlHost Wire Adapter Control

• Add/Remove Information elements froman MMC

• Add/Remove MMC IE • Set the interval and number of DNTS slots

• Set Num DNTS Slots• Setting the device availability info

• Set Device Info• Time related information

• Get BPST Time• Get WUSB Time

Page 36: Wireless USB Wire Adapter

36

Remote Pipe Controland StatusRemote Pipe Controland Status

• This is the heart of the Wire Adapter

• The number of RPipes is returned in the WA class specific WA Descriptor

• Each RPipe is described by anRPipe descriptor

• Get RPipe Descriptor

• Set RPipe descriptor is used to change the buffer size, transfer type, number of retries, endpoint context on an RPipe

Page 37: Wireless USB Wire Adapter

37

Remote Pipe Controland Status - 2Remote Pipe Controland Status - 2

• Transfers on an RPipe may be aborted• Abort RPipe

• An RPipe can be temporarily paused• Pause RPipe

• Host software can get the current state of the RPipe

• Get RPipe Status

Page 38: Wireless USB Wire Adapter

38

Remote Pipe State DiagramRemote Pipe State Diagram

Idle

PendingTransferRequest

Un-Configured

Set RPipeDescriptor

Co n

f igu r

e d

Set Configuration

Reset

Active

No PendingTransferRequest

Paused

Set Feature: Pause

Clear Feature: Pause

No t

Pau s

e d

ResetRPipe

Page 39: Wireless USB Wire Adapter

39

HWA Associationand SecurityHWA Associationand Security• A host wire adapter provides support to connect a device with a

Wireless USB host• DN Received Notification sent to the Host when a DN_Connect

is received• Hosts add a WCONNECTACK_IE in response using the

Add MMC IE request

• Uses a Security descriptor to identify the encryptiontypes supported

• Supports using individual encryption types for eachdownstream device

• Set Device Encryption• Set Device Key

• Provides a mechanism to set the key used to communicate with the Wireless USB Cluster

• Set Group Key

Page 40: Wireless USB Wire Adapter

40

Wire Adapter DataTransfer InterfaceWire Adapter DataTransfer Interface

• A Wire Adapter exposes an interface with 3 endpoints• Notification Endpoint

• Interrupt IN endpoint that provides notifications to the host including asynchronous wire adapter status changes and transfer status, port status changes (DWA Only), WUSB device notifications (HWA Only)

• Data Transfer Endpoint Pair• Bulk OUT endpoint used to send transfer requests and

transfer data to the Wire Adapter• Bulk IN endpoint used to return transfer result and data from

the Wire Adapter

Page 41: Wireless USB Wire Adapter

41

Wire Adapter Data TransferWire Adapter Data Transfer

• Targets are always RPipes• Transfer requests and Transfer Data to a downstream

device are sent on the Data transfer OUT endpoint• The Transfer request is sent as separate packet,

followed by ‘n’ Transfer data packets• Packetization information for an Isochronous Transfer

Request is sent immediately before the transferdata on an HWA

• Transfer completion notification is returned on the Notification endpoint

• Transfer result and data from a device is returnedon the Data transfer IN endpoint

Page 42: Wireless USB Wire Adapter

42

Wireless USB Device EnumerationWireless USB Device Enumeration

Continued…

Host Driver HWA WUSB Device

MMC with DNTS

Device Connect Request

DN Received Notification

ADD_MMC_IE.WCONNECTACK_IE

MMC with CONNECTACK_IE

MMC with CONNECTACK_IE

MMC with CONNECTACK_IE

As indicated by Repeat Countin Add MMC IEMIN INTERVAL = 2ms

Device sends DN_CONNECT in one of the DNTS.Sent on the

Notification Endpoint

SET_DESCRIPTOR (RPipe)

Configures the RPipe to address

the default endpoint at

address 0x86

Set the device to unathenticated

address 0x86

Page 43: Wireless USB Wire Adapter

43

Wireless USB Device EnumerationWireless USB Device Enumeration

• Security Enumeration• Get Security Descriptor, Set Encryption, 4-Way-Handshake

• Normal Enumeration• Get Device Descriptor, Set Address, Get Configuration etc.

Host Driver HWA WUSB Device

Security Enumeration

Bulk OUTMMC with WdtCTA

Set Address 0

Control Transfer

Request to set the device to

Address 0.Sent to the HWA Data

Transfer OUT Endpoint

MIN INTERVAL = 2ms

ACK from device

SET_DESCRIPTOR (RPipe)

Normal USB Enumeration

Transfer Completion Notification

Configures the RPipe to address

the default endpoint at

address 0x0

Page 44: Wireless USB Wire Adapter

44

DWA IsochronousStreaming InterfaceDWA IsochronousStreaming Interface

• Optional interface required to supportIsochronous traffic

• Consists of 1 to 28 WUSB Isochronous endpoints

• All endpoints support continuously scalabledynamic switching

• Max packet size and Stream delay for a stream set using Set Isochronous Endpoint Attributes request

• Mapping from the upstream endpoint to the downstream endpoint is stored in anRPipe descriptor

Page 45: Wireless USB Wire Adapter

45

DWA IsochronousData TransferDWA IsochronousData Transfer• A downstream USB Isochronous endpoint has a

matching upstream WUSB Isochronous endpoint• Data to a downstream endpoint is sent to the

corresponding upstream WUSB endpoint• The DWA recovers packetization information and

presentation time from the WUSB Isochronous packets

• Data from a device is returned to the host on the corresponding DWA WUSB Isochronous IN endpoint

• The DWA adds the packetization information and presentation time to the WUSB Isochronous packets

• The DWA drops data if the buffer overflows for thatparticular endpoint

• No Transfer completion notification is returned

Page 46: Wireless USB Wire Adapter

46

DWA Isochronous OUT ExampleDWA Isochronous OUT Example

WUSB IsochData Packet

W-HDR 32 5216

bNumIsoSegments wPresentationTime

100 Data - 1

wLength1 Data1

98 Data - 2 100 Data - 3 100 Data - 32

Etc.

DWA RPipeBuffer

WUSB Isoch Data Packet (n) WUSB Isoch Data Packet (n+1) WUSB Isoch Data Packet (n+2)8 segments each(1 USB 2.0 Frame)

Includes raw data for endpoint plus segmentation info

640641 642 643

644645 646 647

648649 650 651

652653 654 655 656

DWA SOF

652.1 652.2 652.3 652.4 652.5 652.6 652.7 653.0652.0

Data - 1 Data - 2 Data - 3Isoch Segment Data Transmissions over

the Wire (below the DWA)

Data - 8

Page 47: Wireless USB Wire Adapter

47

AgendaAgenda

• Overview• Software-Hardware Overview• Data Delivery Mechanism: RPipe• Hardware Architecture• Wire Adapter Device Class• Software Architecture• Summary

Page 48: Wireless USB Wire Adapter

48

Software ArchitectureHWASoftware ArchitectureHWA

USB USB HIDHIDRDPRDP UPnPUPnP USB USB

HubHubUSB USB Mass StoreMass Store

USB Video USB Video StreamingStreaming

Etc.

USB PortUSB Port

Wire AdapterWire AdapterMiniPortMiniPortIP IP

MiniportMiniport

UWBUWBSecuritySecurity

& & BWBW

ServicesServices

TCP/IPTCP/IP

ND

ISN

DIS

Existing SW

New OS SW

New Vendor S/W

**HWA Composite DriverHWA Composite Driver

USB PortUSB Port

EHCIEHCI

EHCI HardwareEHCI Hardware

Page 49: Wireless USB Wire Adapter

49

Software Architecture DWA Connected to USB 2.0 HWASoftware Architecture DWA Connected to USB 2.0 HWA

RDPRDP

USB PortUSB Port

Wire AdapterWire AdapterMiniPortMiniPort

USB USB HubHub

USB USB Mass StoreMass Store

USB Video USB Video StreamingStreaming

USB USB HIDHID

Etc.

IP IP MiniportMiniport

ND

ISN

DIS

**HWA Composite DriverHWA Composite Driver

UWBUWBSecuritySecurity

& & BWBW

ServicesServices

TCP/IPTCP/IP

UPnPUPnP

HWA

USB PortUSB Port

EHCIEHCI

EHCI HardwareEHCI Hardware

USB PortUSB Port

Wire AdapterWire AdapterMiniPortMiniPort

USB USB HubHub

USB USB Mass StoreMass Store

USB Video USB Video StreamingStreaming

USB USB HIDHID

DWA

Existing SWNew OS SW

New Vendor S/W

Page 50: Wireless USB Wire Adapter

50

Device ManagerExample Topology ReportDevice ManagerExample Topology Report

Page 51: Wireless USB Wire Adapter

51

AgendaAgenda

• Overview• Software-Hardware Overview• Data Delivery Mechanism: RPipe• Hardware Architecture• Wire Adapter Device Class• Software Architecture• Summary

Page 52: Wireless USB Wire Adapter

52

SummarySummary

• Enabler of Wireless USB Technology• Two types of Wire Adapters

• HWA and DWA

• Defined as USB and Wireless USB Device • USB Device Framework

• Utilize current USB infrastructure• New concept: Remote Pipe• Proved concept

• Prototypes from multiple companies

Page 53: Wireless USB Wire Adapter

53

BackupBackup

Page 54: Wireless USB Wire Adapter

54

Read Request SequenceRead Request Sequence

Continued…

Host Driver HWA WUSB Device

SET_DESCRIPTOR (RPipe)

Bulk OUT

Transfer Complete Notification

Set the Rpipe to target the BULK

IN endpoint on the Device

Submit Bulk Transfer

Read Request from WUSB

Device Driver

Bulk Read Transfer Request sent to the HWA

Data Transfer OUT endpoint

MMC with WdrCTA and WdtCTA

Handshake packet from device

Repeated until all the data is read or

the HWA receives a short packet from

the device

Sent on the HWA Notification

Endpoint

Page 55: Wireless USB Wire Adapter

55

Read Request SequenceRead Request Sequence

Host Driver HWA WUSB Device

Bulk IN

Bulk IN

Transfer Result

Get the Transfer Result

Host Driver determines number of bytes read and which transfer completed from the Transfer Result

All the data has been transferred

Transfer Data

Host Driver reads the data into the corresponding

transfer buffer

Complete Bulk Transfer

Complete Read Request from

WUSB Device Driver

Page 56: Wireless USB Wire Adapter

56

Data Flow - Request SequenceOpen Pipe Request Data Flow - Request SequenceOpen Pipe Request

softwaresoftware

HARDWAREHARDWAREEHCIEHCI

usbwausbwa

WIREWIREADAPTERADAPTER

WUSBWUSBHARD DISKHARD DISK

Mass StorageMass StorageClass DriverClass Driver

usbehciusbehci

Open Pipe1Open Pipe1EP Address (2, 8)EP Address (2, 8)Max Packet 200HMax Packet 200H

Device Address 1Device Address 1

Device Address 2Device Address 2

Converted to Set RPipe Descriptor Converted to Set RPipe Descriptor control transfer request control transfer request [RPipe1, 2, 8, 200H][RPipe1, 2, 8, 200H]Targeted at EP Address (1, 0)Targeted at EP Address (1, 0)

The Wire Adapter processes the The Wire Adapter processes the control transfer and configures its control transfer and configures its RPipe. All subsequent requests using RPipe. All subsequent requests using this RPipe Index will be sent to EP this RPipe Index will be sent to EP Address 2, 8Address 2, 8

Page 57: Wireless USB Wire Adapter

57

Data Flow - Request SequenceRead Request - Bulk Transfer RequestData Flow - Request SequenceRead Request - Bulk Transfer Request

softwaresoftware

HARDWAREHARDWAREEHCIEHCI

usbwausbwa

WIREWIREADAPTERADAPTER

WUSBWUSBHARD DISKHARD DISK

Mass StorageMass StorageClass DriverClass Driver

usbehciusbehci

Issues a read ofIssues a read of64K bytes on Pipe164K bytes on Pipe1

Device Address 1Device Address 1

Device Address 2Device Address 2

This is converted to a Bulk transfer This is converted to a Bulk transfer request targeted at RPipe1 on the request targeted at RPipe1 on the Wire AdapterWire Adapter’’s bulk OUT endpoints bulk OUT endpoint

The Wire Adapter processes the The Wire Adapter processes the transfer request and issues an IN to transfer request and issues an IN to the Wireless USB Hard diskthe Wireless USB Hard disk

Page 58: Wireless USB Wire Adapter

58

Data Flow - Request SequenceRead Request - Transfer Completion NotificationData Flow - Request SequenceRead Request - Transfer Completion Notification

Mass StorageMass StorageClass DriverClass Driver

EHCIEHCI

usbwausbwa

WIREWIREADAPTERADAPTER

WUSBWUSBHARD DISKHARD DISK

softwaresoftware

HARDWAREHARDWARE

usbehciusbehci

Device Address 1Device Address 1

Device Address 2Device Address 2

The Wire Adapter driver receives the The Wire Adapter driver receives the transfer completion notificationtransfer completion notification

After receiving all the bytes After receiving all the bytes successfully from the Wireless USB successfully from the Wireless USB hard disk, the Wire Adapter sends hard disk, the Wire Adapter sends back a completion notification on its back a completion notification on its interrupt IN notification endpointinterrupt IN notification endpoint

Page 59: Wireless USB Wire Adapter

59

Data Flow - Request SequenceRead Request - Transfer ResultData Flow - Request SequenceRead Request - Transfer Result

Mass StorageMass StorageClass DriverClass Driver

EHCIEHCI

usbwausbwa

WIREWIREADAPTERADAPTER

HARDWAREHARDWARE

softwaresoftware

WUSBWUSBHARD DISKHARD DISK

usbehciusbehci

Device Address 1Device Address 1

Device Address 2Device Address 2

The Wire Adapter driver sends down The Wire Adapter driver sends down a read request on its Bulk IN a read request on its Bulk IN endpoint to receive the transfer endpoint to receive the transfer result from the Wire Adapterresult from the Wire Adapter

Page 60: Wireless USB Wire Adapter

60

Data Flow - Request SequenceRead Request - Transfer ResultData Flow - Request SequenceRead Request - Transfer Result

Mass StorageMass StorageClass DriverClass Driver

EHCIEHCI

usbwausbwa

WIREWIREADAPTERADAPTER

WUSBWUSBHARD DISKHARD DISK

softwaresoftware

HARDWAREHARDWARE

usbehciusbehci

Device Address 1Device Address 1

Device Address 2Device Address 2

The Wire Adapter driver receives the The Wire Adapter driver receives the transfer result and decodes which transfer result and decodes which transfer completedtransfer completed

The Wire Adapter returns the transfer The Wire Adapter returns the transfer result corresponding to the transfer result corresponding to the transfer that completedthat completed

Page 61: Wireless USB Wire Adapter

61

Data Flow - Request SequenceRead Request - Transfer DataData Flow - Request SequenceRead Request - Transfer Data

Mass StorageMass StorageClass DriverClass Driver

EHCIEHCI

usbwausbwa

WIREWIREADAPTERADAPTER

WUSBWUSBHARD DISKHARD DISK

softwaresoftware

HARDWAREHARDWARE

usbehciusbehci

Device Address 1Device Address 1

Device Address 2Device Address 2

The Wire Adapter driver sends down The Wire Adapter driver sends down a read request on its Bulk IN a read request on its Bulk IN endpoint to receive the data read endpoint to receive the data read from the Wireless USB hard diskfrom the Wireless USB hard disk

The Wire Adapter sends the data The Wire Adapter sends the data currently in the buffer associated with currently in the buffer associated with this RPipe Index to the host in this RPipe Index to the host in response to the IN transactionsresponse to the IN transactions

Page 62: Wireless USB Wire Adapter

62

Data Flow - Request SequenceRead Request - Completion

Data Flow - Request SequenceRead Request - Completion

HARDWAREHARDWARE

softwaresoftware

EHCIEHCI

usbwausbwa

WIREWIREADAPTERADAPTER

WUSBWUSBHARD DISKHARD DISK

Mass StorageMass StorageClass DriverClass Driver

usbehciusbehci

Device Address 1Device Address 1

Device Address 2Device Address 2

The Wire Adapter driver completes The Wire Adapter driver completes the read request sent down by the the read request sent down by the Mass storage driverMass storage driver