структура PNP_SERIAL_BUS_DESCRIPTOR (reshub.h)

Структура PNP_SERIAL_BUS_DESCRIPTOR описывает физическое подключение целевого устройства к последовательной шине (I2C, SPI или UART).

Синтаксис

typedef struct _PNP_SERIAL_BUS_DESCRIPTOR {
  UCHAR  Tag;
  USHORT Length;
  UCHAR  RevisionId;
  UCHAR  ResourceSourceIndex;
  UCHAR  SerialBusType;
  UCHAR  GeneralFlags;
  USHORT TypeSpecificFlags;
  UCHAR  TypeSpecificRevisionId;
  USHORT TypeDataLength;
} PNP_SERIAL_BUS_DESCRIPTOR, *PPNP_SERIAL_BUS_DESCRIPTOR;

Члены

Tag

Тип последовательной шины. Для этого элемента задано значение 0x8e для подключения последовательной шины (I2C, SPI или UART). Дополнительные сведения см. в описании дескриптора подключения последовательной шины в спецификации ACPI 5.0.

Length

Длина дескриптора подключения последовательной шины в байтах. Чтобы обеспечить соответствие спецификации ACPI 5.0, число байтов в элементе Lengthструктуры PNP_SERIAL_BUS_DESCRIPTOR равно размеру структуры, минус три байта в элементах Tag и Length в начале структуры, а также количество байтов данных, относящихся к типу шины, и строки источника ресурсов, которые следуют за структурой. Строка источника ресурса, которая является обязательным полем, имеет минимальный размер в два байта (для односимвного имени источника ресурса и завершающего значения NULL). Таким образом, минимальное допустимое значение длины равно 11. Дополнительные сведения см. в спецификации ACPI 5.0.

RevisionId

Идентификатор редакции дескриптора подключения последовательной шины. Этому элементу присваивается константе SERIAL_BUS_DESCRIPTOR_REVISION, которая определена в файле заголовка Reshub.h.

ResourceSourceIndex

Зарезервировано для последующего использования. Этот элемент не используется и имеет нулевое значение.

SerialBusType

Тип последовательной шины. Для этого элемента задано значение 1 (для I2C), 2 (для SPI) или 3 (для UART). Другие значения либо зарезервированы для использования в будущем, либо определяются поставщиком оборудования. Дополнительные сведения см. в спецификации ACPI 5.0.

GeneralFlags

Флаги, общие для всех типов последовательной шины. Бит 0 — флаг подчиненного режима. Если для этого бита задано значение 1, обмен данным подключением инициируется контроллером шины; в противном случае взаимодействие инициируется целевым устройством. Бит 1 — это флаг потребителя или производителя и всегда имеет значение 1. Другие биты флагов в настоящее время не определены. Дополнительные сведения см. в спецификации ACPI 5.0.

TypeSpecificFlags

Флаги, относящиеся к типу последовательной шины. Для шины I2C бит 0 устанавливается, если подключение использует 10-разрядные адреса; В противном случае для подключения используются 7-разрядные адреса. Другие биты флагов в настоящее время не определены для I2C. Дополнительные сведения см. в спецификации ACPI 5.0.

TypeSpecificRevisionId

Идентификатор редакции варианта этой структуры, используемого для типа последовательной шины (I2C, SPI и UART), указанного элементом Tag . Каждый тип последовательной шины расширяет структуру PNP_SERIAL_BUS_DESCRIPTOR путем добавления полей, относящихся к типу шины. Дополнительные сведения см. в спецификации ACPI 5.0.

TypeDataLength

Длина данных конкретного типа шины в байтах, которая соответствует структуре PNP_SERIAL_BUS_DESCRIPTOR . Это значение длины включает данные между концом элемента TypeDataLength и началом строки источника ресурса, но не включает строку источника ресурса. Дополнительные сведения см. в спецификации ACPI 5.0.

Комментарии

Эта структура определяет поля данных в дескрипторе подключения последовательной шины, как описано в разделе 6.4.3.8.2 спецификации ACPI 5.0. Этот дескриптор описывает подключение шины к целевому устройству, подключенное к последовательной шине (I2C, SPI или UART).

Например, для устройства в шине I2C структура PNP_SERIAL_BUS_DESCRIPTOR (и расширение конкретного типа шины) указывает адрес шины устройства, режим адреса (7-разрядный или 10-разрядный) и частоту запуска часов шины при доступе к устройству. Пример кода, показывающий, как драйвер контроллера I2C извлекает эти сведения из структуры, см. в разделе How to Get the Connection Settings for a Device.

Перед определением структуры PNP_SERIAL_BUS_DESCRIPTOR в файле заголовка Reshub.h предшествует оператор include для файла заголовка Pshpack1.h, который настраивает компилятор для упаковки смежных элементов структуры в границы байтов без пробелов. Затем программное обеспечение может наложить упакованную структуру на образ памяти дескриптора подключения последовательной шины для доступа к отдельным полям этого дескриптора. Элементы USHORT структуры могут не выровняться по четным границам байтов в памяти. Байты в членах USHORT хранятся в порядке небольшого байта для архитектур процессоров x86, x64 и ARM.

Требования

Требование Значение
Минимальная версия клиента Поддерживается начиная с Windows 8.
Верхняя часть reshub.h