Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
USB System Architecture (USB 2.0).pdf
Скачиваний:
172
Добавлен:
03.05.2015
Размер:
7.03 Mб
Скачать

USB System Architecture

Ping Transactions

The USB 2.0 specification defines a new transaction type called the ping transaction that is designed to eliminate a bus efficiency problem in the high-speed environment that exists with lowand full-speed devices.

The Problem

Following an OUT transaction that has been delivered to a bulk or control endpoint, the endpoint must process the data just received. The endpoint may take a relatively long period of time to process the data and clear the FIFO. If the next OUT token and data packet are delivered to the endpoint before the previous transaction clears, the device must discard the data, return a NAK handshake, and wait for the host to retry the OUT transaction. Much of the available bandwidth for transferring data is lost as a result of transferring data that is discarded by the endpoint. A personification of the host controller might complain to the device, “Why didn’t you tell me you couldn’t accept the data?” and the device might respond “You didn’t ask.” The ping protocol solves this problem by providing a way for the host to ask and for the device to answer.

The Solution

Figure 12-11 contrasts an OUT transaction that receives a NAK handshake with a ping transaction that receives a NAK. Rather than wasting bus bandwidth by transferring a data packet that may ultimately be discarded, the ping transaction is an efficient way of checking with the device prior to sending the data. The OUT transaction results in up to 530 bytes of bus time, plus two interpacket delays, while the ping transaction uses 4 bytes of bus time, plus one inter packet delay. In both cases, the device returns a NAK handshake indicating that it has no room for the data. When ACK is returned, then the host knows the device has room to accept the data, and delivers the OUT transaction.

260

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]