- •TABLE OF CONTENTS
- •1.1 Motivation
- •1.2 Design Goals
- •1.3 Objective of the Specification
- •1.4 Scope of the Document
- •1.5 USB Product Compliance
- •1.6 Document Organization
- •2.1 Terms
- •2.2 Conventions:
- •2.3 References
- •3.1 USB System Description
- •3.1.1 Topology
- •3.1.1.1 USB Host
- •3.1.1.2 Wireless USB Devices
- •3.2 Physical Interface
- •3.3 Power Management
- •3.4 Bus Protocol
- •3.5 Robustness
- •3.5.1 Error Handling
- •3.6 Security
- •3.7 System Configuration
- •3.7.1 Attachment of Wireless USB Devices
- •3.7.2 Removal of Wireless USB Devices
- •3.7.3 Bus Enumeration
- •3.8 Data Flow Types
- •3.9 Wireless USB Devices
- •3.9.1 Device Characterizations
- •3.9.2 Devices and MAC Layer
- •3.10 Wireless USB Host: Hardware and Software
- •4.1 Implementer Viewpoints
- •4.2 Communications Topology
- •4.2.1 Physical Topology
- •4.3 Wireless USB Communication Flows
- •4.3.1 Wireless USB Channel Time
- •4.3.2 MMC Transmission Accuracy
- •4.3.3 USB Time across Device Wire Adapters
- •4.3.5 Device Endpoints
- •4.3.6 Wireless USB Information Exchange Methods
- •4.3.7 Device Perspective
- •4.3.7.1 Self Beaconing Devices
- •4.3.7.2 Directed Beaconing Devices
- •4.3.7.3 Non Beaconing Devices
- •4.3.7.4 Selecting A Wireless USB Host
- •4.3.8 Host Perspective
- •4.3.8.1 MAC Layer Compliant Device
- •4.3.8.2 Wireless USB Host
- •4.3.8.3 Host System Management
- •4.3.8.5 Other Host Considerations
- •4.4 Data Transfers
- •4.4.1 Burst Mode Data Phase
- •4.5 Bulk Transfers
- •4.5.1 Bulk Transfer Packet Size and Signaling Rate Constraints
- •4.5.2 Bulk Transfer Channel Access Constraints
- •4.5.3 Bulk Transfer Data Sequences
- •4.6 Interrupt Transfers
- •4.6.1 Low Power Interrupt IN
- •4.6.2 Interrupt Transfer Packet Size and Signaling Rate Constraints
- •4.6.3 Interrupt Transfer Channel Access Constraints
- •4.6.4 Interrupt Transfer Data Sequences
- •4.7 Isochronous Transfers
- •4.7.1 Isochronous Transfer Packet Size and Signaling Rate Constraints
- •4.7.2 Isochronous Transfer Channel Access Constraints
- •4.7.3 Isochronous Transfer Data Sequences
- •4.7.4 Isochronous Endpoint Host System Admission Decisions
- •4.7.5 Isochronous Data Discards and Use of Isochronous Packet Discard IE
- •4.8 Control Transfers
- •4.8.1 Control Transfer Packet Size and Signaling Rate Constraints
- •4.8.2 Control Transfer Channel Access Constraints
- •4.8.3 Control Transfer Data Sequences
- •4.8.4 Data Loopback Commands
- •4.9 Device Notifications
- •4.10 Media Reliability Considerations
- •4.10.1 Transmit Power Control
- •4.10.2 Adjustments to Data Phase Packet Payload Sizes
- •4.10.3 Adjustments to Transmit Bit Rate
- •4.10.4 Changing PHY Channel
- •4.10.5 Host Schedule Control
- •4.10.6 Dynamic Bandwidth Interface Control
- •4.11 Special Considerations for Isochronous Transfers
- •4.11.1 Summary Of Key Features Of USB Wired Isochrony
- •4.11.1.1 Wireless Service Intervals
- •4.11.2 UWB Media Characteristics
- •4.11.2.1 Superframe Layout
- •4.11.2.2 Worst Case Superframe Layout – Service Interval Bounds.
- •4.11.2.3 Wireless Packet Error Rates
- •4.11.3 Wireless USB Isochronous Transfer Level Protocol
- •4.11.4 Wireless USB Isochronous IN Example
- •4.11.5 Wireless USB Isochronous OUT Example
- •4.11.6 Choosing an Isochronous IN or Isochronous OUT Endpoint Buffer Size
- •4.11.7 Isochronous OUT endpoint receiver implementation options
- •4.11.7.1 Presentation Time aware implementation
- •4.11.7.2 Presentation time aware implementation with “false” acknowledgement
- •4.11.7.3 Presentation time unaware implementations
- •4.11.8 Synchronization
- •4.11.8.1 Synchronizing a Stream Start Time
- •4.11.9 Error Handling Details
- •4.11.9.1 Reporting Data Discarded At the Transmitter
- •4.11.9.2 Discarding Data during A Burst
- •4.11.9.3 Application Handling of Discards
- •4.12 Device Reset
- •4.13 Connection Process
- •4.13.1 Reconnection Process
- •4.14 Disconnect
- •4.15 Security Mechanisms
- •4.15.1 Connection Lifetime
- •4.15.2 Host Security Considerations
- •4.15.2.1 CHID Selection
- •4.15.2.2 CDID Selection
- •4.16 Wireless USB Power Management
- •4.16.1 Device Power Management
- •4.16.1.1 Device Sleep
- •4.16.1.2 Device Wakeup
- •4.16.2 Host Power Management
- •4.16.2.1 Channel Stop
- •4.16.2.2 Remote Wakeup
- •4.16.2.3 Channel Start
- •4.17 Dual Role Devices (DRD)
- •4.17.2 Pairing P2P-DRD to establish reverse link
- •5.1 Packet Formats
- •5.2 Wireless USB Transaction Groups
- •5.2.1 Wireless USB Channel Time Allocation Information Elements
- •5.3 Transaction Group Timing Constraints
- •5.3.1 Streaming-Mode Inter-packet Constraints for the PHY
- •5.3.2 Protocol Synchronization
- •5.4 Data Burst Synchronization and Retry
- •5.5 Wireless USB Transactions
- •5.5.1 Isochronous Transactions
- •5.5.2 Control Transfers
- •5.5.3 Device Notifications
- •5.5.4 Flow Control
- •6.1 Introduction
- •6.1.1 Goal of USB Security
- •6.1.2 Security and USB
- •6.2 Overview
- •6.2.1 Base of Trust
- •6.2.2 Preserve the Nature of the USB Device Model
- •6.2.3 Implementation of Security Extensions
- •6.2.4 Encryption Methods
- •6.2.5 Message Format
- •6.2.6 Encryption Keys
- •6.2.6.1 Master Keys
- •6.2.6.2 Session Keys
- •6.2.7 Correct key determination
- •6.2.8 Replay Prevention
- •6.2.9 Secure Packet Reception
- •6.2.10 General Connection Model
- •6.2.10.1 Connection Context
- •6.2.10.2 Connection Lifetime
- •6.2.10.3 New Connection
- •6.2.10.4 Connection
- •6.2.10.5 Reconnection
- •6.2.10.6 Revocation
- •6.2.10.8 Diagnostic Support
- •6.2.10.9 Mutual Authentication
- •6.2.11 Key Management
- •6.2.11.1 PTK Management
- •6.2.11.2 GTK Management
- •6.3 Association and Authentication
- •6.3.1 Connection and Reconnection Requests
- •6.3.2 Authentication
- •6.3.2.1 Authentication Related Device Capabilities
- •6.3.2.2 Ceremonies
- •6.4.1 CCM nonce Construction
- •6.4.2 l(m) and l(a) Calculation
- •6.4.3 Counter-mode Bx Blocks
- •6.4.4 Encryption Ax Blocks
- •6.5.1 Key Derivation
- •6.5.2 Out-of-band MIC Generation
- •6.5.3 Example Random Number Generation
- •7.1 Wireless USB Device States
- •7.1.1 UnConnected
- •7.1.2 UnAuthenticated
- •7.1.3 Authenticated
- •7.1.4 Reconnecting
- •7.2 Generic Wireless USB Device Operations
- •7.3 Standard Wireless USB Device Requests
- •7.3.1 Wireless USB Extensions to Standard Requests
- •7.3.1.1 Clear Feature
- •7.3.1.2 Get Status
- •7.3.1.3 Set Address
- •7.3.1.4 Set Feature
- •7.3.1.5 Set Interface DS
- •7.3.1.6 Set WUSB Data
- •7.3.1.7 Data Loopback Write
- •7.3.1.8 DATA Loopback Read
- •7.3.2 Security-related Requests
- •7.3.2.1 Get Security Descriptor
- •7.3.2.2 Set Encryption
- •7.3.2.3 Get Encryption
- •7.3.2.4 Key Management
- •7.3.2.6 Set Security Data
- •7.3.2.7 Get Security Data
- •7.4 Standard Wireless USB Descriptors
- •7.4.1 Device Level Descriptors
- •7.4.1.1 Wireless USB Device Capabilities – UWB
- •7.4.2 Configuration
- •7.4.3 Endpoint
- •7.4.4 Wireless USB Endpoint Companion
- •7.4.5 Security-Related Descriptors
- •7.4.5.1 Security Descriptor
- •7.4.5.2 Key Descriptor
- •7.5 Wireless USB Channel Information Elements
- •7.5.1 Wireless USB Connect Acknowledge IE
- •7.5.2 Wireless USB Host Information IE
- •7.5.3 Wireless USB Channel Change Announcement IE
- •7.5.4 Wireless USB Device Disconnect IE
- •7.5.5 Wireless USB Host Disconnect IE
- •7.5.6 Wireless USB Release Channel IE
- •7.5.7 Wireless USB Work IE
- •7.5.8 Wireless USB Channel Stop IE
- •7.5.9 Wireless USB Device Keepalive IE
- •7.5.10 Wireless USB Isochronous Packet Discard IE
- •7.5.11 Wireless USB Reset Device IE
- •7.5.12 Wireless USB Transmit Packet Adjustment IE
- •7.6 Device Notifications
- •7.6.1 Device Connect (DN_Connect)
- •7.6.1.1 Connect Request
- •7.6.1.2 Reconnect Request
- •7.6.2 Device Disconnect (DN_Disconnect)
- •7.6.3 Device Endpoints Ready (DN_EPRdy)
- •7.6.4 Device MAS Availability Changed (DN_MASAvailChanged)
- •7.6.5 Device Sleep (DN_Sleep)
- •7.6.6 Remote Wakeup (DN_RemoteWakeup)
- •7.6.7 Device Alive (DN_Alive)
- •8.1 Operational Model
- •8.1.1 Functional Characteristics
- •8.1.2 Data Transfer Interface
- •8.1.3 Remote Pipe
- •8.1.4 Wire Adapter Functional Blocks
- •8.1.5 Downstream Port(s)
- •8.1.6 Upstream Port
- •8.1.7 Downstream Host Controller
- •8.1.8 Upstream Endpoint Controller
- •8.1.9 Remote Pipe Controller
- •8.1.9.1 RPipe Descriptor
- •8.1.9.2 Bulk OUT Overview
- •8.1.9.3 Bulk IN Overview
- •8.1.9.4 Control Transfer Overview
- •8.1.9.5 Interrupt Transfer Overview
- •8.1.9.6 Isochronous Transfer Overview
- •8.1.10 Suspend and Resume
- •8.1.10.1 DWA Suspend and Resume
- •8.1.10.2 HWA Suspend and Resume
- •8.1.11 Reset Behavior
- •8.1.12 Device Control
- •8.1.13 Buffer Configuration
- •8.2 Descriptors
- •8.3 Requests
- •8.3.1 Wire Adapter Class-Specific Requests
- •8.3.1.1 Abort RPipe
- •8.3.1.2 Clear RPipe Feature
- •8.3.1.3 Clear Wire Adapter Feature
- •8.3.1.4 Get RPipe Descriptor
- •8.3.1.5 Get RPipe Status
- •8.3.1.6 Get Wire Adapter Status
- •8.3.1.7 Set RPipe Descriptor
- •8.3.1.8 Set RPipe Feature
- •8.3.1.9 Set Wire Adapter Feature
- •8.3.1.10 Reset RPipe
- •8.3.2 Notification Information
- •8.3.3 Transfer Requests
- •8.3.3.1 Control Transfers
- •8.3.3.2 Bulk and Interrupt Transfers
- •8.3.3.3 Transfer Completion Notification
- •8.3.3.4 Transfer Result
- •8.3.3.5 Abort Transfer
- •8.4 DWA Interfaces, Descriptors and Control
- •8.4.1 DWA Isochronous Streaming Interface
- •8.4.2 DWA Isochronous Streaming Overview
- •8.4.3 DWA Descriptors
- •8.4.3.1 Device Descriptor
- •8.4.3.2 Binary Device Object (BOS) Descriptor
- •8.4.3.3 Configuration Descriptor
- •8.4.3.4 Security Descriptors
- •8.4.3.5 Interface Association Descriptor
- •8.4.3.6 Data Transfer Interface Descriptor
- •8.4.3.7 Wire Adapter Class Descriptor
- •8.4.3.8 Notification Endpoint Descriptor
- •8.4.3.9 Notification Endpoint Companion Descriptor
- •8.4.3.10 Data Transfer Write Endpoint Descriptor
- •8.4.3.11 Data Transfer Write Endpoint Companion Descriptor
- •8.4.3.12 Data Transfer Read Endpoint Descriptor
- •8.4.3.13 Data Transfer Read Endpoint Companion Descriptor
- •8.4.3.14 Isochronous Streaming Interface Descriptor
- •8.4.3.15 Isochronous Streaming OUT Endpoint Descriptor
- •8.4.3.16 Isochronous Streaming OUT Endpoint Companion Descriptor
- •8.4.3.17 Isochronous Streaming IN Endpoint Descriptor
- •8.4.3.18 Isochronous Streaming IN Endpoint Companion Descriptor
- •8.4.3.19 Wire Adapter RPipe Descriptor
- •8.4.4 DWA Specific Requests
- •8.4.4.1 Clear Port Feature
- •8.4.4.2 Get Port Status
- •8.4.4.3 Set Isochronous Endpoint Attributes
- •8.4.4.4 Set Port Feature
- •8.4.5 DWA Notification Information
- •8.4.5.1 Remote Wake
- •8.4.5.2 Port Status Change
- •8.4.6 DWA Isochronous Transfers
- •8.4.6.1 DWA Isochronous OUT Responsibilities
- •8.4.6.2 DWA Isochronous IN Responsibilities
- •8.5 HWA Interfaces, Descriptors and Control
- •8.5.1 HWA Isochronous Streaming Overview
- •8.5.2 HWA Descriptors
- •8.5.2.1 Device Descriptor
- •8.5.2.2 Device_Qualifier Descriptor
- •8.5.2.3 Configuration Descriptor
- •8.5.2.4 Other_Speed_Configuration Descriptor
- •8.5.2.5 Security Descriptors
- •8.5.2.6 Data Transfer Interface Descriptor
- •8.5.2.7 Wire Adapter Class Descriptor
- •8.5.2.8 Notification Endpoint Descriptor
- •8.5.2.9 Data Transfer Write Endpoint Descriptor
- •8.5.2.10 Data Transfer Read Endpoint Descriptor
- •8.5.2.11 Wire Adapter RPipe Descriptor
- •8.5.3 HWA Specific Requests
- •8.5.3.2 Get BPST Adjustment
- •8.5.3.3 Get BPST Time
- •8.5.3.4 Get WUSB Time
- •8.5.3.5 Remove MMC IE
- •8.5.3.6 Set Device Encryption
- •8.5.3.7 Set Device Info
- •8.5.3.8 Set Device Key
- •8.5.3.9 Set Group Key
- •8.5.3.10 Set Num DNTS Slots
- •8.5.3.11 Set WUSB Cluster ID
- •8.5.3.12 Set WUSB MAS
- •8.5.3.13 Set WUSB Stream Index
- •8.5.3.14 WUSB Channel Stop
- •8.5.4 HWA Notification Information
- •8.5.4.1 BPST Adjustment Change
- •8.5.4.2 DN Received Notification
- •8.5.5 HWA Isochronous Transfers
- •8.5.5.1 HWA Isochronous OUT Responsibilities
- •8.5.5.2 HWA Isochronous IN Responsibilities
- •8.5.5.3 HWA Isochronous Transfer Completion
- •8.6 Radio Control Interface
- •8.6.1 Radio Control Descriptors
- •8.6.1.1 Radio Control Interface Descriptor
- •8.6.1.2 Radio Control Interface Class Descriptor
- •8.6.1.3 Radio Control Interrupt Endpoint Descriptor
- •8.6.2 Radio Control Command
- •8.6.2.1 Channel Change
- •8.6.2.2 Device Address Management
- •8.6.2.4 Reset
- •8.6.2.5 Scan
- •8.6.2.6 Set Beacon Filter
- •8.6.2.9 Set Notification Filter
- •8.6.2.10 Set TX Power
- •8.6.2.11 Sleep
- •8.6.2.12 Start Beaconing
- •8.6.2.13 Stop Beaconing
- •8.6.3 Radio Control Notifications
- •8.6.3.1 Application-specific Probe IE Received Notification
- •8.6.3.2 Beacon Received Notification
- •8.6.3.3 Beacon Size Notification
- •8.6.3.4 BPOIE Change Notification
- •8.6.3.5 BP Slot Change Notification
- •8.6.3.6 BP Switch IE Received Notification
- •8.6.3.7 Device Address Conflict Notification
- •8.6.3.8 DRP Availability Changed Notification
- •8.6.3.9 DRP Notification
- •A.1 Key Derivation
- •A.2 Handshake MIC calculation
- •A.3 Secure MMC (EO = payload length)
- •A.4 Data IN from device (EO = 2)
- •B.1 Descriptors for DWA
- •B.2 Descriptors for HWA
Chapter 7 |
|
Wireless USB Framework |
Wireless Universal Serial Bus Specification, Revision 1.0 |
Table 7-1. Standard Request Availability in Wireless USB Device States (cont.)
Request |
Available in |
Note |
|
UnAuthenticated |
|
|
Device State |
|
GET_STATUS |
Yes |
|
|
|
|
LOOPBACK_DATA_READ |
Yes |
|
LOOPBACK_DATA_WRITE |
Yes |
|
SET_ADDRESS |
Yes |
Note, see Section 7.3.1.3 for additional special |
|
|
requirements for handling this request in Wireless |
|
|
USB. |
SET_CONFIGURATION |
No |
|
SET_DESCRIPTOR |
No |
|
|
|
|
SET_FEATURE |
Yes |
|
SET_INTERFACE |
No |
This request is only valid in the Configured device |
|
|
state because it queries the current configuration. |
SET_INTERFACE_DS |
No |
This request is optional. It is supported by devices |
|
|
with interfaces that support the dynamic switching |
|
|
mechanism. |
SYNCH_FRAME |
No |
|
7.3.1 Wireless USB Extensions to Standard Requests
This section describes extensions to the standard set of device requests defined in the USB 2.0 specification [1]. This includes extensions to the requests defined in the USB 2.0 specification (Section 9.4) and specific requests defined for Wireless USB. Table 7-2 summarizes the standard Wireless USB device requests and Table 7-20 summarizes the Wireless USB Security Requests.
Table 7-2. Wireless USB-specific Standard Device Requets
bmRequestType |
bRequest |
wValue |
wIndex |
wLength |
Data |
|
|
|
|
|
|
00000000B |
CLEAR_FEATURE |
WUSB_DEVICE |
WUSB Feature |
Zero |
None |
|
|
|
Selector and |
|
|
|
|
|
Feature Value |
|
|
|
|
|
|
|
|
10000000B |
GET_STATUS |
Zero |
Device Status |
Variable |
Status |
|
|
|
Selector |
|
Selector Data |
|
|
|
|
|
|
00000000B |
SET_ADDRESS |
Device Address |
Zero |
Zero |
None |
|
|
|
|
|
|
00000000B |
SET_FEATURE |
WUSB_DEVICE |
WUSB Feature |
Zero |
None |
|
|
|
Selector and |
|
|
|
|
|
Feature Value |
|
|
|
|
|
|
|
|
00000001B |
SET_INTERFACE_DS |
Alternate Setting |
Interface |
2 |
Presentation |
|
|
|
|
|
Time |
|
|
|
|
|
|
00000000B |
SET_WUSB_DATA |
WUSB Data |
Zero |
WUSB Data |
WUSB |
|
|
Selector |
|
Length |
Selector Data |
|
|
|
|
|
|
00000000B |
LOOPBACK_DATA_WRITE |
Zero |
Zero |
Data Length |
Data |
|
|
|
|
|
|
10000000B |
LOOPBACK_DATA_READ |
Zero |
Zero |
Data Length |
Data |
|
|
|
|
|
|
The USB 2.0 specification [1], Section 9.4 lists request codes for the standard device commands over the Default Pipe. Table 7-3 is an annotated list of additional standard request codes for devices. The annotations indicate whether the request code is specific to security.
141
Chapter 7 |
|
Wireless USB Framework |
Wireless Universal Serial Bus Specification, Revision 1.0 |
Table 7-3: Wireless USB Standard Request Codes
bRequest |
Value |
Purpose |
|
|
|
SET_ENCRYPTION |
13 |
Security |
|
|
|
GET_ENCRYPTION |
14 |
Security |
SET_HANDSHAKE |
15 |
Security |
GET_HANDSHAKE |
16 |
Security |
|
|
|
SET_CONNECTION |
17 |
Security |
SET_SECURITY_DATA |
18 |
Security |
GET_SECURITY_DATA |
19 |
Security |
|
|
|
SET_WUSB_DATA |
20 |
General |
LOOPBACK_DATA_WRITE |
21 |
General |
LOOPBACK_DATA_READ |
22 |
General |
|
|
|
SET_INTERFACE_DS |
23 |
General |
The USB 2.0 specification, Section 9.4 lists standard feature selector values for enabling or setting specific features. Table 7-4 is a list of additional standard features selectors for devices. Wireless USB uses one feature selector value (WUSB_DEVICE) then defines a family of Wireless USB specific features which are relative to WUSB_DEVICE feature selector. The commands ClearFeature, SetFeature and GetStatus detail how Wireless USB uses these features.
Table 7-4. Wireless USB Standard Feature Selectors
Feature Selector |
Recipient |
Value |
Wireless USB Feature Selectors |
|
|
|
|
|
|
WUSB_DEVICE |
Device |
3 |
Feature Name |
Code |
|
|
|
TX DRP IE |
0 |
|
|
|
DEV XMIT_PACKET |
1 |
|
|
|
COUNT PACKETS |
2 |
|
|
|
CAPTURE PACKETS |
3 |
7.3.1.1Clear Feature
This request is used to clear a specific feature. The USB 2.0 defined uses of this command remain in effect for Wireless USB, see Section 9.4.1 in the USB 2.0 specification. The following description details extensions to this request for Wireless USB.
bmRequestType |
bRequest |
wValue |
wIndex |
wLength |
Data |
|
|
|
|
|
|
00000000B |
CLEAR_FEATURE |
Feature Selector = |
Wireless USB Feature |
Zero |
None |
|
|
WUSB_DEVICE |
Selector |
|
|
|
|
|
|
|
|
|
|
|
Zero or Feature Value |
|
|
|
|
|
|
|
|
When the feature selector field (wValue) is set to WUSB_DEVICE, the least significant byte of wIndex is used to further qualify which Wireless USB device feature is to be modified with this request. Wireless USB device features are summarized in Table 7-13. Table 7-5 summarizes which of the Wireless USB features can be modified with the ClearFeature() request.
UnAuthenticated State: If the the specified feature selector is WUSB_DEVICE, device behavior when this request is received while the device is in the UnAuthenticated state is not specified..
142
Chapter 7 |
|
Wireless USB Framework |
Wireless Universal Serial Bus Specification, Revision 1.0 |
Default State: If the specified feature selector is WUSB_DEVICE, device behavior when this request is received while the device is in the Default state is not specified.
Address State: This request is valid in the Addressed state. Configured State: This request is valid in the Configured state.
Table 7-5. Features Modifiable via ClearFeature()
Wireless USB |
Explanation |
Feature Selector |
|
|
|
TX DRP IE |
On receipt of this request, the device will remove the associated DRP IE from its |
|
MAC Layer Beacon. This request must only be sent to Self Beaconing devices. |
DEV XMIT_PACKET |
On receipt of this request, the device will be disabled from directed packet |
|
transmission. This request must only be sent to Directed Beaconing devices. See |
|
Section 4.3.7.2.1. |
COUNT PACKETS |
On receipt of this request, the device will be disabled for count packets operation. |
|
This request must only be sent to Directed Beaconing devices. See Section |
|
4.3.7.2.2. |
CAPTURE PACKET |
On receipt of this request, the device will be disabled for capture a packet |
|
operation. This request must only be sent to Directed Beaconing devices. See |
|
Section 4.3.7.2.3. |
7.3.1.2Get Status
This request returns status information about different portions of a device. The following description details the extensions to the GetStatus() request for Wireless USB. For a description of the standard USB 2.0 request, refer to Section 9.4.5 in the USB 2.0 specification.
bmRequestType |
bRequest |
wValue |
wIndex |
wLength |
Data |
|
|
|
|
|
|
10000000B |
GET_STATUS |
Zero |
Device Status Selector |
Variable |
Status Selector Data |
|
|
|
|
|
|
The format of this request is a standard GetStatus() request as defined in USB2.0, with extended definition of the wIndex field when the recipient is DEVICE. The USB 2.0 specification requires that wIndex have a value of zero when bmRequestType specifies the recipient is the device (with a bRequest of GET_STATUS). The extension for Wireless USB encodes wIndex with a value indicating the specific device information the host is interested in. Note that the availability of this request depends on the state of the device and the addressed recipient. For example, a host should not address this request to an endpoint when the device is in the Default state because it has undefined results.
UnAuthenticated State: This request is valid in the UnAuthenticated state.
Default State: |
This request is valid in the Default state (depending on recipient). |
Address State: |
This request is valid in the Addressed state. |
Configured State: |
This request is valid in the Configured state. |
Table 7-6. Device-Level Status Selector Encodings for wIndex
wIndex |
Status Type |
Description |
|
|
|
0000H |
USB 2.0 |
This is the default encoding for this command defined in the USB 2.0 |
|
Standard |
specification. It summarizes a small set of device level status indicators. This |
|
Status |
set of status indicators has been extended as described below for Wireless |
|
|
USB |
0001H |
Wireless USB |
This encoding returns the current values of Wireless USB specific features. |
|
Feature |
|
0002H |
Channel Info |
This encoding indicates the device must return information about its view of |
|
|
the Wireless USB channel. The format of the data returned is defined below. |
143
Chapter 7 |
|
Wireless USB Framework |
Wireless Universal Serial Bus Specification, Revision 1.0 |
Table 7-6. Device-Level Status Selector Encodings for wIndex (cont.)
wIndex |
Status Type |
Description |
0003H |
Received Data |
This encoding instructs the device to return the data collected during the last |
|
|
count packets or capture a packet operation. This request must only be sent |
|
|
to Directed Beaconing devices. |
0004H |
MAS |
This encoding instructs the device to return its MAS Availability information, |
|
Availability |
see below for details. This request must only be sent to Self Beaconing |
|
|
devices. |
0005H |
Current |
This encoding instructs the device to return its current transmit power |
|
Transmit |
settings for Notifications and Beacons, see below for details. |
|
Power |
|
USB 2.0 Standard Features
When the wIndex value is USB 2.0 Standard Status, the device returns the information illustrated in Figure 7-2.
Byte |
D7 |
D6 |
D5 |
D4 |
D3 |
|
D2 |
D1 |
D0 |
|
|
|
|
|
|
|
|
|
|
0 |
|
Reserved, must be set to zero |
|
|
Battery |
Remote |
Self |
||
|
|
|
|
|
|
|
Powered |
Wake |
Powered |
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
Reserved, must be set to zero |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
Figure 7-2. USB 2.0 Standard Status Information Returned by a GetStatus() Request to a Device
Refer to Section 9.4.5 of the USB 2.0 specification for descriptions of the Remote Wake and Self Powered fields. The Self Powered field should always return set to a one (1B) for a Wireless USB device. The default value for Remote Wake is defined in the USB 2.0 specification.
The Battery Powered field indicates whether the device is currently battery-powered. If D2 is reset to zero, the device is powered by a supply that is not a battery. The Battery Powered field value may not be changed by the SetFeature() or ClearFeature() requests.
Wireless USB Features
When the wIndex value is Wireless USB Feature Status, the device returns the information illustrated in Figure 7-3. The default values of these features after any device power-up or reset event is zero.
Byte |
D7 |
D6 |
D5 |
|
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
|
|
|
|
|
|
|
0 |
|
Reserved, must be set to zero |
|
Capture |
Count |
Transmit |
TX DRP |
||
|
|
|
|
|
|
Packet |
Packets |
Packet |
IE |
|
|
|
|
|
|
|
|
|
|
Figure 7-3. Information Returned by GetStatus(WirelessUSBFeatures)
The TX DRP IE field indicates whether the device is enabled to add a DRP IE to its beacon. If TX DRP IE is a one, the device transmits the DRP IE information set by the cluster host. This field is changed by SetFeature() and ClearFeature(). This is a read-only field unless the device is a Self-beaconing device.
The Transmit Packet field indicates whether the Directed Packet Transmission feature is active. See Section 4.3.7.2.1 for a description of device behavior when doing Directed Packet Transmission.
The Count Packets field is set if the device is enabled for counting packets and reset otherwise. See Section 4.3.7.2.2 for a description of device behavior when enabled for counting packets.
The Capture Packets field is set if the device is enabled for capturing a packet and reset otherwise. See Section 4.3.7.2.3 for a description of device behavior when enabled for capturing a packet.
144
Chapter 7 |
|
Wireless USB Framework |
Wireless Universal Serial Bus Specification, Revision 1.0 |
Channel Information
When wIndex value is equal to Channel Info, the device must return the information it has gathered with regards to the state of the underlying PHY channel. The format of the data returned is summarized in Table 7-7. A host can use this command to determine how well the device is receiving MMCs from the host.
Table 7-7. Wireless USB Channel Status Information Returned by Device
Offset |
Field |
Size |
Value |
Description |
0 |
LQI |
1 |
Number |
LQI value of the last MMC packet received from the Host. |
Received Data
When wIndex value is equal to Received Data, the device must return the information it has gathered from the latest Count Packets or Capture Packet operation. Section 4.3.8.3 describes operation of the Count Packets and Capture Packet operations. The format of the data returned is dependent on which operation was last completed.
Table 7-8 shows the format of data returned from a Count Packets operation. For each counted packet the device returns a 10 byte block that includes the Reception Time, the LQI, and the first six bytes of the MAC header.
Table 7-8. Count Packets Data format
Offset |
Field |
Size |
Description |
|
|
|
|
0 |
Packet |
1 |
Number of packets that were counted and whose info is returned. Bits |
|
Count |
|
0-6 hold the actual packet count. Bit 7 is set if there was a buffer |
|
|
|
overrun and zero otherwise. |
1 |
Reception |
3 |
USB Channel Time when this packet was received. Time marker is the |
|
Time |
|
beginning of the preamble. |
4 |
MAC |
6 |
First six bytes of the MAC header of the counted packet. |
|
Header Info |
|
|
10 |
LQI |
1 |
LQI value of the counted packet. A definition of LQI value is provide |
|
|
|
below. |
11 |
Next Packet |
10 |
The block of information for the next counted packet. |
|
info Block |
|
|
… |
… |
… |
… |
Table 7-9 shows the format of data returned from a Capture Packet operation. For the captured packet, the device returns the MAC header and payload. The device also provides the time the packet was received and indicates if there was any problem receiving the packet.
145
Chapter 7 |
|
Wireless USB Framework |
Wireless Universal Serial Bus Specification, Revision 1.0 |
Table 7-9. Capture Packet Data format
Offset |
Field |
Size |
Description |
0 |
Receive |
1 |
Bit vector that provides reception information about the captured |
|
Status |
|
packet. Bit 0 is set if the captured packet did not have a valid FCS. Bit |
|
|
|
1 is set of the captured packet was larger than the available buffer area. |
|
|
|
Bits [7:2] are reserved and must be set to zero. |
1 |
Reception |
3 |
USB Channel Time when this packet was received. Time marker is the |
|
Time |
|
beginning of the preamble |
4 |
MAC |
10 |
MAC Layer header from the captured packet. |
|
Header |
|
|
14 |
Payload |
N |
Payload of the captured packet. |
14+N |
LQI |
1 |
LQI value of the capture packet. A definition of LQI value is provided |
|
|
|
below. |
LQI is an average SNR value at the FFT output for the received packet.
Table 7-10. Definition of LQI values
LQI Value |
SNR |
0 |
Too low to be accurately |
|
measured |
1 |
- 6 dB |
2 |
- 5 dB |
… |
… |
|
|
31 |
24 dB |
32-255 |
Reserved |
MAS Availability
When the wIndex value is equal to MAS Availability, the device will then proceed to accumulate information from its neighbor’s beacons about which MAS slots are available for this device to use (not reserved by any neighbor not a member of the Wireless USB cluster). Note that the device may have MAS Availability information that is current so that it does not have to accumulate the information. The data content of the data
returned by the device is formatted as illustrated in Table 7-11. The device must ignore its host’ s DRP IEs for the current Wireless USB channel when building its availability map.
The host must only issue this GetStatus request to a device that has identified itself as a Self-beaconing device. A Nonor Directed Beaconing device must respond to this request with a Request Error.
Table 7-11. MAS Availability Device Status Format
Offset |
Field |
Size |
Value |
Description |
|
|
|
|
|
0 |
bmMASAvailability |
32 |
Bitmap |
This is a 256-bit map, where each bit location |
|
|
|
|
corresponds to a MAS slot in the MAC Layer super- |
|
|
|
|
frame. A 1B in a bit location means that the device is |
|
|
|
|
available for a reservation in the corresponding MAS |
|
|
|
|
slot. A 0B indicates the device is not available. Bit 0 |
|
|
|
|
corresponds to MAS slot 0. |
146