
- •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 8 |
|
Wire Adapter |
Wireless Universal Serial Bus Specification, Revision 1.0 |
8.5HWA Interfaces, Descriptors and Control
This section provides details on the HWA specific interfaces, includes all the descriptors an HWA should present to host software, HWA class specific control transfers, additional notifications that an HWA can return to host software and describes how isochronous streaming is supported on an HWA.
8.5.1 HWA Isochronous Streaming Overview
On a Host Wire Adapter the basic data flow model for Isochronous pipes is identical to the Bulk streaming model. Host software sends “buffer oriented” transfer requests to the Wire Adapter. The Host Client model is already based on a client device driver queuing multiple requests to the Wired or Wireless USB Stack in order to achieve streaming. The host software can propagate the request stream without modification to the HWA. It is expected that host software will only have to subdivide client transfer requests into a series of smaller transfer requests depending on the buffering available on that RPipe. Note that although the transfer request model is ‘buffer oriented’ the transfer requests coming from the client already have per-frame annotations. Host software will include the packetization and when to send/receive (timestamp) information in the transfer request to the HWA. This is very important as only the client has knowledge of how per-frame annotations should be applied to a stream. For instance, a client may change the per-frame data amount in order to maintain synchronization. Note that a relative (as opposed to explicit, per packet) timestamp is sufficient.
For IN transfers, it is important that the feedback/response pipe provide sufficient information for the host software to map data packets received in specific frames to the appropriate client request buffer area. This means the HWA must annotate the received data stream with packet boundaries, upon receipt (timestamp) and correctly identify bad and/or missing packets. An isochronous transfer result is always followed by an isochronous packet status array. Note that relative timestamp information is sufficient. See Section 8.5.5 for details.
8.5.2 HWA Descriptors
Host Wire Adapters must support a class specific security descriptor, identical to the security descriptor returned by all wireless USB devices, to be used by the host to identify the encryption types supported on the host wire adapters logical down stream ports. It must return the security descriptor as part of its configuration descriptor. A Host Wire Adapter returns different descriptors based on whether it is operating at high-speed or full speed.
8.5.2.1 Device Descriptor
Table 8-39. Device Descriptor
Offset |
Field |
Size |
Value |
Description |
|
|
|
|
|
0 |
bLength |
1 |
12H |
Size of this descriptor in bytes, including this field. |
|
|
|
|
|
1 |
bDescriptorType |
1 |
1 |
DEVICE Descriptor Type. |
|
|
|
|
|
2 |
bcdUSB |
2 |
200H |
USB Specification Release Number in Binary-Coded |
|
|
|
|
Decimal. This field identifies the release of the USB |
|
|
|
|
Specification with which the device and its |
|
|
|
|
descriptors are compliant. |
|
|
|
|
|
4 |
bDeviceClass |
1 |
EFH |
Miscellaneous |
|
|
|
|
|
5 |
bDeviceSubClass |
1 |
02H |
Common Class |
|
|
|
|
|
6 |
bDeviceProtocol |
1 |
02H |
Wire Adapter Multifunction Peripheral |
|
|
|
|
|
7 |
bMaxPacketSize0 |
1 |
Number |
Maximum packet size for endpoint zero |
|
|
|
|
|
8 |
idVendor |
2 |
ID |
Vendor ID (assigned by the USB-IF) |
|
|
|
|
|
236
Chapter 8 |
|
Wire Adapter |
Wireless Universal Serial Bus Specification, Revision 1.0 |
Table 8-39. Device Descriptor (cont.)
Offset |
Field |
Size |
Value |
Description |
|
|
|
|
|
10 |
idProduct |
2 |
ID |
Product ID (assigned by manufacturer) |
|
|
|
|
|
12 |
bcdDevice |
2 |
BCD |
Device release number in binary-coded-decimal |
|
|
|
|
|
14 |
iManufacturer |
1 |
Index |
Index of string descriptor describing manufacturer |
|
|
|
|
|
15 |
iProduct |
1 |
Index |
Index of string descriptor describing product |
|
|
|
|
|
16 |
iSerialNumber |
1 |
Index |
Index of string descriptor describing product serial |
|
|
|
|
number |
|
|
|
|
|
17 |
bNumConfigurations |
1 |
1 |
Number of possible configurations |
|
|
|
|
|
All Host Wire Adapters have a UWB Radio and hence have to export a Radio Control Interface as well (see Section 8.6). To correctly enumerate the HWA, it must set bDeviceClass, bDeviceSubClass and bDeviceProtocol fields to EFH, 02H and 02H respectively. This class code is defined as the Wire Adapter Multifunction Peripheral (WAMP) class code.
8.5.2.2 Device_Qualifier Descriptor
Table 8-40. Device_Qualifier Descriptor
Offset |
Field |
Size |
Value |
Description |
|
|
|
|
|
0 |
bLength |
1 |
0AH |
Size of this descriptor in bytes, including this field. |
|
|
|
|
|
1 |
bDescriptorType |
1 |
6 |
DEVICE_QUALIFIER Type |
|
|
|
|
|
2 |
bcdUSB |
2 |
200H |
USB Specification Release Number in Binary-Coded |
|
|
|
|
Decimal. This field identifies the release of the USB |
|
|
|
|
Specification with which the device and its |
|
|
|
|
descriptors are compliant. |
4 |
bDeviceClass |
1 |
EFH |
Miscellaneous |
|
|
|
|
|
5 |
bDeviceSubClass |
1 |
02 |
Common Class |
|
|
|
|
|
6 |
bDeviceProtocol |
1 |
02 |
Wire Adapter Multifunction Peripheral |
|
|
|
|
|
7 |
bMaxPacketSize0 |
1 |
Number |
Maximum packet size for endpoint zero. |
|
|
|
|
|
8 |
bNumConfigurations |
1 |
1 |
Number of possible configurations. |
|
|
|
|
|
9 |
bReserved |
1 |
Zero |
Reserved for future use, must be zero. |
|
|
|
|
|
8.5.2.3 Configuration Descriptor
Table 8-41. Configuration Descriptor
Offset |
Field |
Size |
Value |
Description |
|
|
|
|
|
0 |
bLength |
1 |
9 |
Size of this descriptor in bytes, including this field. |
|
|
|
|
|
1 |
bDescriptorType |
1 |
2 |
CONFIGURATION Descriptor Type |
|
|
|
|
|
2 |
wTotalLength |
2 |
Number |
Total length of all descriptors in this configuration |
|
|
|
|
|
4 |
bNumInterfaces |
1 |
Number |
Number of interfaces included in this configuration |
|
|
|
|
|
5 |
bConfigurationValue |
1 |
Number |
Value to use to reference this configuration |
|
|
|
|
|
6 |
iConfiguration |
1 |
Index |
Index of String Descriptor describing this |
|
|
|
|
configuration |
237
Chapter 8 |
|
Wire Adapter |
Wireless Universal Serial Bus Specification, Revision 1.0 |
Table 8-41. Configuration Descriptor (cont.)
Offset |
Field |
Size |
Value |
Description |
|
|
|
|
|
7 |
bmAttributes |
1 |
Bitmap |
Configuration characteristics |
|
|
|
|
D7: Reserved (set to one) |
|
|
|
|
D6: Self-powered |
|
|
|
|
D5: Remote Wakeup |
|
|
|
|
D4...0: Reserved (reset to zero) |
|
|
|
|
|
8 |
bMaxPower |
1 |
mA |
Maximum power consumption of the USB device |
|
|
|
|
from the bus in this specific configuration when the |
|
|
|
|
device is fully operational. Expressed in 2 mA units |
|
|
|
|
(i.e., 50 = 100 mA). |
8.5.2.4 Other_Speed_Configuration Descriptor
Table 8-42. Other_Speed_Configuration Descriptor
Offset |
Field |
Size |
Value |
Description |
|
|
|
|
|
0 |
bLength |
1 |
9 |
Size of this descriptor in bytes, including this field. |
|
|
|
|
|
1 |
bDescriptorType |
1 |
7 |
Other_Speed_Configuration Descriptor Type |
|
|
|
|
|
2 |
wTotalLength |
2 |
Number |
Total length of all descriptors in this configuration |
|
|
|
|
|
4 |
bNumInterfaces |
1 |
Number |
Number of interfaces supported by this speed |
|
|
|
|
configuration. |
5 |
bConfigurationValue |
1 |
Number |
Value to use to select configuration |
6 |
iConfiguration |
1 |
Index |
Index of string descriptor |
|
|
|
|
|
7 |
bmAttributes |
1 |
Bitmap |
Same as Configuration descriptor |
8 |
bMaxPower |
1 |
mA |
Same as Configuration descriptor |
|
|
|
|
|
8.5.2.5 Security Descriptors
A Host Wire Adapter must return a security descriptor and all its associated encryption descriptors in its configuration descriptor.
Table 8-43. Wire Adapter Class Security Descriptor
Offset |
Field |
Size |
Value |
Description |
|
|
|
|
|
0 |
bLength |
1 |
5 |
Size of this descriptor in bytes, including this field. |
|
|
|
|
|
1 |
bDescriptorType |
1 |
12 |
Security Descriptor Type |
|
|
|
|
|
2 |
wTotalLength |
2 |
Number |
Total length of this descriptor and all encryption |
|
|
|
|
descriptors returned |
4 |
bNumEncryptionTypes |
1 |
Number |
Number of supported encryption Types |
|
|
|
|
|
The Host Wire Adapter will return the number of Encryption descriptors as noted in the bNumEncryptionsTypes field immediately after the Security descriptor. Since this Encryption Descriptor is only used to inform the host software of the supported encryption methods, the bAuthKeyIndex field must be set to 0x0 in every Encryption Descriptor that is returned by the Wire Adapter.
NOTE: The security descriptor and its associated encryption descriptors that are returned as part of the configuration description are used only to determine the supported encryption methods of the Host Wire Adapter device on its logical downstream ports.
238
Chapter 8 |
|
Wire Adapter |
Wireless Universal Serial Bus Specification, Revision 1.0 |
8.5.2.6 Data Transfer Interface Descriptor
Table 8-44. Data Transfer Interface Descriptor
Offset |
Field |
Size |
Value |
Description |
|
|
|
|
|
0 |
bLength |
1 |
9 |
Size of this descriptor in bytes, including this field. |
|
|
|
|
|
1 |
bDescriptorType |
1 |
4 |
INTERFACE Descriptor Type |
|
|
|
|
|
2 |
bInterfaceNumber |
1 |
0 |
Number of this interface. |
|
|
|
|
|
3 |
bAlternateSetting |
1 |
0 |
Value used to select this alternate setting for the |
|
|
|
|
interface identified in the prior field |
4 |
bNumEndpoints |
1 |
3 |
Number of endpoints used by this interface. |
|
|
|
|
|
5 |
bInterfaceClass |
1 |
E0H |
Wireless Controller |
|
|
|
|
|
6 |
bInterfaceSubclass |
1 |
02H |
Wireless USB Wire Adapter |
|
|
|
|
|
7 |
bInterfaceProtocol |
1 |
01H |
Host Wire Adapter Control/Data Streaming interface |
|
|
|
|
|
8 |
iInterface |
1 |
Index |
Index of String Descriptor describing this interface |
|
|
|
|
|
8.5.2.7 Wire Adapter Class Descriptor
This descriptor describes the characteristics of the HWA to host software. This includes but is not limited to the amount of buffering available on the HWA, the number of RPipes, the maximum number of IEs that the HWA has storage for and the number of devices that this HWA can have connected to it at the same time.
Table 8-45. Wire Adapter Class Descriptor
Offset |
Field |
Size |
Value |
Description |
|
|
|
|
|
0 |
bLength |
1 |
Number |
Size of this descriptor in bytes, including this field. |
|
|
|
|
|
1 |
bDescriptorType |
1 |
21H |
Wire Adapter Descriptor Type |
|
|
|
|
|
2 |
bcdWAVersion |
2 |
0100H |
WA Class Specification Release Number in Binary- |
|
|
|
|
Coded Decimal. This field identifies the release of |
|
|
|
|
the WA Class Specification with which this interface |
|
|
|
|
is compliant. |
|
|
|
|
|
4 |
bNumPorts |
1 |
Number |
The maximum number of simultaneous devices that |
|
|
|
|
this HWA can support. |
5 |
bmAttributes |
1 |
Bitmap |
Reserved, must be set to zero. |
|
|
|
|
|
6 |
wNumRPipes |
2 |
Number |
The number of RPipes supported by this Wire |
|
|
|
|
Adapter |
8 |
wRPipeMaxBlock |
2 |
Number |
The maximum number of buffer blocks assignable to |
|
|
|
|
all RPipes. |
|
|
|
|
|
10 |
bRPipeBlockSize |
1 |
Number |
The size of an RPipe buffer block, expressed In the |
|
|
|
|
form 2 bRpipeBlockSize-1 bytes per block. For example, a |
|
|
|
|
value of 10 would be 512. |
11 |
bPwrOn2PwrGood |
1 |
Number |
For Host Wire Adapters, this field must be set to 0. |
12 |
bNumMMCIEs |
1 |
Number |
This field specifies the number of MMC IE blocks that |
|
|
|
|
a HWA can support at the same time. Each block |
|
|
|
|
must have at least 255 bytes of storage. Valid values |
|
|
|
|
are in the range of 1H to FFH. A zero in this field is |
|
|
|
|
undefined for an HWA. |
|
|
|
|
|
13 |
DeviceRemovable |
1 |
Bitmap |
For Host Wire Adapters, this field is of length 1 and |
|
|
|
|
all bits are set to 0. |
239