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

Data Structures

struct  USB_Descriptor_Header_t
 Стандартный заголовок дескриптора USB (стиль именования LUFA). More...
struct  USB_StdDescriptor_Header_t
 Стандартный заголовок дескриптора USB (стиль именования USB-IF). More...
struct  USB_Descriptor_Device_t
 Стандартный дескриптор устройства USB (стиль именования LUFA). More...
struct  USB_StdDescriptor_Device_t
 Стандартный дескриптор устройства USB (стиль именования USB-IF). More...
struct  USB_Descriptor_Configuration_Header_t
 Стандартный дескриптор конфигурации USB (стиль именования LUFA). More...
struct  USB_StdDescriptor_Configuration_Header_t
 Стандартный дескриптор конфигурации USB (стиль именования USB-IF). More...
struct  USB_Descriptor_Interface_t
 Стандартный дескриптор интерфейса USB (стиль именования LUFA). More...
struct  USB_StdDescriptor_Interface_t
 Стандартный дескриптор интерфейса USB (стиль именования USB-IF). More...
struct  USB_Descriptor_Interface_Association_t
 Стандартный дескриптор связи интерфейсов USB (стиль именования LUFA). More...
struct  USB_StdDescriptor_Interface_Association_t
 Стандартный дескриптор связи интерфейсов USB (стиль именования USB-IF). More...
struct  USB_Descriptor_Endpoint_t
 Стандартный дескриптор конечной точки USB (стиль именования LUFA). More...
struct  USB_StdDescriptor_Endpoint_t
 Стандартный дескриптор конечной точки USB (стиль именования USB-IF). More...
struct  USB_Descriptor_String_t
 Стандартный строковый дескриптор USB (стиль именования LUFA). More...
struct  USB_StdDescriptor_String_t
 Стандартный строковый дескриптор USB (стиль именования USB-IF). More...

Modules

 Парсер дескриптора конфигурации

Defines

#define NO_DESCRIPTOR   0
#define USE_INTERNAL_SERIAL   NO_DESCRIPTOR
#define USB_CONFIG_POWER_MA(mA)   ((mA) >> 1)
#define USB_STRING_LEN(str)   (sizeof(USB_Descriptor_Header_t) + ((str) << 1))
#define VERSION_BCD(x)
#define LANGUAGE_ID_ENG   0x0409

Enumerations

enum  USB_DescriptorTypes_t {
  DTYPE_Device = 0x01,
  DTYPE_Configuration = 0x02,
  DTYPE_String = 0x03,
  DTYPE_Interface = 0x04,
  DTYPE_Endpoint = 0x05,
  DTYPE_DeviceQualifier = 0x06,
  DTYPE_Other = 0x07,
  DTYPE_InterfacePower = 0x08,
  DTYPE_InterfaceAssociation = 0x0B,
  DTYPE_CSInterface = 0x24,
  DTYPE_CSEndpoint = 0x25
}
enum  USB_Descriptor_ClassSubclassProtocol_t {
  USB_CSCP_NoDeviceClass = 0x00,
  USB_CSCP_NoDeviceSubclass = 0x00,
  USB_CSCP_NoDeviceProtocol = 0x00,
  USB_CSCP_VendorSpecificClass = 0xFF,
  USB_CSCP_VendorSpecificSubclass = 0xFF,
  USB_CSCP_VendorSpecificProtocol = 0xFF,
  USB_CSCP_IADDeviceClass = 0xEF,
  USB_CSCP_IADDeviceSubclass = 0x02,
  USB_CSCP_IADDeviceProtocol = 0x01
}

Маски адреса направления конечной точки

#define ENDPOINT_DESCRIPTOR_DIR_IN   0x80
#define ENDPOINT_DESCRIPTOR_DIR_OUT   0x00

Маски атрибута дескриптора конфигурации USB

#define USB_CONFIG_ATTR_BUSPOWERED   0x80
#define USB_CONFIG_ATTR_SELFPOWERED   0x40
#define USB_CONFIG_ATTR_REMOTEWAKEUP   0x20

Маски атрибута дескриптора конечной точки

