Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Агуров П.В. -> "Интерфейсы USB. Практика использования и программирования" -> 38

Интерфейсы USB. Практика использования и программирования - Агуров П.В.

Агуров П.В. Интерфейсы USB. Практика использования и программирования — СПб.: БХВ-Петербург, 2004. — 576 c.
ISBN 5-94157-202-6
Скачать (прямая ссылка): interface2004.djvu
Предыдущая << 1 .. 32 33 34 35 36 37 < 38 > 39 40 41 42 43 44 .. 166 >> Следующая

? ACK — прием пакета успешен и устройство готово к приему следующего полноразмерного пакета;
Глава 3. Внутренняя организация шины
93
? NYET — успешный прием, но неготовность к следующему пакету;
? NAK — неготовность устройства (может случиться, что за время от пакета пробы до посылки пакета устройство перестало быть готово к приему).
Высокоскоростное устройство в дескрипторах конечных точек сообщает о возможной интенсивности посылок NAK: поле binterval для конечных точек передачи данных и управления указывает число микрокадров, приходящееся на один ответ NAK (0 означает, что устройство никогда не ответит посылкой пакета NAK на транзакцию вывода).
3.10.3. Протоколы транзакций
В зависимости от типа передачи данных каждая посылка состоит из одной или нескольких транзакций.
Управляющие посылки
Существуют три типа управляющих посылок (рис. 3.14):
? посылка записи данных (Control Write) состоит из следующих, транзакций:
• передача команды;
• передача с подтверждением одного или нескольких пакетов данных;
• прием с подтверждением пустого пакета данных, подтверждающего успешное завершение операции;
? посылка чтения данных (Control Read) состоит из следующих транзакций:
• передача команды;
• прием с подтверждением одного или нескольких пакетов данных;
• передача с подтверждением пустого пакета данных, подтверждающего успешное завершение операции;
? посылка без данных (No-data Control) состоит из следующих транзакций:
• передача команды;
• прием с подтверждением пустого пакета данных, подтверждающего успешное завершение операции.
При выполнении транзакции передачи данных признак синхронизации данных должен быть сброшен в ноль (блок данных, содержащий код команды, Имеет ТИП DataO).
Если команда предполагает прием или передачу данных, то после каждой транзакции признак синхронизации данных инвертируется: первый блок имеет тип Datal, второй — DataO, третий — Datal и т. д. Пустой пакет данных, подтверждающий завершение управляющей посылки,
ДОЛЖеН ИМеТЬ тип Datal.
94
Часть II. Внутренняя организация USB
При передаче управляющей посылки максимальный размер пакета для полноскоростного устройства может составлять 8, 16, 32 или 64 байта, а для низкоскоростного всегда равен 8 байтам.
Для передачи сообщений по Основному каналу сообщений всегда используется максимальный размер пакета, равный 8 байтам.
Посылка записи данных
Посылка чтения данных
Посылка без данных
Setup (0)
DataO
Setup (0)
DataO
Setup (0)
DataO
^ Команда
OUT(I) OUT (0)
Datal
IN (1)
Datal
DataO
IN(O)
DataO
Данные
OUT (0/1)
DataO/1
IN (0/1)
Data0/1
IN (1)
OUT(I)
Datal
IN (1)
Datal
Контроль
Рис. 3.14. Формат управляющих посылок
Передачи массивов данных
Существуют два типа передачи массивов (рис.,3.15):
? передача массива данных от хоста к конечной точке (Bulk Write);
? прием хостом массива данных от конечной точки (Bulk Read).
Передача данных от хоста к конечной точке состоит из следующих друг за другом транзакций передачи данных с подтверждением, а передача данных от конечной точки к хосту — из следующих друг за другом транзакций приема с подтверждением. И в том, и в другом случае перед началом передачи массива триггер синхронизации данных должен быть сброшен в 0: при выполнении первой транзакции блок данных имеет тип DataO, второй —
Datal, Третий — DataO И Т. Д.
Прием и передачу массивов^ данных могут выполнять только полноскоростные устройства. Максимальный размер пакета при передаче массива может быть равен 8, 16, 32 или 64 байтам.
Передача массива
Прием массива
OUT (0)
OUT(I)
OUT (0/1)
Data0/1
IN (0/1) Data0/1
Datal
IN(D
Datal
DataO
IN(O)
DataO
Рис. 3.15. Формат посылок передачи данных
гпава 3. Внутренняя организация шины
95
Передачи по прерываниям
Существуют два типа передачи по прерываниям:
? передача массива данных от хоста к конечной точке по прерыванию;
? прием хостом массива данных от конечной точки по прерыванию.
Передача данных по прерыванию заключается в выполнении транзакции передачи пакета данных с подтверждением от хоста к конечной точке. Прием заключается в выполнении транзакции приема пакета данных с подтверждением от конечной точки. При приеме или передаче каждого блока данных происходит переключение триггера данных. Первый передаваемый (или принимаемый) блок должен иметь тип DataO, следующий — Datal и т. д.
Максимальный размер пакета при передаче по прерыванию для низкоскоростных усгройств не может быть более 8 байт, а для высокоскоростных — более 64 байт.
Изохронные передачи
Существуют два типа изохронной передачи:
? изохронная передача данных от хоста к конечной точке;
? изохронный прием данных хостом от конечной точки.
Изохронная передача данных заключается в выполнении транзакции передачи пакета данных без подтверждения от хоста к конечной точке. Изохронный прием заключается в выполнении транзакции приема пакета данных без подтверждения от конечной точки.
Состояние триггера данных при изохронной передаче игнорируется, но рекомендуется сбросить его в ноль перед началом передачи.
Предыдущая << 1 .. 32 33 34 35 36 37 < 38 > 39 40 41 42 43 44 .. 166 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100