-
Die
meisten Hersteller von Fernsehgeräten (TV), Videokassettenrekorder
(VCR) und anderen Unterhaltungselektronikgeräten bieten Fernsteuerungsgeräte, um ihre
Geräte
zu steuern. Die Geräte
von unterschiedlichen Herstellern werden üblicherweise mit verschiedenen
Fernsteuerungsgeräten
gesteuert. Um die Anzahl der individuellen Fernsteuerungsgeräte, die
ein bestimmter Benutzer benötigt,
zu minimieren, wurden universelle Fernsteuerungsgeräte entwickelt,
die konfiguriert sein müssen,
um verschiedene Funktionen eines Fernsehgerätes, VCR und anderer elektronischen
Geräte
eines Benutzers zu steuern. Ein erstes Verfahren zum Konfigurieren
eines universellen Fernsteuerungsgerätes erfordert von dem Benutzer
die Eingabe von Codes in das Fernsteuerungsgerät, die den Marken und Modellen
der verschiedenen zu steuernden Geräten entsprechen und mit diesen übereinstimmen.
Diese Art von Verfahren wird häufig
in Zusammenhang mit so genannten vorprogrammierten Universalfernsteuerungen
benutzt. Bei einem zweiten Verfahren zum Konfigurieren eines Universalfernsteuerungsgerätes werden
Kodes, die von dem Fernsteuerungsgerät gelernt werden, von dem Gerät oder Einheit,
das/die zu steuern ist, an das Fernsteuerungsgerät kommuniziert. Detaillierte
Beschreibungen von Universalfernsteuerungssystemen, die solche Konfigurationsverfahren
verwenden, können im
U.S. Patent Nr. 5.255.313, ausgestellt an Paul. V. Darbee, im U.S.
Patent Nr. 4.626.848, ausgestellt an Ehlers, und US. Patent Nr.
4.866.434, ausgestellt an Douglas M. Keenan.
-
Die
verwendeten Vorgänge
und Algorithmen, die verwendet werden, um Fernsteuerungsgeräte beizubringen,
diese Funktionen zu steuern, sind im Stand der Technik bekannt.
Dementsprechend werden die Lern- und Lehrvorgängen, die durch ein Universalfernsteuerungsgerät vom Lerntyp
benutzt werden, hierin nur zu dem Ausmaß beschrieben, der für das Verständnis der
Erfindung notwendig ist.
-
Die
vorliegende Erfindung betrifft ein Fernsteuerungsgerät und ein
Verfahren zum Ermöglichen
einem Fernsteuerungsgerät,
das Kodierungsformat von Geräten,
die bei höheren
Trägerfrequenzen
arbeiten, zu lernen, obwohl die Trägerfrequenzen nicht direkt
durch das Fernsteuerungsgerät
verarbeitet oder gemessen werden können. Die Erfindung ist deshalb
durch die Merkmale des Anspruchs 1 und 9 festgelegt.
-
Die
gegenständliche
Erfindung benutzt Rekonstruktionseigenschafen von Empfängersignalen
in Kombination mit einer Kenntnis der verwendeten Codeformate, um
einem Fernsteuerungsgerät
zu ermöglichen, das
Kodierungsformat der Geräte
zu lernen, die bei hohen Trägerfrequenzen
arbeiten, obwohl die Trägerfrequenzen
nicht direkt gemessen werden können.
-
Die
vorangehenden Merkmale und Vorteile der vorliegenden Erfindung werden
aus der folgenden spezifischeren Beschreibung der Erfindung offensichtlich.
Die beigefügten
Zeichnungen, die hierin später
aufgelistet sind, sind zum Erklären
der Erfindung nützlich.
-
1 ist
ein Blockdiagramm, das ein Fernsteuerungsgerät zeigt, welches mit einem
Fernsehgerät kommuniziert;
-
2 zeigt
Wellenformen eines typischen IR Signals, das von einem zu steuernden
Gerät,
wie einem Fernsehgerät,
an ein Fernsteuerungsgerät übermittelt
wird;
-
3 zeigt
Wellenformen eines Hochfrequenz-Trägersignals, das wie z.B. von
einem Fernsehgerät an
einen Standardempfänger
in einem Fernsteuerungsgerät übermittelt
wird;
-
4 zeigt
Wellenformen eines Hochfrequenz-Trägersignals, das wie z.B. von
einem Fernsehgerät übermittelt
wird und durch einen Hochfrequenz-Empfänger in einem Fernsteuerungsgerät rekonstruiert
wird;
-
5 zeigt
ein Signalkodierungsschema in Übereinstimmung
mit der Erfindung;
-
6 zeigt
den Datenrahmen der 5, sobald er von einem Hochfrequenz-Übermittler dekodiert wird;
und,
-
7 zeigt
ein Flussdiagramm des erfindungsgemäßen Verfahrens.
-
Unter
Bezugnahme auf die 1 bis 4 ist eine
kurze Beschreibung der Zeichnungsfiguren hierin später eingeschlossen.
Wie in dem in 1 gezeigten Blockdiagramm des
erfindungsgemäßen Systems 11 gezeigt
ist, wird das Signal oder der Code, der zu lernen ist, wie durch
die punktierten Linien 14 gezeigt ist, von einer bestimmten
Fernsteuerungseinheit 12 des zu steuernden elektronischen
Gerätes
(TV, VCR oder anderes Gerät)
an einen Infrarot (IR) Detektor 15 in dem Fernsteuerungsgerät 16,
welches Gerät
die richtigen Codes für
das Steuern dieses bestimmten Gerätes zu „lernen" hat, übermittelt. Das zu lernende
IR wird an den Detektor übermittelt,
verstärkt
und an einem Eingang eines Mikrokontrollers (Mikroprozessor) 17 in
dem Fernsteuerungsgerät 16 angelegt.
Wie in 2 gezeigt ist, wird, da die Reaktionszeit des
elektrischen Schaltkreises in dem Fernsteuerungsgerät 16 beschränkt ist,
das ursprünglich übertragene
Signal, gezeigt als ein Recktecksignal in 2A,
am Mikrokontrollereingang 17, wie in 2B dargestellt,
präsentiert;
d.h. das Signal ist verzerrt und ist keine exakte Kopie des ursprünglichen
Signals.
-
Die
Wellenform des gesendeten Signals, wie in 2A gezeigt,
ist typisch. Wie sich das am Mikrokontrollereingang angelegte Spannungsniveau
nach oben und unten verschiebt, wird sich der Logikwert dieses Eingangs,
wie durch die Software in dem Mikrokontroller 17 gemessen
wird, zwischen einer Eins (1) und einer Null (0) hin und her bewegen.
Diese Verschiebung wird durch den Bereich über einem Schwellenwert, wie
in 2B angezeigt, bestimmt. Der genaue
Wert des Bereichs und des Schwellenwertes, welcher ebenfalls eine Hysterese
einschließen
kann, ist eine Eigenschaft des verwendeten bestimmten Mikrokontrollers.
Zu den Abtastzeiten, angedeutet als 2C,
wird der binäre
Zustand (1 oder 0) des Einganges abgetastet und gespeichert. Diese
gespeicherten Daten können
dann verwendet werden, um die abgetasteten Signale, wie in 2D gezeigt, zu replizieren.
-
Das
Software-Programm im Mikrokontroller 17 kann den logischen
Zustand dieses Eingangs entweder durch repetierendes Abtasten oder
mittels eines geeigneten Unterbrechungsmerkmals für die Mikrokontroller-Hardware überwachen,
um jedes Mal zu erkennen, wenn der Eingang seinen Zustand ändert. Der
Einfachheit halber ist nur das repetierende Abtastverfahren hierin
beschrieben; jedoch bietet das Unterbrechungsverfahren ähnliche
Ergebnisse, und kann für
die beschriebenen Zwecke synonym verwendet werden.
-
Das
Signal (2A) wird als Signalfolge von
quadratischen (rechteckigen) Trägerimpulsen übertragen,
das entsprechende Signal, das durch den Mikroprozessoreingang empfangen
wird, ist, wie in 2B gezeigt, verzerrt,
das rekonstruierte Signal, wie es durch das Mikrokontroller 17 – Programm
gesehen wird, ist in 2D gezeigt, und
die resultierenden binären
Daten sind in 2C angegeben. Obwohl
eine gewisse Verzögerung
und/oder Verzerrung des Ausgangssignals im Prozess eingeführt wird,
ist der „Lern"-Software-Algorithmus dennoch
in der Lage, die Frequenz des Ausgangssignals durch Zählen der
Anzahl der binären Übergänge (Verschiebungen)
pro Zeiteinheit genau zu bestimmen. Die Trägerfrequenzinformation, zusammen
mit der Dauer jeder Signalfolge und den Lücken zwischen Ihnen, wird dann
verwendet, um die Definition des Codes, der zu lernen ist, zu bilden.
-
Die
Mehrheit der Infrarot-Fernsteuerungs-Codeformate verwenden Trägerfrequenzen
unter 100 kHz, d.h. sie sind leicht innerhalb den Fähigkeiten
von billigen IR Empfängerhardware
und Mikrokontrollern mit Standardgeschwindigkeit, um das Signal
auf die oben beschriebene Weise zu verarbeiten. Es gibt jedoch eine Reihe
von Codes, welche Trägerfrequenzen über diesem
Bereich verwenden, so hoch wie 400 kHz bis 1 MHz. Diese Codes, die
die höheren
Trägerfrequenzen
verwenden, verursachen in dem „lernenden" Fernsteuerungsgerät 16 aus
zwei Gründen
ein Problem.
-
Erstens
besitzt der billige Empfängerschaltkreis,
der in dem Fernsteuerungsgerät 16 enthalten
ist, welches für
die Verwendung mit niederen Trägerfrequenzen
geeignet ist, eine zu langsame Reaktionszeit, um diese Signale mit
höherer
Frequenz genau zu verfolgen. Dies ist deswegen, weil das Hochfrequenz-Signal,
das in 3A gezeigt ist, die Zustände schneller
wechselt, als der Empfänger
folgen kann. Das resultierende Signal am Mikrokontroller 17 Eingang
ist in 3B gezeigt, und dieses Signal
kann niemals von dem hohen Niveau des Schwellenwertes herunterschwingen.
Die Software wird keinen binären Übergang
detektieren und wird daraus folgern, dass der Input ein Basisband
ist, wie in 3D gezeigt ist; d.h. es
gibt keine Trägersignalfolge.
Das Ergebnis wird keine binären Übergänge und
keine Kodierung sein, dies ist in 3C angezeigt.
-
Zweitens,
sogar wenn das Fernsteuerungsgerät 17 mit
einem Hochleistungs-Empfängerschaltkreis ausgestattet
ist, kann der Mikrokontroller selbst nicht in der Lage sein, die
Eingangsübergänge schnell
genug zu verarbeiten, um eine genaue Zählung zu erhalten. Dies ist
in 4 illustriert. In diesem Fall ist der Mikroprozessor
nicht in der Lage, den eingehenden Impulsstorm schnell genug zu
bearbeiten, obwohl das Hochfrequenz-Eingangssignal, das wie in 4A gezeigt ist, übermittelt wurde, am Mikrokontrollereingang
treu reproduziert wird, siehe 4B.
Folglich werden einige der binären Übergänge vermisst.
Dies führt
zu einem scheinbaren Eingang, wie in 4D gezeigt
ist. Offensichtlich wird dies wiederum eine inkorrekte binäre Zählung ergeben,
wie in 4C angezeigt ist. Ein Ergebnis
wird die Speicherung einer inkorrekten Trägerfrequenz (zu niedrig) in
der gelernten Code-Definition sein.
-
Für die vorangehenden
zwei Gründe
sind die meisten lernenden Fernsteuerungsgeräte nicht in der Lage, Hochfrequenz-Geräte oder
Ausrüstungen
zu bedienen oder zu steuern.
-
Wie
oben angesprochen, betrifft die vorliegende Erfindung ein Verfahren
welches einem Fernsteuerungsgerät
ermöglicht
das Kodierungsformat eines Gerätes
zu lernen, welches bei hohen Trägerfrequenzen arbeitet,
obwohl die Trägerfrequenzen
nicht direkt durch das Fernsteuerungsgerät verarbeitet oder gemessen werden
können.
-
In
vielen IR Übertragungsschematas
ist der zu sendende Befehl als ein Zug von IR Träger-Signalfolgen und Lücken kodiert,
wobei die Variation in den Signalfolge- und/oder Lückendauern
verwendet wird, um einen String von binären Werten darzustellen. Diese „Rahmen" oder Gruppen von
Daten werden üblicherweise wiederholt
gesendet, und zwar solange, wie eine Taste auf dem Fernsteuerungsgerät gedrückt wird. 5 zeigt
ein solches Schema, wobei acht (8) Bits von Daten in einen IR Signalrahmen
kodiert werden. 5A zeigt mehrere Datenrahmen. 5B zeigt einen verhältnismäßig großen Einzelrahmen der 5A. 5C zeigt
eine Signalfolge des Trägersignals.
Der Rahmen der 5B weist eine Serie
von IR Signalfolgen fixierter Länge
P1 auf, wobei variable Lückendauern
G1 und G2 dazwischen sind, welche üblicherweise als Puls-Position-Modulation
oder PPM bezeichnet wird.
-
Unter
jetziger Bezugnahme auf 6, welche zeigt, dass jeder „Puls" aus einer Signalfolge
von IR Trägersignalen
besteht. In diesem bestimmten Schema wird der Informationsgehalt
in der unterschiedlichen Länge
der Lücken
G1 und G2 zwischen den Signalfolgen kodiert, damit kann gesehen
werden, dass der in diesem Beispiel gezeigte Befehl ein acht (8)
Bit Wert ist, der durch G1 und G2 bestimmt ist. Wenn der Wert „0" G1 zugeordnet wird
und der Wert „1" G2 zugeordnet wird,
entspricht dies dem Byte-Wert 01101010 oder „6A" im Hexadezimalcode.
-
Viele
andere Arten von Puls-basierenden Kodierungsschemata existieren,
wobei einige Variationen von PPM-Codierung verwenden, andere verwenden
Schemata, bei denen die Länge
der Signalfolge die Variable ist, die als Puls-Breiten-Modulation
oder PWM bekannt ist. In noch anderen Schemata sind beide Parameter
variabel. In jedem Fall wird jedoch der Dateninhalt des Rahmens
letztendlich durch einen Reihe von Signalfolge-Breiten und Lücken-Breiten
dargestellt.
-
Um
diesen Befehl zu reproduzieren, muss somit eine „lernende" Fernsteuerung folgendes auswendig lernen
und speichern:
- a) die Trägerfrequenz der zu sendenden
Pulse; und
- b) die Reihen von Signalfolgezeiten, Lückenzeiten und Positionen,
die verwendet werden, um den Pulszug, der einem Rahmen von IR Daten
entspricht, zu replizieren.
-
Im
normalen Betrieb, wobei die Lernquelle die üblichen Trägerfrequenzen benutzt, misst
die Lernsoftware die Trägerfrequenz
von jeder Signalfolge, wie im Zusammenhang mit 2 oben
beschrieben ist, und speichert diese Daten zusammen mit der Signalfolge-
und Lückenablaufsinformation.
Wenn jedoch die Lernquelle ein Hochfrequenzgerät ist und die Lerneinheit eine
Empfängercharakteristik
aufweist, die ähnlich
zu der oben beschriebenen ist, dann „sieht" die Lerneinheit nur die Signalfolge/Lücke-Hülle des
IR Rahmens und nicht den Träger
selbst.
-
6 illustriert,
wie das Signal des Beispiels von
5 erscheinen
würde,
wenn es einen Hochfrequenz-Träger
verwenden würde
und durch das erfindungsgemäße System
dekodiert wird. Es wurde gefunden, dass die Hülle Informationen enthält, um die
Bestimmung der Signalfolge- und Lückenabläufe zu ermöglichen, obwohl die Trägerfrequenz
unbekannt bleibt. Da weiters erwartet werden würde, dass die Anzahl von unterschiedlichen
Hochfrequenz-Kodierungsschemata
die bei einer bestimmten Fernsteuerung angetroffen wird, nicht groß ist, ist
es möglich,
diese Kodierungsschemata, oder zumindest das beliebteste von solchen
Schemata zu identifizieren, indem charakteristische Information
des empfangenen Hüllenmusters
gegen die bekannten Charakteristika dieser verschiedenen Hochfrequenz-Kodierungsschemata
abgeglichen werden. Wenn eine Übereinstimmung
der charakteristischen Information gefunden wird, kann die Trägerfrequenz,
die zu verwenden ist, wenn der Mikrokontroller des Fernsteuerungsgerätes ein
Signal erzeugt, gefolgert oder abgeleitet werden. Dies nutzt die
Eigenschaften, die oben im Zusammenhang mit
3A diskutiert
sind. Ein Beispiel für
die charakteristische Information, gegen die gesucht werden könnte, ist
in Tabelle 1 gezeigt, welche folgt:
-
Zum
Beispiel würde
der Eintrag in einer Tabelle für
das Code-Muster, das in
6 gezeigt ist, in Tabelle 2
gezeigt werden, wie folgt:
-
Obwohl
die Tabellen 1 und 2 fünf
charakteristische Werte vorsehen, d.h. Signalfolgen pro Rahmen plus zwei
Möglichkeiten,
für jede
Signalfolge- und Lückenbreite,
sollte verstanden werden, dass in der Praxis die tatsächliche
Anzahl der verwendeten Parametern, wie erforderlich, nach oben oder
unten eingestellt werden kann, um jeden Hochfrequenz-Code in dem
zu unterstützenden
Satz eindeutig zu identifizieren. Vielmehr können bestimmte Parametertypen,
zum Beispiel die Anzahl der Signalfolgen pro Rahmen, vollständig weggelassen
werden, wenn die restlichen Elemente ausreichend sind, um alle Hochfrequenz-Codes,
die in einer bestimmten Anwendung von Interesse sind, eindeutig
zu identifizieren. In einigen Fällen
können
auch bestimmte Signalfolge/Lücken-Kombinationen
nur in Paaren auftreten. Falls alle Codes von Interesse eine bestimmte
Eigenschaft zeigen, können
diese Werte in der Tabelle kombiniert werden und als einen einzelnen
Eintrag für den
Vergleichszweck behandelt werden. Dieser Ansatz ist in Tabelle 3
unten dargestellt:
-
Da
es Codes gibt, die überhaupt
keinen Träger
verwenden, „Basisband"-Codes, muss der
Algorithmus, der die Suche durchführt, im Falle, dass eine geeignete Übereinstimmung
nicht gefunden wird, auf „keinen
Träger" voreingestellt werden.
Das Flussdiagramm in 7 zeigt, wie ein solcher Hüllen-Mustererkennungsvorgang
implementiert wird, um das Lernen eines von einem Satz von Hochfrequenzcodes
zu unterstützen,
wenn der Satz von beispielhaften Eigenschaften, die oben in Tabelle
1 gezeigt sind, verwendet wird.
-
Unter
Bezugnahme auf 7 beginnt die Software-Routine
mit dem Empfangen und Erfassen des IR Signals, das zu Lernen ist,
unter Verwendung von bekannten Techniken. Der Mikrokontroller speichert
die Werte, die aus den Trägerfrequenzen
und Signalfolge/Lücken-Dauern erhalten wurden,
welche, wie zuvor beschrieben, ausreichend sind, um das zu lernende
Signal vollständig
zu definieren. Der Mikrokontroller überprüft dann den Status der Trägerinformation,
um zu bestimmen, ob ein messbarer Trägerfrequenz-Wert ermittelt
wurde. Wenn eine Trägerfrequenz
ermittelt wurde, ist der Erfassungsvorgang abgeschlossen und keine weitere
Verarbeitung wird benötigt.
Wenn jedoch keine Trägerfrequenz
ermittelt wird, dann setzt das Programm fort, um Werte, die für die Signalfolge/Lückendauern
erhalten wurden, gegen Tabelleeinträge abzugleichen. Das Programm
gleicht somit die Eingangsparameter mit einem bestimmten Eintrag
in den gespeicherten Suchtabellen ab und bestimmt die Trägerfrequenz
des Eingangssignals. Beim Ausführen
dieser Vergleiche gewährt
das Programm einen verwendbaren Bereich oder Toleranz um den exakten
Tabellenwert, üblicherweise eine
Toleranz von 1% bis 5%, um Variationen im Erfassungsvorgang zu berücksichtigen.
-
Wenn
somit das Programm einen Eintrag findet, für welchen es Werte gibt, die
mit einer gegebenen Toleranz übereinstimmen,
bestimmt das Programm, dass die neu gespeicherte Trägerfrequenz
eine Trägerfrequenz
ist, die im Tabelleneintrag enthalten ist. Die neu gespeicherte
Trägerfrequenz
wird dann aktualisiert oder auf die Frequenz des Tabelleneintrags
modifiziert. Wenn das Programm überhaupt
keine Übereinstimmung
findet, nimmt das Programm an, dass die erfassten Werte einem wahren
Basisband-Code entsprechen und steigt mit den unveränderten
gespeicherten Daten aus.
-
Die
charakteristische Information wird somit effektiv verwendet, um
die bestimmte, zu steuernde Ausrüstung
zu identifizieren, und um dadurch die Trägerfrequenz, um die Ausrüstung operativ
zu steuern, abzuleiten.
-
Bei
einer alternativen Ausführungsform
der Erfindung können
die Verarbeitungsschritte zwischen den Punkten A und B der 6 eher
zu einem Zeitpunkt ausgeführt
werden, wenn die Parameter von dem Speicher abgerufen werden, um
das Signal für
die Übertragung
zu regenerieren, als zu einem Zeitpunkt, zu dem sie ursprünglich gespeichert
wurden. Diese Technik weist den zusätzlichen Vorteil auf, dass
sie auf Daten angewendet werden kann, die zuvor durch andere Geräte, die
diesen Algorithmus nicht einschließen, oder nicht mit geeigneten
Tabellenwerten ausgestattet waren, erfasst wurden.
-
Eine
weitere Modifikation des Systems weist ein lernendes Fernsteuerungsgerät auf, in
welchem die Tabellendaten für
das Identifizieren von Hochfrequenz-Geräten im Lese/Schreibspeicher
des Mikrokontrollers 17 enthalten sind und dieser kann
aktualisiert werden, um den Hochfrequenz-Bereich, den das System
zu steuern lernen kann, zu erweitern.