#define ENDPOINT_ATTR_NO_SYNC   (0 << 2)
#define ENDPOINT_ATTR_ASYNC   (1 << 2)
#define ENDPOINT_ATTR_ADAPTIVE   (2 << 2)
#define ENDPOINT_ATTR_SYNC   (3 << 2)

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

#define ENDPOINT_USAGE_DATA   (0 << 4)
#define ENDPOINT_USAGE_FEEDBACK   (1 << 4)
#define ENDPOINT_USAGE_IMPLICIT_FEEDBACK   (2 << 4)

Detailed Description

Определения стандартных дескрипторов устройства и подпрограммы извлечения (информации?) для устройств USB. Этот модуль содержит структуры и макросы для простого создания стандартных дескрипторов USB в проектах USB-устройств.


Define Documentation

#define ENDPOINT_ATTR_ADAPTIVE   (2 << 2)

Может замаскировать другие атрибуты конечной точки для значения дескриптора USB_Descriptor_Endpoint_t Attributes, чтобы показать, что указанная конечная точка адаптивная.

See also:
См. спецификацию USB для подробностей по возможным значениям атрибутов конечной точки.
#define ENDPOINT_ATTR_ASYNC   (1 << 2)

Может замаскировать другие атрибуты конечной точки для значения дескриптора USB_Descriptor_Endpoint_t Attributes, чтобы показать, что указанная конечная точка асинхронная.

See also:
См. спецификацию USB для подробностей по возможным значениям атрибутов конечной точки.
#define ENDPOINT_ATTR_NO_SYNC   (0 << 2)

Может замаскировать другие атрибуты конечной точки для значения дескриптора USB_Descriptor_Endpoint_t Attributes, чтобы показать, что указанная конечная точка не синхронизирована.

See also:
См. спецификацию USB для подробностей по возможным значениям атрибутов конечной точки.
#define ENDPOINT_ATTR_SYNC   (3 << 2)

Может замаскировать другие атрибуты конечной точки для значения дескриптора USB_Descriptor_Endpoint_t Attributes, чтобы показать, что указанная конечная точка синхронизирована.

See also:
См. спецификацию USB для подробностей по возможным значениям атрибутов конечной точки.
#define ENDPOINT_DESCRIPTOR_DIR_IN   0x80

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

#define ENDPOINT_DESCRIPTOR_DIR_OUT   0x00

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

#define ENDPOINT_USAGE_DATA   (0 << 4)

Может быть замаскировано с другими значениями атрибутов для значения дескриптора USB_Descriptor_Endpoint_t Attributes, чтобы показать, что указанная конечная точка используется для передач данных.

See also:
См. спецификацию USB для подробностей по возможным атрибутам использования конечной точки.
#define ENDPOINT_USAGE_FEEDBACK   (1 << 4)

Может быть замаскировано с другими значениями атрибутов для значения дескриптора USB_Descriptor_Endpoint_t Attributes, чтобы показать, что указанная конечная точка используется для обратной связи.

See also:
См. спецификацию USB для подробностей по возможным атрибутам использования конечной точки.
#define ENDPOINT_USAGE_IMPLICIT_FEEDBACK   (2 << 4)

Может быть замаскировано с другими значениями атрибутов для значения дескриптора USB_Descriptor_Endpoint_t Attributes, чтобы показать, что указанная конечная точка используется для неявной обратной связи.

See also:
См. спецификацию USB для подробностей по возможным атрибутам использования конечной точки.
#define LANGUAGE_ID_ENG   0x0409

ID для английского языка для строк. Должен использоваться в дескрипторах USB_Descriptor_String_t, чтобы показать, что язык English поддерживается устройством в строковых дескрипторах.

#define NO_DESCRIPTOR   0

Показывает, что указанный дескриптор отсутствует на устройстве. Это может использоваться внутри дескрипторов индексов строковых дескрипторов, или может использоваться в качестве значения возврата для GetDescriptor, когда указанный дескриптор не существует.

#define USB_CONFIG_ATTR_BUSPOWERED   0x80

