Поиск по сайту: |
|
По базе: |
|
Главная страница > Интерфейсы > USB > Популярно о USB |
|
|||||||||||||
ЗапросыВ терминологии USB, команды, которые посылает хост USB устройству, называются запросами или requests по-английски. Для передачи запросов используется канал управления. В подавляющем большинстве случаев для при.ма запросов используется нулевая конечная точка. Но стандартом допускается существование нескольких точек управления. По умолчанию все запросы управления принимаются нулевой конечной точкой. Запросы могут менять конфигурацию и некоторые свойства USB устройства, запрашивать служебную информацию. В примере программы, который был привед.н, хост посылает специальный запрос USB устройству на получение строкового дескриптора от USB устройства. В ответ USB устройство, возвращает строковый дескриптор. Стандартом USB, определен набор запросов, которые должно обрабатывать любое USB устройство. Эти запросы называются стандартными запросами и всего их 11, каждому стандартному запросу присвоен номер. Стандартом предусмотрена возможность создания разработчиком своих собственных запросов. А для USB устройств относящихся к стандартизованным классам, например мышь USB, кроме стандартных запросов, имеется своя система запросов, которую рассматривать не будем, но о существовании которой знать надо. Средствами библиотеки libusb, можно посылать любой запрос USB устройству. Для подачи запроса USB устройству, используется механизм управляющих передач - это последовательность обмена пакетами, похожая на рассмотренные ранее транзакции, но только сложнее. Кратко рассмотрим стандартные запросы. Запрос GET_DESCRIPTOR (06h) позволяет хосту получить дескриптор устройства, конфигурации, конечной точки или строки. Во время процесса энумерации, хост получает сведения о USB устройстве с помощью этого запроса. Запрос SET_DESCRIPTOR (07h), позволяет добавить новый дескриптор или расширить имеющийся. Запрос SET_ADDRESS (05h), присваивает адрес USB устройству. Каждое USB устройство имеет уникальный адрес на шине. Адрес назначает хост, в процессе энумерации. Запрос SET_FEATURE (03h), позволяет установить значение свойства или состояния. Данные не возвращаются. Запрос может быть адресован устройству, интерфейсу или конечной точке. Адресовав запрос к конечной точке можно перевести е. в блокированное состояние. Конечная точка, находящаяся в блокированном состоянии, на попытки обращения хоста, отвечает пакетом STALL. Хост может перейти в режим с пониженным энергопотреблением (suspended mode ), а USB устройство может выводить хост из этого состояния специальной сигнализацией на шине. Это свойство USB устройства называется – удал.нное пробуждение (remote wakeup). Специальным запросом SET_FEATURE, можно дать возможность USB устройству пробуждать хост. Запрос CLEAR_FEATURE (01h), позволяет сбросить значение свойства или состояния. Запрос аналогичен запросу SET_FEATURE и противоположен по действию. Этим запросом выводится из блокированного состояния конечная точка, если она была заблокирована. Соответственно сбрасывается свойство пробуждать хост (remote wakeup). Запрос GET_STATUS (00h) позволяет определить состояние USB устройства, интерфейса или конечной точки. Если запрос направлен к USB устройству, то можно получить информацию, установлено или сброшено свойство «wakeup» USB устройства. Дополнительно можно определить, способ питания USB устройства, от шины или от собственного источника. При направлении запроса GET_STATUS к конечной точке, можно определить состояние конечной точки, заблокирована она или нет. Запросы GET_CONFIGURATION (08h) и SET_CONFIGURATION (09h), используются хостом для работы с USB устройствами, имеющими несколько конфигураций, а так же в процессе энумерации. Соответственно, можно получить номер текущей конфигурации и установить альтернативную конфигурацию. Установка конфигурации выполняется на стадии конфигурирования USB устройства, в процессе энумерации. Запросы GET_INTERFACE (0Ah) и SET_INTERFACE (0Bh), позволяют работать с альтернативными установками интерфейсов. Альтернативные установки интерфейсов, позволяют менять некоторые параметры интерфейса после стадии конфигурирования, в процессе нормальной работы. Альтернативные настройки интерфейсов здесь не рассматриваются. Последний, стандартный запрос SYNC_FRAME (0Ch), имеет достаточно узкую специализацию и применяется в работе изохронных каналов, которые здесь не рассматриваются. На данном этапе нужно понять, что существует набор запросов, которые посылает хост для управления USB устройством и для конфигурирования на стадии энумерации. В библиотеке libusb имеется функция, с помощью которой можно посылать запросы USB устройству.
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|