DE102008047442A1 - Tastaturabfrage - Google Patents

Tastaturabfrage Download PDF

Info

Publication number
DE102008047442A1
DE102008047442A1 DE102008047442A DE102008047442A DE102008047442A1 DE 102008047442 A1 DE102008047442 A1 DE 102008047442A1 DE 102008047442 A DE102008047442 A DE 102008047442A DE 102008047442 A DE102008047442 A DE 102008047442A DE 102008047442 A1 DE102008047442 A1 DE 102008047442A1
Authority
DE
Germany
Prior art keywords
signal
line
lines
identified
row
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.)
Withdrawn
Application number
DE102008047442A
Other languages
English (en)
Inventor
Simon Siepmann
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102008047442A1 publication Critical patent/DE102008047442A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M11/00Coding in connection with keyboards or like devices, i.e. coding of the position of operated keys
    • H03M11/003Phantom keys detection and prevention
    • 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/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/0202Constructional details or processes of manufacture of the input device
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M11/00Coding in connection with keyboards or like devices, i.e. coding of the position of operated keys
    • H03M11/20Dynamic coding, i.e. by key scanning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

Es werden Verfahren, Vorrichtungen und computerlesbare Medien zum Abfragen einer Tastatur offenbart. Die Betätigung jeder der Tasten koppelt elektrisch eine einer Mehrzahl von ersten Leitungen und eine einer Mehrzahl von zweiten Leitungen. An eine Mehrzahl von ersten Leitungen wird ein erstes Signal angelegt. An eine Mehrzahl von zweiten Leitungen wird ein zweites Signal angelegt. Wenn identifiziert wird, daß mindestens eine der zweiten Leitungen ein von dem zweiten Signal verschiedenes Signal zeigt, wird ein Abfragesignal an die identifizierte zweite Leitung angelegt. Mindestens eine erste Leitung wird als ein Signal zeigend identifiziert, das anzeigt, daß sich die mindestens eine erste Leitung mit der das Abfragesignal anlegenden identifizierten zweiten Leitung in Kontakt befindet. Mindestens eine der Tasten wird als die Kopplung der identifizierten zweiten Leitung und der mindestens einen identifizierten ersten Leitung verursachend identifiziert.

