В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

  • I2C
  • IrDA
  • CAN
  • USB
  • SPI
  • RS-232
  • RS-485
  • LVDS
  • Centronics
  • MIDI
  • X10
  • HDMI
  • Статьи
  • Ссылки
  •  
    Пересюхтюмя


    13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





    Выставка Передовые Технологии Автоматизации





    Главная страница > Интерфейсы > USB > Популярно о USB
    Пересюхтюмя


    13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





    Выставка Передовые Технологии Автоматизации


    Запросы

    В терминологии 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
    <-- Предыдущая страница Оглавление Следующая страница -->
    .