Upload
johnsondon
View
682
Download
1
Tags:
Embed Size (px)
Citation preview
Wireless USB Wire AdapterJohn Keys
Software ArchitectIntel Corporation
2
AgendaAgenda
• Overview• Software-Hardware Overview• Data Delivery Mechanism: RPipe• Hardware Architecture• Wire Adapter Device Class• Software Architecture• Summary
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
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
5
AgendaAgenda
• Overview• Software-Hardware - Overview• Data Delivery Mechanism: RPipe• Hardware Architecture• Software-Hardware Interface• Wire Adapter Device Class• Summary
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
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
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
9
AgendaAgenda
• Overview• Software-Hardware Overview• Data Delivery Mechanism: RPipe• Hardware Architecture• Wire Adapter Device Class• Software Architecture• Summary
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.
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
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.
13
Basic Theory of Data DeliveryBasic Theory of Data Delivery
WirelessWirelessUSBUSBHostHost
DataData
DWADWA USBUSBDeviceDevice
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
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”
16
Data Delivery SummaryData Delivery SummaryTRTR
Data
Host Wire Adapter &Device Wire Adapter
USB2.0USB2.0
Device Wire Adapter: DWAHost Wire Adapter: DWA
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
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
19
AgendaAgenda
• Overview• Software-Hardware Overview• Data Delivery Mechanism: RPipe• Hardware Architecture• Wire Adapter Device Class• Software Architecture• Summary
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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
31
AgendaAgenda
• Overview• Software-Hardware Overview• Data Delivery Mechanism: RPipe• Hardware Architecture• Wire Adapter Device Class• Software Architecture• Summary
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
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)
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)
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
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
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
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
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
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
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
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
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
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
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
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
47
AgendaAgenda
• Overview• Software-Hardware Overview• Data Delivery Mechanism: RPipe• Hardware Architecture• Wire Adapter Device Class• Software Architecture• Summary
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
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
50
Device ManagerExample Topology ReportDevice ManagerExample Topology Report
51
AgendaAgenda
• Overview• Software-Hardware Overview• Data Delivery Mechanism: RPipe• Hardware Architecture• Wire Adapter Device Class• Software Architecture• Summary
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
53
BackupBackup
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
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
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
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
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
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
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
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
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