Freigeben über


General-Purpose I/O (GPIO)-Treiberentwurfshandbuch

In diesem Abschnitt wird beschrieben, wie Sie einen Treiber für ein allgemeines I/O-Controllergerät (GPIO) schreiben. Ein GPIO-Controller konfiguriert GPIO-Pins für die Ausführung von Daten-E/A-Vorgängen mit niedriger Geschwindigkeit, für die Ausführung von Geräteauswahlen und zum Empfangen von Interruptanforderungen. Ab Windows 8 vereinfacht die GPIO-Framework-Erweiterung (GpioClx) das Schreiben eines Treibers für einen GPIO-Controller. Darüber hinaus stellt GpioClx eine einheitliche E/A-Anforderungsschnittstelle für Peripheriegerätetreiber bereit, die mit Geräten kommunizieren, die mit GPIO-Pins auf einem Controller verbunden sind.

In diesem Abschnitt

Thema BESCHREIBUNG

GPIO-Treiberunterstützung – Übersicht

Ab Windows 8 vereinfacht die GPIO-Framework-Erweiterung (GpioClx) das Schreiben eines Treibers für ein GPIO-Controllergerät. Darüber hinaus bietet GpioClx Treiberunterstützung für Peripheriegeräte, die eine Verbindung mit GPIO-Pins herstellen. GpioClx, eine vom System bereitgestellte Erweiterung für das Kernelmodustreiberframework (KMDF), führt Verarbeitungsaufgaben aus, die für Member der GPIO-Geräteklasse gemeinsam sind.

GpioClx-E/A- und Interruptschnittstellen

In der Regel sind die Clients eines GPIO-Controllers Treiber für Peripheriegeräte, die eine Verbindung mit GPIO-Pins herstellen. Diese Treiber verwenden GPIO-Pins als Datenkanäle mit geringer Bandbreite, Geräteauswahlausgaben und Interrupt-Anforderungseingaben. Peripheriegerätetreiber öffnen logische Verbindungen mit GPIO-Pins, die als Dateneingaben oder -ausgaben konfiguriert sind. Sie verwenden diese Verbindungen, um E/A-Anforderungen an diese Pins zu senden. Darüber hinaus können Peripheriegerätetreiber ihre Interruptdienstroutinen logisch mit GPIO-Pins verbinden, die als Interruptanforderungseingaben konfiguriert sind.

GPIO-Based Hardwareressourcen

Ab Windows 8 stehen die allgemeinen I/O-Pins (GPIO), die von einem GPIO-Controllertreiber gesteuert werden, anderen Treibern als vom System verwaltete Hardwareressourcen zur Verfügung. GPIO-E/A-Pins, die als Dateneingaben oder Datenausgabe konfiguriert sind, stehen als neue Windows-Ressourcentyp, GPIO-E/A-Ressourcen, zur Verfügung. Darüber hinaus sind GPIO-Interrupt-Pins, die als Interruptanforderungseingaben konfiguriert sind, als normale Windows-Interruptressourcen verfügbar.

GPIO-Unterbrechungen

Einige allgemeine I/O-Controllergeräte (GPIO) können ihre GPIO-Pins so konfigurieren, dass sie als Interrupt-Anforderungseingaben funktionieren. Diese Interruptanforderungseingaben werden von Peripheriegeräten gesteuert, die physisch mit den GPIO-Pins verbunden sind. Die Treiber für diese GPIO-Controller können Unterbrechungsanforderungen für einzelne GPIO-Pins aktivieren, deaktivieren, maskieren, entsperren und löschen.

GpioClx DDI

Der allgemeine I/O-Controllertreiber (GPIO) kommuniziert mit der GPIO-Framework-Erweiterung (GpioClx) über die GpioClx-Gerätetreiberschnittstelle (DDI). Dieser DDI ist in der Gpioclx.h-Headerdatei definiert und wird in General-Purpose I/O(GPIO)-Treiberreferenz beschrieben. Im Rahmen dieses DDI implementiert GpioClx mehrere Treiberunterstützungsmethoden, die vom GPIO-Controllertreiber aufgerufen werden. Dieser Treiber implementiert eine Reihe von Ereignisrückruffunktionen, die von GpioClx aufgerufen werden. GpioClx verwendet diese Rückrufe, um Unterbrechungsanforderungen von GPIO-Pins zu verwalten, die als Interrupteingaben konfiguriert sind, und um Daten an oder von GPIO-Pins zu übertragen, die als Dateneingaben und -ausgaben konfiguriert sind.