Библиотека LUFA (раннее название MyUSB) версия 101122
Стандартные запросы USB

Data Structures

struct  USB_Request_Header_t
 Стандартный запрос управления USB. More...

Defines

#define CONTROL_REQTYPE_DIRECTION   0x80
#define CONTROL_REQTYPE_TYPE   0x60
#define CONTROL_REQTYPE_RECIPIENT   0x1F

Enumerations

enum  USB_Control_Request_t {
  REQ_GetStatus = 0,
  REQ_ClearFeature = 1,
  REQ_SetFeature = 3,
  REQ_SetAddress = 5,
  REQ_GetDescriptor = 6,
  REQ_SetDescriptor = 7,
  REQ_GetConfiguration = 8,
  REQ_SetConfiguration = 9,
  REQ_GetInterface = 10,
  REQ_SetInterface = 11,
  REQ_SynchFrame = 12
}
enum  USB_Feature_Selectors_t {
  FEATURE_SEL_EndpointHalt = 0x00,
  FEATURE_SEL_DeviceRemoteWakeup = 0x01,
  FEATURE_SEL_TestMode = 0x02
}

Маски направления данных запроса управления

#define REQDIR_HOSTTODEVICE   (0 << 7)
#define REQDIR_DEVICETOHOST   (1 << 7)

Маски типа запроса управления

#define REQTYPE_STANDARD   (0 << 5)
#define REQTYPE_CLASS   (1 << 5)
#define REQTYPE_VENDOR   (2 << 5)

Маски получателя запроса управления

#define REQREC_DEVICE   (0 << 0)
#define REQREC_INTERFACE   (1 << 0)
#define REQREC_ENDPOINT   (2 << 0)
#define REQREC_OTHER   (3 << 0)

Detailed Description

Этот модуль содержит определения различных параметров запросов управления, так что детали запроса (такие как направление данных, получатель запроса, и т. д.) можно распаковать по маскам.


Define Documentation

#define CONTROL_REQTYPE_DIRECTION   0x80

Маска для параметра типа запроса, чтобы показать направление данных запроса (от хоста к устройству или от устройства к хосту). Результат этой маски должен быть сравнен с масками направления запроса.

See also:
См. макросы REQDIR_* для масок, показывающих направление данных запроса.
#define CONTROL_REQTYPE_RECIPIENT   0x1F

Маска для параметра типа запроса, чтобы показать получателя запроса (стандартный, класса или специфичный для вендора). Результат этой маски должен быть сравнен с масками получателя запроса.

See also:
См. макросы REQREC_* для масок, показывающих получателя запроса.
#define CONTROL_REQTYPE_TYPE   0x60

Маска для параметра типа запроса, чтобы показать тип запроса (устройства, класса или специфичного для вендора). Результат этой маски должен быть сравнен с масками типа запроса.

See also:
См. макросы REQTYPE_* для масок, показывающих тип запроса.
#define REQDIR_DEVICETOHOST   (1 << 7)

Маска направления данных запроса, показывающая направление потока данных от устройства к хосту.

See also:
См. макрос CONTROL_REQTYPE_DIRECTION.
#define REQDIR_HOSTTODEVICE   (0 << 7)

Маска направления данных запроса, показывающая направление потока данных от хоста к устройству.

See also:
См. макрос CONTROL_REQTYPE_DIRECTION.
#define REQREC_DEVICE   (0 << 0)

Маска получателя запроса, показывающая, что запрос выдается устройству в целом.

See also:
См. макрос CONTROL_REQTYPE_RECIPIENT.
#define REQREC_ENDPOINT   (2 << 0)

Маска получателя запроса, показывающая, что запрос выдается конечной точке в выбранной в настоящий момент конфигурации.

See also:
См. макрос CONTROL_REQTYPE_RECIPIENT.
#define REQREC_INTERFACE   (1 << 0)

Маска получателя запроса, показывающая, что запрос выдается интерфейсу в выбранной в настоящий момент конфигурации.

See also:
См. макрос CONTROL_REQTYPE_RECIPIENT.
#define REQREC_OTHER   (3 << 0)

Маска получателя запроса, показывающая, что запрос выдается неуказанному элементу в выбранной в настоящий момент конфигурации.