Может быть наложена на другие атрибуты дескриптора для значения USB_Descriptor_Configuration_Header_t ConfigAttributes, чтобы показать, что указанная конфигурация может получать питание от линии VBUS хоста.

#define USB_CONFIG_ATTR_REMOTEWAKEUP   0x20

Может быть наложена на другие атрибуты дескриптора для значения USB_Descriptor_Configuration_Header_t ConfigAttributes, чтобы показать, что указанная конфигурация поддерживает возможность удаленного пробуждения (remote wakeup) стандарта USB, что позволяет приостановленным устройствам USB разбудить хост по запросу.

#define USB_CONFIG_ATTR_SELFPOWERED   0x40

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

#define USB_CONFIG_POWER_MA (   mA)    ((mA) >> 1)

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

#define USB_STRING_LEN (   str)    (sizeof(USB_Descriptor_Header_t) + ((str) << 1))

Макрос для вычисления длины строки Unicode через указанное количество символов Unicode. Должно использоваться в заголовках строковых дескрипторов для предоставления байтовой длины строки.

#define USE_INTERNAL_SERIAL   NO_DESCRIPTOR
#define VERSION_BCD (   x)
Value:
((((VERSION_TENS(x) << 4) | VERSION_ONES(x)) << 8) | \
                                                      ((VERSION_TENTHS(x) << 4) | VERSION_HUNDREDTHS(x)))

Макрос для кодирования указанных четырех цифр числа номера версии (например 01.23) в формат Binary Coded Decimal (BCD) для полей дескрипторов, требующих кодирования BCD, таких как номер версии USB в стандартном дескрипторе устройства.


Enumeration Type Documentation

Перечисление для возможных значений класса, субкласса и протокола дескрипторов устройства и интерфейса.

Enumerator:
USB_CSCP_NoDeviceClass 

Значение класса дескриптора, показывающее, что устройство не принадлежит частному классу на уровне устройства.

USB_CSCP_NoDeviceSubclass 

Значение субкласса дескриптора, показывающее, что устройство не принадлежит частному субклассу на уровне устройства.

USB_CSCP_NoDeviceProtocol 

Значение протокола дескриптора, показывающее, что устройство не принадлежит частному протоколу на уровне устройства.

USB_CSCP_VendorSpecificClass 

Значение класса дескриптора, показывающее, что устройство/интерфейс принадлежит специфическому классу вендора.

USB_CSCP_VendorSpecificSubclass 

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

USB_CSCP_VendorSpecificProtocol 

Значение протокола дескриптора, показывающее, что устройство/интерфейс принадлежит специфическому протоколу вендора.

USB_CSCP_IADDeviceClass 

Значение класса дескриптора, показывающее, что устройство принадлежит классу дескриптора связи интерфесов (Interface Association Descriptor).

USB_CSCP_IADDeviceSubclass 

Значение подкласса дескриптора, показывающее, что устройство принадлежит субклассу дескриптора связи интерфесов (Interface Association Descriptor).

USB_CSCP_IADDeviceProtocol 

Значение протокола дескриптора, показывающее, что устройство принадлежит протоколу дескриптора связи интерфесов (Interface Association Descriptor).

Перечисление для возможных стандартных типов дескрипторов, как указано в каждом заголовке дескриптора.

Enumerator:
DTYPE_Device 

Показывает, что дескриптор является дескриптором устройства.

DTYPE_Configuration 

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

DTYPE_String 

Показывает, что дескриптор является строковым дескриптором.

DTYPE_Interface 

Показывает, что дескриптор является дескриптором интерфейса.

DTYPE_Endpoint 

Показывает, что дескриптор является дескриптором конечной точки.

DTYPE_DeviceQualifier 

Показывает, что дескриптор является дескриптором квалификатора устройства.

DTYPE_Other 

Показывает, что дескриптор имеет "другой" тип.

DTYPE_InterfacePower 

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

DTYPE_InterfaceAssociation 

Показывает, что дескриптор является дескриптором связи интерфейсов.

DTYPE_CSInterface 

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

DTYPE_CSEndpoint 

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

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines