Простая периферийная шина (SPB)

Примечание

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

В этом разделе рассматриваются рекомендации по использованию простой периферийной шины в Windows 10. Windows включает поддержку простых шин с низким энергопотреблением, таких как Inter Integrated Circuit (I²C) и (I²C) и Simple Peripheral Interface (SPI), используя расширения платформы для архитектуры Платформы драйверов режима ядра (KMDF). Драйверы контроллера не предоставляются в комплекте. Поставщики наборов микросхем, изготовители оборудования или IHV должны разработать драйвер контроллера, реализованный в KMDF. Архитектура предоставляет гибкие топологии конфигурации устройств, поддерживающие одновременное использование шин для транзакций управления и данных, а также GPIO для сигнализации и прерываний. Полное определение устройства определяется с помощью расширенной конфигурации и интерфейса управления питанием (ACPI).

В Windows автобусы поддерживаются с помощью драйверов контроллера KMDF. С помощью платформы KMDF драйвер контроллера используется преимущественно для определения аппаратных интерфейсов, необходимых для включения функции контроллера.

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

В следующей таблице представлена сводка поддержки простой периферийной шины.

Шина Поддержка папки "Входящие" Предоставленное расширение платформы Разрешено третьими лицами Дополнительные сведения о поддержке
I²C Нет Да Да, использование расширения SPB Framework

Только главный

"Общий вызов" не поддерживается

Поддерживается прямой доступ к памяти (DMA)

SPI Нет Да Да, использование расширения SPB Framework

Только главный вызов, "Общий вызов" не поддерживается

Поддерживается полный дуплекс

Поддерживается DMA

MIPI-HSI Нет Нет Да, использование Windows Driver Foundation (WDF)
MIPI-SLIMbus Нет Нет Да, использование WDF
MIPI-CSI Нет Нет Да, использование WDF
UART Нет Да Да, использование расширения Serial Framework (SerCx2)

Поддерживается DMA

Настраиваемые режимы передачи, поддерживаемые SerCx2

Рекомендации по проектированию для SPB

Ниже приведены некоторые общие рекомендации для SPB.

  • SPB не является Plug and Play автобусом. Периферийные устройства обычно имеют фиксированные подключения к SPB и не могут быть удалены. Производители систем должны обеспечить точные сведения в ACPI для перечисления периферийных устройств, подключенных к SPB, для диспетчера Plug and Play и указывать аппаратные ресурсы, выделенные для каждого устройства.

  • SpB не поддерживает прерывания в канале. Большинство периферийных устройств поддерживают передачу сигналов устройств через отдельный механизм прерывания (часто на основе GPIO) и точно сопоставляются в ACPI.

  • Windows поддерживает расширение класса SPB (spbcx.sys) в Windows 8 и за ее пределами. Партнеры SoC отвечают за разработку и распространение соответствующего драйвера контроллера SPB.

  • Периферийные драйверы для устройств SPB обычно предоставляются партнерами spb device. Корпорация Майкрософт предоставляет один драйвер класса для устройств SPB для HID по I²C (hidi2c.sys).

  • Классы устройств могут предоставлять требования HLK или рекомендации ПО WEG по следующим темам, связанным с I²C:

    • Совместное использование контроллера I²C с другими устройствами
    • Предпочтительная скорость передачи сигналов I²C
    • Сценарии управления питанием и пробуждения через I²C и GPIO.
  • Inter Integrated Circuit (I²C): I²C является основной шиной, которая проверяется как часть SPB и настоятельно рекомендуется в системах SoC.

    Корпорация Майкрософт предоставляет требования к программе совместимости оборудования Windows для I²C. Используйте пакет Windows Hardware Lab Kit (HLK) для тестирования устройств на соответствие этим требованиям.

  • Простой периферийный интерфейс (SPI). Поддержка SPI является необязательной для партнера SoC. Программа совместимости оборудования Windows не содержит никаких требований, относящихся к шине SPI.

Поддержка SPB в разных системах

Корпорация Майкрософт поддерживает SPB в системах Arm и платформах x86/x64 (работающих в конфигурациях S3). Корпорация Майкрософт поддерживает SPB на платформах, работающих в конфигурациях подключенного резервирования (CS) и S3.

Обратитесь к поставщику платформы для получения драйверов и поддержки.

Существует ряд сценариев устройств, использующих SPB для подключения. I²C доступен в традиционной модели питания CS и S3. Современные soC с ядрами с низким энергопотреблением датчика SoC могут при необходимости реализовывать решения, не относящиеся к I²C.

Устройства на съемных док-станциях или портах также должны соответствовать рекомендациям по сценариям закрепления, которые также включены в WEG. Некоторые из этих устройств могут быть более целесообразными для автобусов, таких как USB, а не I²C.

Расширение платформы SPB

