DE112011105779B4 - Verfahren, vorrichtungen, systeme und computerprogrammprodukte für mehrfachberührungs-schnittstellenschemas - Google Patents

Verfahren, vorrichtungen, systeme und computerprogrammprodukte für mehrfachberührungs-schnittstellenschemas Download PDF

Info

Publication number
DE112011105779B4
DE112011105779B4 DE112011105779.2T DE112011105779T DE112011105779B4 DE 112011105779 B4 DE112011105779 B4 DE 112011105779B4 DE 112011105779 T DE112011105779 T DE 112011105779T DE 112011105779 B4 DE112011105779 B4 DE 112011105779B4
Authority
DE
Germany
Prior art keywords
data
touch
hid
report
interface data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112011105779.2T
Other languages
English (en)
Other versions
DE112011105779T5 (de
Inventor
Srikanth Kambhatla
Steven B. McGowan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112011105779T5 publication Critical patent/DE112011105779T5/de
Application granted granted Critical
Publication of DE112011105779B4 publication Critical patent/DE112011105779B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • G06F3/04166Details of scanning methods, e.g. sampling time, grouping of sub areas or time sharing with display driving
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0412Digitisers structurally integrated in a display
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Position Input By Displaying (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)

Abstract

Verfahren, das Folgendes umfasst:in einem Bedienerschnittstellengerät (Human Interface Device, HID)-Quellengerät:Konfigurieren, über einen Hilfs (AUX)-Kanal, eines HID-Senkengerätes, Schnittstellendaten bereitzustellen, wobei das HID-Senkengerät ein Datenmodul enthält, um die Schnittstellendaten zu erzeugen;Aktivieren des Datenmoduls über den AUX-Kanal; undEmpfangen der Schnittstellendaten über den AUX-Kanal;wobei das Empfangen der Schnittstellendaten Folgendes umfasst:in dem HID-Quellengerät:Lesen eines Interrupt-Grundes;Lesen der Schnittstellendaten in Reaktion auf das Lesen des Interrupt-Grundes; undLöschen des Interrupt-Grundes;und/oder wobei das Empfangen der Schnittstellendaten Folgendes umfasst:in dem HID-Quellengerät:Anfordern eines Berichts;Abfragen einer Berichtsverfügbarkeitsmarkierung;Lesen der Schnittstellendaten in Reaktion auf das Detektieren der Berichtsverfügbarkeitsmarkierung; und Löschen der Berichtsverfügbarkeitsmarkierung.

Description

  • HINTERGRUND
  • Unlängst entwickelte Display-Schnittstellenschemas, wie zum Beispiel das bzw. der DisplayPort® (DP) Display-Schnittstellenprotokoll oder -standard (siehe beispielsweise DisplayPort® Version 1.2 (Dezember 2009)), sind dafür ausgelegt, ältere Standards, wie zum Beispiel Video Graphics Array (VGA) und Digital Video Interface (DVI), zu ersetzen und sich auf paketbasierte Datenübertragung zu stützen, die anderen Datenkommunikationsprotokollen, wie zum Beispiel Ethernet, USB und PCI Express, ähnelt. Zum Beispiel unterstützt DP sowohl externe (beispielsweise Box-to-Box) als auch interne (beispielsweise Laptop-Displaypanel) Display-Verbindungen, und im Gegensatz zu den DVI- und Low-Voltage Differential Signaling (LVDS)-Standards, wo differenzielle Paare Pixeldaten und ein Taktsignal übertragen, basiert das DP-Protokoll auf dem Übertragen kleiner Datenpakete mit einem eingebetteten Takt. Die Verwendung von Datenpaketen macht auch Schnittstellenstandards, wie zum Beispiel DP, erweiterungsfähig, indem zusätzliche Merkmale ohne signifikante Änderungen an der Schnittstelle selbst hinzugefügt werden können. „Embedded DisplayPort®“ eDP) ist ein Begleitstandard (siehe beispielsweise Embedded DisplayPort® Version 1.3 (Februar 2011)) zum DP-Standard und stellt eine standardisierte Displaypanel-Schnittstelle für interne Verbindungen bereit (beispielsweise zwischen einem Grafikprozessor und einem Notebook-Displaypanel), und ist dafür ausgelegt, den LVDS-Standard zu ersetzen.
  • Ein zu lösendes Problem liegt darin, die Kommunikation an Display-Schnittstellen zu verbessern.
  • US 2011/0032006 A1 beschreibt einen bidirektionalen Signalverstärker, zum Beispiel einen Verstärker für den Hilfskanal in DisplayPort-Geräten.
  • Die vorliegende Erfindung löst diese Aufgabe mittels eines Verfahrens, Vorrichtungen, Systeme und Computerprogrammprodukte für Mehrfach-berührungs-Schnittstellenschemas.
  • KURZE ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Erfindung ist in den angehängten unabhängigen Ansprüchen definiert. Vorteilhafte Ausgestaltungen sind in den abhängigen Ansprüchen definiert.
  • Ein erster Aspekt der Erfindung beschreibt ein Verfahren, das Folgendes umfasst: in einem Bedienerschnittstellengerät (Human Interface Device, HID)-Quellengerät: Konfigurieren, über einen Hilfs (AUX)-Kanal, eines HID-Senkengerätes, Schnittstellendaten bereitzustellen, wobei das HID-Senkengerät ein Datenmodul enthält, um die Schnittstellendaten zu erzeugen; Aktivieren des Datenmoduls über den AUX-Kanal; und Empfangen der Schnittstellendaten über den AUX-Kanal; wobei das Empfangen der Schnittstellendaten Folgendes umfasst: in dem HID-Quellengerät: Lesen eines Interrupt-Grundes; Lesen der Schnittstellendaten in Reaktion auf das Lesen des Interrupt-Grundes; und Löschen des Interrupt-Grundes; und/oder wobei das Empfangen der Schnittstellendaten Folgendes umfasst: in dem HID-Quellengerät: Anfordern eines Berichts; Abfragen einer Berichtsverfügbarkeitsmarkierung; Lesen der Schnittstellendaten in Reaktion auf das Detektieren der Berichtsverfügbarkeitsmarkierung; und Löschen der Berichtsverfügbarkeitsmarkierung.
  • Ein weiterer Aspekt beschreibt ein Erzeugnis, das ein Computerprogrammprodukt umfasst, auf dem Instruktionen gespeichert sind, die, wenn sie ausgeführt werden, Folgendes veranlassen: in einem Bedienerschnittstellengerät (Human Interface Device, HID)-Quellengerät: Konfigurieren, über einen Hilfs (AUX)-Kanal, eines HID-Senkengerätes, Schnittstellendaten bereitzustellen, wobei das HID-Senkengerät ein Datenmodul enthält, um die Schnittstellendaten zu erzeugen; Aktivieren des Datenmoduls über den AUX-Kanal; und Empfangen der Schnittstellendaten über den AUX-Kanal. wobei das Empfangen der Schnittstellendaten Folgendes umfasst: in dem HID-Quellengerät: Lesen eines Interrupt-Grundes; Lesen der Schnittstellendaten in Reaktion auf das Lesen des Interrupt-Grundes; und Löschen des Interrupt-Grundes; und/oder wobei das Empfangen der Schnittstellendaten Folgendes umfasst: in dem HID-Quellengerät: Anfordern eines Berichts; Abfragen einer Berichtsverfügbarkeitsmarkierung; Lesen der Schnittstellendaten in Reaktion auf das Detektieren der Berichtsverfügbarkeitsmarkierung; und Löschen der Berichtsverfügbarkeitsmarkierung.
  • Ein Aspekt der Erfindung beschreibt eine Vorrichtung, die Folgendes umfasst: ein Bedienerschnittstellengerät (Human Interface Device, HID)-Senkengerät, das ein Datenmodul zum Erfassen von Schnittstellendaten enthält; und Logik in dem HID-Senkengerät zum Erzeugen der Schnittstellendaten und zum Signalisieren der Verfügbarkeit der Schnittstellendaten über einen Hilfs (AUX)-Kanal unter Verwendung eines Interrupts oder einer Markierung (Flag).
  • Ein anderer Aspekt der Erfindung beschreibt ein System, das Folgendes umfasst: ein Bedienerschnittstellengerät (Human Interface Device, HID)-Senkengerät, das ein Datenmodul zum Erfassen von Schnittstellendaten enthält; und ein HID-Quellengerät, das kommunikativ mit dem HID-Senkengerät durch einen Hilfs (AUX)-Kanal gekoppelt ist, wobei das Berührungsquellengerät dafür geeignet ist, den AUX-Kanal für Folgendes zu verwenden: Konfigurieren des HID-Senkengerätes zum Erzeugen der Schnittstellendaten; Aktivieren des Datenmoduls; und Empfangen der Schnittstellendaten; wobei das Empfangen der Schnittstellendaten unter Verwendung des Interrupt-gestützten Datenzugriffsverfahrens beinhaltet, dass das HID-Quellengerät Folgendes ausführt: Lesen eines Interrupt-Grundes; Lesen der Schnittstellendaten in Reaktion auf das Lesen des Interrupt-Grundes; und Löschen des Interrupt-Grundes; und/oder wobei das Empfangen der Schnittstellendaten unter Verwendung des Polling-gestützten Datenzugriffsverfahrens beinhaltet, dass das HID-Quellengerät Folgendes ausführt: Anfordern eines Berichts; Abfragen einer Berichtsverfügbarkeitsmarkierung; Lesen der Schnittstellendaten in Reaktion auf das Detektieren der Berichtsverfügbarkeitsmarkierung; und Löschen der Berichtsverfügbarkeitsmarkierung.
  • Figurenliste
  • Das im vorliegenden Text beschriebene Material wird in den beiliegenden Figuren beispielhaft und nicht zum Zweck der Einschränkung veranschaulicht. Im Interesse der Einfachheit und Klarheit der Veranschaulichung sind die in den Figuren veranschaulichten Elemente nicht unbedingt maßstabsgetreu gezeichnet. Zum Beispiel können die Abmessungen einiger Elemente relativ zu anderen Elementen zur besseren Erkennbarkeit vergrößert dargestellt sein. Des Weiteren wurden dort, wo es für zweckmäßig erachtet wurde, Bezugsbezeichnungen in den Figuren wiederholt, um entsprechende oder analoge Elemente anzuzeigen. In den Figuren ist Folgendes dargestellt:
    • 1 und 2 sind veranschaulichende Schaubilder beispielhafter Display-Schnittstellensysteme;
    • 3-5 veranschaulichen beispielhafte Registerzusammensetzungen;
    • 6-12 veranschaulichen beispielhafte Display-Schnittstellenprozesse;
    • 13 ist ein veranschaulichendes Schaubild eines beispielhaften Datenschemas;
    • 14 ist ein veranschaulichendes Schaubild eines beispielhaften Systems; und
    • 15 ist ein veranschaulichendes Schaubild einer beispielhaften Vorrichtung, die alle gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung aufgebaut sind.
  • DETAILLIERTE BESCHREIBUNG
  • Es werden nun eine oder mehrere Ausführungsformen oder Implementierungen mit Bezug auf die beiliegenden Figuren beschrieben. Obgleich konkrete Konfigurationen und Anordnungen besprochen werden, versteht es sich, dass dies nur zu veranschaulichenden Zwecken dient. Der einschlägig bewanderte Fachmann erkennt, dass auch andere Konfigurationen und Anordnungen verwendet werden können, ohne vom Geist und Schutzumfang der Beschreibung abzuweichen. Dem einschlägig bewanderten Fachmann ist klar, dass die im vorliegenden Text beschriebenen Techniken und/oder Anordnungen auch in einer Vielzahl verschiedener anderer Systeme und Anwendungen als denen, die im vorliegenden Text beschrieben sind, verwendet werden können.
  • Obgleich die folgende Beschreibung verschiedene Implementierungen darlegt, die in Architekturen wie zum Beispiel Notebook- oder Desktop-Computern verkörpert sein können, ist die Implementierung der im vorliegenden Text beschriebenen Techniken und/oder Anordnungen nicht auf bestimmte Architekturen und/oder Computersysteme beschränkt und kann durch jegliche Architekturen und/oder Computersysteme für ähnliche Zwecke implementiert werden. Zum Beispiel können verschiedene Architekturen, die zum Beispiel mehrere Integrierte-Schaltkreis (IC)-Chips und/oder -Bausteine und/oder verschiedene Computergeräte und/oder konsumelektronische (KE) Geräte, wie zum Beispiel Set-top-Boxen, Smartphones usw. verwenden, die im vorliegenden Text beschriebenen Techniken und/oder Anordnungen implementieren. Des Weiteren können in der folgenden Beschreibung zwar zahlreiche konkrete Details dargelegt sein, wie zum Beispiel logische Implementierungen, Arten und Zwischenbeziehungen von Systemkomponenten, logische Teilungs- oder Integrationsentscheidungen usw., doch kann der beanspruchte Gegenstand auch ohne solche konkreten Details praktiziert werden. In anderen Fällen kann es sein, dass einiges Material, wie zum Beispiel Steuerungsstrukturen und vollständige Softwareinstruktionssequenzen, nicht im Detail gezeigt sind, um das im vorliegenden Text offenbarte Material nicht in den Hintergrund treten zu lassen.
  • Das im vorliegenden Text offenbarte Material kann in Hardware, Firmware, Software oder beliebigen Kombinationen davon implementiert werden. Das im vorliegenden Text offenbarte Material kann auch als Instruktionen implementiert werden, die auf einem maschinenlesbaren Medium gespeichert sind, das durch einen oder mehrere Prozessoren gelesen und ausgeführt werden kann. Ein maschinenlesbares Medium kann ein beliebiges Medium und/oder ein beliebiger Mechanismus zum Speichern oder Senden von Informationen in einer durch eine Maschine (beispielsweise eine Computervorrichtung) lesbaren Form sein. Zu maschinenlesbaren Medien können beispielsweise gehören: Nurlesespeicher (ROM); Direktzugriffsspeicher (RAM); Magnetdiskspeichermedien; optische Speichermedien; Flash-Speicherelemente; elektrische, optische, akustische oder andere Formen ausgebreiteter Signale (beispielsweise Trägerwellen, Infrarotsignale, digitale Signale usw.); und andere.
  • Verweise in der Spezifikation auf „eine bestimmte Implementierung“, „eine Implementierung“, „eine beispielhafte Implementierung“ usw. bedeuten, dass die beschriebene Implementierung ein besonderes Merkmal, eine besondere Struktur oder eine besondere Eigenschaft enthalten kann, aber es muss nicht unbedingt jede Implementierung das besondere Merkmal, die besondere Struktur oder die besondere Eigenschaft enthalten. Darüber hinaus beziehen sich solche Phrasen nicht unbedingt auf dieselbe Implementierung. Des Weiteren wird, wenn ein besonderes Merkmal, eine besondere Struktur oder eine besondere Eigenschaft in Verbindung mit einer Implementierung beschrieben wird, davon ausgegangen, dass es innerhalb der Kompetenz eines Fachmanns liegt, ein solches Merkmal, eine solche Struktur oder eine solche Eigenschaft in Verbindung mit anderen Implementierungen zu realisieren, unabhängig davon, ob es ausdrücklich im vorliegenden Text beschrieben wurde oder nicht.
  • Gemäß der vorliegenden Offenbarung kann die Phrase „Bedienerschnittstellenvorrichtung“ (Human Interface Device, HID) im Sinne des vorliegenden Textes Geräte beschreiben, die dafür verwendet werden, den Betrieb von Computersystemen zu steuern (beispielsweise Vorrichtungen gemäß der HID-Klassendefinition, herausgegeben durch das Universal Serial Bus Implementers Forum (USB-IF) - siehe „Device Class Definition for Human Interface Devices (HID)“ Firmware-Spezifikation, Version 1.11, veröffentlicht am 27. Juni 2001; im Folgenden die „HID 1.11“-Spezifikation). Des Weiteren kann die Phrase „Berührungsdaten“ synonym mit der Phrase „Mehrfachberührungsdaten“ verwendet werden und kann im Sinne des vorliegenden Textes Daten meinen, die eine oder mehrere Positionen beschreiben, wo ein Kontakt mit einer berührungsempfindlichen Oberfläche (beispielsweise einem Touchscreen-Display) stattgefunden hat.
  • Außerdem können die Phrasen „Berührungssenke“ und „Berührungssenkenvorrichtung“ synonym mit dem Begriff „Senke“ und der Phrase „Senkenvorrichtung“ verwendet werden und können im vorliegenden Text dafür verwendet werden, eine Senkenvorrichtung zu beschreiben, die dafür konfiguriert ist, die DisplayPort® (DP)- und/oder Embedded DisplayPort® (eDP)-Standards zu unterstützen (siehe Embedded DisplayPort® Version 1.3, veröffentlicht im Februar 2011), und die in der Lage ist, Berührungsdaten zu melden. Des Weiteren können die Phrasen „Berührungsquelle“ und „Berührungsquellenvorrichtung“ synonym mit dem Begriff „Quelle“ und der Phrase „Quellenvorrichtung“ verwendet werden und können im vorliegenden Text dafür verwendet werden, eine Quellenvorrichtung gemäß Definition im DP 1.2-Standard zu beschreiben (siehe DisplayPort® Version 1.2, veröffentlicht im Dezember 2009; im Folgenden der „DP 1.2“-Standard), die dafür konfiguriert ist, Berührungsdaten zu verarbeiten, die zum Beispiel von einer Berührungssenkenvorrichtung kommend empfangen werden. Im Interesse der Klarheit werden die verschiedenen Geräte, Systeme und Prozesse im vorliegenden Text im Kontext der DP- und/oder eDP-Standards beschriebenen, obgleich die vorliegende Offenbarung nicht auf spezielle Berührungs- und/oder Display-Schnittstellenstandards und/oder -Spezifikationen beschränkt ist.
  • Obgleich die verschiedenen Systeme, Geräte, Schemas und/oder Prozesse im vorliegenden Text im Kontext von Berührungsdaten beschrieben sein können, ist die vorliegende Offenbarung nicht auf Berührungsdaten und/oder Berührungsgeräte beschränkt. Weil Informationen, die zwischen einer Berührungssenke und einer Berührungsquelle weitergeleitet werden, HID-kompatibel sein können, kann eine Berührungssenke folglich auch andere Arten von HID-Geräten darstellen, einschließlich beispielsweise einer Tastatur, einer alphanumerischen Anzeige und so weiter. Das heißt, die verschiedenen im vorliegenden Text beschriebenen Schnittstellenschemas und/oder -prozesse können auch auf andere Arten von HID-Geräten angewendet werden, die durch eine Berührungssenke dargestellt werden können, und können für beliebige Kombinationen einer oder mehrerer anderer Arten von HID-Geräten mit HID-Berührungsgeräten gelten. Des Weiteren kann der Begriff „Schnittstellendaten“ im vorliegenden Text zwar größtenteils für Berührungsdaten verwendet werden, doch in verschiedenen Implementierungen können sich Schnittstellendaten gemäß der vorliegenden Offenbarung auch auf Daten beziehen, die durch beliebige Arten von HID-Geräten generiert werden, wie zum Beispiel eine Tastatur, eine alphanumerische Anzeige und dergleichen.
  • In verschiedenen Implementierungen kann eine Berührungssenke Berührungssensoren zum Erzeugen roher Berührungsdaten und einen Formatierer zum Konvertieren roher Berührungsdaten in im vorliegenden Text beschriebene Formate enthalten. Des Weiteren kann eine Berührungssenke dafür konfiguriert sein, Berührungsdaten an eine im vorliegenden Text beschriebene Berührungsquelle zu übertragen. In verschiedenen Implementierungen kann eine Berührungsquelle nicht nur dafür konfiguriert zu sein, die im vorliegenden Text beschriebenen Berührungsdaten zu analysieren und/oder zu interpretieren, sondern kann außerdem die Fähigkeit besitzen, Berührungsdaten von einer Berührungssenke zu empfangen oder zu erhalten. Zum Beispiel veranschaulicht 1 ein Mehrfachberührungsdisplay-Schnittstellensystem 100 gemäß der vorliegenden Offenbarung, das eine Berührungsquelle 102 enthält, die kommunikativ mit einer Berührungssenke 104 gekoppelt ist. Ein beispielhaftes Format, in dem Berührungsdaten zwischen der Berührungssenke 104 und der Berührungsquelle 102 übertragen werden können, und verschiedene Mechanismen, mit denen die Übertragung solcher Daten bewerkstelligt werden kann, werden unten in größerer Detailliertheit beschrieben.
  • In verschiedenen Ausführungsformen kann die Berührungsquelle 102 dafür konfiguriert sein, den DP 1.2-Standard zu implementieren, und kann einen Mikroprozessor enthalten, wie zum Beispiel eine Grafikverarbeitungseinheit (GPU), einen digitalen Signalprozessor (DSP) oder dergleichen, der dafür konfiguriert ist, Schnittstellendaten, wie zum Beispiel Berührungsdaten, unter Verwendung eines Analysemoduls 106 und eines Interpretiermoduls 108 zu analysieren und zu interpretieren. Die Berührungsquelle 102 kann außerdem eine Schnittstellenlogik 109 zum Implementieren verschiedener im vorliegenden Text zu beschreibender Schemas oder Prozesse enthalten. Zum Beispiel kann die Schnittstellenlogik 109 Logik enthalten, die dafür konfiguriert ist, Datenübertragungsprozesse oder Teile davon zu implementieren, die unten ausführlicher zu beschreiben sind.
  • In verschiedenen Ausführungsformen kann die Berührungssenke 104 ein (nicht gezeigtes) mehrfachberührungsfähiges Display enthalten, das dafür konfiguriert ist, Schnittstellendaten in Form von Mehrfachberührungsdaten zu erfassen und die Berührungsdaten unter Verwendung von Berührungssensoren 110 bzw. eines Formatiermoduls 112 zu formatieren. In verschiedenen Implementierungen können die Berührungssensoren 110 ein beliebiger Typ von bekannten Berührungssensoren, wie zum Beispiel kapazitive Berührungssensoren, sein, die es der Berührungssenke 104 ermöglichen, Mehrfachberührungsdaten zu erfassen. Die Berührungssenke 104 kann außerdem eine Schnittstellenlogik 123 zum Implementieren verschiedener im vorliegenden Text zu beschreibender Schemas oder Prozesse enthalten. Zum Beispiel kann die Schnittstellenlogik 123 Logik enthalten, die dafür konfiguriert ist, Datenübertragungsprozesse oder Teile davon zu implementieren, die unten noch ausführlicher zu beschreiben sind.
  • In verschiedenen Implementierungen kann die Berührungssenke 104 in ein mobiles Kommunikationsgerät (beispielsweise ein Smartphone), einen Mobilcomputer, einen Tablet-Computer oder dergleichen integriert sein. In verschiedenen Ausführungsformen können die Komponenten des Systems 100 innerhalb eines einzelnen Gerätes implementiert werden, wie zum Beispiel einem mobilen Kommunikationsgerät, einem Tablet-Computer oder dergleichen, wobei die Berührungssenke 104 einem oder mehreren Logik- und/oder Hardware-Modulen entsprechen kann, die mit einem Touchscreen-Display verknüpft sind, und die Berührungsquelle 102 einen Mikroprozessor enthalten kann, der kommunikativ mit dem einen oder den mehreren Logik- und/oder Hardware-Modulen der Berührungssenke 104 gekoppelt ist.
  • Wie in 1 gezeigt, enthält das System 100 einen DP-Link 114, der die Berührungsquelle 102 kommunikativ mit der Berührungssenke 104 koppelt und einen Haupt-Link 116, einen Hilfs- oder Schnellen-Hilfs-Kanal (F)AUX 118 und eine Hot-Plug-Detektions (HPD)-Signalleitung 120 enthält. In verschiedenen Implementierungen kann der Haupt-Link 116 ein unidirektionaler, bandbreitenstarker und latenzarmer Kanal sein, der für den Transport von isochronen Streams, wie zum Beispiel unkomprimierten Video- und/oder Audiodaten, von der Berührungsquelle 102 zur Berührungssenke 104 verwendet wird. In verschiedenen Implementierungen kann der (F)AUX-Kanal 118 ein bidirektionaler Halbduplex-Kanal sein, der für Linkmanagement und Gerätesteuerung unter Verwendung von Schemas gemäß der vorliegenden Offenbarung verwendet wird. Zum Beispiel können in verschiedenen Implementierungen die Berührungsquelle 102 und die Berührungssenke 104 als Master bzw. Slave bezeichnet werden. Im Allgemeinen werden Transaktionen über den (F)AUX-Kanal 118 durch die Berührungsquelle 102 initiiert. Jedoch kann die Berührungssenke 104 in verschiedenen Implementierungen die Initiierung von (F)AUX-Kanal-Transaktionen beispielsweise durch Senden eines Interrupt (IRQ) an die Berührungsquelle 102 über die Signalleitung 120 in Gang setzen.
  • In verschiedenen Implementierungen können Mehrfachberührungsdisplay-Schnittstellensysteme und/oder -schemas gemäß der vorliegenden Offenbarung ein oder mehrere dazwischenliegende Geräte und/oder Systeme enthalten, die eine Berührungssenke kommunikativ mit einer Berührungsquelle koppeln. Zum Beispiel veranschaulicht 2 ein Mehrfachberührungsdisplay-Schnittstellensystem 200 gemäß der vorliegenden Offenbarung, das eine dazwischenliegende Abzweigvorrichtung 202 enthält, welche die Berührungsquelle 104 kommunikativ mit der Berührungssenke 102 koppelt. In verschiedenen Implementierungen kann die Abzweigvorrichtung 202 eine Vorrichtung sein, die gemäß dem DP-1.2-Standard konfiguriert ist, und kann Nebenbandmeldungen implementieren, wie weiter unten noch ausführlich beschrieben wird. Des Weiteren kann eine Abzweigvorrichtung in verschiedenen Implementierungen stromabwärtige Signale (wie zum Beispiel Interrupts, die auf der Signalleitung 120 auftreten) innerhalb bestimmter Zeitgrenzen auf der Grundlage der Rate, mit der die Berührungssenke 102 Berührungsdaten generiert, verarbeiten. Zum Beispiel muss die Abzweigvorrichtung 202 möglicherweise Interrupts innerhalb von 20 ms verarbeiten, um eine Mindest-Berührungsdaten-Abtastrate von 50 Hz zu unterstützen.
  • Kehren wir zur Besprechung von 1 zurück. In verschiedenen Implementierungen, und wie weiter unten noch ausführlicher beschrieben wird, kann die Berührungsquelle 102 Schnittstellendaten erhalten, wie zum Beispiel Berührungsdaten von der Berührungssenke 104 über den (F)AUX-Kanal 118, wo die Berührungsdaten in einem Bedienerschnittstellenvorrichtungs (HID)-Format können, das durch einen HID-Berichtsdeskriptor definiert wird (siehe „Device Class Definition for Human Interface Devices (HID)“, Firmware-Spezifikation, Version 1.11, veröffentlicht am 27. Juni 2001; im Folgenden die „HID 1.11-Spezifikation“). Des Weiteren kann die Berührungssenke 104 gemäß der vorliegenden Offenbarung berührungsbezogenen Formatanforderungen entsprechen, wie in den Mehrfachberührungserweiterungen für Digitalisierer dargelegt ist (siehe „Addition of usages related to multi-touch digitizers“, Request #HUTRR34, veröffentlicht am 27. Februar 2009; im Folgenden das ,,HUTRR34"-Dokument), welche die HID-Nutzungstabellen modifizieren (siehe HID Usage Tables, Version 1.12, veröffentlicht am 28. Oktober 2004). Außerdem kann die Berührungssenke 104 eine Berührungsfähigkeit als eine Digitalisierervorrichtung gemäß der HID 1.11-Spezifikation aufweisen. Gemäß der vorliegenden Offenbarung können HID-Informationen, die HID-Berichtsdeskriptoren enthalten, zwischen der Berührungssenke 104 und der Berührungsquelle 102 über den (F)AUX-Kanal 118 transportiert werden.
  • In verschiedenen Implementierungen, und wie weiter unten noch ausführlicher erläutert wird, kann die Berührungssenke 104 Register 122 enthalten, welche die Berührungssenke 104 verwenden können, um vorübergehend Daten, wie zum Beispiel Konfigurationsdaten, Berührungsdaten und dergleichen, zu speichern, auf die die Berührungsquelle 102 über den (F)AUX-Kanal 118 zugreifen kann. In verschiedenen Implementierungen können die Register 122 DP-Konfigurationsdaten (DPCD)-Register enthalten, und die Berührungsquelle 102 kann für verschiedene Zwecke Lese- und Schreibzugriff auf diese DPCD-Register haben, wie weiter unten noch ausführlicher erläutert wird. Des Weiteren kann in verschiedenen Implementierungen, wie weiter unten noch ausführlicher erläutert wird, ein Datenmodul 124 (das Sensoren 110 und ein Formatiermodul 112 enthält) in Reaktion auf ein oder mehrere DPCD-Register von Registern 122 konfiguriert sein.
  • In verschiedenen Implementierungen kann die Berührungssenke 104 eine Abtastrate von mindestens 50 Hz für Berührungsdaten unterstützen. In verschiedenen Implementierungen kann die Berührungssenke 104 Berührungsdaten-bezogene Interrupts zu der Berührungsquelle 102 transportieren, und die Berührungsquelle 102 kann diese Interrupts mit einer Rate verarbeiten, die auf die Abtastrate der Berührungssenke 104 abgestimmt ist. Zum Beispiel kann die Berührungssenke 104 IRQ_HPD-Interrupts über die Signalleitung 120 zu der Berührungsquelle 102 transportieren. Während der DP-1.2-Standard verlangt, dass Quellengeräte einen IRQ_HPD innerhalb von 100 ms verarbeiten (was einer Abtastrate von 10 Hz entspricht), kann die Berührungsquelle 102 in verschiedenen Implementierungen gemäß der vorliegenden Offenbarung IRQ_HPDs innerhalb von 20 ms verarbeiten, um das Verarbeiten von Berührungsdaten zu unterstützen, die mit einer Rate von 50 Hz durch die Berührungssenke 104 abgetastet wurden.
  • In verschiedenen Implementierungen braucht das System 100 keine separaten Gerätedeskriptoren zu unterstützen, die Berührungsfähigkeit spezifizieren. In anderen Implementierungen hingegen kann die Berührungssenke 104 Erweiterte Display-Identifizierungsdaten (EDID) gemäß dem DP-1.2-Standard ausgeben, um anzuzeigen, dass die Berührungssenke 104 Berührungsfähigkeit besitzt. Außerdem kann die Berührungssenke 104 Anbieter-Informationen für Plug-and-Play (PnP)-Zwecke enthalten. Solche EDID und/oder Anbieter-Informationen können in einem (nicht gezeigten) Speicher gespeichert werden, der in die Berührungssenke 104 integriert ist. Außerdem kann die Berührungsquelle 102 in verschiedenen Implementierungen System-Software und/oder -Firmware enthalten, die HID-Boot-Modus-Betrieb und HID-Deskriptoranalyse unterstützt, wie im vorliegenden Text beschrieben.
  • Fähigkeitenfeststellung
  • In verschiedenen Implementierungen kann die Berührungssenke 104 ihre Berührungsfähigkeit durch ein TOUCH_SUPPORTED-Bit in einem TOUCH_CAPABILITY-DPCD-Registerabschnitt von Registern 122 bekannt geben. Die Berührungsquelle 102 kann dann das TOUCH_SUPPORTED-Bit als Teil einer durch Senkenfeststellung ausgelösten Senkenfähigkeitenfeststellung lesen.
  • In verschiedenen Implementierungen kann die Berührungssenke 104 einen HID-Deskriptor und einen HID-Berichtsdeskriptor ausgeben, der gemäß Beschreibung in den HID-Spezifikationen formatiert ist. Diese zwei Deskriptoren (und optional andere HID-Klassendeskriptoren, die gemäß HID-1.11-Spezifikation zulässig sind) können durch die Berührungsquelle 102 aus jeweiligen HID-CLASS_DESCRIPTORS-DPCD-Registerabschnitten von Registern 122 nach Feststellung der Berührungsfähigkeit in der Berührungssenke 104 erhalten werden. In verschiedenen Implementierungen können Klassendeskriptoren, die in dem HID-Deskriptor angegeben sind, dem HID-Deskriptor in den HID_DESCRIPTORS-DPCD-Registern in der Reihenfolge, in der sie in dem HID-Deskriptor angegeben wurden, unmittelbar folgen.
  • Berührungssenkenkonfiguration
  • Gemäß der vorliegenden Offenbarung kann die Berührungsquelle 102 die Berührungssenke 104 auf verschiedene Weise konfigurieren. Zum Beispiel listet Tabelle 1 verschiedene beispielhafte Befehle auf, welche die Berührungsquelle 102 an die Berührungssenke 104 ausgeben kann: Tabelle 1: Beispielhafte Befehle
    Befehl Beschreibung
    ENABLE_TOUCH FEATURE Aktivieren oder Deaktivieren des Berührungsmerkmals in einer Berührungssenke
    DATA_ACCESS_METHOD Konfigurieren der Berührungssenke für Interrupt-Generierung
    RESET Zurücksetzung der Berührungsfunktionalität (Hardware/ Firmware) in einer Berührungssenke
    GET FEATURE REPORT Abrufen des Merkmalberichts für die spezifizierte Berichts-ID
    SET FEATURE REPORT Generieren eines Merkmalsberichts an eine Berührungssenke
    SET_OUTPUT REPORT Generieren eines Ausgabeberichts mit eine Berührungssenke
    SET_IDLE Konfigurieren der Rate, mit der Eingabeberichte in einer Berührungssenke generiert werden
    SET_LOW_POWER Versetzen des Berührungsmerkmals in der Senke in einen Stromsparmodus
  • In verschiedenen Implementierungen kann die Berührungssenke 104 Erfolg oder Misserfolg in Reaktion auf die Befehle von Tabelle 1 über standardmäßige DPCD AUX-Transaktionsmechanismen gemäß Definition im DP-1.2-Standard bestätigen.
  • In verschiedenen Implementierungen kann die Berührungsquelle 102 Berührungsmerkmale der Berührungssenke 104 durch Aktivieren oder Deaktivieren des Datenmoduls 124 aktivieren oder deaktivieren. Zum Beispiel, wie in Tabelle 1 dargestellt, kann die Berührungsquelle 102 das Datenmodul 124 (und die zugehörigen Datenberichte) in der Berührungssenke 104 durch Setzen eines ENABLE_TOUCH_FEATURE-Bits in einem CONFIGURE TOUCH-DPCD-Register deaktivieren. Umgekehrt kann die Berührungsquelle 102 das Datenmodul 124 durch Zurücksetzen dieses Bits aktivieren. Zum Beispiel kann die Berührungsquelle 102 das Datenmodul 124 durch Schreiben einer Null in das ENABLE_TOUCH FEATURE-Bit deaktivieren und kann das Datenmodul 124 durch Schreiben einer Eins in dieses Bit aktivieren.
  • In verschiedenen Implementierungen kann die Berührungsquelle 102 ein Verfahren zum Zugreifen auf Berührungsdaten der Berührungssenke 104 konfigurieren. In verschiedenen Implementierungen kann ein Datenzugriffsverfahren als ein Interrupt-gestütztes Datenzugriffsverfahren oder ein Poll-gestütztes Datenzugriffsverfahren konfiguriert sein. Zum Beispiel kann die Berührungsquelle 102 ein Poll-gestütztes Datenzugriffsverfahren durch Setzen eines DATA_ACCESS_METHOD-Bits in einem CONFIGURE TOUCH-DPCD-Register auf Polled konfigurieren, so dass eine Berührungs-bezogene IRQ HPD-Interrupt-Generierung durch die Berührungssenke 104 deaktiviert ist. Umgekehrt kann die Berührungsquelle 102 ein Interrupt-gestütztes Datenzugriffsverfahren durch Setzen des DATA_ACCESS_METHOD-Bits auf Interrupt aktivieren, so dass eine IRQ HPD-Interrupt-Generierung durch die Berührungssenke 104 aktiviert ist.
  • Wir setzen die Besprechung von Tabelle 1 fort. Die Berührungsquelle 102 kann die Berührungsfunktionalität in der Berührungssenke 104 durch Setzen eines RESET-Bits in einem CONFIGURE_TOUCH-DPCD-Register zurücksetzen. Die Berührungssenke 104 kann dann das Datenmodul 124 in Reaktion auf diesen Befehl in den zurückgesetzten Zustand bringen. Insbesondere kann in verschiedenen Implementierungen das Setzen eines zurückgesetzten Zustands das Datenmodul 124 deaktivieren, kann eine Eingabeberichts-Warteschlange (was später noch beschrieben wird) leeren, und kann ein TOUCH_STATUS-Register in den Registern 122 zurücksetzen, um anzuzeigen, dass keine Berichtsdaten verfügbar sind.
  • In verschiedenen Implementierungen kann die Berührungsquelle 102 eine Leseaufforderung für einen Merkmalsbericht ausgeben, indem sie die interessierende Berichts-ID in das TOUCH_PARAMETERS[0]-DPCD-Register schreibt und das GET FEATURE_REPORT-Bit im CONFIGURE_TOUCH-DPCD-Register auf eins setzt. In verschiedenen Implementierungen kann die Berührungssenke 104 die Verfügbarkeit eines zu lesenden Merkmalsberichts in der REPORT_DATA-DPCD-Region bei Versatz 0 anzeigen.
  • In verschiedenen Implementierungen, wie weiter unten noch ausführlicher erläutert wird, kann die Berührungsquelle 102 einen Merkmalsbericht an die Berührungssenke 104 ausgeben. Zum Beispiel kann die Berührungsquelle 102 dies tun, indem sie einen Merkmalsbericht in einer REPORT_DATA-DPCD-Region von Registern 122 bei einem bestimmten Versatz schreibt und indem sie ein SET_FEATURE REPORT-Bit in einem CONFIGURE_TOUCH-DPCD-Register von Registern 122 setzt.
  • Außerdem kann die Berührungsquelle 102 in verschiedenen Implementierungen, wie weiter unten noch ausführlicher erläutert wird, einen Ausgabebericht an die Berührungssenke 104 ausgeben. Zum Beispiel kann die Berührungsquelle 102 dies tun, indem sie einen Ausgabebericht an eine OUTPUT_REPORT-DPCD-Region von Registern 122 bei einem bestimmten Versatz schreibt und indem sie ein SET_OUTPUT_REPORT-Bit in einem CONFIGURE_TOUCH-DPCD-Register von Registern 122 setzt.
  • Um die Besprechung von Tabelle 1 abzuschließen, merken wir an, dass die Berührungsquelle 102 in verschiedenen Implementierungen eine Berichtsrate für durch die Berührungssenke 104 generierte Eingabeberichte einstellen kann. Zum Beispiel kann die Berührungsquelle 102 dies tun, indem sie die Parameter für diesen Befehl in eine IDLE_RATES-DPCD-Region von Registern 122 schreibt und indem sie ein SET_IDLE_RATE-Bit in einem CONFIGURE_TOUCH-DPCD-Register von Registern 122 setzt. In verschiedenen Implementierungen kann die Leerlaufrate für jede Berichts-ID in Millisekunden gemäß den folgenden Regeln spezifiziert werden: (1) ein Wert von Null sagt aus, dass die Dauer unendlich ist, wie in der HID-Spezifikation definiert (für diesen Wert werden keine Interrupts durch die Berührungssenke 104 generiert, selbst wenn die Berührungsquelle 102 das DATA_ACCESS_METHOD auf Interrupt programmiert); (2) Werte von eins bis vier werden nicht gestützt; (3) ein kleinster gültiger Wert der Leerlaufrate ist 5 Millisekunden, was eine maximale Abtastrate von 200 Hz impliziert; und (4) angesichts einer Mindestabtastrate von 50 Hz beträgt die maximale Abtastrate 20 Millisekunden.
  • Gemäß der vorliegenden Offenbarung kann die Berührungsquelle 102 das Datenmodul 124 der Berührungssenke 104 in einen Schlummerzustand (Stromsparmodus) versetzen. Zum Beispiel kann die Berührungsquelle 102 dies tun, indem sie ein SET_LOW_POWER-Bit in dem CONFIGURE_TOUCH-DPCD-Register setzt. In verschiedenen Implementierungen kann das Datenmodul 124 in einem EIN-Zustand sein, wenn SET_LOW_POWER einen Wert von Null hat. In verschiedenen Implementierungen braucht das SET_LOW_POWER-Bit nur dann gültig zu sein, wenn die Berührungssenke 104 in einem AKTIVEN Zustand ist (wie zum Beispiel ZUSTAND 1 in 5-2 des DP-1.2-Standard).
  • Registerstruktur und Zugangsregeln
  • Gemäß der vorliegenden Offenbarung können HID_CLASS_DESCRIPTORS-DPCD-Registerabschnitte von Registern 122 eine Gruppierung von HID-Klassendeskriptoren enthalten, wobei der erste Deskriptor ein HID-Deskriptor sein kann. In verschiedenen Implementierungen kann die Struktur eines HID-Deskriptors dem Abschnitt 6.2.1 der HID-1.11-Spezifikation entsprechen. Der HID-Deskriptor kann die Revision der HID-Spezifikation, die sie unterstützt, und andere für das HID-Gerät spezifische Informationen identifizieren. Außerdem kann das bNumDescriptors-Feld des HID-Deskriptors die Anzahl von zusätzlichen HID-Klassendeskriptoren definieren, die verfügbar sind. Dem bNumDescriptors-Feld kann eine Anordnung aus drei Byte-Einträgen folgen, wobei das erste Byte eines Eintrags (bDescriptorType) den Typ des HID-Klassendeskriptors definiert und die übrigen zwei Bytes eines Eintrags (wDescriptorLength) die Größe des HID-Klassendeskriptors definieren. In verschiedenen Implementierungen kann die Zuweisung von HID-Klassentypwerten dem Abschnitt 7.1 der HID-1.11-Spezifikation entsprechen.
  • In verschiedenen Implementierungen, wie in 3 gezeigt, können HID-Klassendeskriptoren auf Byte-Grenzen innerhalb einer HID_CLASS_DESCRIPTORS-DPCD-Regionsstruktur 300 von Registern 122 gepackt sein. Zum Beispiel kann ein HID-Deskriptorfeld 302 bei Versatz 0 beginnen, und ein erstes Byte (bLength) des HID-Deskriptors 302 kann die Größe des HID-Deskriptors in Bytes identifizieren. Ein oder mehrere HID-Klassendeskriptoren können dem HID-Deskriptor zugeordnet sein. Zum Beispiel sind zwei beispielhafte HID-Klassendeskriptoren 304 und 306 in 3 gezeigt. In verschiedenen Implementierungen kann der HID-Deskriptor 302 eine Größe, eine Anzahl und/oder einen Typ von HID-Klassendeskriptoren identifizieren, die in der Struktur 300 erscheinen. In verschiedenen Implementierungen kann der HID-Klassendeskriptor 304 bei Versatz HID-Descriptor:bLength beginnen, der HID-Klassendeskriptor 306 kann bei Versatz HID-Descriptor:bLength + wDescritorLength[0] beginnen, ein (nicht gezeigter) dritter HID-Klassendeskriptor kann bei HID-Descriptor:bLength + wDescritorLength[0] + wDescritorLength[1] beginnen, und so weiter. In verschiedenen Implementierungen braucht ein HID-Gerät nur einen einzigen zusätzlichen HID-Klassendeskriptor, einen Berichtsdeskriptor, zu definieren.
  • Berichte
  • Gemäß der vorliegenden Offenbarung können Eingabeberichte, Ausgabeberichte und Merkmalsberichte, wie weiter unten noch ausführlicher beschrieben wird, bereitgestellt werden. In verschiedenen Implementierungen kann die Berührungsquelle 102 Ausgabeberichte und Merkmalsberichte erzeugen, und die Berührungssenke 194 kann Eingabeberichte und Merkmalsberichte erzeugen. In verschiedenen Implementierungen kann ein durch die Berührungssenke 104 generierter Eingabebericht Schnittstellendaten enthalten, wie zum Beispiel Berührungsdaten, die durch das Datenmodul 124 generiert wurden. In verschiedenen Implementierungen kann ein durch die Berührungsquelle 102 generierter Ausgabebericht Ausgabedaten enthalten, wie zum Beispiel einen oder mehrere Benutzerschnittstellenbefehle generierte durch die Berührungsquelle 102 in Reaktion auf Berührungsdaten versehen durch einen Eingabebericht. In verschiedenen Implementierungen kann ein Merkmalsbericht den Modus, in dem ein Digitalisierer (beispielsweise die Berührungssenke 104) arbeitet, und eine maximale Anzahl von gleichzeitigen Kontakten/Berührungen, die durch die Schnittstelle unterstützt werden, identifizieren. Zum Beispiel zeigt 13, die weiter unten noch ausführlicher beschrieben wird, eine beispielhafte Struktur eines Merkmalsberichts in Kombination mit einem Eingabebericht.
  • In verschiedenen Implementierungen kann es für die Berührungssenke 104 obligatorisch sein, Eingabeberichte zu unterstützen, und die Berührungssenke 102 braucht Merkmalsberichte nur dann zu unterstützen, wenn sie in einem entsprechenden HID-Deskriptor angegeben sind. In verschiedenen Implementierungen kann es für die Berührungsquelle 102 obligatorisch sein, in der Lage zu sein, Eingabeberichte und Merkmalsberichte zu analysieren, die von der Berührungssenke 104 kommend empfangen werden, und in Reaktion darauf Ausgabeberichte und Merkmalsberichte zu erzeugen. In verschiedenen Implementierungen können eine oder mehrere Software-Anwendungen einer Berührungsquelle 102 HID-Nutzungen unterstützen, wie im HUTRR34-Dokument dargestellt.
  • Durch die Berührungssenke generierte Berichte
  • Gemäß der vorliegenden Offenbarung kann die Berührungssenke 104 einen Eingabebericht und (zutreffendenfalls) einen Merkmalsbericht speichern, auf die die Berührungsquelle 102 zugreifen kann. Zum Beispiel, wie in 4 gezeigt, kann die Berührungssenke 104 dies tun, indem sie einen Eingabebericht 402 und einen entsprechenden Merkmalsbericht 404 in einer REPORT_DATA-DPCD-Regionsstruktur 400 von Registern 122 speichert. In verschiedenen Implementierungen kann, wenn der Merkmalsbericht 404 in einem entsprechenden Berichtsdeskriptor angegeben ist, jede Instanz seiner Berichts-ID eine feste Größe haben. In verschiedenen Implementierungen kann die Größe eines Merkmalsberichtsfeldes der REPORT_DATA-DPCD-Region 400 durch den entsprechenden HID-Deskriptor definiert sein und kann die Größe der größten Berichts-ID für den Merkmalsbericht 404 haben. Wenn der Berichtsdeskriptor keinen Merkmalsbericht enthält, dann braucht der Merkmalsbericht 404 nicht in der Struktur 400 enthalten zu sein. In verschiedenen Implementierungen kann die Größe des Eingabeberichts 402 auf der Grundlage einer Anzahl von Berührungskontakten variieren, die durch das Datenmodul 124 erfasst werden. Der HID-Deskriptor kann die Größe des Eingabeberichts 402 in einem Eingabeberichtsgrößenbereich 406 der Struktur 400 identifizieren. Zum Beispiel kann die Eingabeberichtsgröße 406 die Anzahl gültiger Bytes im Eingabebericht 402 identifizieren. In verschiedenen Implementierungen kann das Eingabeberichtsgrößenfeld 406 eine Größe von zwei Bytes haben. Des Weiteren kann der HID-Deskriptor eine maximale Größe des Eingabeberichts 402 identifizieren.
  • Durch die Berührungsquelle generierte Berichte
  • Gemäß der vorliegenden Offenbarung kann die Berührungsquelle 102 (zutreffendenfalls) einen Ausgabebericht in den Registern 122 der Berührungssenke 104 speichern. Zum Beispiel kann die Berührungsquelle 102 einen Ausgabebericht 502 in einer OUTPUT_REPORT-DPCD-Region speichern, die wie in der Struktur 500 von 5 gezeigt strukturiert sein kann. In verschiedenen Implementierungen kann ein Berichtsdeskriptor die maximale Größe der Ausgabeberichts-Teilregion definieren. In verschiedenen Implementierungen kann die Größe des Ausgabeberichts 502 auf der Grundlage des Inhalts, den eine Berührungsquelle bereitstellt, variieren, und ein Ausgabeberichtsgrößenfeld 504 kann die Größe des Ausgabeberichts 502 spezifizieren. In verschiedenen Implementierungen kann das Ausgabeberichtsgrößenfeld 504 eine Größe von zwei Bytes haben. Des Weiteren kann der HID-Deskriptor eine maximale Größe des Ausgabeberichts 502 identifizieren.
  • In verschiedenen Implementierungen können die Berührungsquelle 102 und die Berührungssenke 104 die Merkmalsberichtsregister in der REPORT_DATA-DPCD-Region 400 gemeinsam nutzen. Bei solchen Implementierungen können Berührungsquellen und Berührungssenken den Zugriff unter Verwendung eines FEATURE DATA_AVAILABLE-Bits in dem TOUCH_STATUS-DPCD-Register synchronisieren, wie weiter unten noch ausführlich beschrieben wird.
  • In verschiedenen Implementierungen kann, wenn ein Berichtsdeskriptor Berichts-IDs zum Definieren mehrerer Berichte eines bestimmten Typs verwendet (beispielsweise Merkmal, Eingang oder Ausgang), die Größe der Berichts-Teilregion die Einheit der Größe aller Berichte sein, die vom selben Typ definiert sind. Gemäß der vorliegenden Offenbarung kann Software, die mit der Berührungsquelle 102 verknüpft ist, die maximale Größe jedes Berichts durch Analysieren des Berichtsdeskriptors und die Anzahl gültiger Bytes in dem aktuellen Bericht durch Untersuchen des Größenfeldes, das der Berichts-Teilregion vorausgeht, bestimmen.
  • Datenübertragung
  • Gemäß der vorliegenden Offenbarung kann die Berührungssenke 104 Berührungsdaten zu der Berührungsquelle 102 übertragen. Zum Beispiel kann die Berührungsquelle 102 Berührungsdaten von der Berührungssenke 104 unter Verwendung des (F)AUX-Kanals 118 erhalten. Gemäß der vorliegenden Offenbarung kann die Berührungsquelle 102 verschiedene Verfahren zum Zugreifen auf HID-Berichte, wie zum Beispiel Eingabeberichte, verwenden, die Berührungsdaten enthalten, die durch die Berührungssenke 104 generiert wurden. Zum Beispiel, wie oben besprochen, kann die Berührungsquelle 102 die Berührungssenke 104 dafür konfigurieren, ein Interrupt-gestütztes Datenzugriffsverfahren oder ein Poll-gestütztes Datenzugriffsverfahren für einen Berührungsdatenzugriff durch die Berührungsquelle 102 zu aktivieren.
  • 6 veranschaulicht ein Flussdiagramm eines beispielhaften Prozesses 600 zum Implementieren eines Interrupt-gestützten Datenzugriffs durch eine Berührungsquelle gemäß den verschiedenen Implementierungen der vorliegenden Offenbarung. 7 veranschaulicht ein beispielhaftes Sequenzdiagramm 700 entsprechend dem Prozess 600. In verschiedenen Implementierungen kann der Prozess 600 dafür verwendet werden, auf Schnittstellendaten, wie zum Beispiel Berührungsdaten, zuzugreifen, die in DPCD-Registern einer Berührungssenke gespeichert sind. Zum Beispiel kann die Berührungsquelle 102 den Prozess 600 implementieren, um einen Eingabebericht und/oder einen Merkmalsbericht aus Registern 122 der Berührungssenke 104 zu lesen. Der Prozess 600 kann eine oder mehrere Operationen, Funktionen oder Aktionen enthalten, wie durch einen oder mehrere der Blöcke 602, 604, 606, 608, 610 und 612 von 6 veranschaulicht ist. Der Prozess 600 wird im vorliegenden Text als nicht-einschränkendes Beispiel anhand des beispielhaften Systems 100 von 1 beschrieben.
  • Der Prozess 600 kann bei Block 602 beginnen, wo eine Berührungsquelle ein Interrupt-gestütztes Zugriffsverfahren konfigurieren kann. Zum Beispiel kann die Berührungsquelle 102 die Berührungssenke 104 für einen Interrupt-gestützten Datenzugriff konfigurieren, indem sie der Berührungssenke 104 befiehlt, Interrupts unter Verwendung des DATA_ACCESS_METHOD-Bits in dem CONFIGURE_TOUCH-DPCD-Register zu erzeugen. Bei Block 604 kann die Berührungsquelle ein Datenmodul in der Berührungssenke aktivieren. Zum Beispiel kann die Berührungsquelle 102 das Datenmodul 124 durch Setzen des ENABLE TOUCH-Bits in dem CONFIGURE_TOUCH-DPCD-Register aktivieren. In verschiedenen Implementierungen können die Blöcke 602 und 604 zu einer einzelnen Initialisierungsoperation 605 kombiniert werden, die eine Berührungssenke dafür konfiguriert, Berührungsdaten zu erzeugen. Zum Beispiel kann die Berührungsquelle 102 eine einzelne Schreiboperation über den (F)AUX-Kanal 118 ausführen, um die Blöcke 602 und 604 als Operation 605 zu implementieren. In verschiedenen Implementierungen braucht eine Berührungsquelle keine Initialisierungsoperation 605 während jeder Instanz des Lesens eines Berichts über den Prozess 600 auszuführen. Stattdessen braucht eine Berührungsquelle bei solchen Implementierungen die Initialisierungsoperation nur in Reaktion auf eine Änderung der Berührungssenkenkonfiguration auszuführen (beispielsweise eine Änderung der Konfiguration des Systems 100).
  • Bei Block 606 kann die Berührungsquelle einen Bericht anfordern. Zum Beispiel kann die Berührungsquelle 102 einen Merkmalsbericht für eine bestimmte Berichts-ID anfordern, indem sie TOUCH_PARAMETERS[0] auf die gewünschte Berichts-ID setzt und das GET FEATURE REPORT-Bit in dem TOUCH_COMMAND-DPCD-Register setzt.
  • In Reaktion auf eine Berichtsanforderung bei Block 606 kann die Berührungssenke Daten bereitstellen und einen entsprechenden Interrupt setzen (Block 608). Zum Beispiel kann die Berührungssenke 104 bei jeder Instanz der Verfügbarkeit von Mehrfachberührungsdaten, wenn das INPUT REPORT_AVAILABLE-Bit in dem TOUCH_STATUS-DPCD-Register und das TOUCH_INTERRUPT-Bit gelöscht sind, den Eingabeberichtsabschnitt der REPORT_DATA-DPCD-Region mit Mehrfachberührungsdaten füllen. Die Berührungssenke 104 kann dann einen Interrupt setzen, um die Verfügbarkeit des Eingabeberichts zu signalisieren, der die Mehrfachberührungsdaten enthält. Zum Beispiel kann die Berührungssenke 104 einen Grund für den Interrupt einstellen, indem sie das INPUT_REPORT_AVAILABLE-Bit und das TOUCH_INTERRUPT-Bit im DEVICE_SERVICE_IRQ VECTOR setzt, und kann dann IRQ HPD aufdrücken, um den Interrupt an die Berührungsquelle 102 zu übermitteln.
  • Des Weiteren kann in verschiedenen Implementierungen, nachdem detektiert wurde, dass das GET_FEATURE_REPORT-Bit gesetzt wurde, die Berührungssenke bei Block 608 die Berichts-ID von TOUCH_PARAMETERS [0] lesen und kann, wenn das FEATURE_REPORT AVAILABLE-Bit in dem TOUCH_STATUS-DPCD-Register und das TOUCH_INTERRUPT-Bit gelöscht sind, den Merkmalsbericht für die gewünschte Berichts-ID bei REPORT_DATA[0] füllen, den Grund für den Interrupt durch Setzen des FEATURE REPORT_AVAILABLE-Bits und des TOUCH INTERRUPT-Bits in DEVICE_SERVICE_IRQ VECTOR setzen und IRQ_HPD aufdrücken.
  • Der Prozess 600 kann dann bei Block 610 fortgesetzt werden, wo die Berührungsquelle den Interrupt-Grund lesen kann. Der Prozess 600 kann dann bei Block 612 enden, wo die Berührungsquelle die Daten lesen und den Interrupt-Grund löschen kann. Zum Beispiel kann die Berührungsquelle 102 beim Detektieren von IRQ_HPD den DEVICE_SERVICE_IRQ VECTOR lesen, um zu überprüfen, ob das TOUCH_INTERRUPT-Bit gesetzt wurde. Wenn das TOUCH INTERRUPT-Bit gesetzt wurde, so kann die Berührungsquelle 102 das TOUCH_STATUS-DPCD-Register lesen, um zu bestimmen, ob entweder das INPUT REPORT__AVAILABLE-Bit oder das OUTPUT REPORT_AVAILABLE-Bit gesetzt ist, kann die Daten lesen (beispielsweise Mehrfachberührungsdaten in dem Eingabebericht), die dem Verfügbarkeitshinweis entsprechen (beispielsweise können in einigen Fällen sowohl Eingangs- als auch Merkmalsberichte verfügbar sein, und eine Berührungsquelle kann beide Berichte lesen), und kann den Interrupt-Grund löschen, indem sie das oder die Verfügbarkeits-Bits, die verarbeitet wurden, löscht und das TOUCH INTERRUPT-Bit löscht. In verschiedenen Implementierungen kann der Prozess 600 bei Block 610 anstatt bei Block 612 enden, wenn die Berührungsquelle 102 bestimmt, dass weder das INPUT REPORT_AVAILABLE- noch das OUTPUT REPORT_AVAILABLE-Bit gesetzt sind.
  • 8 veranschaulicht ein Flussdiagramm eines beispielhaften Prozesses 800 zum Implementieren eines Polling-Datenzugriffs durch eine Berührungsquelle gemäß verschiedenen Implementierungen der vorliegenden Offenbarung. 9 veranschaulicht ein beispielhaftes Sequenzdiagramm 900 entsprechend dem Prozess 800. In verschiedenen Implementierungen kann der Prozess 800 dafür verwendet werden, auf Daten zuzugreifen, die in DPCD-Registern einer Berührungssenke gespeichert sind. Zum Beispiel kann die Berührungsquelle 102 den Prozess 800 implementieren, um einen Eingabebericht und/oder einen Merkmalsbericht aus Registern 122 der Berührungssenke 104 zu lesen. Der Prozess 800 kann eine oder mehrere Operationen, Funktionen oder Aktionen enthalten, wie durch einen oder mehrere der Blöcke 802, 804, 806, 808, 810 und 812 von 8 veranschaulicht ist. Der Prozess 800 wird im vorliegenden Text in Form eines nicht-einschränkenden Beispiels mit Bezug auf das beispielhafte System 100 von 1 beschrieben.
  • Der Prozess 800 kann bei Block 802 beginnen, wo eine Berührungsquelle eine Berührungssenke für das Polling-Zugriffsverfahren konfigurieren kann. Zum Beispiel kann die Berührungsquelle 102 die Berührungssenke 104 für einen Polling-Zugriff durch Setzen des DATA ACCESS_METHOD-Bits auf Polled in dem CONFIGURE TOUCH-DPCD-Register konfigurieren. Bei Block 804 kann die Berührungsquelle ein Datenmodul in der Berührungssenke aktivieren. Zum Beispiel kann die Berührungsquelle 102 das Datenmodul 124 durch Setzen des ENABLE TOUCH-Bits in dem CONFIGURE TOUCH-DPCD-Register aktivieren. In verschiedenen Implementierungen können die Blöcke 802 und 804 zu einer einzelnen Initialisierungsoperation 805 kombiniert werden, die eine Berührungssenke dafür konfiguriert, Berührungsdaten zu erzeugen. Zum Beispiel kann die Berührungsquelle 102 eine einzelne Schreiboperation über den (F)AUX-Kanal 118 ausführen, um die Operation 805 zu implementieren. In verschiedenen Implementierungen braucht eine Berührungsquelle keine Initialisierungsoperation 805 bei jeder Instanz des Lesens eines Berichts über den Prozess 800 auszuführen; statt dessen braucht eine Berührungsquelle bei solchen Implementierungen die Operation 805 nur in Reaktion auf eine Änderung der aktuellen Berührungssenkenkonfiguration auszuführen (beispielsweise eine Änderung der Konfiguration des Systems 100).
  • Bei Block 806 kann die Berührungsquelle einen Bericht anfordern. Zum Beispiel kann die Berührungsquelle 102 einen Merkmalsbericht für eine bestimmte Berichts-ID anfordern, indem sie TOUCH _PARAMETERS[0] auf die gewünschte Berichts-ID setzt und das GET FEATURE REPORT-Bit in dem TOUCH_COMMAND-DPCD-Register setzt.
  • In Reaktion auf eine Berichtsanforderung bei Block 806 kann die Berührungssenke Daten bereitstellen und die Daten als verfügbar markieren (Block 808). Zum Beispiel kann die Berührungssenke 104 bei jeder Instanz der Verfügbarkeit von Berührungsdaten, wenn das INPUT_REPORT_AVAILABLE-Bit in dem TOUCH_STATUS-DPCD-Register und das TOUCH_INTERRUPT-Bit gelöscht sind, den Eingabeberichtsabschnitt der REPORT_DATA-DPCD-Region mit Berührungsdaten füllen. Die Berührungssenke 104 kann dann eine Berichtsverfügbarkeitsmarkierung setzen (beispielsweise das INPUT_REPORT_AVAILABLE-Bit für einen Eingabebericht und das FEATURE REPORT_AVAILABLE-Bit für einen Merkmalsbericht). In verschiedenen Implementierungen kann die Berührungssenke 104 beim Ausführen von Block 808 die entsprechenden Verfügbarkeits-Bits in TOUCH_STATUS setzen, brauchen aber - im Gegensatz zum Prozess 600 - nicht das TOUCH_INTERRUPT-Bit setzen und brauchen kein IRQ HPD-Signal aufzudrücken.
  • Bei Block 810 kann die Berührungsquelle die Berichtsverfügbarkeit abfragen. Zum Beispiel kann die Berührungsquelle 102 das Vorhandensein von Berichtsverfügbarkeitsmarkierungen abfragen (beispielsweise durch Überprüfen des INPUT REPORT_AVAILABLE-Bits für einen Eingabebericht und des FEATURE REPORT_AVAILABLE-Bits für einen Merkmalsbericht), bis eines oder beide gesetzt sind. Bei Block 812 kann der Prozess 800 enden, wenn eine Berührungsquelle die Daten liest und die entsprechende Markierung löscht. Sobald zum Beispiel die Berührungsquelle 102 bei Block 810 feststellt, dass eine oder beide Eingabeberichtsverfügbarkeitsmarkierungen gesetzt sind, kann Block 812 beinhalten, dass die Berührungsquelle den oder die entsprechenden Berichte aus dem REPORT_DATA-DPCD-Register liest und die eine oder die mehreren Berichtsverfügbarkeitsmarkierungen, die als gesetzt festgestellt wurden, löscht.
  • In verschiedenen Implementierungen kann eine Berührungsquelle Interrupt-gestützte und Polling-gestützte Datenzugriffsverfahren verschachteln, um die Latenz zu minimieren, die mit Interrupt-Benachrichtigungen verknüpft ist, indem die Berührungssenke abwechselnd so konfiguriert wird, wie es oben in den Beschreibungen der 6 und 8 dargelegt ist. Wenn ein verschachtelter Datenzugriff unternommen wird, so sollte eine Berührungsquelle sicherstellen, während des Wechsels zwischen den Zugriffsverfahren keine Daten zu verlieren.
  • 10 veranschaulicht ein Flussdiagramm eines beispielhaften Prozesses 1000 für die Übermittlung von Ausgabeberichten an eine Berührungssenke gemäß verschiedenen Implementierungen der vorliegenden Offenbarung. 11 veranschaulicht ein beispielhaftes Sequenzdiagramm 1100 entsprechend dem Prozess 1000. In verschiedenen Implementierungen kann der Prozess 1000 dafür verwendet werden, Ausgabedaten in das DPCD-Register einer Berührungssenke zu schreiben. Zum Beispiel kann die Berührungsquelle 102 den Prozess 1000 implementieren, um einen Ausgabebericht in die Register 122 der Berührungssenke 104 zu schreiben. Der Prozess 1000 kann eine oder mehrere Operationen, Funktionen oder Aktionen enthalten, wie durch einen oder mehrere der Blöcke 1002, 1004, 1006, 1008, 1010 und 1012 von 10 veranschaulicht ist. Der Prozess 1000 wird im vorliegenden Text mit Bezug auf das beispielhafte System 100 von 1 in Form eines nicht-einschränkenden Beispiels beschrieben.
  • Der Prozess 1000 kann bei Block 1002 beginnen, wo eine Berührungsquelle eine Berührungssenke für einen Datenzugriff konfigurieren kann. Zum Beispiel kann die Berührungsquelle 102 die Berührungssenke 104 für einen Interrupt-gestützten Datenzugriff konfigurieren, wie oben für Block 602 von 6 beschrieben, oder kann die Berührungssenke 104 für einen Polling-Datenzugriff konfigurieren, wie oben für Block 802 von 8 beschrieben. Bei Block 1004 kann die Berührungsquelle ein Datenmodul in der Berührungssenke aktivieren, wie oben mit Bezug auf Block 604 von 6 und Block 804 von 8 beschrieben. In verschiedenen Implementierungen können die Blöcke 1002 und 1004 zu einer einzelnen Initialisierungsoperation 1005 kombiniert werden, die eine Berührungssenke konfiguriert, um Berührungsdaten zu erzeugen. Zum Beispiel kann die Berührungsquelle 102 eine einzelne Schreiboperation über den (F)AUX-Kanal 118 ausführen, um eine Operation 1005 zu implementieren. In verschiedenen Implementierungen braucht eine Berührungsquelle keine Initialisierungsoperation 1005 bei jeder Instanz des Lesens eines Berichts über den Prozess 1000 auszuführen; statt dessen braucht eine Berührungsquelle bei solchen Implementierungen die Initialisierungsoperation nur in Reaktion auf eine Änderung der aktuellen Berührungssenkenkonfiguration auszuführen (beispielsweise eine Änderung der Konfiguration des Systems 100).
  • Bei Verfügbarkeit von Ausgabedaten, die an die Berührungssenke zu übermitteln sind, kann die Berührungsquelle bei Block 1006 auf eventuelle Ausgabeberichts-Leseanforderungen prüfen. Zum Beispiel kann die Berührungsquelle 102 feststellen, ob ein früherer Ausgabebericht vollendet wurde, indem geprüft wird, ob ein SET_OUTPUT REPORT_auf 0 gesetzt wurde, indem - im Fall eines Polling-Zugriffs - abgefragt wird, ob das OUTPUT_REPORT_READ-Bit in dem TOUCH_STATUS-DPCD-Register gesetzt wurde, oder - im Fall eines Interrupt-gestützten Zugriffs - ein IRQ_HPD mit gesetztem TOUCH INTERRUPT-Bit und gesetzten OUTPUT REPORT_READ-Bits ausgesendet wird. Sobald eine Berührungsquelle feststellt, dass ein eventueller früherer Ausgabebericht vollendet wurde, kann die Berührungsquelle einen nächsten Ausgabebericht schreiben und die Ausgabeberichts-Leseaufforderung bei Block 808 löschen. Zum Beispiel kann die Berührungsquelle 102 den Ausgabebericht an die entsprechende Position in der OUTPUT_REPORT-DPCD-Region schreiben, das OUTPUT REPORT_READ-Bit löschen und - im Fall des Interrupt-gestützten Zugriffs - das TOUCH INTERRUPT-Bit löschen. Bei Block 1010 kann die Berührungsquelle ein Ausgabebericht-setzen-Ereignis ausgeben. Zum Beispiel kann die Berührungsquelle 102 das SET_OUTPUT_REPORT-Bit in dem CONFIGLJRE_TOUCH-DPCD-Register setzen.
  • Der Prozess 1000 kann bei Block 1012 fortgesetzt werden, wo die Berührungssenke den Ausgabebericht lesen und eine Ausgabebericht-Leseaufforderung einstellen kann. Wenn zum Beispiel die Berührungssenke 104 detektiert (beispielsweise über die Berührungssenken-Firmware), dass das SET_OUTPUT_REPORT-Bit einen Wert von eins hat (und - im Fall eines Interrupt-gestützten Zugriffs, dass das TOUCH INTERRUPT gelöscht ist), kann die Berührungssenke 104 den Ausgabebericht der OUTPUT_REPORT-DPCD-Region lesen, das OUTPUT_REPORT_READ-Bit setzen und - im Fall des Interrupt-gestützten Zugriffs - das TOUCH_INTERRUPT-Bit setzen und das SET_OUTPUT REPORT-Bit löschen. In verschiedenen Implementierungen kann das OUTPUT_REPORT_SET-Bit einen Interrupt in einer Berührungssenke auslösen, oder die Berührungssenken-Firmware kann dieses Bit gelegentlich abfragen.
  • In verschiedenen Implementierungen kann eine Berührungsquelle eine Berührungssenke für eine Merkmalsberichtsübermittlung in einer ähnlichen Weise konfigurieren, wie es in 10 für die Ausgabeberichtsübermittlung gezeigt ist, außer dass eine Berührungsquelle das SET_FEATURE-REPORT-Bit anstelle des SET_OUTPUT_REPORT-Bits in dem CONFIGURE_TOUCH-DPCD-Register setzen (und eine Berührungssenke dieses löschen) kann, die Lese- und Schreibraten unter Verwendung des FEATURE_REPORT_READ-Bits anstelle des OUTPUT_REPORT_READ-Bits gesteuert werden können, der Merkmalsbericht in der REPORT_DATA-DPCD-Region bei Versatz 0 verfügbar gemacht werden kann, und die Berichts-ID, für die der Merkmalsbericht eingestellt wird, im TOUCH_PARAMETERS[0]-DPCD-Register übermittelt werden kann. In verschiedenen Implementierungen muss - weil das TOUCH_PARAMETERS[0]-DPCD-Register auch durch den GET FEATURE _REPORT-Befehl verwendet werden kann - eine Berührungsquelle möglicherweise unter Verwendung der zuvor beschrieben Hinweise sicherzustellen, dass eventuelle frühere Befehle vollständig ausgeführt wurden.
  • 12 veranschaulicht ein Flussdiagramm eines beispielhaften Prozesses 1200 gemäß verschiedenen Implementierungen der vorliegenden Offenbarung. Der Prozess 1200 kann eine oder mehrere Operationen, Funktionen oder Aktionen enthalten, wie durch einen oder mehrere der Blöcke 1202, 1204, 1206, 1208 und 1210 von 12 veranschaulicht. Der Prozess 1200 wird im vorliegenden Text mit Bezug auf das beispielhafte System 100 und die beispielhaften Prozesse 600, 800 und 1000, wie zuvor oben beschrieben wurden, in Form eines nicht-einschränkenden Beispiels beschrieben.
  • Der Prozess 1200 kann bei Block 1202 beginnen, wo eine HID-Senkenvorrichtung dafür konfiguriert sein kann, über einen Hilfs (AUX)-Kanal Schnittstellendaten bereitzustellen, wobei die HID-Senkenvorrichtung ein Datenmodul zum Erzeugen der Schnittstellendaten enthält. In verschiedenen Implementierungen kann - unter Bezug auf das System 100 -der Block 1202 beinhalten, dass die Berührungsquelle 102 die Berührungssenke 104 über den (F)AUX-Kanal 118 konfiguriert, um Schnittstellendaten in Form von Mehrfachberührungsdaten zu erzeugen. Zum Beispiel kann die Berührungsquelle 102 den Block 1202 in einer ähnlichen Weise ausführen, wie es oben bei Block 602 von Prozess 600 beschrieben wurde.
  • Der Prozess 1200 kann bei Block 1204 fortgesetzt werden, wo das Datenmodul über den AUX-Kanal aktiviert werden kann. In verschiedenen Implementierungen kann der Block 1204 beinhalten, dass die Berührungsquelle 102 das Datenmodul 124 der Berührungssenke 104 über den (F)AUX-Kanal 118 aktiviert. Zum Beispiel kann die Berührungsquelle 102 den Block 1204 in einer ähnlichen Weise ausführen, wie es oben bei Block 604 von Prozess 600 beschrieben wurde.
  • Bei Block 1206 können die Schnittstellendaten über den AUX-Kanal empfangen werden. In verschiedenen Implementierungen kann der Block 1206 beinhalten, dass die Berührungsquelle 102 Mehrfachberührungsdaten von der Berührungssenke 104 über den (F)AUX-Kanal 118 empfängt. Zum Beispiel kann die Berührungsquelle 102 den Block 1206 in einer ähnlichen Weise ausführen, wie es oben bei den Blöcken 606-612 von Prozess 600 oder den Blöcken 806-812 von Prozess 800 beschrieben wurde.
  • Der Prozess 1200 kann dann bei den Blöcken 1208 und 1210 enden, wo Ausgabedaten in Reaktion auf die Schnittstellendaten generiert werden können (Block 1208) und die Ausgabedaten über den AUX-Kanal an die HID-Senkenvorrichtung übermittelt werden können (Block 1210). In verschiedenen Implementierungen können die Blöcke 1208 und 1210 beinhalten, dass die Berührungsquelle 102 die bei Block 1206 empfangenen Mehrfachberührungsdaten dafür verwendet, Ausgabedaten zu erzeugen, und dann die Ausgabedaten über den (F)AUX-Kanal 118 an die Berührungssenke 104 übermittelt. Zum Beispiel kann die Berührungsquelle 102 den Block 1208 in einer ähnlichen Weise ausführen, wie es oben bei den Blöcken 1006-1012 von Prozess 1000 beschrieben wurde.
  • Berichtsaktualität
  • Gemäß der vorliegenden Offenbarung kann die Interaktion zwischen dem Berührungsquellengerät und dem Berührungssenkengerät für Merkmalsberichte und/oder Ausgabeberichte in beiden Geräten unter Verwendung der Berichtsverfügbarkeitsmarkierungen gedrosselt werden. Eingabeberichte können mit der konfigurierten Leerlaufrate generiert werden. In Fällen, wo eine Leserate einer Berührungsquelle langsamer ist als die Rate, mit der eine Berührungssenke Eingabeberichte generiert, können die Eingabeberichte in eine Warteschlange eingereiht und einer Berührungsquelle der Reihe nach verfügbar gemacht werden, wie zuvor beschrieben wurde. Unter einigen Umständen kann der Puffer einer Berührungssenke überlaufen. Wenn dies geschieht, so kann eine Berührungssenke zum Beispiel ein BUFFER_OVERFLOWED-Bit im TOUCH_STATUS-Register setzen und IRQ_HPD aufdrücken. In Reaktion darauf kann eine Berührungsquelle implementierungsspezifische Maßnahmen auf der Grundlage dieses Hinweises ergreifen, einschließlich beispielsweise das Verringern der Leerlaufrate in der Berührungssenke.
  • In verschiedenen Implementierungen kann es erforderlich sein, dass Berührungssenken eine Warteschlangentiefe von mindestens vier Eingabeberichten von maximaler Größe (wie im Berichtsdeskriptor beschrieben) aufweisen. Des Weiteren kann eine Berührungsquelle in verschiedenen Implementierungen optional entscheiden, die im vorliegenden Text beschriebenen Puffermechanismen zum Steigern der Verarbeitungseffizienz zu verwenden. Zum Beispiel kann eine Senkenvorrichtung in verschiedenen Implementierungen, unter Verwendung der im vorliegenden Text beschriebenen Puffer- und Interruptmechanismen, Daten zum Verarbeiten durch eine Quellenvorrichtung verfügbar und bereit halten, aber die Quellenvorrichtung kann die Daten optional mit einer niedrigeren Rate beispielsweise durch stapelweises Verarbeiten der Daten verarbeiten. Zum Beispiel kann eine Berührungssenke Berührungsdaten mit einer Rate von 50 Hertz erfassen, während eine Berührungsquelle die Berührungsdaten stapelweise in zwei Stapelsätzen mit einer Rate von 25 Hertz oder in vier Stapelsätzen mit einer Rate von 12,5 Hertz und so weiter verarbeiten kann.
  • Nebenband-Meldungen
  • Abzweigvorrichtungen, wie zum Beispiel die Abzweigvorrichtung 202 von 2, die sich im Pfad zwischen einer Berührungsquelle und einer Berührungssenke befinden, sollten gemäß dem DP-1.2-Standard konfiguriert sein. In Systemen wie zum Beispiel dem System 200 von 2 kann die Berührungsquelle 102 auf DPCD-Register in der Berührungssenke 104 unter Verwendung von REMOTE_DPCD_READ- und REMOTE_DPCD_WRITE-Nebenband-Meldungen zugreifen. Des Weiteren kann die Berührungssenke 104 Berührungs-Interrupts unter Verwendung von SINK_EVENT _NOTIFY anzeigen, was eine aufwärtsgehende Rundsendemitteilungstransaktion mit Sink_Event als einem Parameter in der Meldung sein und unter Verwendung des TOUCH_INTERRUPT als Bit 7 des Sink_Event erfolgen kann.
  • Änderungen am DPCD-Adressraum
  • Gemäß der vorliegenden Offenbarung können verschiedene Änderungen am DPCD-Adressraum implementiert werden, wie in Tabelle 3 dargestellt: Tabelle 3: DPCD-Adressraumänderungen
    DP-Adresse Definition Lesen/Schreiben über den (F)AUX-Kanal
    Link-/Senkenstatusfeld, ESI-Feld
    00201h, 002003h DEVICE_SERVICE IRQ VECTOR Bit7 = TOUCH_INTERRUPT Wenn dieses Bit auf 1 gesetzt wird, so kann die Quellenvorrichtung die REPORT DATA_DPCD-Register lesen, um Berührungsdaten zu verarbeiten Löschbar Nur lesen.
    02010h - 5FFFFh RESERVIERT Alle 0s lesen
    Berührungsfeld
    60000h TOUCH_CAPABILITY Bit 0 = TOUCH_SUPPORTED 1: Senke unterstützt Berührung 0: Senke unterstützt Berührung nicht Bits 5:1 = MIN_IDLE_RATE Min. Leerlaufzeit, die zwischen zwei Abtastungen. Wert in Millisekunden. Darf maximal 20 Millisekunden betragen. Bit 7:6 = RESERVIERT Nur lesen
    60001h TOUCH STATUS Wert bei Rücksetzung = 0Ch Bit 0 = INPUT_REPORT_AVAILABLE 1: Eingabebericht ist in den REPORT_DATA-DPCD-Registern verfügbar 0: Eingabebericht ist noch nicht verfügbar Bit 1 = FEATURE REPORT AVAILABLE 1: Merkmalsbericht ist in den REPORT_DATA _DPCD-Registern verfügbar 0: Merkmalsbericht ist noch nicht verfügbar Bit 2 = OUTPUT REPORT READ 1: Ausgabebericht wurde durch die Berührungssenke gelesen 0: Ausgabebericht wurde noch nicht gelesen Bit 3 = FEATURE REPORT READ 1: Merkmalsbericht wurde durch die Berührungssenke gelesen 0: Merkmalsbericht wurde noch nicht gelesen Bit 4 = BUFFER OVERFLOW ERROR 1: Puffer für Eingabeberichte ist in der Berührungssenke übergelaufen 0: Nr. Fehler Bit 7:5 = RESERVIERT Löschbar Nur lesen
    60002h - 60005h COMMAND_PARAMETERS Diese vier Bytes können in einer befehlsspezifischen Weise interpretiert werden. Die Befehle können im CONFIGURE_TOUCH-_DPCD-Register ausgegeben werden. Nur Schreiben
    60006h CONFIGURE_TOUCH Standardvorgabe = 0xxxxxxx0b, d. h. Berührungsfunktionalität wird bei Rücksetzung und Abstöpseln deaktiviert. Bit 0 = ENABLE TOUCH 1: Aktivieren des Berührungsmerkmals an der Senke 0: Deaktivieren des Berührungsmerkmals an der Senke. Wenn deaktiviert, so behandelt die Quelle Daten in den TOUCH DATA_DPCD-Registern als ungültig Bit 1 = DAT_ACCESS METHOD 1: Interrupt-gestützt 0: Polling (d. h. Interrupts deaktiviert) Bit 2 = RESET 1: Rücksetzung des Berührungsgerätes/Re-Initialisieren der Firmware 0: Keine Geräteaktion erforderlich Bit 3 = GET FEATURE REPORT 1: Merkmalsbericht durch die Berührungsquelle angefordert. Berichts-ID für diese Anforderung ist im TOUCH _PARAMETERS[0] -_DPCD-Register 0: Keine Geräteaktion erforderlich Bit 3 = SET FEATURE REPORT 1: Merkmalsbericht bei Versatz 0 in REPORT_DATA_DPCD-Region verfügbar. Die Größe des Merkmalsberichts wird durch die Berichts-ID (in TOUCH_PARAMETERS[0]) und durch die aus dem HID-Deskriptor gewonnenen Informationen bestimmt. 0: Keine Geräteaktion erforderlich Bit 4 = SET OUTPUT REPORT 1: Ausgabebericht in OUTPUT_REPORT-DPCD-Region verfügbar 0: Keine Geräteaktion erforderlich Bit 5 = SET IDLE RATE 1: Die Berührungssenke soll Eingabeberichte für die Berichts-IDs gemäß der in der IDLE RATES-DPCD-Region spezifizierten Rate erzeugen 0: Keine Geräteaktion erforderlich Bit 6 = SET LOW POWER Dieser Befehl wird dafür verwendet, das Berührungsmerkmal in einen Stromsparmodus zu versetzen. 1: Schlummermodus 0: EIN Bit 7 = RESERVIERT Löschbar Nur Schreiben
    60007h RESERVIERT Alle 0s lesen
    60008h - 60017h EDLE_RATES Diese DPCD-Region (15 Bytes) enthält die Leerlaufraten für maximal 15 Eingabeberichts-IDs. Die Rate für Berichts-ID 1 beginnt bei Versatz 0, ist in Millisekunden spezifiziert und hat einen maximalen Wert von 20. Die Rate für Berichts-ID 2 beginnt bei Versatz 2, unmittelbar nach der Berichts-ID 1. Der Wert wird ähnlich dem für Berichts-ID 1 interpretiert. Ähnlich für alle anderen Berichts-IDs. Die Anzahl gültiger Einträge in dieser Tabelle ist das Zweifache der Anzahl gültiger Eingabeberichts-IDs, die aus dem HID-Deskriptor entnommen wurden. Lesen Schreiben
    60018h -6003Fh Reserviert für Berührungsgebrauch Alle 0s lesen
    60040h - 6103Fh HID-CLASS_DESCRIPTORS (HID und Bericht) und optionale (physische und anbieterspezifische) Deskriptoren der Senkenvorrichtung Nur lesen
    61040h - 6143Fh REPORT DATA Dieser 1K-DPCD-Region enthält den Eingabebericht und (wenn im HID-Deskriptor angegeben) den Merkmalsbericht. Nur lesen
    61440h - 6183Fh OUTPUT REPORT Dieser 1K-DPCD-Region enthält (wenn im HID-Deskriptor angegeben) den Ausgabeberichts-Merkmalsbericht. Nur Schreiben
    61840h - 61CFFh Reserviert für künftigen Berührungs-/HID-Gebrauch Alle 0s lesen
  • Beispielhafte DP-Berührungsimplementierung
  • Gemäß der vorliegenden Offenbarung kann ein HID-Gerät, das einen „Mehreingangs“-Modusbetrieb unterstützt (beispielsweise eine Berührungsquelle oder eine Berührungssenkenvorrichtung), eine Berührungsschnittstelle implementieren, die zwei Berichte definiert: einen Gerätekonfigurationsmerkmalsbericht und einen Eingabebericht. In verschiedenen Implementierungen kann ein Merkmalsbericht den Modus, in dem ein Digitalisierer arbeitet (Digitizer:Device Mode) und eine maximale Anzahl von gleichzeitigen Kontakten/Berührungen, die durch die Schnittstelle unterstützt werden (Digitizer:Contact Count Maximum), identifizieren. In verschiedenen Implementierungen kann Software einen Merkmalsbericht lesen, wenn ein Gerät entdeckt wird. In verschiedenen Implementierungen kann ein Berührungsbericht ein Digitizer:Contact Count-Feld und eine Gruppierung von Kontaktinformationsfeldern enthalten, wobei das Digitizer:Contact Count Maximum-Feld im Merkmalsbericht die Größe der Kontaktinformationsgruppierung identifiziert. Das Digitizer:Contact Count-Feld kann die Anzahl der Einträge in der Kontaktinformationsgruppierung identifizieren, die momentan gültig sind (wenn beispielsweise nur vier Finger detektiert werden, dann ist Contact Count = vier, und die ersten vier Einträge (0-3) in der Kontaktinformationsgruppierung sind gültig).
  • In verschiedenen Implementierungen kann ein HID-Deskriptor neun Bytes groß sein (USBHIDDescriptor.bLength = 9) und kann bei Versatz 0 in den HID_CLASS _ DESCRIPTORS-DPCD-Registern beginnen. Zum Beispiel kann ein HID-Deskriptor folgendermaßen formatiert sein:
    USB_HID_DESCRIPTOR USBHIDDescriptor[] = {
    0x09, // bLength
    0x21, // bDescriptorType
    0x0100, //bcdHID
    0x21, // bCountryCode
    0x01, // bNumDescriptors
    0x22, // cd[0].bDescriptorType
    0x0156 // cd[0].wDescriptorLength
    };
  • In verschiedenen Implementierungen kann ein Berichtsdeskriptor 342 Bytes groß sein (USBHIDDescriptor.cd[0].wDescriptorLength = 0x156) und kann bei Versatz 10 (USBHIDDescriptor.bLength + 1) im HID_DESCRIPTOR-Bereich beginnen. Wenn ein weiterer HID-Klassendeskriptor im HID-Deskriptor definiert wurde, dann würde er am Ende des Berichtsdeskriptors beginnen (d. h. Versatz 352, oder 10 + 342). Zum Beispiel kann ein Berichtsdeskriptor folgendermaßen formatiert sein:
    char ReportDescriptor[342] = {
    0x05, 0x0d, // USAGE_PAGE (Digitalisierer)
    0x09, 0x04, // USAGE (Berührungsbildschirm)
    0xa1, 0x01, // COLLECTION (Anwendung)
    0x09, 0x0e, // USAGE (Gerätekonfiguration) ; Gerätekonfigurationsbericht
    0xa1, 0x02, // COLLECTION (Logisch) ; Berichts-ID = 1
    0x15, 0x00, // LOGICAL_MINIMUM (0)
    0x25, 0x0f, // LOGICAL_MAXIMUM (15)
    0x75, 0x04, // REPORT_SIZE (4)
    0x95, 0x02, // REPORT_COUNT (2)
    0x09, 0x52, // USAGE (Gerätemodus)
    0x09, 0x55, // USAGE (Kontaktzählungsmaximum)
    0xb1, 0x02, // FEATURE (Data,Var,Abs)
    0xc0, // END_COLLECTION
    0x09, 0x33, // USAGE (Berührung) ; Berührungsbericht für bis zu 10 Finger
    0xa1,0x02, // COLLECTION (Logisch) ; Berichts-ID = 1
    0x75, 0x08, // REPORT_SIZE (8)
    0x15, 0x01, // LOGICAL _MINIMUM (1)
    0x25, 0x0a, // LOGICAL MAXIMUM (10)
    0x09, 0x54, // USAGE (Kontaktzählung)
    0x81,0x02, // INPUT (Data,Var,Abs); Kontaktzählung = 1-10
    0x09, 0x22, // USAGE (Finger)
    0xa1,0x00, // COLLECTION (Physisch)
    0x15, 0x00, // LOGICAL _MINIMUM (0)
    0x26, 0xff, 0x00, // LOGICAL MAXIMUM (255)
    0x09, 0x51, // USAGE (Kontaktidentifikator)
    0x75, 0x08, // REPORT_SIZE (8)
    0x81,0x02, // INPUT (Data,Var,Abs) ; Kontakt 0-Identifikator
    0x26, 0xff, 0x0f, // LOGICAL MAXIMUM (4095)
    0x75, 0x0c, // REPORT_SIZE (12)
    0x05, 0x01, // USAGE_PAGE (Generischer Desktop)
    0x09, 0x30, // USAGE (X)
    0x81,0x02, // INPUT (Data,Var,Abs)
    0x09, 0x31, // USAGE (Y)
    0x81,0x02, // INPUT (Data,Var,Abs)
    0xc0, // END_COLLECTION
    0x09, 0x22, // USAGE (Finger)
    0xa1,0x00, // COLLECTION (Physisch)
    0x26, 0xff, 0x00, // LOGICAL MAXIMUM (255)
    0x0b, 0x51, 0x00, 0x0d, x00, // USAGE (Digitalisierer:Kontaktidentifikator)
    0x75, 0x08, // REPORT_SIZE (8)
    0x81,0x02, // INPUT (Data,Var,Abs) ; Contact ID 1
    0x26, 0xff, 0x0f, // LOGICAL MAXIMUM (4095)
    0x75, 0x0c, // REPORT_SIZE (12)
    0x09, 0x30, // USAGE (X)
    0x81,0x02, // INPUT (Data,Var,Abs)
    0x09, 0x31, // USAGE (Y)
    0x81,0x02, // INPUT (Data,Var,Abs)
    0xc0, // END_COLLECTION
    0x09, 0x22, // USAGE (Finger)
    0xa1,0x00, // COLLECTION (Physisch)
    0x26, 0xff, 0x00, // LOGICAL MAXIMUM (255)
    0x0b, 0x51, 0x00, 0x0d, 0x00, // USAGE (Digitalisierer:Kontaktidentifikator)
    0x75, 0x08, // REPORT_SIZE (8)
    0x81,0x02, // INPUT (Data,Var,Abs) ; Kontakt-ID 2
    0x26, 0xff, 0x0f, // LOGICAL MAXIMUM (4095)
    0x75, 0x0c, // REPORT_SIZE (12)
    0x09, 0x30, // USAGE (X)
    0x81,0x02, // INPUT (Data,Var,Abs)
    0x09, 0x31, // USAGE (Y)
    0x81,0x02, // INPUT (Data,Var,Abs)
    0xc0, // END_COLLECTION
    0x09, 0x22, // USAGE (Finger)
    0xa1,0x00, // COLLECTION (Physisch)
    0x26, 0xff, 0x00, // LOGICAL MAXIMUM (255)
    0x0b, 0x51, 0x00, 0x0d, 0x00, // USAGE (Digitalisierer:Kontaktidentifikator)
    0x75, 0x08, // REPORT_SIZE (8)
    0x81,0x02, // INPUT (Data,Var,Abs) ; Kontakt-ID 3
    0x26, 0xff, 0x0f, // LOGICAL MAXIMUM (4095)
    0x75, 0x0c, // REPORT_SIZE (12)
    0x09, 0x30, // USAGE (X)
    0x81,0x02, // INPUT (Data,Var,Abs)
    0x09, 0x31, // USAGE (Y)
    0x81,0x02, // INPUT (Data,Var,Abs)
    0xc0, // END_COLLECTION
    0x09, 0x22, // USAGE (Finger)
    0xa1,0x00, // COLLECTION (Physisch)
    0x26, xff, 0x00, // LOGICAL MAXIMUM (255)
    0x0b, 0x51, 0x00, 0x0d, 0x00, // USAGE (Digitalisierer:Kontaktidentifikator)
    0x75, 0x08, // REPORT_SIZE (8)
    0x81,0x02, // INPUT (Data,Var,Abs) ; Kontakt-ID 4
    0x26, 0xff, 0x0f, // LOGICAL MAXIMUM (4095)
    0x75, 0x0c, // REPORT_SIZE (12)
    0x09, 0x30, // USAGE (X)
    0x81,0x02, // INPUT (Data,Var,Abs)
    0x09, 0x31, // USAGE (Y)
    0x81,0x02, // INPUT (Data,Var,Abs)
    0xc0, // END_COLLECTION
    0x09, 0x22, // USAGE (Finger)
    0xa1,0x00, // COLLECTION (Physisch)
    0x26, 0xff, 0x00, // LOGICAL MAXIMUM (255)
    0x0b, 0x51, 0x00, 0x0d, x00, // USAGE (Digitalisierer:Kontaktidentifikator)
    0x75, 0x08, // REPORT_SIZE (8)
    0x81,0x02, // INPUT (Data,Var,Abs) ; Kontakt-ID 5
    0x26, 0xff, 0x0f, // LOGICAL MAXIMUM (4095)
    0x75, 0x0c, // REPORT_SIZE (12)
    0x09, 0x30, // USAGE (X)
    0x81,0x02, // INPUT (Data,Var,Abs)
    0x09, 0x31, // USAGE (Y)
    0x81,0x02, // INPUT (Data,Var,Abs)
    0xc0, // END_COLLECTION
    0x09, 0x22, // USAGE (Finger)
    0xa1,0x00, // COLLECTION (Physisch)
    0x26, 0xff, 0x00, // LOGICAL MAXIMUM (255)
    0x0b, 0x51, 0x00, 0x0d, x00, // USAGE (Digitalisierer:Kontaktidentifikator)
    0x75, 0x08, // REPORT_SIZE (8)
    0x81,0x02, // INPUT (Data,Var,Abs) ; Kontakt-ID 6
    0x26, 0xff, 0x0f, // LOGICAL MAXIMUM (4095)
    0x75, 0x0c, // REPORT_SIZE (12)
    0x09, 0x30, // USAGE (X)
    0x81,0x02, // INPUT (Data,Var,Abs)
    0x09, 0x31, // USAGE (Y)
    0x81,0x02, // INPUT (Data,Var,Abs)
    0xc0, // END_COLLECTION
    0x09, 0x22, // USAGE (Finger)
    0xa1,0x00, // COLLECTION (Physisch)
    0x26, 0xff, 0x00, // LOGICAL MAXIMUM (255)
    0x0b, 0x51, 0x00, 0x0d, 0x00, // USAGE (Digitalisierer:Kontaktidentifikator)
    0x75, 0x08, // REPORT_SIZE (8)
    0x81,0x02, // INPUT (Data,Var,Abs) ; Kontakt-ID 7
    0x26, 0xff, 0x0f, // LOGICAL MAXIMUM (4095)
    0x75, 0x0c, // REPORT_SIZE (12)
    0x09, 0x30, // USAGE (X)
    0x81,0x02, // INPUT (Data,Var,Abs)
    0x09, 0x31, // USAGE (Y)
    0x81,0x02, // INPUT (Data,Var,Abs)
    0xc0, // END_COLLECTION
    0x09, 0x22, // USAGE (Finger)
    0xa1,0x00, // COLLECTION (Physisch)
    0x26, 0xff, 0x00, // LOGICAL MAXIMUM (255)
    0x0b, 0x51, 0x00, 0x0d, X00, // USAGE (Digitalisierer:Kontaktidentifikator)
    0x75, 0x08, // REPORT_SIZE (8)
    0x81,0x02, // INPUT (Data,Var,Abs) ; Kontakt-ID 8
    0x26, 0xff, 0x0f, // LOGICAL MAXIMUM (4095)
    0x05, 0x01, // USAGEPAGE (Generischer Desktop)
    0x09, 0x30, // USAGE (X)
    0x81,0x02, // INPUT (Data,Var,Abs)
    0x09, 0x31, // USAGE (Y)
    0x81,0x02, // INPUT (Data,Var,Abs)
    0xc0, // END_COLLECTION
    0x09, 0x22, // USAGE (Finger)
    0xa1,0x00, // COLLECTION (Physisch)
    0x26, 0xff, 0x00, // LOGICAL MAXIMUM (255)
    0x0b, 0x51, 0x00, 0x0d, 0x00, // USAGE (Digitalisierer:Kontaktidentifikator)
    0x75, 0x08, // REPORT_SIZE (8)
    0x81,0x02, // INPUT (Data,Var,Abs) ; Kontakt-ID 9
    0x26, 0xff, 0x0f, // LOGICAL MAXIMUM (4095)
    0x75, 0x0c, // REPORT_SIZE(12)
    0x09, 0x30, // USAGE (X)
    0x81,0x02, // INPUT (Data,Var,Abs)
    0x09, 0x31, // USAGE (Y)
    0x81,0x02, // INPUT (Data,Var,Abs)
    0xc0, // END_COLLECTION
    0xc0, // END_COLLECTION
    0xc0 // END COLLECTION
  • Berichtsdatenstruktur
  • 13 veranschaulicht die Struktur 1300 des REPORT_DATA-Bereichs gemäß Definition durch den oben beschriebenen Berichtsdeskriptor. In verschiedenen Implementierungen kann der Merkmalsbericht vor dem Eingabebericht zugewiesen werden. Wie in 13 gezeigt, enthält die Struktur 1300 einen Merkmalsbericht 1302 mit einem einzelnen Byte, das zwei Felder definiert: Gerätemodus (Device Mode) und Kontaktzahlmaximum (Contact Count Maximum). Ein Berührungseingabebericht 1304 folgt unmittelbar dem Merkmalsbericht und den Eingabeberichtsgrößenfeldern. Der Eingabebericht kann einunddreißig Bytes groß sein und kann ein 1 Byte großes Kontaktzahlfeld enthalten, gefolgt von einer Gruppierung von zehn 3 Byte großen Kontakteinträgen. Jeder Kontakteintrag kann aus einer 8 Bit großen Kontakt-ID bestehen, gefolgt von einem 12 Bit großen X- und einem 12 Bit großen Y-Feld. Die Kontaktzahl gibt an, wie viele Kontakteinträge momentan gültig sind. Wenn zum Beispiel die Kontaktzahl = 4 ist, dann sind Kontakteinträge 0-3 gültig. Obgleich der Berichtsdeskriptor den Merkmalsbericht 1302 vor dem Eingabebericht 1304 definieren kann, wie in Struktur 1300 gezeigt, können die Berichte auch in umgekehrter Reihenfolge in dem Berichtsdeskriptor definiert sein und trotzdem so in dem REPORT_DATA-Bereich dargestellt werden, dass der Merkmalsbericht 1302 zuerst erscheint.
  • Während die Implementierung der beispielhaften Prozesse 600, 800, 1000 und 1200, wie in den 6, 8, 10 und 12 veranschaulicht, die Ausführung aller gezeigten Blöcke in der veranschaulichten Reihenfolge enthalten kann, gelten für die vorliegende Offenbarung diesbezüglich keine Einschränkungen, und in verschiedenen Beispielen braucht die Implementierung der Prozesse 600, 800, 1000 und 1200 die Ausführung nur einer Teilmenge der gezeigten Blöcke und/oder in einer anderen Reihenfolge als in der veranschaulichten zu enthalten.
  • Außerdem können ein oder mehrere der Blöcke von 6, 8, 10 und 12 in Reaktion auf Instruktionen ausgeführt werden, die durch ein oder mehrere Computerprogrammprodukte ausgegeben werden. Solche Programmprodukte können signaltragende Medien enthalten, die Instruktionen ausgeben, die, wenn sie beispielsweise durch einen Prozessor ausgeführt werden, die im vorliegenden Text beschriebene Funktionalität bereitstellen können. Die Computerprogrammprodukte können in beliebigen Formen von computerlesbaren Medien bereitgestellt werden. Somit kann zum Beispiel ein Prozessor, der einen oder mehrere Prozessorkerne enthält, einen oder mehrere der in den 6, 8, 10 und 12 gezeigten Blöcke in Reaktion auf Instruktionen ausführen, die durch ein computerlesbares Medium an den Prozessor übermittelt wurden.
  • Im Sinne der im vorliegenden Text beschriebenen Implementierungen meinen die Begriffe „Modul“ und/oder „Logik“ jegliche Kombinationen von Software, Firmware und/oder Hardware, die dafür konfiguriert sind, die im vorliegenden Text beschriebene Funktionalität bereitzustellen. Die Software kann als ein Softwarepaket, ein Code und/oder ein Instruktionssatz oder Instruktionen verkörpert sein; und „Hardware“ kann im Sinne der im vorliegenden Text beschriebenen Implementierungen beispielsweise - einzeln oder in Kombinationen - festverdrahtete Schaltungen, programmierbare Schaltungen, Zustandsmaschinenschaltungen und/oder Firmware, die Instruktionen speichert, die durch programmierbare Schaltungen ausgeführt werden, enthalten. Die Module und/oder Logik können, zusammen oder einzeln, als Schaltungen verkörpert sein, die einen Teil eines größeren Systems bildet, zum Beispiel eines integrierten Schaltkreises (IC), eines System-on-Chip (SoC) und so weiter.
  • 14 veranschaulicht ein beispielhaftes System 1400 gemäß der vorliegenden Offenbarung. In verschiedenen Implementierungen kann das System 1400 ein Mediasystem sein, obgleich das System 1400 nicht auf diesen Kontext beschränkt ist. Zum Beispiel kann das System 1400 in einen Personalcomputer (PC), einen Laptop-Computer, einen Ultra-Laptop-Computer, einen Tablet-Computer, ein Touchpad, einen tragbaren Computer, einen handgehaltenen Computer, einen Palmtop-Computer, einen Personal Digital Assistant (PDA), einen Mobiltelefon, eine Kombination aus Mobiltelefon und PDA, einen Fernseher, ein intelligentes Gerät (beispielsweise ein Smartphone, ein Smart-Tablet oder einen Smart-Fernseher), ein Mobiles Internetgerät (MID), ein Messaging-Gerät, ein Datenkommunikationsgerät und so weiter integriert sein.
  • In verschiedenen Implementierungen enthält das System 1400 eine Plattform 1402, die mit einem Display 1420 gekoppelt ist. Die Plattform 1402 kann Inhalte von einem Inhalte-Gerät empfangen, wie zum Beispiel einem oder mehreren Inhaltsdienstegeräten 1430 oder einem oder mehreren Inhaltsübermittlungsgeräten 1440 oder anderen ähnlichen Inhaltsquellen. Ein Navigations-Controller 1450, der ein oder mehrere Navigationsmerkmale enthält, kann dafür verwendet werden, beispielsweise mit der Plattform 1402 und/oder dem Display 1420 zu interagieren. Jede dieser Komponenten wird unten ausführlicher beschrieben.
  • In verschiedenen Implementierungen kann die Plattform 1402 jede beliebige Kombination eines Chipsatzes 1405, eines Prozessors 1410, eines Speichers 1412, eines Datenlagers 1414, eines Grafikteilsystem 1415, Anwendungen 1416 und/oder einem Funkgerät 1418 enthalten. Der Chipsatz 1405 kann eine Interkommunikation zwischen dem Prozessor 1410, dem Speicher 1412, dem Datenlager 1414, dem Grafikteilsystem 1415, den Anwendungen 1416 und/oder dem Funkgerät 1418 ermöglichen. Zum Beispiel kann der Chipsatz 1405 einen (nicht gezeigten) Datenlageradapter enthalten, der in der Lage ist, eine Interkommunikation mit dem Datenlager 1414 zu ermöglichen.
  • Der Prozessor 1410 kann als ein Complex Instruction Set-Computer (CISC) oder ein Reduced Instruction Set-Computer (RISC)-Prozessoren, als x86-instruktionssatzkompatible Prozessoren, als Mehrkernprozessor oder sonstiger Mikroprozessor oder als zentrale Verarbeitungseinheit (CPU) implementiert werden. In verschiedenen Implementierungen kann der Prozessor 1410 ein oder mehrere Dualkernprozessoren, Dualkern-Mobilprozessoren und so weiter sein.
  • Der Speicher 1412 kann als ein flüchtiger Speicherbaustein implementiert werden, einschließlich beispielsweise ein Direktzugriffsspeicher (RAM), ein Dynamischer Direktzugriffsspeicher (DRAM) oder ein Statischer RAM (SRAM).
  • Das Datenlager 1414 kann als eine nicht-flüchtige Speichervorrichtung implementiert werden, einschließlich beispielsweise ein Magnetdisk-Laufwerk, ein optisches Disk-Laufwerk, ein Band-Laufwerk, eine interne Speichervorrichtung, eine externe Speichervorrichtung, ein Flash-Speicher, ein batteriegestützter SDRAM (synchroner DRAM) und/oder eine netzwerkzugängliche Speichervorrichtung. In verschiedenen Implementierungen kann das Datenlager 1414 Technologie enthalten, die den speicherleistungsgesteigerten Schutz für wertvolle digitale Medien, wenn beispielsweise mehreren Festplattenlaufwerke enthalten sind.
  • Das Grafikteilsystem 1415 kann das Verarbeiten von Bildern, wie zum Beispiel Standbildern oder Video, zum Anzeigen ausführen. Das Grafikteilsystem 1415 kann zum Beispiel eine Grafikverarbeitungseinheit (GPU) oder eine visuelle Verarbeitungseinheit (VPU) sein. Eine analoge oder digitale Schnittstelle kann dafür verwendet werden, das Grafikteilsystem 1415 und das Display 1420 kommunikativ zu koppeln. Zum Beispiel kann die Schnittstelle eine High-Definition-Multimedia-Schnittstelle, ein DisplayPort, eine Drahtlos-HDMI und/oder eine Drahtlos-HD-kompatible Technik sein. Das Grafikteilsystem 1415 kann in den Prozessor 1410 oder Chipsatz 1405 integriert sein. In einigen Implementierungen kann das Grafikteilsystem 1415 eine eigenständige Karte sein, die kommunikativ mit dem Chipsatz 1405 gekoppelt ist.
  • Die im vorliegenden Text beschriebenen Grafik- und/oder Videoverarbeitungstechniken können in verschiedenen Hardware-Architekturen implementiert werden. Zum Beispiel kann eine Grafik- und/oder Videofunktionalität innerhalb eines Chipsatzes integriert sein. Alternativ kann ein diskreter Grafik- und/oder Video-Prozessor verwendet werden. Als eine weitere Implementierung können die Grafik- und/oder Video-Funktionen durch einen Allzweckprozessor bereitgestellt werden, der einen Mehrkernprozessor enthält. In einer weiteren Ausführungsform können die Funktionen in einem konsumelektronischen Gerät implementiert werden.
  • Das Funkgerät 1418 kann ein oder mehrere Funkgeräte enthalten, die in der Lage sind, Signale unter Verwendung verschiedener geeigneter Drahtloskommunikationstechniken zu senden und zu empfangen. Solche Techniken können Kommunikationen über ein oder mehrere Drahtlosnetze beinhalten. Zu beispielhaften Drahtlosnetzen gehören Wireless Local Area Networks (WLANs), Wireless Personal Area Networks (WPANs), Wireless Metropolitan Area Networks (WMANs), Mobilfunknetze und Satellitennetze. Bei der Kommunikation über solche Netze kann das Funkgerät 1418 gemäß einem oder mehreren einschlägigen Standards in jeder beliebigen Version arbeiten.
  • In verschiedenen Implementierungen kann das Display 1420 einen beliebigen Fernsehgerätartigen Monitor oder ein beliebiges Fernsehgerät-artiges Display enthalten. Das Display 1420 kann zum Beispiel einen Computeranzeigeschirm, ein Touchscreen-Display, einen Videomonitor, ein Fernseher-artiges Gerät und/oder einen Fernseher enthalten. Das Display 1420 kann digital und/oder analog sein. In verschiedenen Implementierungen kann das Display 1420 ein holografisches Display sein. Des Weiteren kann das Display 1420 eine transparente Oberfläche sein, die eine visuelle Projektion empfangen kann. Solche Projektionen können verschiedene Formen von Informationen, Bildern und/oder Objekten transportieren. Zum Beispiel können solche Projektionen eine visuelle Überlagerung für eine mobile „Augmented Reality“ (MAR)-Anwendung sein. Unter der Steuerung einer oder mehrerer Software-Anwendungen 1416 kann die Plattform 1402 eine Benutzerschnittstelle 1422 auf einem Display 1420 anzeigen.
  • In verschiedenen Implementierungen können Inhaltsdienstegeräte 1430 durch einen beliebigen nationalen, internationalen und/oder unabhängigen Dienst gehostet werden und können somit für die Plattform 1402 beispielsweise über das Internet zugänglich sein. Ein oder mehrere Inhaltsdienstegeräte 1430 können mit der Plattform 1402 und/oder dem Display 1420 gekoppelt sein. Die Plattform 1402 und/oder das eine oder die mehreren Inhaltsdienstegeräte 1430 können mit einem Netz 1460 gekoppelt sein, um Medieninformationen zu bzw. von dem Netz 1460 zu übermitteln (beispielsweise zu senden und/oder zu empfangen). Ein oder mehrere Inhaltsübermittlungsgeräten 1440 können auch mit der Plattform 1402 und/oder dem Display 1420 gekoppelt sein.
  • In verschiedenen Implementierungen können zu dem einen oder den mehreren Inhaltsdienstegeräten 1430 eine Kabelfernsehbox, ein Personalcomputer, ein Netzwerk, ein Telefon, Internet-fähige Geräte, oder Geräte, die in der Lage sind, digitale Informationen und/oder Inhalte zu übermitteln, und sonstige ähnliche Geräte gehören, die in der Lage sind, unidirektional oder bidirektional Inhalte zwischen Inhaltsanbietern und der Plattform 1402 und/oder dem Display 1420 über das Netz 1460 oder direkt zu übermitteln. Es versteht sich, dass die Inhalte unidirektional und/oder bidirektional zu und von jeder der Komponenten in dem System 1400 und einem Inhaltsanbieter über Netz 1460 übermittelt werden können. Zu Beispielen von Inhalten können jegliche Medieninformationen gehören, einschließlich beispielsweise Video, Musik, medizinische Informationen, Spiele-Informationen und so weiter.
  • Ein oder mehrere Inhaltsdienstegeräte 1430 können Inhalte empfangen, wie zum Beispiel Kabelfernsehprogramme, die Medieninformationen, digitale Informationen und/oder sonstige Inhalte enthalten. Zu Beispielen von Inhalteanbietern können Kabel- oder Satellitenfernsehanbieter oder Radio- oder Internet-Inhalteanbieter gehören. Die genannten Beispiele sollen die Implementierungen gemäß der vorliegenden Offenbarung in keiner Weise einschränken.
  • In verschiedenen Implementierungen kann die Plattform 1402 Steuersignale vom Navigations-Controller 1450, der ein oder mehrere Navigationsmerkmale aufweist, empfangen. Die Navigationsmerkmale des Controllers 1450 können dafür verwendet werden, zum Beispiel mit der Benutzerschnittstelle 1422 zu interagieren. In Ausführungsformen kann der Navigations-Controller 1450 ein Zeigegerät sein, das eine Computer-Hardware-Komponente (genauer gesagt, ein Bedienerschnittstellengerät) sein kann, die es einem Nutzer erlaubt, räumliche (beispielsweise kontinuierliche und mehrdimensionale) Daten in einen Computer einzugeben. Viele Systeme, wie zum Beispiel grafische Benutzerschnittstellen (GUI), Fernseher und Monitore, erlauben dem Nutzer das Steuern und Übermitteln von Daten an den Computer oder Fernseher unter Verwendung physischer Gesten.
  • Bewegungen der Navigationsmerkmale des Controllers 1450 können auf einem Display (beispielsweise dem Display 1420) durch Bewegungen eines Zeigers, Cursors, Fokusrings oder sonstiger auf dem Display angezeigter visueller Indikatoren repliziert werden. Zum Beispiel können, unter der Steuerung von Software-Anwendungen 1416, die in dem Navigations-Controller 1450 befindlichen Navigationsmerkmale auf virtuelle Navigationsmerkmale abgebildet werden, die zum Beispiel auf der Benutzerschnittstelle 1422 angezeigt werden. In Ausführungsformen braucht der Controller 1450 keine separate Komponente zu sein, sondern kann in die Plattform 1402 und/oder das Display 1420 integriert sein. Die vorliegende Offenbarung ist jedoch nicht auf die im vorliegenden Text beschriebenen oder gezeigten Elemente oder Kontexte beschränkt.
  • In verschiedenen Implementierungen können zum Beispiel (nicht gezeigte) Treiber Technologie enthalten, die es Nutzern ermöglichen, die Plattform 1402 nach dem anfänglichen Hochfahren - sofern aktiviert - augenblicklich wie einen Fernseher per Knopfdruck ein- und auszuschalten. Programmlogik kann es der Plattform 1402 erlauben, Inhalte an Medienadapter oder ein oder mehrere andere Inhaltsdienstegeräte 1430 oder Inhaltsübermittlungsgeräte 1440 zu streamen, selbst wenn die Plattform ausgeschaltet ist. Außerdem kann der Chipsatz 1405 beispielsweise Hardware- und/oder Software-Unterstützung für 5.1 Surround Sound-Audio und/oder High Definition 7.1 Surround Sound-Audio enthalten. Zu den Treibern kann ein Grafik-Treiber für integrierte Grafikplattformen gehören. In Ausführungsformen kann der Grafik-Treiber eine Peripheral Component Interconnect (PCI) Express-Grafikkarte umfassen.
  • In verschiedenen Implementierungen können eine oder mehrere der in dem System 1400 gezeigten Komponenten integriert sein. Zum Beispiel können die Plattform 1402 und ein oder mehrere Inhaltsdienstegeräte 1430 integriert sein, oder die Plattform 1402 und ein oder mehrere Inhaltsübermittlungsgeräte 1440 können integriert sein, oder die Plattform 1402, ein oder mehrere Inhaltsdienstegeräte 1430 und ein oder mehrere Inhaltsübermittlungsgeräte 1440 können integriert sein. In verschiedenen Ausführungsformen können zum Beispiel die Plattform 1402 und das Display 1420 eine integrierte Einheit sein. Das Display 1420 und das eine oder die mehreren Inhaltsdienstegeräte 1430 können integriert sein, oder das Display 1420 und das eine oder die mehreren Inhaltsübermittlungsgeräte 1440 können integriert sein. Diese Beispiele sollen die vorliegende Offenbarung nicht einschränken.
  • In verschiedenen Ausführungsformen kann das System 1400 als drahtloses System, als leitungsgebundenes System oder als eine Kombination von beidem implementiert werden. Bei Implementierung als ein drahtloses System kann das System 1400 Komponenten und Schnittstellen enthalten, die dafür geeignet sind, über ein gemeinsam genutztes Drahtlosmedium zu kommunizieren, wie zum Beispiel eine oder mehrere Antennen, Sender, Empfänger, Senderempfänger, Verstärker, Filter, Steuerungslogik und so weiter. Ein Beispiel eines gemeinsam genutzten Drahtlosmediums kann Abschnitte eines Drahtlosspektrums enthalten, wie zum Beispiel das HF-Spektrum, und so weiter. Bei Implementierung als ein leitungsgebundenes System kann das System 1400 Komponenten und Schnittstellen enthalten, die dafür geeignet sind, über leitungsgebundene Kommunikationsmedien zu kommunizieren, wie zum Beispiel Eingabe/Ausgabe (E/A)-Adapter, physische Verbinder zum Verbinden des E/A-Adapter mit einem entsprechenden leitungsgebundenen Kommunikationsmedium, eine Netzwerkschnittstellenkarte (NIC), Disk-Controller, Video-Controller, Audio-Controller und dergleichen. Zu Beispielen von leitungsgebundenen Kommunikationsmedien können ein Draht, ein Kabel, metallische Anschlussdrähte, eine gedruckte Leiterplatte (PCB), eine Hauptplatine, ein Schaltnetz, ein Halbleitermaterial, ein paarweise verdrillter Draht, ein Koaxialkabel, eine optische Faser und so weiter gehören.
  • Die Plattform 1402 kann einen oder mehrere logische oder physische Kanäle bereitstellen, um Informationen zu übermitteln. Die Informationen können Medieninformationen und Steuerungsinformationen sein. „Medieninformationen“ meint jegliche Daten, die Inhalte darstellen, die für einen Nutzer gedacht sind. Zu Beispielen von Inhalten können Daten eines Gesprächs, einer Videokonferenz, Streaming-Video, elektronische Post („E-Mail“), Voicemail, alphanumerische Symbole, Grafik, Bild, Video, Text und so weiter gehören. Daten eines Gesprächs können zum Beispiel Sprachinformationen, Stummzeiträume, Hintergrundgeräusche, Komfortgeräusche, Töne und so weiter gehören. Steuerungsinformationen meint jegliche Daten, die Befehle, Instruktionen oder Steuerungswörter darstellen, die für ein automatisiertes System gedacht sind. Zum Beispiel können Steuerungsinformationen dafür verwendet werden, Medieninformationen durch ein System zu routen, oder einen Knoten zu instruieren, die Medieninformationen in einer zuvor festgelegten Weise zu verarbeiten. Die Ausführungsformen sind jedoch nicht auf die Elemente oder den Kontext, wie in 14 gezeigt oder beschrieben, beschränkt.
  • Wie oben beschrieben, kann das System 1400 in variierenden physischen Stilen oder Formfaktoren verkörpert sein. 15 veranschaulicht Implementierungen eines Gerätes 1500 mit kleinem Formfaktor, in denen das System 1400 verkörpert sein kann. In Ausführungsformen kann das Gerät 1500 zum Beispiel als ein mobiles Computergerät mit Drahtlosfähigkeiten implementiert werden. Ein mobiles Computergerät kann jedes Gerät mit einem Verarbeitungssystem und einer mobilen Stromquelle oder -versorgung, wie zum Beispiel einer oder mehreren Batterien, sein.
  • Wie oben beschrieben, können zu Beispielen eines mobilen Computergerätes ein Personalcomputer (PC), ein Laptop-Computer, ein Ultra-Laptop-Computer, ein Tablet-Computer, ein Touchpad, ein tragbarer Computer, ein handgehaltener Computer, ein Palmtop-Computer, ein Personal Digital Assistant (PDA), ein Mobiltelefon, eine Kombination aus Mobiltelefon und PDA, ein Fernseher, ein intelligentes Gerät (beispielsweise ein Smartphone, ein Smart-Tablet oder einen Smart-Fernseher), ein Mobiles Internetgerät (MID), ein Messaging-Gerät, ein Datenkommunikationsgerät und so weiter gehören.
  • Zu Beispielen eines mobilen Computergerätes können außerdem Computer gehören, die dafür geeignet sind, durch eine Person getragen zu werden, wie zum Beispiel ein Handgelenkcomputer, ein Fingercomputer, ein Ringcomputer, ein Brillencomputer, ein Gürtelclipcomputer, ein Armband-Computer, ein Schuhcomputer, ein Bekleidungscomputer und andere tragbare Computer. In verschiedenen Ausführungsformen kann zum Beispiel ein mobiles Computergerät als ein Smartphone implementiert werden, das in der Lage ist, Computeranwendungen sowie Sprachkommunikationen und/oder Datenkommunikationen auszuführen. Obgleich einige Ausführungsformen beispielsweise mit einem mobilen Computergerät beschrieben sein können, das als ein Smartphone implementiert ist, versteht es sich, dass andere Ausführungsformen auch unter Verwendung anderer mobiler Drahtlos-Computergeräte implementiert werden können. Die Ausführungsformen sind nicht auf diesen Kontext beschränkt.
  • Wie in 15 gezeigt, kann das Gerät 1500 ein Gehäuse 1502, ein Display 1504, ein Eingabe/Ausgabe (E/A)-Gerät 1506 und eine Antenne 1508 enthalten. Das Gerät 1500 kann außerdem Navigationsmerkmale 1512 enthalten. Das Display 1504 kann eine beliebige geeignete Anzeigeeinheit zum Anzeigen von Informationen sein, die für ein mobiles Computergerät zweckmäßig ist. Das E/A-Gerät 1506 kann ein beliebiges geeignetes E/A-Gerät zum Eingeben von Informationen in ein mobiles Computergerät sein. Zu Beispielen von E/A-Geräten 1506 können eine alphanumerische Tastatur, eine numerische Tastatur, ein Touchpad, Eingabetasten, Knöpfe, Schalter, Kippschalter, Mikrofone, Lautsprecher, Spracherkennungsgeräte und -software und so weiter gehören. Informationen können in das Gerät 1500 auch per Mikrofon (nicht gezeigt) eingegeben werden. Solche Informationen können durch ein Spracherkennungsgerät (nicht gezeigt) digitalisiert werden. Die Ausführungsformen sind nicht auf diesen Kontext beschränkt.
  • Verschiedene Ausführungsformen können unter Verwendung von Hardware-Elementen, Software-Elementen oder einer Kombination aus beidem implementiert werden. Zu Beispielen von Hardware-Elementen können Prozessoren, Mikroprozessoren, Schaltkreise, Schaltkreiselemente (beispielsweise Transistoren, Widerstände, Kondensatoren, Induktivitäten und so weiter), integrierte Schaltkreise, anwendungsspezifische integrierte Schaltkreise (ASIC), programmierbare Logikbausteine (PLD), digitale Signalprozessoren (DSP), feldprogrammierbare Gate-Arrays (FPGA), Logikgatter, Register, Halbleiterbauelemente, Chips, Mikrochips, Chipsets und so weiter gehören. Zu Beispielen von Software können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystem-Software, Middleware, Firmware, Software-Module, Routine, Subroutinen, Funktionen, Verfahren, Procedere, Software-Schnittstellen, Anwendungsprogrammschnittstellen (API), Instruktionssets, Berechnungscode, Computercode, Code-Segmente, Computercode-Segmenten, Wörter, Werte, Symbole oder Kombinationen davon gehören. Das Festlegen, ob eine Ausführungsform unter Verwendung von Hardware-Elementen und/oder Software-Elementen implementiert wird, kann gemäß einer beliebigen Anzahl von Faktoren variieren, wie zum Beispiel der gewünschten Berechnungsrate, dem Stromverbrauch, der Wärmeverträglichkeit, dem Verarbeitungszyklusbudget, den Eingabedatenraten, den Ausgabedatenraten, den Speicherressourcen, den Datenbusgeschwindigkeiten und anderen Design- oder Leistungsbeschränkungen.
  • Ein oder mehrere Aspekte mindestens einer Ausführungsform können durch repräsentative Instruktionen implementiert werden, die auf einem maschinenlesbaren Medium gespeichert sind, das verschiedene Logik innerhalb des Prozessors darstellt, die, wenn sie durch eine Maschine gelesen wird, die Maschine veranlasst, Logik zu bilden, mit der die im vorliegenden Text beschriebenen Techniken ausgeführt werden. Solche Darstellungen, die als „IP-Kerne“ bekannt sind, können auf einem greifbaren, maschinenlesbaren Medium gespeichert sein und an verschiedene Kunden oder Herstellungseinrichtungen verschickt werden, um in die Produktionsmaschinen geladen zu werden, die die Logik oder den Prozessor letztendlich herstellen.

Claims (24)

  1. Verfahren, das Folgendes umfasst: in einem Bedienerschnittstellengerät (Human Interface Device, HID)-Quellengerät: Konfigurieren, über einen Hilfs (AUX)-Kanal, eines HID-Senkengerätes, Schnittstellendaten bereitzustellen, wobei das HID-Senkengerät ein Datenmodul enthält, um die Schnittstellendaten zu erzeugen; Aktivieren des Datenmoduls über den AUX-Kanal; und Empfangen der Schnittstellendaten über den AUX-Kanal; wobei das Empfangen der Schnittstellendaten Folgendes umfasst: in dem HID-Quellengerät: Lesen eines Interrupt-Grundes; Lesen der Schnittstellendaten in Reaktion auf das Lesen des Interrupt-Grundes; und Löschen des Interrupt-Grundes; und/oder wobei das Empfangen der Schnittstellendaten Folgendes umfasst: in dem HID-Quellengerät: Anfordern eines Berichts; Abfragen einer Berichtsverfügbarkeitsmarkierung; Lesen der Schnittstellendaten in Reaktion auf das Detektieren der Berichtsverfügbarkeitsmarkierung; und Löschen der Berichtsverfügbarkeitsmarkierung.
  2. Verfahren nach Anspruch 1, wobei die Schnittstellendaten Mehrfachberührungsdaten umfassen.
  3. Verfahren nach Anspruch 1, wobei der AUX-Kanal einen schnellen Hilfs (F)AUX-Kanal umfasst.
  4. Verfahren nach Anspruch 1, das des Weiteren, in dem HID-Quellengerät, Folgendes umfasst: Generieren von Ausgabedaten in Reaktion auf die Schnittstellendaten; und Einspeisen der Ausgabedaten in das HID-Senkengerät.
  5. Verfahren nach Anspruch 1, wobei das Konfigurieren des HID-Senkengerätes zum Erzeugen von Schnittstellendaten das Konfigurieren eines Datenzugriffsverfahrens umfasst.
  6. Verfahren nach Anspruch 5, wobei das Datenzugriffsverfahren ein Interrupt-gestütztes Datenzugriffsverfahren und/oder ein Polling-gestütztes Datenzugriffsverfahren und/oder ein verschachteltes Datenzugriffsverfahren umfasst.
  7. Verfahren nach Anspruch 1, wobei das Konfigurieren des HID-Senkengerätes zum Erzeugen von Schnittstellendaten und das Aktivieren des Datenmoduls eine einzelne Schreiboperation umfasst.
  8. Verfahren nach Anspruch 1, wobei das Empfangen der Schnittstellendaten das Erhalten der Schnittstellendaten aus mindestens einem Register des HID-Senkengerätes umfasst.
  9. Erzeugnis, das ein Computerprogrammprodukt umfasst, auf dem Instruktionen gespeichert sind, die, wenn sie ausgeführt werden, Folgendes veranlassen: in einem Bedienerschnittstellengerät (Human Interface Device, HID)-Quellengerät: Konfigurieren, über einen Hilfs (AUX)-Kanal, eines HID-Senkengerätes, Schnittstellendaten bereitzustellen, wobei das HID-Senkengerät ein Datenmodul enthält, um die Schnittstellendaten zu erzeugen; Aktivieren des Datenmoduls über den AUX-Kanal; und Empfangen der Schnittstellendaten über den AUX-Kanal wobei das Empfangen der Schnittstellendaten Folgendes umfasst: in dem HID-Quellengerät: Lesen eines Interrupt-Grundes; Lesen der Schnittstellendaten in Reaktion auf das Lesen des Interrupt-Grundes; und Löschen des Interrupt-Grundes; und/oder wobei das Empfangen der Schnittstellendaten Folgendes umfasst: in dem HID-Quellengerät: Anfordern eines Berichts; Abfragen einer Berichtsverfügbarkeitsmarkierung; Lesen der Schnittstellendaten in Reaktion auf das Detektieren der Berichtsverfügbarkeitsmarkierung, und Löschen der Berichtsverfügbarkeitsmarkierung.
  10. Erzeugnis nach Anspruch 9, wobei die Schnittstellendaten Mehrfachberührungsdaten umfassen.
  11. Erzeugnis nach Anspruch 9, wobei der AUX-Kanal einen schnellen Hilfs (F)AUX-Kanal umfasst.
  12. Erzeugnis nach Anspruch 9, das des Weiteren, in dem HID-Quellengerät, Folgendes umfasst: Generieren von Ausgabedaten in Reaktion auf die Schnittstellendaten; und Einspeisen der Ausgabedaten in das HID-Senkengerät.
  13. Erzeugnis nach Anspruch 9, wobei das Konfigurieren des Berührungssenkengerätes zum Erzeugen von Mehrfachberührungsdaten das Konfigurieren eines Datenzugriffsverfahrens umfasst.
  14. Erzeugnis nach Anspruch 9, wobei das Datenzugriffsverfahren ein Interrupt-gestütztes Datenzugriffsverfahren und/oder ein Polling-gestütztes Datenzugriffsverfahren und/oder ein verschachteltes Datenzugriffsverfahren umfasst.
  15. Erzeugnis nach Anspruch 9, wobei das Konfigurieren des HID-Senkengerätes zum Erzeugen von Schnittstellendaten und das Aktivieren des Datenmoduls eine einzelne Schreiboperation umfasst.
  16. Erzeugnis nach Anspruch 9, wobei das Empfangen der Schnittstellendaten das Erhalten der Schnittstellendaten aus mindestens einem Register des HID-Senkengerätes umfasst.
  17. Vorrichtung, die Folgendes umfasst: ein Bedienerschnittstellengerät (Human Interface Device, HID)-Senkengerät, das dazu eingerichtet ist, das Verfahren nach einem dem Ansprüche 1-8 auszuführen, wobei das HID-Senkengerät ein Datenmodul zum Erfassen von Schnittstellendaten enthält; und Logik in dem HID-Senkengerät zum Erzeugen der Schnittstellendaten und zum Signalisieren der Verfügbarkeit der Schnittstellendaten über einen Hilfs (AUX)-Kanal unter Verwendung eines Interrupts oder einer Markierung (Flag).
  18. Vorrichtung nach Anspruch 17, wobei das HID-Senkengerät des Weiteren mehrere Registerregionen umfasst.
  19. Vorrichtung nach Anspruch 18, wobei die Logik dazu dient, die Schnittstellendaten durch Speichern der Schnittstellendaten in dem mindestens einen der mehreren Registerregionen bereitzustellen.
  20. Vorrichtung nach Anspruch 18, wobei die Logik dazu dient, die Verfügbarkeit der Schnittstellendaten unter Verwendung der Markierung durch Setzen eines Bits in mindestens einer der mehreren Registerregionen zu signalisieren.
  21. Vorrichtung nach Anspruch 17, wobei die Logik dazu dient, die Schnittstellendaten in Reaktion auf die Konfiguration durch ein HID-Quellengerät bereitzustellen.
  22. System, das Folgendes umfasst: ein Bedienerschnittstellengerät (Human Interface Device, HID)-Senkengerät, das ein Datenmodul zum Erfassen von Schnittstellendaten enthält; und ein HID-Quellengerät, das kommunikativ mit dem HID-Senkengerät durch einen Hilfs (AUX)-Kanal gekoppelt ist, wobei das Berührungsquellengerät dafür geeignet ist, den AUX-Kanal für Folgendes zu verwenden: Konfigurieren des HID-Senkengerätes zum Erzeugen der Schnittstellendaten; Aktivieren des Datenmoduls; und Empfangen der Schnittstellendaten; wobei das Empfangen der Schnittstellendaten unter Verwendung des Interruptgestützten Datenzugriffsverfahrens beinhaltet, dass das HID-Quellengerät Folgendes ausführt: Lesen eines Interrupt-Grundes; Lesen der Schnittstellendaten in Reaktion auf das Lesen des Interrupt-Grundes; und Löschen des Interrupt-Grundes; und/oder wobei das Empfangen der Schnittstellendaten unter Verwendung des Polling-gestützten Datenzugriffsverfahrens beinhaltet, dass das HID-Quellengerät Folgendes ausführt: Anfordern eines Berichts; Abfragen einer Berichtsverfügbarkeitsmarkierung; Lesen der Schnittstellendaten in Reaktion auf das Detektieren der Berichtsverfügbarkeitsmarkierung, und Löschen der Berichtsverfügbarkeitsmarkierung.
  23. System nach Anspruch 22, wobei das HID-Quellengerät des Weiteren für Folgendes ausgelegt ist: Generieren von Ausgabedaten in Reaktion auf die Schnittstellendaten; und Einspeisen der Ausgabedaten in das HID-Senkengerät über den AUX-Kanal.
  24. System nach Anspruch 22, wobei das Konfigurieren des HID-Senkengerätes zum Erzeugen von Schnittstellendaten beinhaltet, dass das HID-Quellengerät ein Datenzugriffsverfahren konfiguriert, das ein Interrupt-gestütztes Datenzugriffsverfahren und/oder ein Polling-gestütztes Datenzugriffsverfahren und/oder ein verschachteltes Datenzugriffsverfahren umfasst.
DE112011105779.2T 2011-10-26 2011-12-16 Verfahren, vorrichtungen, systeme und computerprogrammprodukte für mehrfachberührungs-schnittstellenschemas Active DE112011105779B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161551712P 2011-10-26 2011-10-26
US61/551,712 2011-10-26
PCT/US2011/065447 WO2013062602A1 (en) 2011-10-26 2011-12-16 Multi-touch interface schemes

Publications (2)

Publication Number Publication Date
DE112011105779T5 DE112011105779T5 (de) 2014-08-07
DE112011105779B4 true DE112011105779B4 (de) 2023-08-03

Family

ID=48168264

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011105779.2T Active DE112011105779B4 (de) 2011-10-26 2011-12-16 Verfahren, vorrichtungen, systeme und computerprogrammprodukte für mehrfachberührungs-schnittstellenschemas

Country Status (7)

Country Link
US (1) US9262000B2 (de)
JP (1) JP2014534522A (de)
KR (2) KR101590820B1 (de)
CN (1) CN103890744B (de)
DE (1) DE112011105779B4 (de)
GB (1) GB2512214B (de)
WO (1) WO2013062602A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9262000B2 (en) 2011-10-26 2016-02-16 Intel Corporation Multi-touch interface schemes
CN102662514B (zh) * 2012-03-30 2017-03-29 中兴通讯股份有限公司 一种控制触摸屏的方法和移动终端
TW201441826A (zh) * 2013-04-26 2014-11-01 Wistron Corp 資料傳輸方法、觸控資料處理方法以及電子裝置
US9417726B2 (en) * 2013-04-29 2016-08-16 Intel Corporation Supporting keyboard and mouse over embedded displayport without using a universal serial bus
US9665186B2 (en) * 2014-03-19 2017-05-30 Toshiba Tec Kabushiki Kaisha Desktop information processing apparatus and control method for input device
KR20160098700A (ko) 2015-02-11 2016-08-19 삼성전자주식회사 멀티 터치 입력을 처리하기 위한 전자 장치 및 그 동작 방법
WO2016172233A1 (en) * 2015-04-20 2016-10-27 Wacom Co., Ltd. System and method for bidirectional communication between stylus and stylus sensor controller
KR102317897B1 (ko) 2015-06-04 2021-10-28 삼성디스플레이 주식회사 테스트 보드 및 그의 구동방법
CN105045548B (zh) * 2015-06-16 2018-12-25 广州视睿电子科技有限公司 一种无线传屏方法、扩展设备和无线传屏系统
JP6216909B1 (ja) * 2016-06-28 2017-10-18 株式会社ワコム シリアル通信方法及びセンサコントローラ
EP3477440A4 (de) * 2016-06-28 2020-01-29 Wacom Co., Ltd. Verfahren zur seriellen kommunikation und sensorsteuergerät
US11374623B2 (en) * 2020-05-27 2022-06-28 Qualcomm Incorporated Connected isochronous stream swapping

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110032006A1 (en) 2009-08-07 2011-02-10 Prashant Shamarao Bi-directional channel amplifier

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63175612A (ja) 1986-12-26 1988-07-20 ベロルススキ−、チエフノロギチエスキ−、インスチツ−ト、イメ−ニ、エス、エム、キ−ロワ 懸濁物を液相と固体粒子に分離する方法および装置
JPH0310363A (ja) * 1989-06-08 1991-01-17 Nippon Steel Corp 並列計算機における待ち時間設定方法
US5329625A (en) * 1992-04-15 1994-07-12 International Business Machines Corp. System to service processor interface for a tablet computer
JP2000259523A (ja) * 1999-03-09 2000-09-22 Fuji Xerox Co Ltd データ転送装置、lan通信システム及びデータ転送方法
JP3606145B2 (ja) * 1999-12-27 2005-01-05 セイコーエプソン株式会社 データ転送制御装置及び電子機器
CA2398798A1 (en) 2001-08-28 2003-02-28 Research In Motion Limited System and method for providing tactility for an lcd touchscreen
US8407347B2 (en) * 2004-11-19 2013-03-26 Xiao Qian Zhang Method of operating multiple input and output devices through a single computer
US7432916B2 (en) 2004-12-09 2008-10-07 Universal Electronics, Inc. Controlling device with dual-mode, touch-sensitive display
CN1664802A (zh) * 2005-03-30 2005-09-07 中国人民解放军国防科学技术大学 面向大规模并行系统的可程控中断控制方法
US7928964B2 (en) * 2005-04-22 2011-04-19 Microsoft Corporation Touch input data handling
JP4657116B2 (ja) * 2006-02-06 2011-03-23 アルパイン株式会社 表示装置、メニュー提供装置およびメニュー提供方法
US8190785B2 (en) * 2006-05-26 2012-05-29 Smart Technologies Ulc Plug-and-play device and method for enhancing features and settings in an interactive display system
US20080180412A1 (en) 2007-01-31 2008-07-31 Microsoft Corporation Dual mode digitizer
TWM321662U (en) 2007-02-14 2007-11-01 Inventec Appliances Corp Keyboard for mobile electronic device
US8063504B2 (en) * 2007-05-07 2011-11-22 Analogix Semiconductor, Inc. Systems and methods for powering circuits for a communications interface
JP4978373B2 (ja) * 2007-08-27 2012-07-18 富士電機株式会社 プログラマブルコントローラ、そのcpuモジュール
US8009147B2 (en) * 2007-09-27 2011-08-30 At&T Intellectual Property I, Lp Multi-touch interfaces for user authentication, partitioning, and external device control
JP4479776B2 (ja) * 2007-10-05 2010-06-09 ソニー株式会社 表示装置および送信装置
JP2010157820A (ja) * 2008-12-26 2010-07-15 Sharp Corp 制御システム、及び制御方法
US20100332373A1 (en) * 2009-02-26 2010-12-30 Jason Crabtree System and method for participation in energy-related markets
JP5218293B2 (ja) * 2009-06-22 2013-06-26 ソニー株式会社 情報処理装置、表示制御方法、およびプログラム
US8242803B2 (en) * 2009-06-26 2012-08-14 Broadcom Corporation HDMI and displayport dual mode transmitter
JP2011188230A (ja) * 2010-03-09 2011-09-22 Panasonic Corp 通信制御システム、シンク機器及び、ソース機器
US8842081B2 (en) * 2011-01-13 2014-09-23 Synaptics Incorporated Integrated display and touch system with displayport/embedded displayport interface
US9323698B2 (en) * 2011-09-22 2016-04-26 Synaptics Incorporated System and method for transmitting USB data over a DisplayPort transmission link
US9262000B2 (en) 2011-10-26 2016-02-16 Intel Corporation Multi-touch interface schemes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110032006A1 (en) 2009-08-07 2011-02-10 Prashant Shamarao Bi-directional channel amplifier

Also Published As

Publication number Publication date
US9262000B2 (en) 2016-02-16
WO2013062602A1 (en) 2013-05-02
GB2512214B (en) 2020-10-07
GB2512214A (en) 2014-09-24
KR20140089524A (ko) 2014-07-15
CN103890744B (zh) 2019-08-16
KR20150070436A (ko) 2015-06-24
KR101786277B1 (ko) 2017-10-17
CN103890744A (zh) 2014-06-25
JP2014534522A (ja) 2014-12-18
GB201406778D0 (en) 2014-05-28
DE112011105779T5 (de) 2014-08-07
US20140002399A1 (en) 2014-01-02
KR101590820B1 (ko) 2016-02-02

Similar Documents

Publication Publication Date Title
DE112011105779B4 (de) Verfahren, vorrichtungen, systeme und computerprogrammprodukte für mehrfachberührungs-schnittstellenschemas
DE112013007658B4 (de) Gemeinsame Speichernutzung über eine vereinheitlichte Speicherarchitektur
DE112013007780B3 (de) Vorrichtung, nicht flüchtiges, maschinenlesbares medium und verfahren zur gemeinsamen nutzung von virtuellem speicher
DE112011105901B4 (de) Verfahren und Vorrichtung zur Energieeinsparung für First In First Out (FIF0)-Speicher
DE102014117504A1 (de) Verwenden von Kontext zum Interpretieren von natürlichen Spracherkennungsbefehlen
DE102014010217A1 (de) Dynamische Informationsanpassung für ein Computergerät mit mehreren Leistungsmodi
DE112011105950T5 (de) Verfahren, Vorrichtung und System für erweiterte Grafikverarbeitung über einen externen E/A-Port für Anzeigedaten
DE102015001088A1 (de) Behandlung komprimierter Daten über verteilte Cache-Fabric
CN201655249U (zh) 用于led显示屏的一体化音视频控制器
CN205563550U (zh) 一种基于Microblaze软核的PS2接口的KVM模块
CN113253877B (zh) 电子白板系统及其控制方法
US10176133B2 (en) Smart device with no AP
CN204117025U (zh) 一种触摸显示系统的智能盒子
DE112011105994T9 (de) Techniken für die Ratenregelung eines Anzeigedatenstroms
CN201298340Y (zh) 显卡、包括所述显卡之可灵活伸缩的连接接口系统以及适配器
CN102279645A (zh) 一机多用户系统
CN204178290U (zh) 具备扩展功能的vtm机专用主板及vtm机专用主板系统
EP3345084A1 (de) Modifizierung von grafischen befehlstoken
CN205068314U (zh) 计算机切换装置
CN203773534U (zh) 远程虚拟机屏幕显示控制系统
DE102014111457A1 (de) Topologie und bandbreiten-management für i/0 und eingehende av
DE112011105951T5 (de) Auflösungsverlustminderung für 3D-Anzeigen
CN203070170U (zh) 一种带无线监测系统的显示器
US10168985B2 (en) Dynamic audio codec enumeration
CN205195893U (zh) 网络机顶盒

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division