Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
23
Добавлен:
16.04.2013
Размер:
2.02 Mб
Скачать

Universal Serial Bus Specification Revision 1.1

5.6 Isochronous Transfers

In non-USB environments, isochronous transfers have the general implication of constant-rate, errortolerant transfers. In the USB environment, requesting an isochronous transfer type provides the requester with the following:

Guaranteed access to USB bandwidth with bounded latency

Guaranteed constant data rate through the pipe as long as data is provided to the pipe

In the case of a delivery failure due to error, no retrying of the attempt to deliver the data.

While the USB isochronous transfer type is designed to support isochronous sources and destinations, it is not required that software using this transfer type actually be isochronous in order to use the transfer type. Section 5.10 presents more detail on special considerations for handling isochronous data on the USB.

5.6.1 Isochronous Transfer Data Format

The USB imposes no data content structure on communication flows for isochronous pipes.

5.6.2 Isochronous Transfer Direction

An isochronous pipe is a stream pipe and is, therefore, always uni-directional. An endpoint description identifies whether a given isochronous pipe’s communication flow is into or out of the host. If a device requires bi-directional isochronous communication flow, two isochronous pipes must be used, one in each direction.

5.6.3 Isochronous Transfer Packet Size Constraints

An endpoint in a given configuration for an isochronous pipe specifies the maximum size data payload that it can transmit or receive. The USB System Software uses this information during configuration to ensure that there is sufficient bus time to accommodate this maximum data payload in each frame. If there is sufficient bus time for the maximum data payload, the configuration is established; if not, the configuration is not established. The USB System Software does not adjust the maximum data payload size for an isochronous pipe as is the case for a control pipe. An isochronous pipe can simply either be supported or not supported in a given USB system configuration.

The USB limits the maximum data payload size to 1,023 bytes for each isochronous pipe. Table 5-3 lists information about different-sized isochronous transactions and the maximum number of transactions possible in a frame. The table does not include the overhead associated with bit stuffing.

41

Universal Serial Bus Specification Revision 1.1

Table 5-3. Isochronous Transaction Limits

 

Protocol Overhead (9 bytes)

(2 SYNC bytes, 2 PID bytes, 2 Endpoint + CRC bytes, 2 CRC

 

 

 

bytes, and a 1-byte interpacket delay)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Data

Max

Frame

Max

Bytes

Bytes/Frame

 

Payload

Bandwidth

Bandwidth

Transfers

Remaining

Useful Data

 

 

 

per Transfer

 

 

 

 

 

 

 

 

 

 

 

1

150000

1%

150

0

150

 

 

 

 

 

 

 

 

2

272000

1%

136

4

272

 

 

 

 

 

 

 

 

4

460000

1%

115

5

460

 

 

 

 

 

 

 

 

8

704000

1%

88

4

704

 

 

 

 

 

 

 

 

16

960000

2%

60

0

960

 

 

 

 

 

 

 

 

32

1152000

3%

36

24

1152

 

 

 

 

 

 

 

 

64

1280000

5%

20

40

1280

 

 

 

 

 

 

 

 

128

1280000

9%

10

130

1280

 

 

 

 

 

 

 

 

256

1280000

18%

5

175

1280

 

 

 

 

 

 

 

 

512

1024000

35%

2

458

1024

 

 

 

 

 

 

 

 

1023

1023000

69%

1

468

1023

 

 

 

 

 

 

 

Max

 

1500000

 

 

 

1500

 

 

 

 

 

 

 

Any given transaction for a isochronous pipe need not be exactly the maximum size specified for the endpoint. The size of a data payload is determined by the transmitter (client software or function) and can vary as required from transaction to transaction. The USB ensures that whatever size is presented to the Host Controller is delivered on the bus. The actual size of a data payload is determined by the data transmitter and may be less than the prenegotiated maximum size. Bus errors can change the actual packet size seen by the receiver. However, these errors can be detected by either CRC on the data or by knowledge the receiver has about the expected size for any transaction.

5.6.4 Isochronous Transfer Bus Access Constraints

Isochronous transfers can be used only by full-speed devices.

The USB requires that no more than 90% of any frame be allocated for periodic (isochronous and interrupt) transfers.

An endpoint for an isochronous pipe does not include information about bus access frequency. All isochronous pipes normally move exactly one data packet each frame (i.e., every 1ms). Errors on the bus or delays in operating system scheduling of client software can result in no packet being transferred for a frame. An error indication should be returned as status to the client software in such a case. A device can also detect this situation by tracking SOF tokens and noticing two SOF tokens without an intervening data packet for an isochronous endpoint.

42

Соседние файлы в папке usb 1.1