Руководство по проектированию драйвера General-Purpose ввода-вывода (GPIO)

В этом разделе описывается, как написать драйвер для устройства контроллера ввода-вывода общего назначения (GPIO). Контроллер GPIO настраивает контакты GPIO для выполнения низкоскоростных операций ввода-вывода данных, выполнения операций выбора устройства и получения запросов прерывания. Начиная с Windows 8 расширение платформы GPIO (GpioClx) упрощает создание драйвера для контроллера GPIO. Кроме того, GpioClx предоставляет универсальный интерфейс запроса ввода-вывода для драйверов периферийных устройств, взаимодействующих с устройствами, которые подключаются к контактам GPIO на контроллере.

В этом разделе

Раздел Описание

Обзор поддержки драйверов GPIO

Начиная с Windows 8 расширение платформы GPIO (GpioClx) упрощает создание драйвера для устройства контроллера GPIO. Кроме того, GpioClx обеспечивает поддержку драйверов для периферийных устройств, которые подключаются к контактам GPIO. GpioClx, который является системным расширением для платформы драйвера в режиме ядра (KMDF), выполняет задачи обработки, общие для членов класса устройств GPIO.

Интерфейсы ввода-вывода и прерывания GpioClx

Как правило, клиенты контроллера GPIO являются драйверами для периферийных устройств, которые подключаются к контактам GPIO. Эти драйверы используют контакты GPIO как каналы данных с низкой пропускной способностью, выходные данные выбора устройства и входные данные с запросами прерываний. Драйверы периферийных устройств открывают логические подключения к контактам GPIO, настроенным как входные или выходные данные. Они используют эти подключения для отправки запросов ввода-вывода этим контактам. Кроме того, драйверы периферийных устройств могут логически подключать свои подпрограммы обслуживания прерываний к контактам GPIO, настроенным в качестве входных данных запроса прерывания.

Аппаратные ресурсы на основе GPIO

Начиная с Windows 8, контакты ввода-вывода общего назначения (GPIO), управляемые драйвером контроллера GPIO, доступны другим драйверам в качестве аппаратных ресурсов, управляемых системой. Контакты ввода-вывода GPIO, которые являются контактами, настроенными как входные или выходные данные, доступны в качестве нового типа ресурсов Windows — ресурсов ввода-вывода GPIO. Кроме того, контакты прерываний GPIO, которые являются контактами, настроенными в качестве входных данных запроса прерывания, доступны как обычные ресурсы прерывания Windows.

Прерывания GPIO

Некоторые устройства контроллера ввода-вывода общего назначения (GPIO) могут настроить свои контакты GPIO для работы в качестве входных данных запроса прерывания. Эти входные данные запроса прерывания управляются периферийными устройствами, которые физически подключены к контактам GPIO. Драйверы для этих контроллеров GPIO могут включать, отключать, маски, демаск и очищать запросы прерываний для отдельных контактов GPIO.

GpioClx DDI

Драйвер контроллера ввода-вывода общего назначения (GPIO) взаимодействует с расширением платформы GPIO (GpioClx) через интерфейс драйвера устройства (DDI) GpioClx. Этот DDI определен в файле заголовка Gpioclx.h и описан в справочнике по драйверу GPIO. В рамках этого DDI GpioClx реализует несколько методов поддержки драйверов, которые вызываются драйвером контроллера GPIO. Этот драйвер реализует набор функций обратного вызова событий, которые вызываются GpioClx. GpioClx использует эти обратные вызовы для управления запросами прерываний от контактов GPIO, настроенных как входные данные прерывания, а также для передачи данных в контакты GPIO, настроенные в качестве входных и выходных данных.