Спецификация USB.Rev1.0

       

Обработка Ошибок в Последней Транзакции Данных


Если квитирование ACK для IN транзакции разрушено, функция и хост временно будут расходиться во мнениях об успешном завершении транзакции. Если после этой транзакции следует другая IN транзакция, механизм повторного переключения обнаружит несоответствие и исправит ошибку. Если ACK был для последней IN транзакции передачи управления, механизм повторного переключения не может использоваться, и должна применяться альтернативная схема.

Хост, который успешно принял данные последней IN транзакции, производит передачу установки OUT, и функция заметив маркер переключения направления, интерпретирует это, как доказательство, успешного приема данных хостом. Другими словами, функция интерпретирует маркер переключения направления как неявное доказательство успешного получения хостом последнего квитирования ACK. Следовательно, когда функция видит OUT транзакцию установки, она переходит к фазе состояние.

Управляющие записи не имеют такой неоднозначности. Хост, посредством получения квитирования, точно знает, что последняя транзакция была успешна. Если квитирование ACK для OUT транзакции разрушено, то хост не переходит в фазу состояния и вместо этого повторно посылает последние данные. Детализированный анализ стратегии повторения представлен в Разделе 8.6.4.



Содержание раздела