Руководство по проектированию драйвера 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-Based аппаратные ресурсы

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

Прерывания GPIO

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

GpioClx DDI

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