Architektur und Übersicht für HID über den SPI-Transport
In diesem Abschnitt wird der Treiberstapel für Geräte beschrieben, die HID über den SPI-Transport unterstützen.
Architektur und Übersicht
Der HID SPI-Treiberstapel besteht aus vorhandenen und neuen Komponenten, die von Microsoft bereitgestellt werden, sowie aus Komponenten, die vom SPI-Siliziumhersteller bereitgestellt werden. Die folgende Abbildung zeigt den Stapel und diese Komponenten.
Windows bietet eine Schnittstelle für einfache Busse mit geringem Stromverbrauch, um effektiv mit dem Betriebssystem zu kommunizieren. Diese Schnittstelle wird als einfacher Peripheriebus (SPB) bezeichnet und unterstützt Busse wie Inter-Integrated Circuit (I2C) und Serial Peripheral Interface (SPI). Weitere Informationen zu SPB finden Sie im Thema Einfacher Peripheriebus (SPB).
Windows stellt einen KMDF-basierten HID-Miniporttreiber bereit, der Version 1.0 der Protokollspezifikation für HID über SPI implementiert. Dieser Treiber hat den Namen HIDSPI.sys. Windows lädt diesen Treiber basierend auf einer kompatiblen ID-Übereinstimmung, die von advanced Configuration and Power Interface (ACPI) verfügbar gemacht wird. Systemintegratoren können eine Erweiterung INF verwenden, um diesen Treiber basierend auf der Hardware-ID ihres Peripheriegeräts zu laden. Der Treiber stellt sicher, dass Apps, die HID IOCTLs verwenden, kompatibilität auf Anwendungsebene für Software, die die HID-IOCTLs und den API-Satz nutzt. Es wird eine GPIO-Verbindung mit dem Treiber bereitgestellt, die es dem Gerät ermöglicht, einen Interrupt zu bestätigen, wenn es Aufmerksamkeit erfordert oder Daten enthält.
Hinweis
Der HIDSPI.sys Gerätetreiber unterstützt nur den SPI-Bus. I2C, SMBUS oder andere Low-Power-Busse in Windows werden nicht unterstützt.
Der SPI-Controllertreiber
Der SPI-Controllertreiber macht eine SPB-IOCTL-Schnittstelle (Serial Peripheral Bus) verfügbar, um Lese- und Schreibvorgänge auszuführen. Dieser Treiber stellt die tatsächlichen systeminternen Controller (z. B. SPI) bereit. Die SPB-Klassenerweiterung übernimmt im Namen des Controllertreibers die gesamte Interaktion mit dem Ressourcenhub und implementiert die erforderlichen Warteschlangen, um gleichzeitige Ziele zu verwalten.
Hinweis
Der HID SPI-Treiber funktioniert nicht auf Systemen, die nicht über einen SPI-Bus verfügen, der mit der SPB-Plattform kompatibel ist. Wenden Sie sich an Ihren Systemhersteller, um zu ermitteln, ob der SPI-Bus auf Ihrem Gerätesystem mit der SPB-Plattform kompatibel ist.
Der GPIO-Controllertreiber
Der GPIO-Controller (Universell Input/Output) übermittelt Interrupts vom Gerät über GPIO. Dies ist häufig eine einfache untergeordnete Komponente, die GPIO-Pins verwendet, um Windows neue Daten oder andere Ereignisse zu signalisieren. GPIO kann das Gerät auch über andere Ansätze als den SPI-Kanal steuern.
Der Ressourcenhub
Verbindungen auf einer SoC-Plattform sind in der Regel nicht auffindbar, da es keine Standards für die Geräteenumeration für die Busse gibt, die in SoC verwendet werden. Daher müssen diese Geräte statisch im ACPI (Advanced Configuration and Power Interface) definiert werden. Darüber hinaus weisen Komponenten häufig mehrere Abhängigkeiten auf, die sich über mehrere Busse erstrecken, im Gegensatz zu einer strengen Verzweigungsstruktur.
Der Ressourcenhub ist ein Proxy, der die Verbindungen zwischen allen Geräten und Buscontrollern verwaltet. Der HIDSPI-Treiber verwendet den Ressourcenhub, um Geräteöffnungsanforderungen an den entsprechenden Controllertreiber umzuleiten. Weitere Informationen zum Ressourcenhub finden Sie im Thema Verbindungs-IDs für verbundene SPB-Geräte .
HIDSPI-Klassenerweiterung (HIDSPICx)
Für Implementierungen, die eine höhere Leistung oder Integration erfordern, ist es systemherstellern möglich, benutzerdefiniertes Silizium für die Verarbeitung von HIDSPI-Transaktionen zu entwickeln. Dazu wird die HIDSPICx-Klassenerweiterung mit Windows bereitgestellt. HIDSPICx ermöglicht die Entwicklung eines benutzerdefinierten HIDSPI HWA-Controllertreibers ohne SpbCx.
Für HWA-Geräte stellt der Anbieter einen Clienttreiber bereit, der für die Implementierung der durch die Klassenerweiterung definierten Schnittstelle und die Kommunikation mit der Klassenerweiterung verantwortlich ist.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für