Поиск по сайту: |
|
По базе: |
|
Главная страница > Интерфейсы > USB > Популярно о USB |
|
|||||||||||||||||||||||||||||||||||||||
Канал управленияРанее упоминались запросы (requests) , которые выполняют роль команд для USB устройств. Сейчас рассмотрим механизм управляющих передач на канале управления, с помощью которого передаются эти запросы. Вспомним транзакции на шине USB, все транзакции состоят из трех фаз: фаза маркера, фаза данных и фаза квитирования. На каждой из фаз в ту или иную сторону отправляется соответственный пакет. Управляющие передачи на канале управления – это как бы транзакции внутри транзакций. Каждая передача управления состоит из двух или трех фаз, а каждая фаза представляет транзакцию, которая сама состоит из трех фаз. Вспомним, что управляющий запрос к USB устройству может содержать параметры, стандартный запрос SET_ADDRESS, в качестве параметра переда.т USB устройству его адрес. Стандартный запрос GET_DESCRIPTOR, должен получить дескриптор от USB устройства, а стандартный запрос SET_DESCRIPTOR, должен передать дескриптор USB устройства. Стадии управляющей передачи:
На рисунке 10, показана управляющая передача из 2-х стадий, из стадии установки и стадии передачи состояния. Такие управляющие передачи применяются для простейших запросов. Первым передается маркерный пакет SETUP, затем пакет данных типа DATA0, всегда размером в 8 байт, иногда этот пакет называют конфигурационным. Хост должен ответить пакетом ACK. Если пакет поврежд.н, то USB устройство делает тайм-аут, сигнализируя о необходимости повторной передачи пакета. Конфигурационный пакет несет содержательную информацию. После обязательной стадии установки, стадия передачи состояния. В этой стадии хост намеревается получить ответ о результате обработки запроса, принятого на предыдущей стадии установки. Первым хост посылает маркерный пакет IN. Если запрос еще не обработан, в ответ посылается пакет NAK. Если запрос обработан, но запрос не корректен, возвращается STALL. Конечная точка управления не может быть заблокированной. Под ошибкой понимается логичность запроса для текущего состояния USB устройства, а не поврежденность пакета IN. Если запрос правильно обработан, возвращается пакет данных типа DATA1 нулевой длины (Zero Length Packet, ZLP), на что хост отвечает пакетом ACK. На этом управляющий запрос из 2-х стадий завершается. Конфигурационный пакет имеет строго регламентированную структуру. В таблице приведены поля, на которые разделены 8 байт конфигурационного пакета.
Биты поля bmRequestType:
Поле bRequest, задает код запроса. Интерпретация значения этого поля зависит от типа запроса заданного в поле bmRequestType. Если запрос стандартный, то здесь задается номер одного из 11 стандартных запросов. Если запрос специальный изготовителя, то значение задает и интерпретирует изготовитель. Запросы классов мы не рассматриваем. Поле wValue, задает параметр, который может быть передан USB устройству вместе с запросом. Например, для стандартного запроса установки адреса (SET_ADDRESS 05h), здесь передается адрес USB устройству, число от 0-127. Адрес, назначаемый USB устройству в процессе энумерации. Если разработчик использует не стандартный запрос, то в этом поле можно задать свою информацию. Поле wIndex, значение зависит от типа запроса. Поле wLength, задает количество байт данных передаваемых в стадии данных, если такая предусмотрена запросом. На рисунке 11 представлена управляющая передача чтения, имеющая стадию данных. Такие передачи используются и для при.ма дескрипторов от USB устройства. Транзакций стадии данных может быть несколько, если требуется передать значительный объем информации. После стадии установки (Setup Stage) , хост начинает стадию передачи данных (Data Stage). Маркерный пакет IN от хоста, затем пакет полезных данных типа DATA1 от USB устройства и пакет квитирования от USB устройства. После стадии данных, наступает черед стадии передачи состояния. Хост посылает маркерный пакет OUT. Если USB устройство одобряет действия хоста, то возвращает пакет данных типа DATA1 нулевой длины (ZLP). Если USB устройство занято и не может сию минуту обработать запрос, возвращает NAK. Если запрос противоречит текущему состоянию устройства, возвращает STALL. При принятии поврежд.нного пакета, стандартная реакция, показано как ERROR . На рисунке 12 представлена управляющая передача записи, имеющая стадию данных. Передача используется для посылки значительного количества данных в запросе к USB устройству. Из рисунка очевидна логика работы.
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|