Шина IEEE 1394 — FireWire

Взаимодействие драйвера с уровнем транзакций

Уровень транзакций взаимодействует с прикладным драйвером четырьмя примитивами сервисов:

  • запрос (request), используемый запросчиком транзакции для инициирования субакции запроса. В запросе передается:
  1. код типа транзакции (Read, Write, Lock с указанием операции);
  2. адрес получателя;
  3. длина данных;
  4. данные (для Write и Lock);
  5. скорость передачи.

Передавая запрос канальному уровню, уровень транзакций добавляет еще метку транзакции и код повтора.

  • Индикация (indication), уведомляющая ответчика о приходе запроса. Драйверу ответчика передается:
  1. код типа транзакции (Read, Write, Lock с указанием операции);
  2. адрес узла$запросчика (получателя для данной субакции);
  3. длина данных;
  4. данные (для Write и Lock);
  5. метка транзакции;
  6. код повтора;
  7. скорость передачи.
  • Ответ (response), используемый ответчиком для получения состояния или данных запроса, запускающий субакцию ответа. В ответе передается:
  1. код типа транзакции;
  2. адрес запросчика (получателя);
  3. длина данных;
  4. данные (для Read и Lock);
  5. код ответа;
  6. метка транзакции;
  7. скорость передачи.
  • Подтверждение (confirmation), уведомляющее запросчика о завершении транзакции. В нем прикладному драйверу передается;
  1. состояние запроса: завершение (успешное), тайм$аут (отсутствие своевременного ответа), отсутствие квитанции о приеме запроса, исчерпание предела повторов, ошибка принятых данных;
  2. код ответа (завершение или ошибка данных);
  3. данные и их длина (для Read и Lock).
Яндекс.Метрика