Description

  • Eine häufig anzutreffende Art von Eingabegerät des Tastaturtyps (Keyboard-Typs) enthält eine Matrix von Signalleitungen, die in einer Reihe sich überlappender Zeilen und Spalten angeordnet sind. Die Zeilen und Spalten von Signalleitungen sind so positioniert, daß sie an mehreren Schnittpositionen nahe aneinander vorbeilaufen, wobei sich jede der Schnittpositionen unter einer Taste auf der Tastatur befindet. Die Betätigung einer Taste auf der Tastatur bewirkt, daß die Zeilenleitung und Spaltenleitung, die an der Schnittposition unter der Taste aneinander vorbeilaufen, miteinander in Kontakt kommen und somit einen durch die Zeilenleitung und die Spaltenleitung, die unter dieser Taste vorbeilaufen, gebildeten Schalter schließen. In kompakten Geräten enthält die Tastatur in der Regel zwei Mengen von Folienstreifen, die rechtwinklig zueinander ausgerichtet sind, so daß, wenn eine Tastatur betätigt wird, die sich schneidenden Folienstreifen zusammengedrückt werden, um so den Schalter an dem Schnittpunkt zu schließen.
  • Bei einem herkömmlichen Verfahren zum Abfragen einer solchen Tastatur wird sequentiell cm Signal an jede von einer der Mengen von Signalleitungen angelegt während die entgegengesetzte Menge von Signalleitungen gelesen wird, um zu bestimmen, welche Taste oder Tasten betätigt wurden. Zum Beispiel kann ein Signal in Form einer Spannung mit hohem Pegel, das eine binäre 1 darstellt, sequentiell an jede der Spaltenleitungen angelegt werden. Die Zeilenleitungen werden überwacht, um ein Signal zu erfassen, das anzeigt, daß eine oder mehrere der Zeilenleitungen das Signal mit hohem Pegel zeigen, wodurch angezeigt wird, daß diese Zeilenleitung elektrisch mit einer Spaltenleitung gekoppelt wurde, an die das Signal mit hohem Pegel angelegt worden ist. Durch ein Erfassen der Änderung auf einer der Zeilenleitungen und ein Bestimmen, an welche Spalte das Signal angelegt wurde, kann man bestimmen, welche Spaltenleitung und welche Zeilenleitung in Kontakt gekommen sind, um zu identifizieren, welche Taste betätigt wurde.
  • Herkömmliche Tastaturabfragen (Tastatur-Scann-Vorgänge) weisen jedoch Unzulänglichkeiten auf. Ein besonderes Problem bei batteriebetriebenen Geräten ist erstens, daß umso mehr beim Abfragen der Tastatur verbraucht wird, je länger ein Signal beim Identifizieren, welche Taste betätigt wird, angelegt werden muß. Wenn insbesondere mehrere Tasten gleichzeitig betätigt werden, verbrauchen sowohl der durch die gekoppelten Signalleitungen fließende Strom als auch der zum Versorgen des Tastaturabfragesystems verwendete Strom merklich Leistung. Zweitens können die an die Tastatur angelegten Signale zu unkontrollierten Kurzschlüssen führen. In kompakten Geräten, die eine Tastatur des Folientyps verwenden, können die in dichtem Abstand liegenden Folienstreifen kurzgeschlossen werden, wodurch sowohl Leistung verschwendet wird als auch falsche Tastenbetätigungssignale gegeben werden. Drittens kann die Betätigung einer Taste zu Signalübersprechen zwischen angrenzenden Leitungen führen, das zu einer falschen Identifikation führt, welche Taste oder Tasten betätigt wurden. Signalübersprechen tritt bei kompakten Tastaturen des Folientyps aufgrund der kurzen Distanzen zwischen den Zeilenleitungen und Spaltenleitungen im Gegensatz zu den relativ viel längeren Signalleitungen, die sie verbinden können, häufig auf.
  • Die Aufgabe der vorliegenden Erfindung besteht darin, ein Konzept für eine verbesserte Tastaturabfrage zu schaffen.
  • Diese Aufgabe wird durch ein Verfahren nach Anspruch 1, eine Vorrichtung nach Anspruch 9, ein Verfahren nach Anspruch 22 und ein Computerprogrammprodukt nach Ansprüche 23 und 24 gelöst.
  • Die vorliegende Erfindung schafft ein Verfahren bei dem ein erstes Signals an eine Mehrzahl erster Leitungen angelegt wird. Ein zweites Signal wird an eine Mehrzahl zweiter Leitungen angelegt. Mindestens einer der zweiten Leitungen wird als eine Leitung identifiziert, die ein von dem zweiten Signal verschiedenes Signal aufweist. Ein Abfragesignals wird an die identifizierte zweite Leitung angelegt und mindestens eine ersten Leitung, die ein Signal zeigt, das anzeigt, daß sich mindestens eine erste Leitung in Kontakt mit der identifizierten zweiten Leitung, an der das Abfragesignal angelegt ist, befindet, wird identifiziert, wobei mindestens eine der Mehrzahl von Tasten als die Kopplung der identifizierten zweiten Leitung und der mindestens einen identifizierten ersten Leitung verursachend identifizierbar ist
  • Bei einem Ausführungsbeispiel kann beim Identifizieren der mindestens einen zweiten Leitung für ein vorbestimmtes Intervall ein aktives ersten Signals an die ersten Leitungen, wobei das aktive erste Signal durch Koppeln der ersten Leitungen mit einer Quelle des ersten Signals angelegt wird, und ein aktives zweites Signals an die zweiten Leitungen angelegt werden, wobei das aktive zweite Signal durch Koppeln der zweiten Leitungen mit einer Quelle des zweiten Signals angelegt wird.
  • Beim Identifizieren der Mehrzahl zweiter Leitungen, die ein von dem zweiten Signal verschiedenes Signal zeigen, kann ferner cm Verfolgen von jeder identifizierten zweiten Leitungen durchgeführt werden. Das Verfolgen kann bei einem Ausführungsbeispiel ein Speichern einer Liste jeder der identifizierten zweiten Leitungen umfassen.
  • Ferner kann bei einem Ausführungsbeispiel für jede der Mehrzahl identifizierter zweiter Leitungen, eine nächste zweite Leitung, an die das Abfragesignal nicht angelegt wurde, identifiziert werden, wobei jede der Mehrzahl identifizierter zweiter Leitungen mit Ausnahme der nächsten identifizierten zweiten Leitung von der Quelle des zweiten Signals elektrisch entkoppelt werden. Das Abfragesignal wird daraufhin an die nächste zweite Leitung angelegt.
  • Das erste Signals kann erneut an jede der Mehrzahl erster Leitungen vor dem Anlegen des Abfragesignals an die nächste identifizierte zweite Leitung angelegt werden.
  • Bei einem Ausführungsbeispiel wird eine Tastenmaskierungssituation identifiziert, wobei zum Identifizieren der Tastenmaskierungssituation ein Bestimmen durchgeführt wird, ob mehr als eine der ersten Leitungen ein Signal zeigt, das einen Kontakt mit der identifizierten zweiten Leitung, an die das Abfragesignal angelegt ist, anzeigt. Wenn mehr als eine der ersten Leitungen ein Signal zeigen, das Kontakt mit der identifizierten zweiten Leitung, an die das Abfragesignal angelegt ist, anzeigt, wird ein Bestimmen durchgeführt, ob die Mehrzahl identifizierter zweiter Leitungen von der gespeicherten Liste der identifizierten zweiten Leitungen verschieden ist.
  • Ferner kann die Mehrzahl erster Leitungen eine Mehrzahl von Zeilenleitungen und die Mehrzahl zweiter Leitungen eine Mehrzahl von Spaltenleitungen sein oder alternativ die Mehrzahl von ersten Leitungen eine Mehrzahl von Spaltenleitungen und die Mehrzahl von zweiten Leitungen eine Mehrzahl von Zeilenleitungen sein.
  • Die Erfindung schafft auch ein Computerprogrammprodukt mit auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des obigen Verfahrens, wenn das Computerprogrammprodukt auf einem Rechner abläuft.
  • Die Erfindung schafft ferner eine Vorrichtung mit einem ersten Leitungstreiber, der eingerichtet ist, um ein erstes Signal an eine Mehrzahl von ersten Leitungen anzulegen, und einem zweiten Leitungstreiber, der eingerichtet ist, um ein zweites Signal an eine Mehrzahl von zweiten Leitungen anzulegen, die zweiten Leitungen zu überwachen und bei Erfassen eines von dem zweiten Signal verschiedenen Signals auf mindestens einer der Mehrzahl von zweiten Leitungen eine Abfrage einer Tastatur einzuleiten. Ferner kann die Vorrichtung eingerichtet sein, um ein Betätigen des ersten Leitungstreibers und des mindestens einen zweiten Leitungstreibers durchführen, um einen Kurzschluß für ein vorbestimmtes Intervall zu erzeugen, um ein Übersprechen zwischen beliebigen der Mehrzahl von ersten Leitungen und der Mehrzahl von zweiten Leitungen zu löschen. Darüberhinaus kann die Vorrichtung mindestens eine zweite Leitung, die ein von dem zweiten Signal verschiedenes Signal zeigt, identifizieren und ein Abfragesignals an die mindestens eine identifizierte zweite Leitung anlegen. Hierbei wird mindestens eine ersten Leitung, die ein Signal zeigt, das von dem ersten Signal verschieden ist, identifiziert wodurch angezeigt wird, daß sich die identifizierte zweite Leitung in elektrischem Kontakt mit der mindestens einen identifizierten ersten Leitung befindet, wobei eine Kombination der mindestens einen identifizierten zweiten Leitung und der mindestens einen identifizierten ersten Leitung anzeigt, daß mindestens eine Taste der Tastatur betätigt wurde. Das erste Signal kann ein Hochpegel-Spannungssignal und das zweite Signal ein Niedrigpegel-Spannungssignal sein oder das erste Signal kann einen Niedrigpegel-Spannungswert sein und das zweite Signal einen Niedrigpegel-Spannungssignal sein.
  • Ferner kann das erste Signal ein erstes aktives Signal umfassen, das konfiguriert ist, um durch Koppeln jeder der ersten Leitungen mit einer Spannungsquelle angelegt zu werden, wodurch das Hochpegel-Spannungssignal oder das Niedrigpegel-Spannungssignal gezeigt bzw. angelegt werden. Das zweite Signal kann ein zweites passives Signal umfassen, das durch widerstandsmäßiges Koppeln jeder der zweiten Leitungen mit einer Spannungsquelle, die zu derjenigen, die mit den ersten Leitungen gekoppelt ist, entgegengesetzt ist, angelegt wird. Umgekehrt, kann das erste Signal auch ein erstes passives Signal sein, das konfiguriert ist, um durch widerstandsmäßiges Koppeln jeder der ersten Leitungen mit einer das Hochpegel- Spannungssignal oder das Niedrigpegel-Spannungssignal zeigenden Spannungsquelle angelegt zu werden und das zweite Signal ein aktives zweites Signal sein, das durch Koppeln jeder der zweiten Leitungen mit einer Spannungsquelle, die zu derjenigen die mit den ersten Leitungen gekoppelt ist, entgegengesetzt ist, angelegt wird.
  • Das Abfragesignal kann bei Ausführungsbeispielen einen Pegel umfassen, der derselbe wie das zweite Signal ist. Bei einem Ausführungsbeispiel ist das Abfragesignal ein passives Signal, wenn das zweite Signal ein aktives Signal ist. Alternativ kann das Abfragesignal auch ein aktives Signal sein, wenn das zweite Signal ein passives Signal ist.
  • Die Vorrichtung kann auch eingerichtet sein, um ein aktives erstes Signals an die ersten Leitungen anzulegen und ein aktives zweites Signals an die zweiten Leitungen anzulegen. Dabei kann das Abfragesignal ein Signal umfassen, das einen gleichen Spannungspegel wie ein zweites Signal aufweist. Hierbei kann ein aktives Abfragesignal angelegt werden, wenn das erste Signal das erste aktive Signal aufweist oder ein passives Abfragesignal angelegt werden, wenn das erste Signal das erste passive Signal aufweist.
  • Die Vorrichtung kann auch dafür eingerichtet sein, beim Anlegen des Abfragesignals an die identifizierte zweite Leitung das erste Signal von den ersten Leitungen zu nehmen. Die Vorrichtung kann ferner eingerichtet sein, um beim Identifizieren einer Mehrzahl von zweiten Leitungen, die ein von dem zweiten Signal verschiedenes Signal zeigen, jede der Mehrzahl von identifizierten zweiten Leitungen zu verfolgen. Eine Speichereinrichtung kann vorgesehen sein, um jede der Mehrzahl von identifizierten zweiten Leitungen zu verfolgen. Die Vorrichtung kann auch dafür vorgesehen sein, um für jede der Mehrzahl von identifizierten zweiten Leitungen eine nächste identifizierte zweiten Leitung zu identifizieren, an die das Abfragesignal nicht angelegt wurde und jede der Mehrzahl von identifizierten zweiten Leitungen außer der nächsten identifizierten zweiten Leitung von einer Quelle des zweiten Signals elektrisch zu entkoppeln. Hierbei wird das Abfragesignal an die nächste identifizierte zweite Leitung angelegt. Die Vorrichtung kann auch dafür eingerichtet sein, um die erste Spannung vor dem Anlegen des Abfragesignals an die nächste identifizierte zweite Leitung neu an jede der Mehrzahl von ersten Leitungen anzulegen.
  • Die Vorrichtung kann ferner einen Tastenmaskierungserfassungsmechanismus aufweisen, wobei der Tastenmaskierungserfassungsmechanismus eingerichtet ist, um zu bestimmen, ob mehr als eine der ersten Leitungen ein Signal zeigen, das einen Kontakt mit der das Abfragesignal anlegenden identifizierten zweiten Leitung anzeigt, und – wenn mehr als eine der ersten Leitungen ein Signal zeigen, das einen Kontakt mit der das Abfolgesignal anlegenden identifizierten zweiten Leitung anzeigt – zu bestimmen, ob die Mehrzahl von identifizierten zweiten Leitungen von der gespeicherten Liste der identifizierten zweiten Leitungen verschieden ist. Die Mehrzahl erster Leitungen kann eine Mehrzahl von Zeilenleitungen und die Mehrzahl zweiter Leitungen eine Mehrzahl von Spaltenleitungen sein. Alternativ kann die Mehrzahl von ersten Leitungen eine Mehrzahl von Spaltenleitungen und die Mehrzahl von zweiten Leitungen eine Mehrzahl von Zeilenleitungen sein.
  • Die Erfindung schafft ferner ein Verfahren mit den Schritten eines Identifizierens einer ersten Leitung als eine Leitung, die ein erstes Signal zeigt, das von einem zweiten Signal verschieden ist, das auf mindestens einer anderen mit der ersten Leitung assoziierten Leitung vorliegt, eines Anlegens eines Abfragesignals an die identifizierte erste Leitung und eines Identifizierens mindestens einer zweiten Leitung, die ein Signal zeigt, das anzeigt, daß sich die mindestens eine zweite Leitung in Kontakt mit der ersten Leitung befindet, an die das Abfragesignal angelegt ist, wobei mindestens eine einer Mehrzahl von Tasten als die Taste identifizierbar ist, die die Kopplung der identifizierten zweiten Leitung und der mindestens einen identifizierten ersten Leitung verursacht.
  • Die Erfindung schafft auch ein Computerprogrammprodukt mit auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des obigen Verfahrens, wenn das Computerprogrammprodukt auf einem Rechner abläuft.
  • Weitere Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend unter Bezugnahme auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein Blockdiagramm eines für eine Implementierung der Tastaturabfrage ausgelegten Tastatursystems.
  • 29 Blockdiagramme eines Tastatursystems, die den Betrieb einer Implementierung einer Tastaturabfrage abbilden.
  • 1015 Blockdiagramme eines Tastatursystems, die den Betrieb einer Implementierung einer für das Identifizieren von Schlüsselmaskierungssituationen ausgelegten Tastaturabfrage abbilden.
  • 16 ein Flußdiagramm einer Implementierung einer Tastaturabfrage.
  • 17 ein Blockdiagramm eines Vielzweck-Datenverarbeitungssystems, das betreibbar ist, um eine Implementierung einer Tastaturabfrage zu unterstützen und zu nutzen.
  • In den Zeichnungen beziehen sich die erste Stelle in dreistelligen Bezugszahlen und die ersten zwei Stellen in vierstelligen Bezugszahlen auf die Figur, in denen das betreffende Element zuerst erscheint.
  • Verschiedene Ausführungsformen der vorliegenden Offenbarung werden ausführlicher mit Bezug auf die Zeichnungen beschrieben, in denen gleiche Bezugszeichen in allen der mehreren Ansichten gleiche Teile und Baugruppen bezeichnen.
  • Kurz gefaßt, betrifft die vorliegende Offenbarung Verfahren, computerlesbare Speichermedien und Vorrichtungen zum Abtasten bzw. Abfragen (Scannen) einer Tastatur (Keyboards). Die Betätigung jeder der Tasten koppelt elektrisch eine von mehreren ersten Leitungen und eine von mehreren zweiten Leitungen. An mehrere erste Leitungen wird ein erstes Signal angelegt. An mehrere zweite Leitungen wird ein zweites Signal angelegt. Bei Identifizierung mindestens einer der zweiten Leitungen als eine Leitung, die ein von dem zweiten Signal verschiedenes Signal zeigt, wird ein Abtastsignal bzw. Abfragesignal (Scannsignal) an die identifizierte zweite Leitung angelegt. Mindestens eine erste Leitung wird als eine Leitung identifiziert, die ein Signal zeigt, das anzeigt, daß sich mindestens eine erste Leitung in Kontakt mit der identifizierten zweiten Leitung befindet, die das Abfragesignal anlegt. Es wird mindestens eine der Tasten als eine Taste identifiziert, die die Kopplung der identifizierten zweiten Leitung und der mindestens einen identifizierten ersten Leitung verursacht.
  • In der Abfragesequenz wird ein Kurzschluß kurzer Dauer verwendet, um Signalübersprechen zu löschen. Dann wird das zweite Signal erneut an die zweiten Signalleitungen angelegt und für jede der zweiten Signalleitungen ein erfasster Signalwert bestimmt. Jede der zweiten Signalleitungen, für die ein erfasster Wert von dem zweiten Signal verschieden ist, wird als eine Leitung identifiziert, in der mindestens eine Taste betätigt ist, und die identifizierten zweiten Leitungen werden für eine individuelle Abfrage designiert.
  • Tastaturabfragesystem zur Implementierung einer Tastaturabfrage
  • 1 ist ein Blockdiagramm eines Tastatursystems 100, das dafür ausgelegt ist, eine Implementierung des Tastaturabfragens zu verwenden. Das Tastatursystem 100 enthält eine Tastatur 110, die zum Beispiel eine Tastatur des Folienkontakttyps wie zuvor beschrieben enthalten kann, die in vielen elektronischen Geräten benutzt wird. Die Tastatur 110 enthält mehrere Tasten 115, mehrere erste Leitungen 120, die in Spalten gezeigt sind, und mehrere zweite Leitungen 130, die in Zeilen gezeigt sind. Wie zuvor beschrieben, führt die Betätigung einer der Tasten 115 dazu, daß eine elektrischer Kontakt zwischen einer jeweiligen ersten Leitung 120 und einer jeweiligen zweiten Leitung 130, die sich an dieser Taste schneiden, hergestellt wird.
  • Die ersten Leitungen 120 sind mit einer Menge erster Leitungstreiber 140 gekoppelt. Die ersten Leitungstreiber 140 können als eine einzige Treiberschaltung implementiert sein, oder wie in 1 gezeigt als mehrere individuelle erste Leitungstreiber 142150. Auf die gleiche Weise sind die zweiten Leitungen 130 mit einer Menge zweiter Leitungstreiber 160 gekoppelt. Die zweiten Leitungstreiber 160 können ebenso als eine einzige Treiberschaltung oder als mehrere individuelle zweite Leitungstreiber 162174 implementiert sein. Als weitere Alternative können die ersten Leitungstreiber 140 und die zweiten Leitungstreiber 160 als eine einzige Treiberschaltung oder als Teil eines integrierten Steuersystems implementiert werden. Ungeachtet der Art und Weise der Implementierung der Leitungstreiber 140 und 160 werden die Leitungstreiber 140 und 160 beide dazu verwendet, Signalwerte an die Leitungen 120 und 130 anzulegen und Signalwerte aus ihnen zu lesen, um zu bestimmen, welche Taste oder Tasten 115 betätigt wurden.
  • Ein Steuersystem 180 dient zur Steuerung des Betriebs der Leitungstreiber 140 und 160 sowie des Lesens der Daten aus den Leitungstreibern 140 und 160. Das Steuersystem 180 ist unter Verwendung von Mehrbit-Steuerleitungen oder -steuerbussen 185 mit den Leitungstreibern 140 und 160 gekoppelt. Das Steuersystem 180 bestimmt, welche Signale an jede der Leitungen 114 und 116 der Tastatur 110 angelegt werden, und liest, welche Signale an jeder der Leitungen 120 und 130 empfangen werden.
  • Das Steuersystem 180 kann als eine anwendungsspezifische integrierte Schaltung (ASIC), als ein Mikroprozessor oder Mikrocomputer, der programmierte Anweisungen ausführt, oder unter Verwendung anderer Arten von Steuerschaltkreisen implementiert werden. Zusätzlich können die Leitungstreiber 140 und 160 und die Steuerleitungen 185 mit dem Steuersystem 180 integriert werden, um eine einzige Anordnung zu bilden, die betreibbar ist, um die Leitungen 120 und 130 zum Abfragen der Tastatur 110 zu betätigen.
  • Bei einer Implementierung umfaßt das Steuersystem 180 einen Speicher 190 zum Speichern von aus den Leitungstreibern 140 und 160 gelesenen Signalwerten. Wie mit Bezug auf 215 ausführlicher beschrieben werden wird, kann der Speicher 190 dazu verwendet werden, Daten zu speichern, die angeben, wenn eine der Mengen von Leitungen 120 und 130 ein Signal empfangt, wodurch angezeigt wird, daß eine oder mehrere der mit den Leitungen 120 und 130 assoziierten Tasten 115 betätigt wurden. Wie mit Bezug auf 10-15 beschrieben, kann der Speicher 190 beim Erfassen von Tastenmaskierungssituationen verwendet werden. Der Speicher 190 könnte wie in 1 gezeigt in dem Steuersystem 180, als separate Vorrichtung oder als Teil der Leitungstreiber 140 und 160 vorgesehen sein.
  • Die in 1 gezeigten Vorrichtungen sind mit einer (nicht gezeigten) Leistungsquelle bzw. Strom/Spannungsquelle gekoppelt. Die Leistungsquelle ist dafür konfiguriert, eine Spannungsquelle mit hohem Pegel und eine Spannungsquelle mit niedrigem Pegel zur Bereitstellung des Betriebsstroms für die Vorrichtungen bereitzustellen. Die Spannungsquelle mit hohem Pegel und die Spannungsquelle mit niedrigem Pegel stellen außerdem eine Quelle für an die Leitungen 120 und 130 beim Abfragen der Tastatur 110 anzulegende Signale bereit, wie es später beschrieben werden wird. Außerdem wird das Steuersystem 180 mit einer (in 1 nicht gezeigten) Vorrichtung gekoppelt sein, die Eingaben von der Tastatur 110 empfangt. Alternativ können das Steuersystem 180 und andere Vorrichtungen, wie etwa die Leitungstreiber 140 und 160, mit denen das Steuersystem 180 kommuniziert, in ein Rechensystem bzw. Datenverarbeitungssystem oder ein anderes elektronisches Gerät integriert werden, mit dem die Tastatur 110 assoziiert wird. Anders ausgedrückt, sind Implementierungen der Tastaturabfrage nicht auf eine oder mehrere spezifische Hardwareimplementierungen beschränkt. Statt dessen kann die Tastaturabfrage durch ein beliebiges System implementiert werden, das betreibbar ist, um die nachfolgend beschriebenen Maßnahmen auszuführen.
  • Betriebsbeispiel für eine Tastaturabfrage
  • 215 sind Blockdiagramme eines Tastatursystems, die den Betrieb einer Implementierung einer Tastaturabfrage abbilden. Das Keyboardsystem 200 enthält mehrere Tasten 202, die in einer Matrix von Zeilen und Spalten angeordnet sind. Jede der Tasten 202 befindet sich in einer bestimmten Zeile und in einer bestimmten Spalte. Zu diesem Zweck ist jeder der Tasten 202 mit einer zweistelligen Kennzeichnung etikettiert, um darzustellen, in welcher Zeile und in welcher Spalte sie angeordnet ist. Zum Beispiel befindet sich Taste 4-5 204 in der vierten Zeile und fünften Spalte der Tastatur 200. Entsprechend befindet sich die Taste 3-1 206 204 in der dritten Zeile und ersten Spalte der Tastatur 200, während sich die Taste 2-4 208 in der zweiten Zeile und vierten Spalte der Tastatur 200 befindet.
  • Jede der Spaltenleitungen 210218 (Spalten) und jede der Zeilenleitungen 250258 ist mit einem von mehreren Spaltentreibern 220228 bzw. Zeilentreibern 260268 assoziiert, wobei jeder der Treiber 220228 und 260268 ebenso wie zuvor beschrieben in kombinierten Schaltkreisen implementiert werden könnte. Jeder der Spaltentreiber 220228 und Zeilentreiber 260268 umfaßt einen Ausgangsabschnitt (Ausgabeabschnitt) 230238 und 270278 und einen Eingangsabschnitt (Eingabeabschnitt) 240248 und 280288. Jeder der Ausgangsabschnitte 230238 und 270278 steuert, welches Quellensignal an die Leitung angelegt wird, mit der er gekoppelt ist. Das angelegte Quellensignal kann ein Signal mit aktivem Hochpegel oder ein Signal mit aktivem Niedrigpegel umfassen, die durch Koppeln der jeweiligen Leitungen mit einer Spannungsquelle eines hohen bzw. niedrigen Pegels erzeugt werden. Als Alternative kann das angelegte Quellensignal ein passives Hochpegelsignal umfassen, das durch Koppeln der jeweiligen Leitung mit einem Hochpegelsignal über einen (in den Figuren nicht gezeigten) „Pullup-Widerstand" erzeugt wird, oder ein passives Niedrigpegelsignal, das durch Koppeln der jeweiligen Leitung mit einem Niedrigpegelsignal über einen (in den Figuren ebenso nicht gezeigten) „Pulldown-Widerstand" erzeugt wird. Die Eingangsabschnitte 240248 und 280288 dienen zum Lesen eines auf einer Leitung vorliegenden Signals, wie später weiter beschrieben werden wird.
  • Bei Implementierungen der Tastaturabfrage können die Ausgangsabschnitte 270278 und die Eingangsabschnitte 280288 der Zeilentreiber 260268 beide gleichzeitig benutzt werden oder auch nicht, und die Ausgangsabschnitte 230238 und die Eingangsabschnitte 270278 der Spaltentreiber 220228 können beide gleichzeitig benutzt werden oder auch nicht. Genauer gesagt können wie in dem obigen Beispiel beschrieben die Ausgangsabschnitte 230238 der Spaltentreiber 220228 verwendet werden, um ein Signal mit aktivem Hochpegel an jede der Spaltenleitungen 210218 anzulegen, um ein Quellensignal an die Spaltenleitungen 210218 anzulegen. Um zu bestimmen, ob irgendeine der Tasten 202 betätigt worden ist, legen die Ausgangsabschnitte 270278 der Zeilentreiber 260268 ein passives Niedrigpegelsignal an jede der Zeilenleitungen 250258 an, wie zum Beispiel durch Koppeln der Zeilenleitungen 250258 mit einem Niedrigpegelsignal mit einem Pulldown-Widerstand. Gleichzeitig überwachen die Eingangsabschnitte 280288 der Zeilentreiber 260268 auf den Zeilenleitungen 250258 erfasste Signale, um zu erfassen, ob eine Taste betätigt wurde.
  • Um ein spezifisches Beispiel zu nehmen, wird angenommen, daß eine Betätigung der Taste 4-5 204 bevorsteht. Der Ausgang 238 der Spalte 5 des Treibers 228 der Spalte 5 legt ein aktives Hochpegelsignal an die Spaltenleitung 5 218 an. Gleichzeitig legt der Ausgang 276 der Zeile 4 des Treibers 286 der Zeile 4 ein passives Niedrigpegelsignal an die Zeilenleitung 4 256 an. Wenn die Taste 4-5 204 betätigt wird (was durch die die Taste 4-5 204 einkreisende gestrichelte Linie angegeben wird), wird die Spaltenleitung 5 218 elektrisch mit der Zeilenleitung 4 256 gekoppelt. Das an die Spaltenleitung 5 218 angelegte aktive Hochpegelsignal wird dann an die Zeilenleitung 4 256 angelegt, wodurch der Spannungspegel auf der Zeilenleitung 4 256 angehoben wird. Der Eingang 286 der Zeile 4 erfasst die Spannungsänderung. Somit können die Ausgangsabschnitte 230238 und 270278 und die Eingangsabschnitte 240248 und 280288 für mindestens einen Teil der Mengen von Leitungen 210218 und 250258 gleichzeitig benutzt werden.
  • Das Tastatursystem 200 enthält außerdem mindestens eine Speichervorrichtung, die in diesem Beispiel eine Zeilenspeichervorrichtung 290 ist, die Zeilenregister 292299 enthält. Wenn auf der Zeilenleitung 4 256 eine Spannungspegeländerung erfasst wird, wird wie weiter unten mit Bezug auf 5 erläutert dieser Umstand gespeichert, um anzuzeigen, daß die Zeilenleitung 4 256 abgefragt werden sollte. Um diese Informationen zu speichern, kann in dem Register 298 der Zeile 4 ein Statusbit auf ein Signal mit hohem Pegel oder eine binäre 1 gesetzt werden. Bei einer Implementierung ist der in jedem der Zeilenregister 292299 gespeicherte Wert anfänglich eine binäre 0, und die Werte werden in eine binäre 1 umgeändert, wenn eine Tastenbetätigung auf der jeweiligen Zeilenleitung erfasst wird. Als Alternative könnte eine binäre 1 als der Anfangswert verwendet werden und mit einer binären 0 signalisiert werden, daß eine Taste in einer Zeilenleitung betätigt worden ist. Wie später mit Bezug auf 10-15 erläutert werden wird, kann der Zeilenspeicher 290 auch bei der Bestimmung verwendet werden, wann eine Tastenmaskierungssituation vorliegt, die ein unbestimmtes Abtastergebnis erzeugen und/oder vorschreiben kann, daß eine neue Abfrage angemessen ist.
  • 29 zeigen ein spezifisches Beispiel, bei dem zwei Tasten gleichzeitig betätigt werden. Implementierungen der Tastaturabfrage sind funktional, um die Betätigung einer einzigen Taste zu identifizieren. Das Beispiel der Betätigung zweier Tasten zeigt jedoch Vorteile von Implementierungen der hier offenbarten Tastaturabfrage auf. Implementierungen der Tastaturabfrage identifizieren genau die Tasten, die betätigt werden, verringern den Stromverbrauch, überwinden die Auswirkungen von Signalübersprechen und vermeiden in dem Tastatursystem entstehende unkontrollierte Kurzschlüsse.
  • 3 zeigt eine Anfangsphase eines Tastatursystems 300, bevor irgendwelche der Tasten 302 betätigt wurden. In diesem Beispiel werden die Spaltenleitungen 310318 verwendet, um Signale zu senden, während die Zeilenleitungen 350358 verwendet werden, um Signale zu empfangen, um zu bestimmen, wann eine oder mehrere der Tasten 302 betätigt wurden. In dem Tastatursystem 300 liegen zum Beispiel die Ausgangsabschnitte 330338 der Spaltentreiber 320328 ein Hochpegelsignal an die Spaltenleitungen 310318 an. Die Eingangsabschnitte 340348 müssen während dieser Anfangsphase nicht verwendet werden, weil der Spannungspegel auf den Spaltenleitungen 310318 bekannt ist. Dessen ungeachtet lesen sie jedoch wie in 3 gezeigt unter Verwendung der Eingangsabschnitte 340348 ein Hochpegelsignal auf den Spaltenleitungen 310318 entsprechend den durch die Ausgangsabschnitte 330338 angelegten Hochpegelsignalen.
  • In den Zeilentreibern 360368 werden die Ausgangsabschnitte 370378 dafür eingerichtet, ein passives Niedrigpegelsignal an die Zeilenleitungen 350358 anzulegen. Durch Anlegen eines passiven Niedrigpegelsignals an die Zeilenleitungen 350358, während ein aktives Hochpegelsignal an die Spaltenleitungen 310318 angelegt wird, wird dem aus der Betätigung einer oder mehrerer der Tasten 302 resultierenden Kurzschluß teilweise widerstanden. Der Pulldown-Widerstand zwischen der an die Zeilenleitungen 350358 angelegten Niedrigpegelquelle behindert den Stromfluß aus der Hochpegelsignalquelle zu der Niedrigpegelsignalquelle, was im Vergleich zu einem durch Koppeln zweier aktiver, aber entgegengesetzter Signale verursachten Kurzschluß zu einem verringertem Leistungsverbrauch führt. Die Eingangsabschnitte 380388 der Zeilentreiber 360368 lesen, daß jede der Zeilenleitungen 350358 ein Niedrigpegelsignal zeigt, wodurch widergegeben wird, daß passive Niedrigpegelsignale durch die Ausgangsabschnitte 370378 der Zeilentreiber 360368 an jede der Zeilenleitungen 350358 angelegt sind.
  • 4 zeigt ein Tastatursystem 400 in einer Situation, die in dem Moment entsteht, in dem zwei der Tasten 402, darunter die Taste 3-1 406 und die Taste 2-4 408, betätigt wurden. Die Betätigung der Tasten 3-1 406 und 2-4 408 wird durch den gestrichelten Kreis angegeben, der die Tasten 404 und 408 umkreist. Wenn mehrere Tasten betätigt werden, können herkömmliche Systeme Schwierigkeiten bekommen, genau zu identifizieren, welche Tasten betätigt wurden, und das Betätigen mehrerer Tasten kann als Folge der Kurzschlüsse zu einer merklichen Stromentnahme führen.
  • In dem in 4 gezeigten Tastatursystem 400 legen die Ausgangsabschnitte 430438 der Spaltentreiber 420428 weiter ein aktives Hochpegelsignal an die Spaltenleitungen 410318 an. Das Betätigen der Taste 2-4 408 und der Taste 3-1 406 bewirkt, daß die von der Spaltenleitung 1 410 und der Spaltenleitung 4 416 geführten aktiven Hochpegelsignale elektrisch an die Zeilenleitung 3 454 bzw. die Zeilenleitung 2 452 angelegt werden. Als Folge erfassen Eingang 482 der Zeile 2 des Treibers 462 der Zeile 2 und Eingang 484 der Zeile 3 des Treibers 464 der Zeile 3 nun Spannungspegel, die von den durch Ausgang 472 der Zeile 2 des Treibers 462 der Zeile 2 und Ausgang 474 der Zeile 3 des Treibers 466 des Zeile 3 angelegten Pegeln verschieden sind. Der Eingang 480 der Zeile 1, der Eingang 486 der Zeile 4 und der Eingang 488 der Zeile 5 lesen dagegen weiter dieselben Signale, die durch Ausgang 470 der Zeile 1, Ausgang 476 der Zeile 4 bzw. Ausgang 478 der Zeile 5 angelegt werden. Bei einer Implementierung leitet das Lesen verschiedener Signale auf den Zeilenleitungen 450458 oder eine Änderung des auf beliebigen der Zeilenleitungen 450458 gelesenen Signals die Tastaturabfrage ein. Die Signale, die auf den Zeilenleitungen 450458 in dem Moment nach dem Betätigen einer oder mehrerer Tasten gelesen werden, können jedoch nicht genau anzeigen, auf welcher der Zeilenleitungen 450458 Tasten betätigt wurden.
  • Die Signale, die auf den anderen Zeilenleitungen durch Eingang 480 der Zeile 1 des Treibers 460 der Zeile 1, Eingang 486 der Zeile 4 des Treibers 466 der Zeile 4 und Eingang 488 der Zeile 5 des Treibers 468 der Zeile 5 erfasst werden, würden sich im Idealfall nicht indem, weil in diesen Zeilen keine Tasten betätigt wurden. Teilweise aufgrund des relativ langsamen Ansprechens, das sich aus der Verwendung von Pulldown-Widerständen auf den Zeilenleitungen 450458 ergibt, kann sich jedoch ein Signalübersprechen zwischen den Zeilenleitungen 450458 aufgrund der Betätigung der Taste 2-4 408 und der Taste 3-1 406 ergeben. Die auf der Zeilenleitung 2 452 und der Zeilenleitung 3 454, die durch einen Pulldown-Widerstand durch Ausgang 472 der Zeile 2 bzw. Ausgang 474 der Zeile 3 mit einem Niedrigpegelsignal gekoppelt werden, stattfindenden Signaländerungen können dazu führen, daß Eingang 480 der Zeile 1, Eingang 486 der Zeile 4 und Eingang 488 der Zeile 5 ein unbestimmtes Signal zeigen. Es wäre nicht wünschenswert, in dem Zeilenspeicher 490 die Signalwerte aufzuzeichnen, die von den Zeileneingängen 480488 gelesen werden, die mit jeder der Zeilenleitungen 450458 assoziiert sind. Eingang 482 der Zeile 2 und Eingang 484 der Zeile 3 würden genau ein Hochpegelsignal lesen, das anzeigt, daß eine Taste betätigt wurde, und es würden genaue Signale in dem Register 494 der Zeile 2 und dem Register 496 der Zeile 3 aufgezeichnet. Wie in 4 gezeigt, würden das Register 492 der Zeile 1, das Register 498 der Zeile 4 und das Register 499 der Zeile 5 jedoch Ergebnisse speichern, die unbestimmt oder ungenau wären.
  • Mit der Zeit würden sich die auf den Zeilenleitungen 450458 durch die Zeileneingänge 480488 gelesenen Signale stabilisieren, wobei Eingang 482 der Zeile 2 und Eingang 484 der Zeile 3 jeweils ein Hochpegelsignal lesen, während Eingang 480 der Zeile 1, Eingang 486 der Zeile 4 und Eingang 488 der Zeile 5 ein Niedrigpegelsignal lesen würden. Nachdem eine ausreichende Zeit vergangen ist, würde das Signalübersprechen durch die mit den Zeilenleitungen 450458 gekoppelten Pulldown-Widerstände entladen. Da jedoch Leistung durch die Tastaturabfrage verbraucht und zwischen der Hochpegelquelle und der Niedrigpegelquelle entnommen wird und weil eine schnelle Tastaturabfrage gewünscht ist, ist es nicht wünschenswert, darauf zu warten, bis sich die Signale auf den Zeilenleitungen 450458 stabilisieren. Es könnte Millisekunden oder länger dauern, bis sich das Signalübersprechen löscht. Wenn das Signalübersprechen schnell entladen werden könnte, könnte jedoch eine gesamte Tastaturabfrage in geringerer Zeit abgeschlossen werden, verglichen mit der Zeit, die es dauern würde, bis sich das Signalübersprechen entlädt.
  • 5 zeigt ein Tastatursystem 500, das als Reaktion auf die Betätigung der Taste 3-1 506 und der Taste 2-4 508 (eine Implementierung der Tastaturabfrage) einen kurzen Kurzschluß erzeugt, um potentielles Signalübersprechen zwischen den Spaltenleitungen 510518 und den Zeilenleitungen 550558 schnell zu löschen. Bei einer Implementierung wird Signalübersprechen gelöscht, indem entgegengesetzte aktive Signale an die Zeilenleitungen und Spaltenleitungen angelegt werden, um etwaige Sekundärspannungen zu entladen, die sich aus einem Übersprechen zwischen den Signalleitungen ergeben. Die Beseitigung des Signalübersprechens stellt sicher, daß das Tastatursystem 500 die Betätigung irgendwelcher der Tasten 502 nicht falsch signalisiert.
  • Bei einer in 5 gezeigten Implementierung wird Signalübersprechen gelöscht, indem durch die Ausgangsabschnitte 570578 der Zeilentreiber 560568 ein aktives Niedrigpegelsignal an die Zeilenleitungen 550558 angelegt wird, während das durch die Ausgangsabschnitte 530538 der Spaltentreiber 520528 an die Spaltenleitungen 510518 angelegte aktive Hochpegelsignal aufrechterhalten wird. Das Anlegen entgegengesetzter aktiver Signale auf den Spaltenleitungen 510518 und den Zeilenleitungen 550558 erzeugt einen Kurzschluß zwischen der Spaltenleitung 4 516 und der Zeilenleitung 2 552 als Folge der Betätigung der Taste 2-4 508 und einen weiteren Kurzschluß zwischen der Spaltenleitung 1 510 und der Zeilenleitung 3 554 als Folge der Betätigung der Taste 3-1 506. Der durch Anlegen des aktiven Niedrigpegelsignals an die Ausgangsabschnitte 570578 der Zeilentreiber 560568 erzeugte Kurzschluß entlädt jegliches Signalübersprechen. Die Ausgangsabschnitte 570578 der Zeilentreiber 560568 brauchen das aktive Niedrigpegelsignal nur für eine sehr kurze Zeitspanne an die Zeilenleitungen 550558 anzulegen, wodurch verhindert wird, daß der Kurzschluß unnötigerweise Strom verbraucht.
  • Abhängig von den verwendeten Vorrichtungen kann zum Beispiel eine Zeitspanne in der Größenordnung von 50 bis 200 Nanosekunden eine geeignete Dauer für das Anlegen des Kurzschlusses sein. Solche Zeitdauern reichen aus, um das Signalübersprechen zu löschen und somit Signale zu beseitigen, die falsch die Betätigung einer Taste anzeigen könnten, und sind dabei kurz genug, um keine merkliche Leistung zu verbrauchen. Solche Dauern sind darüber hinaus ohne weiteres unter Verwendung verschiedener Hardwareimplementierungen praktisch implementierbar.
  • Bei einer Implementierung wird das Anlegen des Kurzschlusses zum Löschen des Signalübersprechens durch eine Steuerungsanweisung erreicht, die bewirkt, daß aktive Hochpegel- und aktive Niedrigpegelsignale an die jeweiligen Leitungen angelegt werden. Zu diesem Zweck kann eine C-Codeanweisung auf Microcontrollern verwendet werden, die die C-Codeanweisung oder eine ähnliche Anweisung zum Schreiben eines Signalwert auf die Leitung erkennen können. Eine nächste Anweisung wird verwendet, um den Kurzschluß aufzulösen. Bei einer Implementierung wird der Kurzschluß somit für die Zeitspanne zwischen zwei Steuerungsanweisungen angelegt. Wenn zum Beispiel insbesondere die Microcontroller mit einer Kernfrequenz von 10 MHz arbeitet und eine Anweisung fünf Taktzyklen verwendet, würde die Dauer des Kurzschlusses 50 Nanosekunden dauern. Wenn die Core-Frequenz kleiner als 10 MHz ist und/oder die Anweisung mehr Zyklen zum Abschluß benötigt, kann die Dauer länger als 50 MHz dauern. Um das Signalübersprechen zu löschen, kann kurzgefaßt die Dauer des Kurzschlusses kurz sein, wobei die Dauer, für die der Kurzschluß angelegt wird, aber letztendlich von der verwendeten Hardwareimplementierung abhängt.
  • Die aus dem Anlegen des Kurzschlusses zum Löschen des Signalübersprechens resultierende Stromentnahme kann auch mit der Dauer des Kurzschlußintervalls, der Anzahl der betätigten Tasten und dem durch die verwendeten Treiberschaltkreise angelegten Strom variieren. Bei einer Implementierung beträgt der Strombedarf zum Löschen des Signalübersprechens, wenn eine Signaltaste betätigt wird, nur 50 Mikroampere. Für jede zusätzliche Taste, die gedrückt wird, führt dies zu zusätzlichen Kurzschlüssen zwischen anderen Leitungen, und der Strombedarf nimmt zu. Angesichts der relativ kurzen Kurzschlußdauer, für die der Strom aufgewandt werden wird, sind jedoch Entnahmen in der Größenordnung von einigen zehn oder sogar Hunderten Mikroampere mehr als tolerierbar oder sogar vernachlässigbar. Auf jeden Fall wird die genaue Stromentnahme mit der Kurzschlußdauer und anderen Implementierungsdetails variieren. Dessen ungeachtet beseitigen Implementierungen der vorliegenden Offenbarung Signalübersprechen mit akzeptabel kleinen Werten der Stromentnahme.
  • Wie in 5 gezeigt, löscht der Kurzschluß das Signalübersprechen. Die Zeilenausgänge 570578 der Zeilentreiber 560568 koppeln die Zeilenleitungen 550558 direkt mit einer Niedrigpegel-Signalquelle. Folglich zeigen die Zeilenleitung 1 550, die Zeilenleitung 4 556 und die Zeilenleitung 5 558 ein Niedrigpegelsignal, weil diese Zeilenleitungen nicht durch Tasten mit irgendwelchen das Hochpegelsignal zeigenden Spaltenleitungen gekoppelt werden. Das Signalübersprechen wird schnell entladen und gelöscht. Eingang 580 der Zeile 1, Eingang 586 der Zeile 4 und Eingang 588 der Zeile 5 werden somit ein (als eine „0" dargestelltes) Niedrigpegelsignal lesen. Da die Zeilenleitung 2 552 und die Zeilenleitung 3 554 ein durch die Spaltenleitung 1 510 und die Spaltenleitung 4 516 gezeigtes Hochpegelsignal durch die Betätigung der Taste 3-1 506 bzw. der Taste 2-4 508 auf ein durch Ausgang 572 der Zeile 2 und Ausgang 574 der Zeile 3 gezeigtes Niedrigpegelsignal kurzschließen, lesen Eingang 582 der Zeile 2 und Eingang 584 der Zeile 3 nun ein unbestimmtes Signal. (Eingang 540 der Spalte 1 des Treibers 520 der Spalte 1 und Eingang 546 der Spalte 4 des Treibers 526 der Spalte 4 würden als Folge des Kurzschlusses auch unbestimmte Signalwerte lesen.) Obwohl das Signalübersprechen gelöscht wird, sollten jedoch die aktuellen Signalpegel nicht in dem Zeilenspeicher 590 aufgezeichnet werden. Obwohl in dem Register 592 der Zeile 1, dem Register 598 der Zeile 4 und dem Register 599 der Zeile 5 genaue Niedrigpegelsignalwerte aufgezeichnet werden könnten, wären die Werte für das Register 594 der Zeile 2 und das Register 596 der Zeile 3 unbestimmt.
  • 6 zeigt ein Tastatursystem 600, bei dem, nachdem das Übersprechen wie mit Bezug auf 5 beschrieben gelöscht wird, die Zeilenausgänge 670678 der Zeilentreiber 660668 auf ihre passive Niedrigpegel- oder Pulldown-Pegel wiederhergestellt werden. Eingang 680 der Zeile 1, Eingang 686 der Zeile 4 und Eingang 688 der Zeile 5 werden weiter genau ein Niedrigpegelsignal lesen. Diese Werte werden dann in das Register 692 der Zeile 1, das Register 698 der Zeile 4 und das Register 699 der Zeile 5 der Zeilenspeicher 690 geschrieben. Eingang 672 der Zeile 2 und Eingang 674 der Zeile 3 werden jedoch nun beide genau ein Hochpegelsignal lesen, das durch Ausgang 630 der Spalte 1 des Treibers 620 und Ausgang 636 der Spalte 4 des Treibers 646 der Spalte 4 durch Betätigung der Taste 3-1 606 bzw. der Taste 2-4 608 angelegt wird.
  • Die Spaltenausgänge 630638 der Spaltentreiber 620628 legen weiter ein Hochpegelsignal an die Spaltenleitungen 610618 an. Eingang 642 der Spalte 2, Eingang 644 der Spalte 3 und Eingang 648 der Spalte 5 lesen weiter Hochpegelsignale auf der Spaltenleitung 2 612, der Spaltenleitung 3 614 bzw. der Spaltenleitung 5 618. Nachdem der mit Bezug auf 5 beschriebene Kurzschluß entfernt wurde, stabilisiert sich das Signal auf der Spaltenleitung 1 610 und der Spaltenleitung 4 616. Eingang 640 der Spalte 1 und Eingang 646 der Spalte 4 lesen somit das von Ausgang 630 der Spalte 1 bzw. Ausgang 636 der Spalte 4 gezeigte Hochpegelsignal. Bei einer Implementierung ändern sich die durch die Spaltenausgangsabschnitte 630638 angelegten Signale während dieses Vorgangs nicht, so daß kein Strom beim Schalten der Spaltenausgangsabschnitte 630638 verloren wird.
  • Nachdem sich die Signalpegel stabilisiert haben, können nun genaue Zeilenpegelsignale in dem Zeilenspeicher 690 aufgezeichnet werden. Das Register 692 der Zeile 1, das Register 698 der Zeile 4 und das Register 699 der Zeile 5 speichern Niedrigpegelsignale, um anzuzeigen, daß keine in diesen Zeilen betätigten Tasten erfasst wurden. Register 694 der Zeile 2 und Register 696 der Zeile 3 speichern jedoch Hochpegelsignale, um anzuzeigen, daß in diesen Zeilen betätigte Tasten erfasst wurden. Wie nachfolgend erläutert wird, werden die Zeilen, in denen eine Tastenbetätigung erfasst und in dem Zeilenspeicher 690 aufgezeichnet wurde, individuell abgefragt, um zu bestimmen, in welcher Spalte oder in welchen Spalten eine oder mehrere Tasten betätigt worden sind. Da für die übrigen Zeilen keine Signaländerung aufgezeichnet wurde, müssen diese Zeilen nicht abgefragt werden, wodurch Zeit und Strom gespart wird.
  • 7 zeigt ein Tastatursystem 700, bei dem eine der eine Tastenbetätigung registrierenden Zeilen individuell abgefragt wird, um zu identifizieren, in welcher Spalte eine Taste oder Tasten 702 betätigt wurden. Wieder umfassen die abzufragenden Zeilenleitungen die Zeilenleitung 2 752 und die Zeilenleitung 3 754, auf denen Tastenbetätigungen erfasst und in dem Zeilenregister 2 794 bzw. dem Zeilenregister 3 796 der Zeilenspeicher 790 protokolliert wurden. Bei der Abfrage der Zeilenleitung 2 752, wird Ausgang 772 der Zeile 2 auf ein aktives Niedrigpegelsignal gesetzt. Für jegliche anderen Zeilenleitungen, für die der Zeilenspeicher 790 zeigt, daß eine Taste betätigt wurde, die in diesem Fall die Zeilenleitung 3 754 ist, werden diese Zeilenleitungen von einer Signalquelle entkoppelt, was durch ein Lesen als „AUS" durch Ausgang 774 der Zeile 3 angezeigt wird. Indem bewirkt wird, daß die Zeilenleitung 3 754 von einer Signalquelle entkoppelt wird, wird vermieden, daß die Abfrage der Zeilenleitung 2 752 fälschlicherweise anzeigt, daß eine Taste in einer Spalte in der Zeilenleitung 2 752 betätigt wurde, wenn tatsächlich eine Taste möglicherweise in dieser Spalte in einer anderen Zeile betätigt wurde. Anders ausgedrückt, wird die Zeilenleitung 3 754 entkoppelt, um sicherzustellen, daß die Abfrage der Zeilenleitung 2 752 nicht anzeigt, daß eine Taste in einer Zeilenleitung 2 752 an der Spaltenleitung 1 710 betätigt wurde, wenn es die Betätigung der Taste 3-1 708 in der Zeilenleitung 3 754 war, die in dem später beschriebenen Verfahren bewirkt, daß ein Signal in der Spaltenleitung 1 710 gelesen wird. Das Isolieren anderer Zeilenleitungen, in denen Tastenbetätigungen erfasst wurden, während individuell jede der Zeilenleitungen, in denen Tastenbetätigungen erfasst wurden, abgefragt wird vermeidet eine fälschliche Identifikation, daß in anderen Zeilenleitungen betätigte Tasten in der Zeilenleitung betätigt wurden, die gerade abgefragt wird.
  • Eingang 784 der Zeile 3 liest weiter ein Hochpegelsignal. Die Zeilenleitung 3 754 wird weiter durch die Taste 3-1 706 mit der Spaltenleitung 1 710 gekoppelt, und die Spaltenleitung 1710 führt ein durch Ausgang 730 der Spalte 1 angelegtes Hochpegelsignal. Zeilenleitungen, auf denen keine Tastenbetätigung erfasst wurde, werden in ihre anfänglichen Pulldown-Zustände zurückgeführt, was dadurch angezeigt wird, daß Ausgang 770 der Zeile 1 des Treibers 760 der Zeile 1, Ausgang 776 der Zeile 4 des Treibers 766 der Zeile 4 und Ausgang 778 der Zeile 5 des Treibers 768 der Zeile 5 alle als "PULL-DOWN" lesen.
  • Während der individuellen Abfrage von Zeilenleitungen, in denen zuvor eine Tastenbetätigung erfasst wurde, werden die Ausgangsabschnitte 730738 der Spaltentreiber 720728 von einer Signalquelle entkoppelt. Da zuvor ein Hochpegelsignal an die Spaltenleitungen 710718 angelegt wurde, werden sich das Signal in den Spaltenleitungen 710714 und 718, die nicht durch die Betätigung einer Taste gekoppelt werden oder mit einer entkoppelten Zeilenleitung gekoppelt sind, wie etwa der Zeilenleitung 3 754, nicht ändern. Eingang 740 der Spalte 1, Eingang 742 der Spalte 2, Eingang 744 der Spalte 3 und Eingang 748 der Spalte 5 werden somit immer noch ein Hochpegelsignal zeigen.
  • Da Ausgang 772 der Zeile 2 jedoch durch die betätigte Taste 2-4 708 ein aktives Niedrigpegelsignal an die Spaltenleitung 4 716 anlegt, wird Eingang 746 der Spalte 4 ein Niedrigpegelsignal auf der Spaltenleitung 4 716 lesen. Da das andere Signal an die Zeilenleitung 2 752 angelegt wurde und auf der Spaltenleitung 4 716 erfasst wurde, kann bestimmt werden, daß die Taste 2-4 708 betätigt wurde. Welche Taste oder Tasten betätigt wurden, wird zusammengefaßt bestimmt, indem an eine Zeilenleitung, auf der zuvor eine Tastenbetätigung erfasst wurde, ein anderes Signal angelegt wird und die Spaltenleitungen abgefragt werden, um zu bestimmen, auf welcher dieser nun ein anderes Signal erfasst wird.
  • Obwohl es in dem Beispiel der Zeichnungen nicht gezeigt ist, sollte man beachten, daß die hier offenbarte Tastaturabfrage identifizieren würde, wenn Tasten in mehr als einer Spalte in jeder Zeile betätigt werden. Hypothetisch würde, falls die Taste 2-5 704, die sich in der Zeilenleitung 2 752 und der Spaltenleitung 5 718 befindet, auch betätigt wäre, Eingang 748 der Spalte 5 auch ein Niedrigpegelsignal lesen, wie der gelesene Eingang 746 der Spalte 4 wie in 7 gezeigt. Die Tastaturabfrage wird somit identifizieren, wenn mehrere Tasten in jeder Zeile betätigt wurden, wobei jedoch Tastenmaskierungsbedingungen gelten, wie mit Bezug auf 1015 beschrieben.
  • Falls eine Tastenbetätigung nur in einer einzigen Zeile erfasst würde, wäre die Tastaturabfrage nun abgeschlossen. Das Tastatursystem würde dann in einen Anfangszustand zurückgesetzt, wie es durch das Tastatursystem 200 oder FIGUR 2 abgebildet ist. Die Betätigung einer Taste würde dann ein Interrupt erzeugen, das den Tastaturabfrageprozeß erneut initialisieren würde. Wenn der Zeilenspeicher 790 (oder jegliche andere Vorrichtung oder jeglicher andere Prozeß, die verwendet wird, um zu verfolgen, in welchen Zeilenleitungen eine Tastenbetätigung erfasst wurde) zeigt, daß eine Tastenbetätigung in einer anderen Zeilenleitung erfasst wurde, wird die Tastaturabfrage fortgesetzt, bis jede der Zeilenleitungen abgefragt ist.
  • 8 zeigt das Tastatursystem 800, das zwischen den Abfragen jeder Zeilenleitung, auf der zuvor eine Tastenbetätigung erfasst wurde, zurückgesetzt wird. Die Spaltenausgangsabschnitte 830838 der Spaltentreiber 820828 legen ein aktives Hochpegelsignal an die Spaltenleitungen 810818 an, um das Hochpegelsignal auf jeder der Spaltenleitungen 810818 für die nächste Zeilenleitungsabfrage aufzufrischen. Die Spalteneingangsabschnitte 840848 werden somit alle vor der Abfrage der nächsten Zeilenleitung, in der eine Tastenbetätigung erfasst wurde, ein Hochpegelsignal lesen.
  • Die letzte abgefragte Zeile (in diesem Fall die Zeilenleitung 2 852) wird durch Ausgang 872 der Zeile 2 des Treibers 862 der Zeile 2 von einer Signalquelle entkoppelt. Zeilenleitungen, auf denen eine Tastenbetätigung erfasst wurde, die aber gerade nicht abgefragt werden, werden wie zuvor beschrieben entkoppelt, um zu vermeiden, dass Tasten gelesen werden, die in Spalten anderer Zeilen betätigt wurden. Eingang 882 der Zeile 2 zeigt an, daß die Entkopplung der Zeilenleitung 2 852 dazu führt, daß die Zeilenleitung 2 852 als Ergebnis ihrer Verbindung mit dem Hochpegelsignal, das durch die Betätigung der Taste 2-4 808 durch Ausgang 836 der Spalte 4 an die Spaltenleitung 4 816 angelegt wird, ein Hochpegelsignal zeigt.
  • Die Zeilenleitungen, auf denen zuvor keine Tastenbetätigung erfasst wurden, darunter die Zeilenleitung 1 850, die Zeilenleitung 4 856 und die Zeilenleitung 5 858, bleiben auf ein passives Niedrigpegelsignal heruntergezogen, um die Erzeugung von Störsignalen durch Ausgang 870 der Zeile 1 des ersten Zeilentreibers 860, Ausgang 876 der Zeile 4 des Treibers 856 der Zeile 4 und den Ausgang der Zeile 5 des Treibers 858 der Zeile 5 zu vermeiden. Dies wird durch die Niedrigpegelsignale dargestellt, die durch Eingang 880 der Zeile 1, Eingang 886 der Zeile 4 und Eingang 868 der Zeile 5 gelesen werden.
  • Die Abfrage der Zeilenleitung 3 854 steht bevor, wie zuvor mit Bezug auf 9 beschrieben. Zwischen Zeilenleitungsabfragen besteht keine Notwendigkeit, die Zeilenleitung 3 854 herunterzuziehen. Dies würde lediglich unnötigerweise Strom verbrauchen, indem eine Taste betätigt wird, die ein aktives Hochpegelsignal aus einer Spaltenleitung mit einer Niedrigpegelquelle koppelt, wenn auch nur durch einen Pulldown-Widerstand. Die Zeilenleitung 3 854 bleibt also entkoppelt, was durch Ausgang 874 der Zeile 3 des Treibers 864 der Zeile 3 wiedergegeben wird, der weiter als „AUS" gelesen wird. Da die Zeilenleitung 3 854 durch die Betätigung der Taste 3-1 808 mit der Spaltenleitung 1 810 gekoppelt wird, liest Eingang 884 der Zeile 3 ein Hochpegelsignal, das durch Ausgang 840 der Spalte 1 an die Spaltenleitung 1 810 angelegt wird.
  • Da nun die Zeilenleitung 2 872 abgefragt worden ist, kann nun zusätzlich, obwohl es in 8 nicht gezeigt ist, in dem Zeilenspeicher 890 das Register 894 der Zeile 2 auf eine binäre 0 oder ein anderes Signal zurückgesetzt werden, um anzuzeigen, daß die Zeilenleitung 2 852 bereits abgefragt wurde. Das Register 894 der Zeile 2 braucht jedoch erst dann zurückgesetzt werden, wenn alle Zeilenleitungen abgefragt worden sind, solange eine bestimmte Technik zum Vermeiden einer Abfrage einer Zeilenleitung, die bereits abgefragt wurde, verwendet wird.
  • 9 zeigt das Tastatursystem 900 als für die Abfrage der nächsten Zeilenleitung, der Zeilenleitung 3 954, auf der zuvor eine Tastenbetätigung erfasst wurde, eingerichtet. Die Betätigung einer Taste in der Zeilenleitung 3 954 wurde zuvor in dem Register 996 der Zeile 3 des Zeilenspeichers 990 gespeichert. Wie zuvor mit Bezug auf 7 beschrieben wurde, wird jeder der Spaltenausgänge 930938 der Spaltentreiber 940948 wieder entkoppelt, um so an die Spaltenleitungen 910818 kein Signal anzulegen. Nach dem mit Bezug auf 8 beschriebenen Rücksetzen werden die Spaltenleitungen 910918 jedoch ein Rest-Hochpegelsignal zeigen, wenn sie nicht durch eine Verbindung mit einer der Zeilenleitungen entladen werden. Die Zeilenleitung 1 950, die Zeilenleitung 4 956 und die Zeilenleitung 958 bleiben heruntergezogen, um ein passives Niedrigpegelsignal zu zeigen. Die Zeilenleitung 2 952 bleibt entkoppelt. Ausgang 974 der Zeile 3 des Treibers 964 der Zeile 3 legt nun jedoch ein aktives Niedrigpegelsignal an die Zeilenleitung 3 954 an, was dadurch wiedergegeben wird, daß Eingang 984 der Zeile 3 ein Niedrigpegelsignal liest.
  • Da Ausgang 974 der Zeile 3 durch die betätigte Taste 3-1 906 ein aktives Niedrigpegelsignal an die Spaltenleitung 1 910 anlegt, wird Eingang 940 der Spalte 1 ein Niedrigpegelsignal auf der Spaltenleitung 1 910 lesen. Da an die Zeilenleitung 3 952 ein Signal, das sich von dem Signal anderer Zeilenleitungen unterscheidet, angelegt wurde und es auf der Spaltenleitung 1 910 erfasst wurde, kann bestimmt werden, daß die Taste 3-1 906 betätigt wurde.
  • Der Vorgang der Abfrage jeder der individuellen Zeilenleitungen wird für so viele Zeilenleitungen, wie zuvor eine Tastenbetätigung erfasst wurde, wiederholt, wobei dies bei einer Implementierung durch die Zeilenspeicher 990 verfolgt wird. Sobald die Zeilenleitung 2 952 und die Zeilenleitung 3 954 abtastet sind und bestimmt wurde, in welchen Spalten Tasten in jeder dieser Zeilen getätigt wurden, kann in dem obigen Beispiel bestimmt werden, welche Tasten betätigt wurden. Die Taste oder Tasten, die betätigt wurden, werden dem System unter Verwendung der Tastatur gemeldet. Das Tastatursystem wird zurückgesetzt, um auf die Erfassung einer nächsten Tastenbetätigung zu warten.
  • In dem obigen Beispiel sind es die Zeilenleitungen, die auf Tastenbetätigungen überwacht und dann abgefragt werden, um zu identifizieren, welche Tasten betätigt wurden. Man sollte jedoch beachten, daß eine Tastaturabfrage anstelle der Zeilenleitungen die Spalten überwachen und individuell abfragen könnte. Weiterhin könnte die beschriebene Tastaturabfrage mit Tastatursystemen benutzt werden, bei denen die Tasten nicht in einer herkömmlichen Matrix von Zeilen und Spalten ausgerichtet sind. Statt dessen könnte das Tastatursystem eine andere Form von Tastatur enthalten, einschließlich sich überlappender Mengen von Signalleitungen. Außerdem sollte beachtet werden, daß die zum Überwachen oder Abfragen der Leitungen verwendeten Signalpegel umgekehrt werden könnten, wobei anstelle von Niedrigpegelsignalen Hochpegelsignale verwendet werden und umgekehrt. Die hier offenbarte Tastaturabfrage identifiziert Differenzen in Signalen, die durch die Betätigung von Tasten verursacht werden, anstatt bestimmte Signalpegel zu identifizieren, ob diese Signalpegel hoch oder niedrig sind.
  • Implementierungen der Tastaturabfrage haben mehrere Vorteile. Erstens gibt es bei Verwendung der Tastaturabfrage keine unkontrollierten Kurzschlüsse zwischen irgendwelchen Leitungen, wodurch eine Verschwendung von Leistung vermieden wird. Außerdem kann die Tastaturabfrage sehr schnell ausgeführt werden, weil nur Leitungen, auf denen Tastenbetätigungen erfasst werden, abgefragt werden, statt die gesamte Tastatur abzutasten. Außerdem verwendet die Tastaturabfrage wenige Signaländerungen. Die Spaltenausgangsabschnitte halten kontinuierlich einen hohen Spannungspegel, und die Zeilenausgangsabschnitte müssen erst aktiviert werden, wenn eine Abfrage startet. Aufgrund des niedrigen Stromverbrauchs kann die Tastaturabfrage für drahtlose Tastaturanwendungen, zum Beispiel unter Verwendung von Bluetooth-Technologie, implementiert werden. Erfassen einer Tastenmaskierung während einer Tastaturabfrage
  • Implementierungen der Tastaturabfrage sind betreibbar, um zu erfassen, wenn die Betätigung bestimmter Tasten maskiert ist, was zu einem ungenauen Ergebnis führen könnte. 10 zeigt ein Tastatursystem 1000, das demjenigen Tastatursystem 400 von 4 entspricht, mit der Ausnahme, daß zusätzlich zu der Betätigung der Taste 3-1 1006 und der Taste 2-4 1008 auf der Tastatur 1002 auch die Taste 3-4 1002 betätigt ist. Da die Taste 3-4 1002 in derselben Zeile wie die Taste 3-1 1006 liegt, ist Eingang 1084 der Zeile 3 des Treibers 1064 der Zeile 3 derselbe wie wenn nur die Taste 3-4 1002 betätigt wird, weil die Betätigung der Taste 3-1 1006 bereits zu einer Verbindung zwischen der Spaltenleitung 3 1016 und der Zeilenleitung 3 1054 geführt hat.
  • 11 zeigt ein Tastatursystem 1100, bei dem ein Signalübersprechen gelöscht wird, wie es zuvor mit Bezug auf 5 beschrieben wurde. 11 ist mit 5 identisch, mit der Ausnahme, daß die Taste 3-4 1002 betätigt ist. Die Taste 3-4 1102 befindet sich jedoch in der Zeilenleitung 3 1154 und in der Spaltenleitung 3 1116, die beide bereits als Folge der Betätigung der Taste 3-1 1106 und der Taste 2-4 1108 kurzgeschlossen wurden, und die Betätigung der Taste 3-4 1102 hat keine oder minimale Auswirkung auf die Signalübersprechen-Kurzschließung.
  • 12 zeigt ein Tastatursystem 1200, das das Lesen der betätigten Tasten darstellt, nachdem das Signalübersprechen gelöscht ist, wie es mit Bezug auf 11 beschrieben wurde. 12 ist mit 6 identisch, mit der Ausnahme, daß die Taste 3-4 1202 betätigt ist. Als Folge der zum Löschen des Signalübersprechens verwendeten begrenzten beabsichtigten Kurzschlüsse und des Betätigens der Taste 2-4 1208 und der Taste 3-1 1206 lesen Eingang 1282 der Zeile 2 des Treibers 1262 der Zeile 2 bzw. Eingang 1284 der Zeile 3 des Treibers 1264 der Zeile 3 beide ein durch eine „1" dargestelltes Hochpegelsignal. In der Zeilenleitung 1 1250, der Zeilenleitung 4 1256, und der Zeilenleitung 5 1258 wurden keine Tasten betätigt und somit lesen keine der Zeileneingängen 1280, 1286 und 1288 der anderen Zeilentreiber 1260, 1266 bzw. 1268 ein Hochpegelsignal.
  • Die Betätigung der Taste 3-4 1202 ändert nichts an dem, was von jeder der Zeileneingänge der Zeilentreiber im Vergleich zu der in 6 dargestellten Situation gelesen wird: Taste 3-4 1202 befindet sich in derselben Zeile wie Taste 3-1 1206, und die Betätigung der Taste 3-1 1206 hat bereits dazu geführt, daß Eingang 1284 der Zeile 3 ein Hochpegelsignal liest. Die Betätigung der Taste 3-4 1202 wird in dieser Phase der Tastaturabfrage somit maskiert. Wie es in der Situation von 6 der Fall war, wird in dem Zeilenspeicher 1290 ein Hochpegelwert in dem Speicherregister 1294 der Zeile 2 und dem Speicherregister 1296 der Zeile 3 gespeichert, während in den anderen Zeilenregistern 1292, 1298 und 1299 Niedrigpegelwerte gespeichert werden.
  • Wie in 13 gezeigt ändert jedoch die Betätigung der Taste 3-4 1302 die Auswirkung der nachfolgenden Abfrage der Zeilenleitung 2 1352. Das Tastatursystem 1300 von 13 zeigt eine ähnliche Situation wie 7, bei der ein Abfragesignal an die Zeilenleitung 2 1352 angelegt wird. In dem Beispiel von 13 ändert jedoch die Betätigung der Taste 3-4 1302 in der Zeilenleitung 1352 das, was auf anderen Zeilenleitungen und Spaltenleitungen gelesen wird. Das an die Zeilenleitung 2 1352 angelegte Niedrigpegel-Abfragesignal wird durch die Betätigung der Taste 2-4 1308 mit der Spaltenleitung 4 1316 gekoppelt, was wieder dazu führt, daß Eingang 1346 der Spalte 4 des Treibers 1326 der Spalte 1 eine Niedrigpegeleingabe liest. Wie in 13 gezeigt, wird jedoch auch das an die Spaltenleitung 4 1316 angekoppelte Niedrigpegel-Abfragesignal durch die Betätigung der Taste 3-4 1302 mit der Zeilenleitung 3 1354 gekoppelt. Als Ergebnis liest Eingang 1384 der Zeile 3 des Treibers 1364 der Zeile 3 nun das Niedrigpegel-Abfragesignal. Außerdem koppelt die Betätigung der Taste 3-1 1306 das Niedrigpegel-Abfragesignal mit der Spaltenleitung 1 1310, wodurch bewirkt wird, daß Eingang 1340 der Spalte 1 des Treibers 1320 der Spalte 1 das Niedrigpegel-Abfragesignal liest.
  • Wie zuvor beschrieben verwenden Implementierungen der Tastaturabfrage die einzelnen Zeilenleitungsabfragen, um zu identifizieren, in welcher Spalte oder Spalten Tasten in jeder Zeilenleitung betätigt wurden. Wenn zum Beispiel bei der in 7 abgebildeten Zeilenleitungsabfrage die Zeilenleitung 2 752 abgefragt wurde und das Abfragesignal auf der Spaltenleitung 4 716 erfasst wurde, wurde bestimmt, daß die Taste 2-4 708 betätigt worden ist. In 13 führt die auf Zeile 2 1382 angewandte Zeilenabfrage jedoch dazu, daß sowohl Eingang 1346 der Spalte 4 des Treibers 1326 der Spalte 4 als auch Eingang 1340 der Spalte 1 des Treibers 1320 der Spalte 1 das Niedrigpegel-Abfragesignal lesen. Als Ergebnis würde beim Versuch, aus der Kombination welcher Spalten das Abfragesignal zeigen, wenn Zeilenleitung 2 1352 abgefragt wird, zu identifizieren, welche Tasten betätigt wurden, fälschlicherweise bestimmt werden, daß zusätzlich zu Taste 2-4 1308 die Taste 2-1 1302 betätigt wurde.
  • Die Maskierungssituation kann durch Ausführen einer Tastenmaskierungsprüfung identifiziert werden. Bei einer Implementierung wertet diese Prüfung zwei Tastenmaskierungsbedingungen aus. Erstens wird für jede Zeilenleitungsabfrage bestimmt, ob mehr als eine Spaltenleitung während der Abfrage einer einzigen Zeilenleitung das Abfragesignal erfasst. Wenn dies nicht der Fall ist, erfasst die Zeilenleitungsabfrage keine Tastenmaskierung und die Tastaturabfrage wird mit der nächsten Zeilenleitungsabfrage fortgesetzt. Wie in der in 13 gezeigten Situation, in der die Abfrage der Zeilenleitung 2 1352 dazu führt, daß Tastenbetätigungen sowohl in der Spaltenleitung 1 1310 als auch in der Spaltenleitung 4 1316 erfasst werden, wäre diese erste Bedingung jedoch erfüllt.
  • Wenn zweitens eine Tastenbetätigung während einer Zeilenleitungsabfrage in mehr als einer Spalte erfasst wird, wird der Zeileneingang für jede der anderen Zeilenleitungen geprüft, um zu bestimmen, ob der neue Zeileneingang von den zuvor bestimmten Eingängen verschieden ist. In 13 speichert das Register 1396 der Zeile 3 der Zeilenspeicher 1390 ein Hochpegelsignal, das wie mit Bezug auf 6 beschrieben in die Zeilenspeicher 1390 geschrieben wurde. Als Folge der Tastenmaskierungssituation liest Eingang 1384 der Zeile 3 nun jedoch ein Niedrigpegelsignal. Da die in Eingang 1384 der Zeile 3 und in dem Register 1396 der Zeile 3 gespeicherten Werte nicht übereinstimmen, ist das Ergebnis der Abfrage unbestimmt. Bei einer Implementierung der Tastaturabfrage würde dem System, das die Tastaturabfrage verwendet, ein Fehler gemeldet, wobei eine neue Benutzereingabe ersucht wird und eine neue Tastaturabfrage eingeleitet wird.
  • Bei Verwendung von Implementierungen der Tastaturabfrage wird eine solche problematische Maskierungsbedingung lediglich von begrenzten Situationen verursacht. Genauer gesagt ergibt sich eine solche Maskierungsbedingung nur, wenn mindestens zwei Tasten in derselben Zeile betätigt werden und wenn sich eine dieser Tasten in einer Spalte befindet, in der eine andere Taste betätigt worden ist, so wie es in 1013 der Fall ist. Anders ausgedrückt, hat sich die Tastenmaskierungssituation von 1013 ergeben, weil sich die Taste 3-4 in derselben Spalte wie die Taste 2-4 und in derselben Zeile wie die Taste 3-1 befand.
  • 14 zeigt ein Tastatursystem 1400, das dem Tastatursystem 700 von 7 ähnlich ist, mit der Ausnahme, daß in der Situation von 14 eine zusätzliche Taste in einer selben Spalte aber in einer anderen Zeile als andere Tasten, die betätigt wurden, betätigt wird. Wenn sich diese Taste jedoch in einer anderen Zeile als eine oder mehrere Tasten, die betätigt wurden, befindet, ergibt sich keine Tastenmaskierungssituation.
  • In 14 wird die Taste 4-4 1402 zusammen mit der Taste 2-4 1408 und der Taste 3-1 1406 betätigt. Als Ergebnis der Betätigung der Taste 4-4 1402 speichert das Register 1498 der Zeile 4 in der Zeilenspeicher 1490 ein Hochpegelsignal, wodurch angezeigt wird, daß eine Taste in der Zeilenleitung 1456 betätigt wurde. Wenn das Abfragesignal an die Zeilenleitung 2 1452 angelegt wird, werden Ausgang 1474 der Zeile 3 des Treibers 1464 der Zeile 3 und Ausgang 1476 der Zeile 4 des Treibers 1466 der Zeile 4 von ihren jeweiligen Zeilenleitungen entkoppelt. Wenn das Abfragesignal an die Zeilenleitung 2 1452 angelegt wird, bewirkt die Betätigung der Taste 4-4 1402, daß das Abfragesignal mit der Zeilenleitung 4 1456 gekoppelt und durch Eingang 1486 der Zeile 3 des Zeilentreibers 1466 gelesen wird.
  • Da jedoch keine der anderen Tasten in der Zeilenleitung 4 1456 betätigt wurden, wird das Abfragesignal mit keinen anderen Spaltenleitungen gekoppelt, so daß keine falschen Eingaben auf irgendwelchen der Spalteneingänge gelesen werden. Anders ausgedrückt, da nur eine Spaltenleitung ein Abfragesignal erfasst, entsteht die erste Tastenmaskierungsbedingung des in zwei Spaltenleitungen für die Abfrage einer einzigen Zeilenleitung gelesenen Abfragesignals nicht. Obwohl die zweite Maskierungsbedingung erfüllt würde, weil Eingang 1486 der Zeile 4 ein anderes Signal lesen würde als das in dem Register 1498 der Zeile 4 bewertete Signal, weil die erste Bedingung nicht erfüllt ist, würde somit die zweite Bedingung nicht geprüft.
  • 15 zeigt ein Tastatursystem 1500, das dem Tastatursystem 900 von 9 entspricht, mit der Ausnahme, daß in der Situation von 15 eine zusätzliche Taste in derselben Zeilenleitung, aber in einer anderen Spalte als andere Tasten, die betätigt wurden, betätigt wird. Wenn sich die betätigte Taste jedoch in einer Spalte von einer oder mehreren Tasten in derselben Zeilenleitung, die betätigt wurden, befindet, entsteht keine Tastenmaskierungssituation.
  • In 15 wird die Taste 3-3 1502 zusammen mit der Taste 2-4 1508 und der Taste 3-1 1506 betätigt. Als Folge der Betätigung der Taste 3-3 1502 wird, wenn die Zeilenleitung 3 1554 abgefragt wird, das an die Leitung 3 1554 durch den Ausgang der Zeile 3 des Treibers der Zeile 3 angelegte Abfragesignal an Leitung 1510 der Spalte 1 und Leitung 1514 der Spalte 3 angelegt. Eingang 1544 der Spalte 3 in dem Treiber 1524 der Spalte 3 und Eingang 1540 der Spalte 1 des Treibers 1520 der Spalte 1 lesen beide das an die Zeilenleitung 3 1554 angelegte Abfragesignal. Da die Abfrage der Zeilenleitung 3 1554 bewirkt, daß das Abfragesignal in zwei Spalten erfasst wird, ist die erste Tastenmaskierungsbedingung erfüllt.
  • Die Betätigung der Taste 3-3 1502 führt jedoch nicht zu einer Kreuzkopplung des Abfragesignals auf irgendwelche anderen Zeilenleitungen, weil keine anderen Tasten auf der Spaltenleitung 3 1514 betätigt wurden. Anders ausgedrückt ändert die Betätigung der Taste 3-3 1502 keine der Zeileneingangswerte von dem in der Zeilenspeicher 1590 Gespeicherten. Die zweite Maskierungsbedingung, die bestimmt, ob irgendwelche Zeilenleitungen verschiedene Werte erfassen, wird somit nicht erfüllt sein. Zusammengefaßt führen nur spezifische Kombinationen von Tastenbetätigungen zu einer Tastenmaskierungssituation, die dazu führt, daß die Tastaturabfrage ein unbestimmtes Ergebnis liefert.
  • Verfahren zum Durchführen von Tastaturabfragen
  • 16 zeigt ein Flußdiagramm 1600 einer Implementierung der Durchführung einer Tastaturabfrage wie in den in 215 dargestellten obigen Beispielen beschrieben.
  • Das Flußdiagramm 1600 zeigt ein Verfahren einer Tastaturabfrage für eine Tastatur mit einem ersten und einem zweiten Satz Signalleitungen, wobei die Leitung in dem ersten Satz mit einer Leitung in dem zweiten Satz gekoppelt wird, wenn eine Taste betätigt wird. Bei 1602 wird eine erste Spannung an einen ersten Satz Leitungen angelegt, zum Beispiel genau wie ein Hochpegelsignal wie mit Bezug auf 3 beschrieben an die Spaltenleitungen angelegt wurde. Bei 1604 wird eine zweite Spannung an einen zweiten Satz Leitungen angelegt, zum Beispiel genau wie ein passives Niedrigpegelsignal wie mit Bezug auf 3 beschrieben an die Zeilenleitungen angelegt wurde. Bei 1606 wird bestimmt, ob irgendwelche der zweiten Leitungen ein Signal zeigen, das nicht gleich dem zweiten Signal ist. Wie mit Bezug auf 4 beschrieben, kann diese Signaländerung anzeigen, daß eine Taste betätigt wurde. Wenn bei 1606 bestimmt wird, daß keine der zweiten Leitungen ein Signal registriert, das ungleich dem zweiten Signal ist, das ursprünglich an die zweiten Leitungen angelegt wurde, wird angenommen, daß keine Taste betätigt wurde. Das Flußdiagramm 1600 schreitet dann zu 1606, um kontinuierlich zu bestimmen, ob eine Signaländerung anzeigt, daß eine Taste betätigt wurde.
  • Wenn jedoch bei 1606 bestimmt wird, daß eine oder mehrere der zweiten Leitungen ein Signal zeigen, das ungleich dem zweiten Signal ist (bei 1608), wird ein Signalübersprechen durch Verwendung eines kurzen kontrollierten Kurzschlusses auf den Leitungen gelöscht, wie es zuvor beschrieben wurde. Bei 1610 wird identifiziert, welche der zweiten Leitungen ein von dem zweiten Signal verschiedenes Signal zeigt. Zum Beispiel wurden mit Bezug auf 6 die Zeilenleitung 2 652 und die Zeilenleitung 3 654 als ein anderes Signal zeigend identifiziert und wurden somit in der Zeilenspeicher 690 für eine Abfrage notiert. Diese identifizierten zweiten Leitungen werden individuell abgefragt, um die ersten Leitungen zu bestimmen, mit denen sie gekoppelt sind und somit welche Taste oder Tasten betätigt wurden.
  • Bei 1612 wird ein Abfragesignal individuell an eine nächste identifizierte zweite Leitung angelegt. Zum Beispiel wurde mit Bezug auf 7 ein aktives Niedrigpegelsignal als Abfragesignal an die Zeilenleitung 2 752 angelegt, während die andere identifizierte Zeilenleitung (Zeilenleitung 3 754) von einer Signalquelle entkoppelt wurde. Bei 1614 werden eine oder mehrere erste Leitungen, die anzeigen, daß das Abfragesignal durch die identifizierte zweite Leitung an sie angelegt wird, identifiziert. Zum Beispiel hat in 7 die Spaltenleitung 4 716 einen von seinem ursprünglichen Hochpegelwert verschiedenen Signalwert gezeigt, wodurch angezeigt wird, daß die Betätigung einer Taste bewirkt hat, daß das durch die identifizierte zweite Zeilenleitung (Zeilenleitung 2 752) gezeigte Niedrigpegel-Abfragesignal an die Spaltenleitung 4 716 angelegt wird. Die Spaltenleitung 4 716 wurde somit als eine in dieser Spalte betätigte Taste aufweisend erkannt.
  • Bei 1616 wird bestimmt, ob irgendeine Tastenmaskierung erfasst wird. Wie zuvor mit Bezug auf 1015 beschrieben wurde, kann sich eine Tastenmaskierung ergeben, wenn eine Taste in einer selben Zeile und einer selben Spalte wie andere Tasten, die betätigt wurden, betätigt wird. Bei einer Implementierung kann wie zuvor beschrieben eine Tastenmaskierung durch Prüfen von Bedingungen erfasst werden, darunter, ob Tasten in mehr als einer Spalte in einer selben Zeile betätigt wurden und ob sich der Zeileneingangswert relativ zu einem zuvor erfassten Wert ändert. Wenn bei 1616 eine Tastenmaskierung erfasst wird, schreitet das Flußdiagramm 1600 zu 1622 voran, indem dem System, das die Tastaturabfrage verwendet, eine ungültige Abfrage signalisiert und um eine neue Tastaturabfrage ersucht wird.
  • Bei 1618 wird durch Kombination der identifizierten zweiten Leitung, die abgefragt wird, und der ersten identifizierten Leitung(en) bestimmt, welche Taste oder Tasten gedrückt oder anderweitig betätigt wurden. Da zum Beispiel mit Bezug auf 7 die Zeilenleitung 2 752 abgefragt und die Spalte 716 insofern als aktiv identifiziert wurde, als sie sich in Kontakt mit dem Abfragesignal befand, wurde identifiziert, daß die Taste 2-4 408 betätigt wurde. Bei 1620 wird bestimmt, ob jede der identifizierten zweiten Leitungen abgefragt worden ist. Wenn dies nicht der Fall ist, wird in dem Flußdiagramm 1600 auf 1612 zurückgegangen, um individuell ein Abfragesignal an die nächste identifizierte zweite Leitung anzulegen. Wenn dagegen bei 1620 bestimmt wird, daß jede der identifizierten zweiten Leitungen abgefragt worden ist, wird in dem Flußdiagramm 1600 auf 1602 zurückgegangen, bei dem das Tastatursystem zurückgesetzt und ein erstes Signal an die ersten Leitungen angelegt wird.
  • Datenverarbeitungssystem zur Unterstützung und Nutzung einer Tastaturabfrage
  • Eine Tastaturabfrage kann in Software implementiert werden, die auf einem stationären oder mobilen Datenverarbeitungssystem ausgeführt wird, das eine Tastatur wie etwa die Tastatur 110 (1) benutzt. Zum Beispiel kann die Tastaturabfrage in computerlesbaren Anweisungen manifestiert werden, die aus einem Speichermedium gelesen und auf einem Mikroprozessor oder einer anderen Verarbeitungseinheit ausgeführt werden. 17 zeigt einen Vielzweckcomputer, der betreibbar ist, um eine solche Softwareimplementierung zu unterstützen.
  • Allgemein besteht die Erfindung somit auch in einem Computerprogrammprodukt mit auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung der Abfrageverfahren, wenn das Computerprogrammprodukt auf einem Rechner abläuft. In anderen Worten ausgedrückt, kann die Erfindung somit als ein Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens realisiert werden, wenn das Computerprogrammprodukt auf einem Computer abläuft.
  • Mit Bezug auf 17 umfaßt eine beispielhafte Betriebsumgebung 1700 eine Datenverarbeitungseinrichtung, wie zum Beispiel die Datenverarbeitungseinrichtung 1710. Bei einer Grundkonfiguration kann die Datenverarbeitungseinrichtung 1710 eine stationäre Datenverarbeitungseinrichtung oder eine mobile Datenverarbeitungseiririchtung umfassen. Die Datenverarbeitungseinrichtung 1710 umfaßt in der Regel mindestens eine Verarbeitungseinrichtung 1720 und einen Systemspeicher 1730. Abhängig von der genauen Konfiguration und Art der Datenverarbeitungseinrichtung kann der Systemspeicher 1730 flüchtig (wie etwa RAM), nichtflüchtig (wie etwa ROM, Flash-Speicher und dergleichen) oder eine bestimmte Kombination von beidem sein. Der Systemspeicher 1730 umfaßt in der Regel ein Betriebssystem 1732, eine oder mehrere Anwendungen 1734 und kann Programmdaten 1736 umfassen.
  • Die Datenverarbeitungseinrichtung 1710 kann auch zusätzliche Merkmale oder Funktionalität aufweisen. Zum Beispiel kann die Datenverarbeitungseinrichtung 1710 auch zusätzliche Datenspeichereinrichtungen (wechselbar und/oder nicht wechselbar) umfassen, wie zum Beispiel, magnetische Platten, optische Platten, Band, wechselbare nichtflüchtige Speichereinrichtungen usw. Ein solcher zusätzlicher Speicher ist in 17 durch den wechselbaren Speicher 1740 und den nicht wechselbaren Speicher 1750 dargestellt. Computerspeichermedien können flüchtige und nichtflüchtige, wechselbare und nicht wechselbare Medien umfassen, die in einer beliebigen Methode oder Technologie zur Speicherung von Informationen implementiert werden, wie zum Beispiel computerlesbare Anweisungen, Datenstrukturen, Programmodule oder andere Daten. Systemspeicher 1730, wechselbare Speicher 1740 und nicht wechselbare Speicher 1750 sind alle Beispiele für Computerspeichermedien. Computerspeichermedien umfassen, aber ohne Einschränkung darauf, RAM, ROM, EEPROM, Flash-Speicher oder andere Speichertechnologie, CD-ROM, DVD (Digital Versatile Disks) oder andere optische Speicher, magnetische Kassetten, Magnetband, magnetische Plattenspeicher oder andere magnetische Speichereinrichtungen, nichtflüchtige Speicherkarten oder ein beliebiges anderes Medium, das verwendet werden kann, um die gewünschten Informationen zu speichern, und auf die Datenverarbeitungseinrichtung 1710 zugreifen kann. Alle solchen Computerspeichermedien können Teil der Einrichtung 1710 sein. Die Datenverarbeitungseinrichtung 1710 kann auch Eingabeeinrichtung(en) 1760 aufweisen, wie zum Beispiel eine Tastatur, die gemäß einer Ausführungsform einer hier offenbarten Tastaturabfrage betrieben werden kann, eine Maus, einen Stift, eine Spracheingabeeinrichtung, eine Berührungseingabeeinrichtung usw. Es können auch Ausgabeeinrichtung(en) 1770 wie etwa ein Display, Lautsprecher, ein Drucker usw. mit eingeschlossen sein.
  • Die Datenverarbeitungseinrichtung 1710 enthält außerdem Kommunikationsverbindung(en) 1780, die es der Einrichtung ermöglichen, mit anderen Datenverarbeitungseinrichtungen 1790 zu kommunizieren, wie zum Beispiel über ein Netzwerk oder ein drahtloses Netzwerk. Die Kommunikationsverbindung(en) 1780 ist ein Beispiel für Kommunikationsmedien. Kommunikationsmedien realisieren in der Regel computerlesbare Anweisungen, Datenstrukturen, Programmodule oder andere Daten in einem modulierten Datensignal wie zum Beispiel einer Trägerwelle oder einem anderen Transportmechanismus und umfassen beliebige Informationsablieferungsmedien. Der Ausdruck "moduliertes Datensignal" kann ein Signal umfassen, von dem eine oder mehrere Kenngrößen dergestalt gesetzt oder geändert werden, daß Informationen in dem Signal codiert werden. Als Beispiel, aber nicht als Einschränkung, können Kommunikationsmedien verdrahtete Medien wie etwa ein verdrahtetes Netzwerk oder eine direkt verdrahtete Verbindung und drahtlose Medien, wie etwa akustische, HF-, Infrarot- und andere drahtlose Medien umfassen. Der hier verwendete Ausdruck computerlesbare Medien umfaßt sowohl Speichermedien als auch Kommunikationsmedien.

Claims (24)

  1. Verfahren mit den folgenden Schritten: Anlegen eines ersten Signals an eine Mehrzahl erster Leitungen; Anlegen eines zweiten Signals an eine Mehrzahl zweiter Leitungen; Identifizieren mindestens einer der zweiten Leitungen als eine Leitung, die ein von dem zweiten Signal verschiedenes Signal aufweist; Anlegen eines Abfragesignals an die identifizierte zweite Leitung; und Identifizieren mindestens einer ersten Leitung, die ein Signal zeigt, das anzeigt, daß sich mindestens eine erste Leitung in Kontakt mit der identifizierten zweiten Leitung, an der das Abfragesignal angelegt ist, befindet, wobei mindestens eine der Mehrzahl von Tasten als die Kopplung der identifizierten zweiten Leitung und der mindestens einen identifizierten ersten Leitung verursachend identifizierbar ist.
  2. Verfahren nach Anspruch 1, wobei beim Identifizieren der mindestens einen zweiten Leitung für ein vorbestimmtes Intervall ferner folgende Schritte durchgeführt werden: Anlegen eines aktiven ersten Signals an die ersten Leitungen, wobei das aktive erste Signal durch Koppeln der ersten Leitungen mit einer Quelle des ersten Signals angelegt wird; und Anlegen eines aktiven zweiten Signals an die zweiten Leitungen, wobei das aktive zweite Signal durch Koppeln der zweiten Leitungen mit einer Quelle des zweiten Signals angelegt wird.
  3. Verfahren nach Anspruch 1 oder 2, wobei das Verfahren ferner beim Identifizieren einer Mehrzahl zweiter Leitungen, die ein von dem zweiten Signal verschiedenes Signal zeigen, ein Verfolgen jeder einer Mehrzahl der identifizierten zweiten Leitungen aufweist.
  4. Verfahren nach Anspruch 3, wobei das Verfolgen jeder der Mehrzahl identifizierter zweiter Leitungen ein Speichern einer Liste jeder der identifizierten zweiten Leitungen umfaßt.
  5. Verfahren nach einem der Ansprüche 1 bis 4, ferner mit den folgenden Schritten: Identifizieren einer nächsten zweiten Leitung, an die das Abfragesignal nicht angelegt wurde, für jede der Mehrzahl identifizierter zweiter Leitungen; elektrisches Entkoppeln jeder der Mehrzahl identifizierter zweiter Leitungen mit Ausnahme der nächsten identifizierten zweiten Leitung von der Quelle des zweiten Signals; und Anlegen des Abfragesignals an die nächste zweite Leitung.
  6. Verfahren nach Anspruch 5, ferner mit dem Schritt des Erneut-Anlegens des ersten Signals an jede der Mehrzahl erster Leitungen vor dem Anlegen des Abfragesignals an die nächste identifizierte zweite Leitung.
  7. Verfahren nach einem der Ansprüche 1 bis 6, ferner mit dem Schritt des Identifizierens einer Tastenmaskierungssituation, mit den folgenden Schritten: Bestimmen, ob mehr als eine der ersten Leitungen ein Signal zeigt, das einen Kontakt mit der identifizierten zweiten Leitung, an die das Abfragesignal angelegt ist, anzeigt; und wenn mehr als eine der ersten Leitungen ein Signal zeigen, das Kontakt mit der identifizierten zweiten Leitung, an die das Abfragesignal angelegt ist, anzeigt, Bestimmen, ob die Mehrzahl identifizierter zweiter Leitungen von der gespeicherten Liste der identifizierten zweiten Leitungen verschieden ist.
  8. Verfahren nach einem der Ansprüche 1 bis 7, wobei die Mehrzahl erster Leitungen eine Mehrzahl von Zeilenleitungen und die Mehrzahl zweiter Leitungen eine Mehrzahl von Spaltenleitungen umfaßt; oder die Mehrzahl von ersten Leitungen eine Mehrzahl von Spaltenleitungen und die Mehrzahl von zweiten Leitungen eine Mehrzahl von Zeilenleitungen umfaßt.
  9. Vorrichtung, umfassend: einen ersten Leitungstreiber, der eingerichtet ist, um ein erstes Signal an eine Mehrzahl von ersten Leitungen anzulegen; einen zweiten Leitungstreiber, der eingerichtet ist, um: ein zweites Signal an eine Mehrzahl von zweiten Leitungen anzulegen; die zweiten Leitungen zu überwachen; und wobei der zweite Leitungstreiber eingerichtet ist, um bei Erfassen eines von dem zweiten Signal verschiedenen Signals auf mindestens einer der Mehrzahl von zweiten Leitungen eine Abfrage einer Tastatur einzuleiten, wobei die Vorrichtung ferner für folgendes eingerichtet ist: Betätigen des ersten Leitungstreibers und des mindestens einen zweiten Leitungstreibers, um einen Kurzschluß für ein vorbestimmtes Intervall zu erzeugen, um ein Übersprechen zwischen beliebigen der Mehrzahl von ersten Leitungen und der Mehrzahl von zweiten Leitungen zu löschen; Identifizieren mindestens einer zweiten Leitung, die ein von dem zweiten Signal verschiedenes Signal zeigt; Anlegen eines Abfragesignals an die mindestens eine identifizierte zweite Leitung; und Identifizieren mindestens einer ersten Leitung, die ein Signal zeigt, das von dem ersten Signal verschieden ist, wodurch angezeigt wird, daß sich die identifizierte zweite Leitung in elektrischem Kontakt mit der mindestens einen identifizierten ersten Leitung befindet, wobei eine Kombination der mindestens einen identifizierten zweiten Leitung und der mindestens einen identifizierten ersten Leitung anzeigt, daß mindestens eine Taste der Tastatur betätigt wurde.
  10. Vorrichtung nach Anspruch 9, wobei das erste Signal ein Hochpegel-Spannungssignal und das zweite Signal ein Niedrigpegel-Spannungssignal umfaßt; oder das erste Signal einen Niedrigpegel-Spannungswert umfaßt und das zweite Signal einen Niedrigpegel-Spannungssignal umfaßt.
  11. Vorrichtung nach Anspruch 9 oder 10, wobei das erste Signal ein erstes aktives Signal umfaßt, das konfiguriert ist, um durch Koppeln jeder der ersten Leitungen mit einer Spannungsquelle angelegt zu werden, wodurch das Hochpegel-Spannungssignal oder das Niedrigpegel-Spannungssignal gezeigt werden, und das zweite Signal ein zweites passives Signal umfaßt, das durch widerstandsmäßiges Koppeln jeder der zweiten Leitungen mit einer Spannungsquelle, die zu derjenigen, die mit den ersten Leitungen gekoppelt ist, entgegengesetzt ist, angelegt wird; oder das erste Signal ein erstes passives Signal umfaßt, das konfiguriert ist, um durch widerstandsmäßiges Koppeln jeder der ersten Leitungen mit einer das Hochpegel-Spannungssignal oder das Niedrigpegel-Spannungssignal zeigenden Spannungsquelle angelegt zu werden und das zweite Signal ein aktives zweites Signal umfaßt, das durch Koppeln jeder der zweiten Leitungen mit einer Spannungsquelle, die zu derjenigen die mit den ersten Leitungen gekoppelt ist, entgegengesetzt ist, angelegt wird.
  12. Vorrichtung nach einem der Ansprüche 9 bis 11, wobei das Abfragesignal einen Pegel umfaßt, der derselbe wie das zweite Signal ist, und das Abfragesignal ein passives Signal umfaßt, wenn das zweite Signal ein aktives Signal umfaßt; oder das Abfragesignal ein aktives Signal umfaßt, wenn das zweite Signal ein passives Signal umfaßt.
  13. Vorrichtung nach einem der Ansprüche 9 bis 12, wobei die Vorrichtung ferner eingerichtet ist um: ein aktives erstes Signals an die ersten Leitungen anzulegen; und ein aktives zweites Signals an die zweiten Leitungen anzulegen.
  14. Vorrichtung nach einem der Ansprüche 9 bis 13, wobei das Abfragesignal ein Signal umfaßt, das einen gleichen Spannungspegel wie ein zweites Signal aufweist, und folgendes umfaßt: ein aktives Abfragesignal, wenn das erste Signal das erste aktive Signal umfaßt; oder ein passives Abfragesignal, wenn das erste Signal das erste passive Signal umfaßt.
  15. Vorrichtung nach einem der Ansprüche 9 bis 14, wobei die Vorrichtung ferner dafür eingerichtet ist, beim Anlegen des Abfragesignals an die identifizierte zweite Leitung das erste Signal von den ersten Leitungen zu nehmen.
  16. Vorrichtung nach einem der Ansprüche 9 bis 15, wobei die Vorrichtung ferner eingerichtet ist, um beim Identifizieren einer Mehrzahl von zweiten Leitungen, die ein von dem zweiten Signal verschiedenes Signal zeigen, jede der Mehrzahl von identifizierten zweiten Leitungen zu verfolgen.
  17. Vorrichtung nach einem der Ansprüche 9 bis 16, ferner umfassend eine Speichereinrichtung, wobei die Speichereinrichtung dafür eingerichtet ist, jede der Mehrzahl von identifizierten zweiten Leitungen zu verfolgen.
  18. Vorrichtung nach einem der Ansprüche 9 bis 17, wobei die Vorrichtung ferner eingerichtet ist, um für jede der Mehrzahl von identifizierten zweiten Leitungen eine nächste identifizierte zweiten Leitung zu identifizieren, an die das Abfragesignal nicht angelegt wurde; jede der Mehrzahl von identifizierten zweiten Leitungen außer der nächsten identifizierten zweiten Leitung von einer Quelle des zweiten Signals elektrisch zu entkoppeln; und das Abfragesignal an die nächste identifizierte zweite Leitung anzulegen.
  19. Vorrichtung nach Anspruch 18, wobei die Vorrichtung ferner dafür eingerichtet ist, um die erste Spannung vor dem Anlegen des Abfragesignals an die nächste identifizierte zweite Leitung neu an jede der Mehrzahl von ersten Leitungen anzulegen.
  20. Vorrichtung nach einem der Ansprüche 9 bis 19, wobei die Vorrichtung ferner einen Tastenmaskierungserfassungsmechanismus umfaßt, wobei der Tastenmaskierungserfassungsmechanismus eingerichtet ist um: zu bestimmen, ob mehr als eine der ersten Leitungen ein Signal zeigen, das einen Kontakt mit der das Abfragesignal anlegenden identifizierten zweiten Leitung anzeigt; und wenn mehr als eine der ersten Leitungen ein Signal zeigen, das einen Kontakt mit der das Abfolgesignal anlegenden identifizierten zweiten Leitung anzeigt, zu bestimmen, ob die Mehrzahl von identifizierten zweiten Leitungen von der gespeicherten Liste der identifizierten zweiten Leitungen verschieden ist.
  21. Vorrichtung nach einem der Ansprüche 9 bis 20, wobei die Mehrzahl erster Leitungen eine Mehrzahl von Zeilenleitungen und die Mehrzahl zweiter Leitungen eine Mehrzahl von Spaltenleitungen umfaßt; oder die Mehrzahl von ersten Leitungen eine Mehrzahl von Spaltenleitungen und die Mehrzahl von zweiten Leitungen eine Mehrzahl von Zeilenleitungen umfaßt.
  22. Verfahren mit den folgenden Schritten: Identifizieren einer ersten Leitung als eine Leitung, die ein erstes Signal zeigt, das von einem zweiten Signal verschieden ist, das auf mindestens einer anderen mit der ersten Leitung assoziierten Leitung vorliegt; Anlegen eines Abfragesignals an die identifizierte erste Leitung; und Identifizieren mindestens einer zweiten Leitung, die ein Signal zeigt, das anzeigt, daß sich die mindestens eine zweite Leitung in Kontakt mit der ersten Leitung befindet, an die das Abfragesignal angelegt ist, wobei mindestens eine einer Mehrzahl von Tasten als die Taste identifizierbar ist, die die Kopplung der identifizierten zweiten Leitung und der mindestens einen identifizierten ersten Leitung verursacht.
  23. Computerprogrammprodukt mit auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des Verfahrens gemäß einem der Ansprüche 1 bis 8, wenn das Computerprogrammprodukt auf einem Rechner abläuft.
  24. Computerprogrammprodukt mit auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des Verfahrens gemäß Anspruch 22, wenn das Computerprogrammprodukt auf einem Rechner abläuft.
DE102008047442A 2007-09-18 2008-09-16 Tastaturabfrage Withdrawn DE102008047442A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/856,728 US8350730B2 (en) 2006-10-13 2007-09-18 Keyboard scan
US11/856,728 2007-09-18

Publications (1)

Publication Number Publication Date
DE102008047442A1 true DE102008047442A1 (de) 2009-03-19

Family

ID=40350041

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008047442A Withdrawn DE102008047442A1 (de) 2007-09-18 2008-09-16 Tastaturabfrage

Country Status (2)

Country Link
US (1) US8350730B2 (de)
DE (1) DE102008047442A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8350733B2 (en) * 2006-10-13 2013-01-08 Infineon Technologies Ag Keyboard scan for human interface devices
KR100971580B1 (ko) * 2008-05-13 2010-07-20 주식회사 포인칩스 스위칭매트릭스의 키입력장치
CN101686060B (zh) * 2008-09-25 2013-06-19 旭丽电子(广州)有限公司 控制电路及配置方法
US8477049B2 (en) * 2009-06-05 2013-07-02 Apple Inc. Efficiently embedding information onto a keyboard membrane
ES2542031T3 (es) * 2010-01-22 2015-07-29 Vision Tactil Portable, S.L Método y aparato para controlar una matriz de elastómeros dieléctricos evitando interferencias
CN102142846B (zh) * 2010-01-28 2013-11-06 环旭电子股份有限公司 键盘扫描装置及其按键矩阵电路与其扫描方法
KR101036992B1 (ko) * 2010-10-29 2011-05-25 한화에스앤씨주식회사 인터럽트를 이용한 키 입력 처리 장치
CN103368581B (zh) * 2012-03-28 2016-05-04 光宝电子(广州)有限公司 键盘扫描方法及应用该方法的键盘
US10531814B2 (en) 2013-07-25 2020-01-14 Medtronic Navigation, Inc. Method and apparatus for moving a reference device
CN103529384B (zh) * 2013-10-10 2016-05-18 天地融科技股份有限公司 一种按键检测方法
TWI592830B (zh) * 2015-10-06 2017-07-21 微星科技股份有限公司 鍵盤按鍵掃描方法
CN105429644B (zh) * 2015-11-26 2018-06-22 江苏惠通集团有限责任公司 一种键盘扫描的系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4405917A (en) * 1981-04-28 1983-09-20 Honeywell Inc. Matrix screening and grounding arrangement and method
JPH02184120A (ja) * 1989-01-11 1990-07-18 Oki Electric Ind Co Ltd キーボード装置
US7158056B2 (en) * 2004-07-08 2007-01-02 Cypress Semiconductor Corporation Method and apparatus for scanning a key or button matrix
US8350733B2 (en) * 2006-10-13 2013-01-08 Infineon Technologies Ag Keyboard scan for human interface devices

Also Published As

Publication number Publication date
US20080316067A1 (en) 2008-12-25
US8350730B2 (en) 2013-01-08

Similar Documents

Publication Publication Date Title
DE102008047442A1 (de) Tastaturabfrage
DE3910863C2 (de)
DE2648229C2 (de)
DE2312707A1 (de) Pruefanordnung fuer einen computer
DE102005006372A1 (de) Inhalationstherapievorrichtung und Verfahren zu deren Betrieb
DE2262476A1 (de) Fehlersuchsystem und maschinell ausgefuehrtes fehlersuchverfahren
DE3880300T2 (de) Tastatur mit geistertasten-feststellung.
DE1812137C3 (de) Elektronische Datenverarbeitungsanlage
DE102018121445A1 (de) Zugangskontrollverfahren
DE3326538C2 (de)
DE112010002334T5 (de) Steuerungsverfahren und Vorrichtung für ein Dualkanal-gewichtetes LPOS-Kombinierungsschema
DE3327874A1 (de) Speichermodul fuer ein programmierbares elektronisches geraet
DE69910566T2 (de) Elektronische integrierte Schaltung mit Trimmmittel und Verfahren dafür
DE112006003857T5 (de) Anti-Geisterzeugungs-Tastatur
DE2032316C3 (de) Tasteneingabeanordnung für Informationen
DE3242631C2 (de)
DE602005002789T2 (de) Eingabetastatur mit erhöhter Anzahl von Tasten, für ein elektronisches Gerät mit begrenzter Anzahl von Anschlüssen
DE3315683C1 (de) Schaltungsanordnung zum Abfragen einer Matrix aus Tastenkontakten
DE2327352C3 (de) Selbsttestende Prüfschaltung
DE10013554B4 (de) Verfahren und Vorrichtung zur bidirektionalen Datenkommunikation mit einer wenigstens ein elektronisches Gerät steuernden Datenverarbeitungseinrichtung
DE2014729A1 (de) Datenverarbeitungssystem mit mindestens einer Datenverwendungseinheit
DE3586695T2 (de) Selbstpruefendes datenverarbeitungssystem mit pruefmasterarbitrierung.
DE102018219555A1 (de) Vorrichtung zum Einstellen einer Fahrstufe für ein Automatik-Getriebe eines Fahrzeugs
EP1594024B1 (de) Analysierung des Lastverhaltens einer Ausgangsschaltung
DE2118630A1 (de) Lehreinrichtung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee