Gerätebuskonnektivität (touchscreen-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 Methoden für die Gerätebuskonnektivität für ein integriertes Windows-Touchscreengerät erläutert.
Ein integriertes Windows-Touchscreengerät kann die von Microsoft bereitgestellten Eingangstreiber 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 einen beliebigen anderen Bus verwenden, solange Sie den erforderlichen Windows-kompatiblen HID-Miniporttreiber eines Drittanbieters für das Touchscreengerät bereitstellen. Das folgende Diagramm zeigt den Windows 10-Treiberstapel für ein Windows-Touchscreengerät.
Für vollständige Kompatibilität mit Windows 11 für Desktopeditionen (Home, Pro, Enterprise und Education) empfehlen wir, nach Möglichkeit die Windows-Eingangstreiber zu verwenden. Wenn Sie einen Miniporttreiber eines Drittanbieters verwenden müssen, müssen Sie diesen Drittanbietertreiber den entsprechenden OEM- (Original Equipment Manufacturer) und Systemwiederherstellungsimages 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 Windows-Touchscreenmodul ist als Kombination aus einem Controllerchip, einem Sensor und allen zugehörigen Mechanismen definiert.
Ein Windows-Touchscreenmodul, das über den I²C-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 Verbindungen zwischen einem Windows-Touchscreengerä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. Für ein Windows-Touchscreengerät wird eine I²C-Taktgeschwindigkeit von mindestens 400 kHz empfohlen.
Es wird empfohlen, die Interrupt-Leitung (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 Interrupt-Leitung verbunden ist, sollte in der Lage sein (und dafür konfiguriert), das SoC (System on a Chip) zu aktivieren. Die Aktivierungsfunktion ermöglicht dem Windows-Touchscreengerät, das System in verschiedenen Szenarien zu aktivieren.
Wenn Sie sich entscheiden, die Aktivierungsfunktion zu verwenden, sollte die mit dem Windows-Touchscreengerät verbundene Stromleitung nicht mit anderen Geräten geteilt 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-Touchscreengerät, das über I²C verbunden ist, muss einen Eintrag in der ACPI-Tabelle (Advanced Configuration and Power Interface) des Hosts definieren, damit das Gerät vom Host erkannt wird. Weitere Informationen zu ACPI finden Sie in der Advanced Configuration and Power Interface-Spezifikation.
Der ACPI-Tabelleneintrag sollte die folgenden Informationen angeben:
Eingabe | Beschreibung |
---|---|
ACPI-Geräteeintragsname | Eine in der ACPI-Tabelle eindeutige aus vier Zeichen bestehende Kennung, mit der auf das Gerät verwiesen wird. Beispiel: „TOUC“. |
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 Touchscreen mit dem Windows-Host zu verbinden, und ermöglicht die Kommunikation zwischen Touchscreen und Host. Beispiel: „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 Touchscreengerät auf dem I²C-Bus für die Kommunikation auszuwählen. 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 Interrupt-Leitung des Touchscreengeräts 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-Controllerpin, mit dem die Interrupt-Leitung des Touchscreengeräts verbunden ist. Der Host verknüpft dann diesen spezifischen GPIO-Pin mit Unterbrechungssignalen vom Touchscreen. Beispiel: „{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-Unterbrechungsassertionstyp | Definiert den Typ des Auslösens, den das Touchscreengerät für seine Unterbrechungen bereitstellt. Dies kann entweder „Edge-Triggered“ oder „Level-Triggered“ sein. HID I²C-konforme Geräte sollten Unterbrechungen vom Typ „Level-Triggered“ verwenden. |
GPIO-Unterbrechungsassertionsebene | 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-Touchscreengerät 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 auf vielerlei Weise erfolgen und liegt im Ermessen des Integrators.
Beim Herstellen einer Verbindung mit einem USB-Hub müssen die Bandbreitenanforderungen aller Komponenten bekannt sein, die diesen Hub teilen. Es wird dringend empfohlen, dass Geräte mit hoher Bandbreite und Windows-Touchscreencontroller nicht den gleichen USB-Hub verwenden, da dies zu Bandbreitenanforderungen führen kann, die die Buskapazität überschreiten.
HID-SPI-Geräte
Ein Windows-Touchscreenmodul ist als Kombination aus einem Controllerchip und einem Sensor definiert.
Ein Windows-Touchscreenmodul, 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 Verbindungen zwischen einem Windows-Touchscreengerät und seinem Windows-Host.
ACPI-Tabelleneinträge
Ein Windows-Touchscreengerät, das über SPI verbunden ist, muss einen Eintrag in der ACPI-Tabelle (Advanced Configuration and Power Interface) des Hosts definieren, damit das Gerät vom Host erkannt wird. Weitere Informationen zu ACPI finden Sie in der Advanced Configuration and Power Interface-Spezifikation.
Der ACPI-Tabelleneintrag sollte die im Artikel Plug & Play Support für HID über SPI beschriebenen Informationen angeben.