Поиск по сайту:

 


По базе:  

микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Интерфейсы > 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 устройству.



Рисунок 9
<-- Предыдущая страница Оглавление Следующая страница -->
.




 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru
©1998-2023 Рынок Микроэлектроники