Gerätebuskonnektivität (pen-device-bus-connectivity)
Hinweis
Dieser Artikel enthält Verweise auf den Begriff Slave, einen Begriff, den Microsoft nicht mehr verwendet. Sobald der Begriff aus der Software entfernt wird, wird er auch aus diesem Artikel entfernt.
In diesem Thema werden Buskonnektivitätsmethoden für ein Windows Stiftgerät erläutert.
Ein Windows Stiftgerät kann die von Microsoft bereitgestellten internen Treiber verwenden, um eine Verbindung mit seinem Windows-Host herzustellen, indem es entweder HID über USB, HID über I²C oder (ab Windows 11) HID über SPI verwendet. Sie können jedoch auch einen beliebigen anderen Bus verwenden, solange Sie den erforderlichen Windows-kompatiblen HID-Miniport-Drittanbietertreiber für das Stiftgerät bereitstellen. Das folgende Diagramm zeigt den Windows 11 Treiberstapel für ein Windows-Stiftgerät.
Für vollständige Kompatibilität mit Windows 11 für Desktopeditionen (Home, Pro, Enterprise und Education) empfehlen wir die Verwendung der von Microsoft bereitgestellten Windows-internen Treiber. Wenn Sie sich für die Verwendung eines Drittanbieter-Miniporttreibers entscheiden, müssen Sie diesen Drittanbietertreiber dem entsprechenden OEM hinzufügen und außerdem Images zur Systemwiederherstellung hinzufügen und diese Images dann für den Download auf Windows Update zur Verfügung stellen.
In den folgenden Abschnitten werden einige Beispiele für Gerätekonfigurationen vorgestellt.
I²C-Geräte
Ein integriertes Windows Stiftmodul wird als Kombination aus einem Controller-IC und einem Sensor definiert.
Ein Windows Stiftmodul, das über den SPI-Bus eine Verbindung mit seinem Windows-Host herstellt, muss mindestens die folgenden fünf Anschlusspins verfügbar machen:
- Eine Datenleitung (SDA)
- Eine Taktleitung (SCL)
- Eine Interrupt-Leitung
- Eine Stromversorgungsleitung
- Eine Erdungsleitung (GND)
Nachfolgend sehen Sie ein Diagramm der Anschlussleitungen zwischen einem Windows Stiftgerät und seinem Windows-Host.
Beim Herstellen einer Verbindung mit einem I²C-Controller ist es wichtig, die Bandbreitenanforderungen aller Komponenten zu verstehen, die diesen Controller teilen. Eine minimale I²C-Taktgeschwindigkeit von 400 KHz wird für einen integrierten Windows-Stift empfohlen. Es wird dringend empfohlen, dass integrierte Windows-Stiftcontroller nicht denselben I²C-Controller mit Komponenten teilen, die eine hohe Bandbreitenauslastung verursachen.
Es wird empfohlen, die Unterbrechungsleitung (auch als ATTN-Leitung bezeichnet) mit einem On-SoC GPIO-Controller oder mit einem IOAPIC zu verbinden. Die GPIO- oder IOAPIC-Ressource, mit der die Unterbrechungsleitung verbunden ist, sollte in der Lage sein (und dafür konfiguriert) den SoC zu aktivieren. Die Aktivierungsfunktion ermöglicht dem integrierten Windows-Stift, das System in verschiedenen Szenarien zu aktivieren.
Wenn Sie sich entscheiden, die Aktivierungsfunktion zu verwenden, sollte die mit dem integrierten Windows Stiftgerät verbundene Stromleitung nicht für andere Geräte freigegeben werden, die nicht aktivierungsfähig sind. Damit die Aktivierungsszenarien ordnungsgemäß funktionieren können, muss die verwendete Stromleitung während des verbundenen Standbymodus/S3-Bedingungen bestromt werden.
ACPI-Tabelleneinträge
Ein Windows Stiftgerät, das über I²C verbunden ist, muss einen Eintrag in der Tabelle „Advanced Configuration and Power Interface“ (ACPI) des Hosts definieren, damit das Gerät vom Host erkannt wird. Weitere Informationen zu ACPI finden Sie unter Spezifikation für Advanced Configuration and Power Interface.
Der ACPI-Tabelleneintrag sollte die folgenden Informationen angeben:
Eingabe | Beschreibung |
---|---|
ACPI-Geräteeintragsname | Eine 4-Zeichen-Identifikation, die in dieser ACPI-Tabelle eindeutig ist, um auf das Gerät zu verweisen. Zum Beispiel „WPEN“. |
ACPI-Hardware-ID | Eine aus vier Zeichen und vier Ziffern bestehende ACPI-Hardware-ID, mit der auf das Gerät verwiesen wird. Diese ID wird im Geräte-Manager verfügbar gemacht. Beispiel: „MSFT0001“. |
Kompatible ID | Dies sollte immer „PNP0C50“ sein, um anzugeben, dass das Gerät HID I²C-kompatibel ist. |
I²C-Controller | Gibt einen I²C-Controller auf dem Windows-Host an. Dieser Controller wird verwendet, um den Stift mit dem Windows-Host zu verbinden, und ermöglicht es dem Stift und dem Host zu kommunizieren. Beispielsweise „I2C3“ – um den I²C-Controller #3 anzugeben. |
Adresse des I²C-Sekundärgeräts | Gibt die Adresse des I²C-Sekundägeräts an. Der Host verwendet diese Adresse, um das Stiftgerät auf dem I²C-Bus für die Kommunikation auszuwählen. Zum Beispiel „0x6F“. |
I²C-Geschwindigkeit | Gibt die maximale Geschwindigkeit an, die sowohl vom Gerät als auch vom I²C-Controller unterstützt wird. Die Angabe der Geschwindigkeit in der ACPI-Tabelle stellt eine zuverlässige Kommunikation sicher. Diese Geschwindigkeit sollte nicht kleiner als 400 kHz (0x61A80) sein. |
GPIO-Controller | Der GPIO-Controller, mit dem die Unterbrechungsleitung des Stifts verbunden ist. Dies teilt dem Host mit, wo er nach Unterbrechungssignalen „lauschen“ soll. Beispiel: „GPIO0“, um den GPIO-Controller 0 anzugeben. |
GPIO-Ressource/Pin | Der GPIO-Controller, mit dem die Unterbrechungsleitung des Stifts verbunden ist. Der Host verknüpft dann diesen spezifischen GPIO-Pin mit Unterbrechungssignalen vom Stift. Beispielsweise „{35}“ – um Pin 35 anzugeben. |
GPIO-Ressourcentyp | Dadurch werden die Einschränkungen für die GPIO-Ressource definiert. Dieser Eintrag für die ACPI-Tabelle sollte auf „Exclusive“ festgelegt werden, es sei denn, Sie möchten SoC-Aktivierung auswählen. Wenn Sie sich entscheiden, SoC-Aktivierung auszuwählen, legen Sie diesen Eintrag auf „ExclusiveAndWake“ fest. |
GPIO-Interrupt-Assertionstyp | Definiert den Typ des Auslösens, den der Stift für seine Unterbrechungen bereitstellt. Dies kann entweder „Edge-Triggered“ oder „Level-Triggered“ sein. HID I²C-konforme Geräte sollten „Level-Triggered“-Unterbrechungen verwenden. |
GPIO-Interrupt-Assertionsebene | Definiert den Spannungspegel auf der Interrupt-Leitung, bei dem die Unterbrechung durch das Gerät bestätigt wird. Dies kann als „ActiveLow“ oder „ActiveHigh“ angegeben werden. |
USB-Geräte
Ein integriertes Windows-Stiftmodul mit hoher/voller Geschwindigkeit, das über USB 2.0 angeschlossen ist, sollte die erforderlichen Pins für die Hostkonnektivität verfügbar machen.
Die Verbindung mit dem Host kann viele Formen annehmen und liegt im Ermessen des Integrators.
Beachten Sie, dass beim Herstellen einer Verbindung mit einem USB-Hub die Bandbreitenanforderungen aller Komponenten, die diesen Hub teilen, zu verstehen. Es wird dringend empfohlen, dass Geräte mit hoher Bandbreite und integrierte Windows Stiftcontroller nicht den gleichen USB-Hub teilen, da dies zu Bandbreitenanforderungen führen kann, welche die Busfunktionalität überschreiten.
USB-Brückengeräte (I²C -> USB)
Wenn Sie eine USB-Brücke verwenden, um einen integrierten I²C Windows-Stift mit dem Host zu verbinden, sollte die Brücke den integrierten Windows-Stift als eindeutigen Geräteknoten mit den eindeutigen Attributen des Geräts (wVendorID, wProductID, wVersionID) verfügbar machen.
HID SPI-Geräte
Ein Windows Stiftmodul wird als Kombination aus einem Controller-IC und einem Sensor definiert.
Ein Windows Stiftmodul, das über den SPI-Bus eine Verbindung mit seinem Windows-Host herstellt, muss mindestens die folgenden fünf Anschlusspins verfügbar machen:
- Eine Datenleitung (SDA)
- Eine Taktleitung (SCL)
- Eine Chip-Select-Leitung (SS)
- Eine Interrupt-Leitung
- Eine Stromversorgungsleitung
- Eine Erdungsleitung (GND)
Nachfolgend sehen Sie ein Diagramm der Anschlussleitungen zwischen einem Windows Stiftgerät und seinem Windows-Host.
ACPI-Tabelleneinträge
Ein Windows Stiftgerät, das über SPI verbunden ist, muss einen Eintrag in der Tabelle „Advanced Configuration and Power Interface“ (ACPI) des Hosts definieren, damit das Gerät vom Host erkannt wird. Weitere Informationen zu ACPI finden Sie unter Spezifikation für Advanced Configuration and Power Interface.
Der ACPI-Tabelleneintrag sollte die im Artikel Plug & Play Support für HID über SPI beschriebenen Informationen angeben.