See also:
См. макрос CONTROL_REQTYPE_RECIPIENT.
#define REQTYPE_CLASS   (1 << 5)

Маска типа запроса, показывающая запрос, специфичный для класса.

See also:
См. макрос CONTROL_REQTYPE_TYPE.
#define REQTYPE_STANDARD   (0 << 5)

Маска типа запроса, показывающая стандартный запрос.

See also:
См. макрос CONTROL_REQTYPE_TYPE.
#define REQTYPE_VENDOR   (2 << 5)

Маска типа запроса, показывающая запрос, специфичный для вендора.

See also:
См. макрос CONTROL_REQTYPE_TYPE.

Enumeration Type Documentation

Перечисление для различных стандартных команд запроса. Эти команды применимы, когда тип запроса REQTYPE_STANDARD (за исключением REQ_GetDescriptor, который всегда обрабатывается независимо от значения типа запроса).

See also:
См. часть 9 спецификации USB 2.0.
Enumerator:
REQ_GetStatus 

Реализовано в библиотеке для получателей в виде устройства, конечной точки и интерфейса. Передается приложению пользователя для других получателей через событие EVENT_USB_Device_ControlRequest(), когда запрос принят в режиме устройства.

REQ_ClearFeature 

Реализовано в библиотеке для получателей в виде устройства, конечной точки и интерфейса. Передается приложению пользователя для других получателей через событие EVENT_USB_Device_ControlRequest(), когда запрос принят в режиме устройства.

REQ_SetFeature 

Реализовано в библиотеке для получателей в виде устройства, конечной точки и интерфейса. Передается приложению пользователя для других получателей через событие EVENT_USB_Device_ControlRequest(), когда запрос принят в режиме устройства.

REQ_SetAddress 

Реализовано в библиотеке для получателя - устройства. Передается приложению пользователя для других получателей через событие EVENT_USB_Device_ControlRequest(), когда запрос принят в режиме устройства.

REQ_GetDescriptor 

Реализовано в библиотеке для получателей - интерфейсов. Передается приложению пользователя для других получателей через событие EVENT_USB_Device_ControlRequest(), когда запрос принят в режиме устройства.

REQ_SetDescriptor 

Не реализовано в библиотеке, передается приложению пользователя через событие EVENT_USB_Device_ControlRequest(), когда запрос принят в режиме устройства.

REQ_GetConfiguration 

Реализовано в библиотеке для получателя - устройства. Передается приложению пользователя для других получателей через событие EVENT_USB_Device_ControlRequest(), когда запрос принят в режиме устройства.

REQ_SetConfiguration 

Реализовано в библиотеке для получателя - устройства. Передается приложению пользователя для других получателей через событие EVENT_USB_Device_ControlRequest(), когда запрос принят в режиме устройства.

REQ_GetInterface 

Не реализовано в библиотеке, передается приложению пользователя через событие EVENT_USB_Device_ControlRequest(), когда запрос принят в режиме устройства.

REQ_SetInterface 

Не реализовано в библиотеке, передается приложению пользователя через событие EVENT_USB_Device_ControlRequest(), когда запрос принят в режиме устройства.

REQ_SynchFrame 

Не реализовано в библиотеке, передается приложению пользователя через событие EVENT_USB_Device_ControlRequest(), когда запрос принят в режиме устройства.

Значение селектора возможности (Feature Selector) для стандартных запросов управления Set Feature и Clear Feature, направленных на устройство, интерфейс и конечную точку в качестве получателей.

Enumerator:
FEATURE_SEL_EndpointHalt 

Feature selector для команд Clear Feature или Set Feature. Когда используется в запросе Set Feature или Clear Feature, это показывает, что конечная точка (которая адресована в другом месте запроса) должна поменять свое условие останова (stall condition).

FEATURE_SEL_DeviceRemoteWakeup 

Feature selector для установки или очистки удаленного пробуждения (Remote Wakeup) на уровне устройства. Эта фича может управляться хостом на устройствах, которые показывают поддержку в своем дескрипторе возможности remote wakeup, чтобы селективно запретить или разрешить remote wakeup.

FEATURE_SEL_TestMode 

Feature selector для возможностей режима тестирования, используется для тестирования контроллера USB, чтобы проверить его правильное функционирование.

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines