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

Передачи Управления


Передачи Управления состоят минимум из двух стадий транзакции: Установка и Состояние. Передача управления может иметь необязательную стадию данных между стадиями состояния и установкой. В течении стадии Установка, транзакция Установки используется, чтобы передать информацию управляющей конечной точке функции. Транзакции Установки имеют такой же формат как и OUT, но используют PID SETUP вместо PID OUT . Рисунок 8-11 показывает формат транзакции Установки. Установка всегда использует PID DATA0 для поля данных транзакции Установки. Функция получившая Установку должна принять данные Установки и ответить квитированием ACK или, если данные разрушены, отбросить данные, и не возвратить квитирование.

Рисунок 8-11. Установка Транзакции Управления

Стадия Данных, если она есть в передаче управления состоит из одной или более IN или OUT транзакций и придерживается тех же самых правил протокола как bulk передачи. Все транзакции в стадии Данных должны быть одного направления, то есть, все IN или все OUT. Количество данных, которые будут посланы в фазе данных и направление определяется в течении стадии Установка. Если размер данных превышает ранее оговоренный размер пакета данных, данные передаются в нескольких транзакциях (INs или OUTs) с максимальным размером пакета. Оставшиеся данные посылаются как остаток в последней транзакции.

Стадия Состояние передачи управления является последней операцией в последовательности. Стадия Состояние описывается изменением в направлении потока данных из предыдущей стадии и всегда использует PID DATA1. Если, например, стадия Данных состоит из OUT транзакций, то состояние - это одиночная  IN транзакция. Если последовательность управлений не содержит стадию данных, то она состоит из стадии Установка, за которой следует стадия Состояние, состоящая из IN транзакции. Рисунок 8-12 показывает порядок транзакций, значение бита последовательности данных, и типы данных PID для управляющих последовательностей чтения и записи. Биты последовательности показаны в круглых скобках.

Рисунок 8-12. Последовательности Управляющего Чтения и Записи


Передачи Управления позволяют иметь доступ к различным частям устройства. Передачи Управления предназначены, чтобы поддерживать такие типы потоков связи как конфигурация/команда/состояние между клиентским программным обеспечением и функцией. Передача управления состоит из установки транзакции шины, перемещающей информацию запроса от хоста к функции, из нуля или более транзакций данных, посылающих данные в направлении, обозначенном транзакцией установки, и состоянии транзакции, возвращающей информацию о состоянии от функции к хосту (A control transfer is composed of a setup bus transaction moving request information from host to function, zero or more data transactions sending data in the direction indicated by the setup transaction, and a status transaction returning status information from function to host). Транзакция состояния возвращает “успех”("success"), когда конечная точка успешно завершила обработку запрошенной операции. Раздел 8.5.2 описывает, подробности того как используются пакеты, транзакции шины, и последовательности транзакций, чтобы выполнить передачу управления. Глава 9 описывает подробности определенных USB шиной кодов команд .

В каждом устройстве USB требуется, реализовать Конечную точку 0 с типом передачей управления. Эта конечная точка используется программным обеспечением системы USB как канал управления. Каналы управления обеспечивают доступ к конфигурации устройства USB, состоянию, и управляющей информации(control information). Функция может обеспечивать конечные точки дополнительными каналами управления для собственных нужд реализации( A function can provide endpoints for additional control pipes for its own implementation needs).

USB каркас устройства (обратитесь к Главе 9) определяет стандарт, класс устройства, или запросы определяемые продавцом, которые могут использоваться, чтобы управлять состоянием устройства. Также определены дескрипторы, которые можно использовать для хранения различной информации относительно устройства. Передачи управления обеспечивают транспортный механизм доступа к дескрипторам устройства и создания запросов устройства, которые управляют его поведением (Control transfers provide the transport mechanism to access device descriptors and make requests of a device to manipulate its behavior).

Передачи Управления осуществляются только по каналам сообщения. Следовательно, потоки данных, использующие передачи управления должны твердо придержаться определяемой USB структуре данных как описано в Разделе 5.5.1.

USB подсистема будет направлять “самые большие усилия” на то, чтобы поддерживать доставку передач управления между хостом и устройствами. Функции и клиентское программное обеспечение не могут запрашивать специфическую частоту доступа к шине или пропускную способность для передач управления. Программное обеспечение системы USB может ограничивать доступ к шине и пропускную способность, которую может пожелать устройство для передач управления. Эти ограничения определены в Разделе 5.5.3 и Разделе 5.5.4.




Все каналы сообщений передают данные в обоих направлениях. Во всех случаях, клиент выдает стадию установки к конечной точке устройства. Необязательная стадия данных может быть или входной или выходной, и конечное состояние всегда логически выдается на хост. Для ознакомления с подробностями определенного протокола сообщения, обратитесь к Главе 8.

Клиент готовит буфер для определенной фазы команды и любых необязательных данных или пустое пространство буфера.(The client prepares a buffer specifying the command phase and any optional data or empty buffer space.) Клиент получает уведомление об удалении из буфера, когда все фазы передачи управления завершены, или уведомление об ошибки, если передача прервана из-за ошибки в передаче.



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