Библиотека расширений платформы SPB расширяет Windows Driver Framework для поддержки драйверов SPB. Платформа SPB упрощает разработку драйвера контроллера SPB и повышает совместимость между периферийными драйверами и драйвером контроллера, предоставляя общую реализацию "верхней половины" драйвера, обрабатывающего запросы ввода-вывода (по сравнению с "нижней половиной", которая управляется верхней половиной и управляет оборудованием). Расширение SPB Framework — это библиотека расширений KMDF. Он обрабатывает запросы SPB и последовательность, в которой они передаются драйверу контроллера. Расширение платформы SPB предназначено для поддержки автобусов I²C и SPI и может подходить для других автобусов с аналогичной семантикой.

Расширение Serial Framework

Библиотека расширений последовательной платформы расширяет платформу драйверов Windows для поддержки драйверов последовательных контроллеров. Как и платформа SPB, последовательная платформа упрощает разработку драйвера последовательного контроллера и повышает совместимость между периферийными драйверами и драйвером контроллера, предоставляя общую реализацию "верхней половины" драйвера, обрабатывающего запросы ввода-вывода. Расширение последовательной платформы — это библиотека расширений KMDF. Он обрабатывает переднюю обработку вызовов последовательных API и последовательности, в которой они передаются драйверу контроллера. Расширение последовательной платформы предназначено для поддержки современных контроллеров UART и упрощения реализации и диагностики драйверов контроллеров.

Требования I²C и UART HLK

Существуют требования к программе совместимости оборудования для контроллеров I²C и UART. Требования к SPI также рассматриваются на будущее. Требования к логотипу предназначены в первую очередь для поставщиков кремния SoC для оборудования интерфейса шины и связанных драйверов контроллера. Изготовители оборудования и ODM не требуют повторной проверки оборудования или драйвера контроллера, но при необходимости могут выполнить тесты. Для проверки этих требований требуются специальные действия по настройке. Настройка включает в себя следующее:

  • Открытая система со специальными возможностями I²C /UART pins/ports
  • Изменения в ACPI для предоставления программному обеспечению тестового устройства I²C/UART
  • Определенное тестовое устройство (WITT), подключенное к проверяемой системе

Дополнительные сведения о настройке см. в документации по аппаратному лабораторному комплекту (HLK).

Драйверы периферийных устройств

Периферийные устройства перечисляются с помощью ACPI и обычно являются статическими. Драйверы периферийных функций определяют соответствующие ресурсы шины, взаимодействуя с расширениями платформы. Периферийные устройства и контроллеры не являются иерархическими, и периферийные устройства могут использовать несколько SPB, GPIO, Serial и другие высокоскоростные автобусы. Периферийные драйверы, которые обращаются к встроенным устройствам, таким как датчики, устройства ввода, модемы и радиомодулы, могут быть записаны в режиме ядра или в пользовательском режиме. Эти драйверы могут быть переносимыми в разных конфигурациях ODM или OEM-платы при условии, что ACPI обновлен соответствующим образом.

Firmware (Встроенное ПО)

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

Шина Параметры ACPI контроллера Параметры ACPI периферийных устройств
I²C

Адреса контроллеров

Конфигурация закрепления

Адрес автобуса

Частота часов

Ведомый режим

Режим адресации

SPI

Адреса контроллеров

Конфигурация закрепления

Линия выбора чипа

Частота часов

Полярность часов

Этап "Часы"

Режим провода

Выбор устройства

Полярность выбора устройства

Ведомый режим

UART

Адрес или закрепление контроллера

Настройка начальной скорости передачи данных

Начальная скорость передачи

Parity

Длина начального и стоп-битового разряда

Метод управления потоком (оборудование/программное обеспечение/нет)

Используемые строки

Размер буфера получения

Размер буфера передачи

Endian-ness

Пример ACPI см. в статье Получение параметров подключения для устройства. Дополнительные сведения об интеграции устройств на шинах с низким энергопотреблением см. в статье Доступ к устройствам GPIO, I2C и UART.

Средства и технический справочник

Заголовок ресурса Тип содержимого Описание Ссылка
Использование Платформы драйверов Windows для создания более качественных драйверов Видео Обсуждается, как WDF может повысить надежность драйверов и как лучше реализовать экономию энергии и развернуть драйверы в нескольких версиях Windows. Channel 9
Основные сведения о Low-Power автобусах Видео Демонстрирует, как интегрировать устройство в новые автобусы и создать водителя. Вы узнаете, как написать ACPI для перечисления периферийных устройств и приступить к написанию и тестированию драйвера периферийных устройств. Channel 9
Руководство по проектированию платформы драйверов Kernel-Mode Статья В этой статье представлены Kernel-Mode Driver Framework (KMDF). MSDN
Руководство по проектированию UMDF 1.x Статья В этой статье представлены User-Mode Driver Framework (UMDF). MSDN
Программа совместимости оборудования Windows Статья Содержит сведения о программе сертификации Windows. MSDN