Скачиваний:
31
Добавлен:
02.05.2014
Размер:
3.51 Mб
Скачать

Chapter 4

 

Data Flow Model

Wireless Universal Serial Bus Specification, Revision 1.0

4.4.1Burst Mode Data Phase

The USB 2.0 protocol allows a maximum of one data packet per USB transaction. Due to the significant packet delimiter overheads for wireless (long packet preambles, MIFS, SIFS, etc.), Wireless USB includes the capability to send multiple data packets during a transaction’s data phase (see Figure 4-16). This feature allows for potentially better efficiency because packet delimiters and inter-packet gaps can be reduced. The general term for this capability is a Burst Mode Data Phase. All Wireless USB Data Phases use the Burst Mode Data Phase rules; even if burst size is one (see Section 5.4).

Figure 4-16. Example WUSB Data Phase Data Burst Footprint

“Data Burst” is a generic term for the series of data packets that are transmitted during the data phase of a Wireless USB transaction (see Figure 4-16). Maximum data burst size is an individual function endpoint capability which depends on the function endpoint’s current configuration. A host determines a function endpoint’s maximum data burst size from its Wireless USB Endpoint Companion descriptor (see Section 7.4.4). The size of each data packet in a data burst must be the configured function endpoint’s maximum packet size or adjusted maximum packet size (see Section 4.10.2), (except for short-packet situations and isochronous streams).

The host may dynamically change the burst size on a per-transaction basis (up to the configured maximum burst size). The detailed description of Wireless USB Data Bursting is provided in Section 5.4.

The host may use any burst size up to the configured maximum burst size. Examples of when a host may use different burst sizes include (but are not limited to) a fairness policy on the host, retries for an isochronous stream, etc. When the function endpoint is an OUT, the host can trivially control the burst size (receiver must always be able to manage a transaction burst size). Note that the host must observe the configured maximum endpoint sequence range as defined below, regardless of the actual burst size it is using. When the function endpoint is an IN, the host can limit the burst size for the function endpoint on a per-transaction basis via a field in the Token block of the MMC (see Section 5.2.1). Note that a host may override the configured burst size by specifying a value less than the configured maximum burst size of the function endpoint.

4.5Bulk Transfers

The purpose and characteristics of Bulk Transfers is similar to that defined in USB 2.0 (Section 5.8 of the USB 2.0 Specification). Chapter 5 of this specification describes the details of the packets, bus transactions and transaction sequences used to accomplish Bulk transfers. Bulk transfer type is intended to support devices that want to communicate relatively large amounts of data at highly variable times where the transfer can use any available Wireless USB channel bandwidth. A Wireless USB Bulk function endpoint provides the following:

Access to the Wireless USB channel on a bandwidth available basis

Guaranteed delivery of data, but no guarantee of bandwidth or latency

37

Chapter 4

 

Data Flow Model

Wireless Universal Serial Bus Specification, Revision 1.0

Bulk transfers occur only on a bandwidth-available basis. With large amount of channel time and good channel conditions, bulk transfers may happen relatively quickly; for conditions with little channel time available, bulk transfers may take a long time.

Wireless USB retains the following characteristics of bulk pipes:

No data content structure is imposed on communication flow for bulk pipes

A bulk pipe is a stream pipe, and therefore always has communication flow either into or out of the host for any pipe instance. If an application requires a bi-directional bulk communication flow, two bulk pipes must be used (one IN and one OUT).

4.5.1Bulk Transfer Packet Size and Signaling Rate Constraints

An endpoint for bulk transfers specifies the maximum data packet payload size and burst size that the endpoint can accept from or transmit to the Wireless USB channel during one transaction. The allowable maximum data payload sizes for bulk endpoints are packet size values between 512 and 3584 that are integral multiples of 512 (i.e. 512, 1024, 1536, 2048, 2560, 3072 and 3584). The maximum allowable burst size bulk endpoints may specify is any value in the range 1 to 16.

A host may use any of the device’s reported PHY signaling rates for data packets transmitted during the data phase of a Wireless USB transaction. For OUT (host to device) transactions to a bulk endpoint, the host may use any supported PHY signaling rate for data packets. For INs (device to host) the host may direct the device to use any one of the supported PHY signaling rates for data packets transmitted during the data phase.

A host is required to support any Wireless USB bulk endpoint. A host must support all combinations of bulk packet sizes and bulk burst sizes. No host is required to support larger than maximum packet sizes. The host ensures that no data payload of any data packet in a transaction burst will be sent to the endpoint that is larger than the reported maximum packet size, it will not send more data packets than the reported maximum burst size and it will not use sequence numbers larger than or equal to the reported maximum sequence value of the endpoint.

As noted in Section 4.10.2 a host may use smaller data payloads per packet than the reported maximum packet size as a measure to improve PER, when the function endpoint reports that it supports data packet size adjustments. For function endpoints that do not support the data packet size adjustment, the host must always use the reported wMaxPacketSize with transactions to the function endpoint. For function endpoints that do support data packet size adjustment, the host may only use allowed data packet sizes less than or equal to the reported maximum packet size for the endpoint. For example, a bulk endpoint reports a wMaxPacketSize of 1536 bytes; a host may only use packet sizes in the set {512, 1024, 1536}. An IN transaction token (WDTCTA, see Section 5.2.1.2) always includes the packet size the function endpoint should use for the data phase data packets. A host must always specify to use a data packet size supported by the function endpoint; otherwise the behavior is not defined. The data packet size selected for each bulk transaction is called the ‘active’ packet size. On OUT transactions, the function bulk endpoint (that supports packet size adjustments) must be prepared for the host to use any valid ‘active’ packet size in each transaction.

A bulk function endpoint must always transmit data payloads with data fields less than or equal to the transaction’s active packet size. If the bulk transfer has more information than will fit into the active packet size for the transaction, all data payloads in the data burst are required to be active packet size except for the last data payload in the burst, which may contain the remaining data. A bulk transfer may span multiple bus transactions. The host is allowed to adjust the active packet size (when the device supports it) on every contiguous burst. See Section 4.10.2 for the definition of a contiguous burst. A bulk transfer is complete when the endpoint does one of the following:

Has transferred exactly the amount of data expected

Transfers a data packet with a last packet flag set to one in its Wireless USB header (see Section 5.1).

38

Соседние файлы в папке Wireless USB Specification Revision 1.0 May 12, 2005