Сообщение Результатов Состояния(Reporting Status Results)
Стадия Состояние сообщает на хост результат предыдущих стадий передачи Установки и Данных. Возможно возвратить следующие три результата:
- Последовательность команд, завершена успешно.
- Последовательность команд не может завершиться из-за ошибки.
- Функция все еще занята завершением команд.
Сообщение о Состоянии всегда имеет направление от функции к хосту. В таблице приведены типы ответов, требуемых для каждого результата. Передача управляющей записи возвращает информацию о Состоянии фазы данных передачи.( Control write transfers return status information on the data phase of the transfer.) Передача управляющего чтения возвращает информацию о Состоянии передач в фазе квитирования после того, как хост выдал пакет данных нулевой длины в течение предыдущей фазы данных.
Таблица 8-5. Ответы Фазы Состояние
Ответ Состояние | Передача Управляющей Записи (посылается в течение фазы данных) | Передача Управляющего Чтения (посылается в течение фазы квитирования) |
| ||
Функция завершена | Пакет данных нулевой длины | квитирование ACK | |||
В функции ошибка | квитирование STALL | квитирование STALL | |||
Функция занята | квитирование NAK | квитирование NAK |
Для управляющего чтения, хост посылает пакет данных нулевой длины управляющей конечной точке.(For control reads, the host sends a zero length data packet to the control endpoint.) Ответное квитирование от конечной точки говорит о состоянии при завершении. NAK указывает, что функция все еще обрабатывает команду и что хост должен продолжить фазу состояние. ACK указывает, что функция завершила команду и готова принять новую команду, и STALL указывает, что произошла ошибка в функции, которая мешает завершить команду.
Для управляющей записи, функция отвечает или квитированием или пакетом данных нулевой длины, что отображает ее состояние. NAK указывает, что функция все еще обрабатывает команду и что хост должен продолжить фазу Состояние, возврат пакета нулевой длины указывает нормальное завершение команды, и STALL указывает, что произошла ошибка в функции, которая мешает завершить команду. Передачи управляющей записи, которые возвращают пакет данных нулевой длины в течение фазы данных всегда заставляют хост возвращать функции квитирование ACK.
Если, в течение стадии Данных или Состояние, командная конечная точка посылает или запрашивает большее количество данных, чем было указано в стадии Установка, то она (???ей) должна возвратить STALL.( If, during a Data or Status stage, a command endpoint is sent more data or is requested to return more data than was indicated in the Setup stage, it should return a STALL.) Если управляющая конечная точка возвращает STALL в течение стадии Данных, то стадия Установка будет отсутствовать в этой передачи управления .