DE69838938T2 - Verfahren und Gerät zum Speichern von kodierten Datensignalen - Google Patents

Verfahren und Gerät zum Speichern von kodierten Datensignalen Download PDF

Info

Publication number
DE69838938T2
DE69838938T2 DE69838938T DE69838938T DE69838938T2 DE 69838938 T2 DE69838938 T2 DE 69838938T2 DE 69838938 T DE69838938 T DE 69838938T DE 69838938 T DE69838938 T DE 69838938T DE 69838938 T2 DE69838938 T2 DE 69838938T2
Authority
DE
Germany
Prior art keywords
template
samples
data signal
stored
counted
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.)
Expired - Lifetime
Application number
DE69838938T
Other languages
English (en)
Other versions
DE69838938D1 (de
Inventor
Kurt Alan Holland Dykema
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.)
Johnson Controls Technology Co
Original Assignee
Johnson Controls Technology Co
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 Johnson Controls Technology Co filed Critical Johnson Controls Technology Co
Publication of DE69838938D1 publication Critical patent/DE69838938D1/de
Application granted granted Critical
Publication of DE69838938T2 publication Critical patent/DE69838938T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C17/00Arrangements for transmitting signals characterised by the use of a wireless electrical link
    • G08C17/02Arrangements for transmitting signals characterised by the use of a wireless electrical link using a radio link
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C9/00Individual registration on entry or exit
    • G07C9/00174Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
    • G07C9/00857Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys where the code of the data carrier can be programmed
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C19/00Electric signal transmission systems
    • G08C19/16Electric signal transmission systems in which transmission is by pulses
    • G08C19/28Electric signal transmission systems in which transmission is by pulses using pulse code
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C9/00Individual registration on entry or exit
    • G07C9/00174Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
    • G07C2009/00753Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys operated by active electrical keys
    • G07C2009/00769Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys operated by active electrical keys with data transmission performed by wireless means
    • G07C2009/00793Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys operated by active electrical keys with data transmission performed by wireless means by Hertzian waves
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C9/00Individual registration on entry or exit
    • G07C9/00174Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
    • G07C9/00857Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys where the code of the data carrier can be programmed
    • G07C2009/00865Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys where the code of the data carrier can be programmed remotely by wireless communication
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C9/00Individual registration on entry or exit
    • G07C9/00174Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
    • G07C9/00857Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys where the code of the data carrier can be programmed
    • G07C2009/00888Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys where the code of the data carrier can be programmed programming by learning
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C2209/00Indexing scheme relating to groups G07C9/00 - G07C9/38
    • G07C2209/06Involving synchronization or resynchronization between transmitter and receiver; reordering of codes
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C9/00Individual registration on entry or exit
    • G07C9/00174Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
    • G07C9/00182Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys operated with unidirectional data transmission between data carrier and locks
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C2201/00Transmission systems of control signals via wireless link
    • G08C2201/20Binding and programming of remote control devices

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Die vorliegende Erfindung betrifft allgemein ein Verfahren zum Speichern eines codierten Datensignals und insbesondere ein Verfahren zum Speichern eines Datencodes, welcher in einem Signal codiert ist, das vom einem lernfähigen Sender empfangen wird, derart, dass es danach für die Sendung an eine gesteuerte Vorrichtung regeneriert werden kann.
  • Lernfähige Sender werden dafür verwendet, bestimmte Eigenschaften empfangener Steuersignale zu lernen, derart, dass der lernfähige Sender danach ein Signal, welches die erlernten Eigenschaften aufweist, erzeugen und an eine ferngesteuerte Vorrichtung senden kann. Ferngesteuerte Vorrichtungen, z. B. Garagentoröffner, Fernsehgeräte und Stereoanlagen, umfassen ein Signalempfangs-Schaltungssystem, welches nach speziellen Signaleigenschaften in einem Signal sucht, welches von dem Ursprungssender empfangen wird, der typischerweise zusammen mit der ferngesteuerten Vorrichtung erworben wird. Wenn das Empfangsschaltungssystem ein Signal empfängt, welches diese Eigenschaften nicht aufweist, reagiert das Empfangsschaltungssystem nicht auf das Signal.
  • Die Eigenschaften, welche ein lernfähiger Sender lernen muss, um den Ursprungssender wirksam zu simulieren, hängen von den Eigenschaften ab, nach welchen die ferngesteuerte Vorrichtung in einem empfangenen Signal sucht, wenn sie ermittelt, ob sie auf das empfangene Signal durch die Durchführung einer vorbestimmten Maßnahme reagieren soll oder nicht. Zum Beispiel müssen universelle Fernsteuerungssender der Art, wie sie verwendet werden, um Heim-Audio- und Videogeräte zu steuern, einen Infrarot(IR)-Lichtstrahl erkennen und danach die Eigenschaften des Datencodes lernen können, der auf den IR-Lichtstrahl moduliert ist. Solche Eigenschaften umfassen typischerweise die Sequenz von Binärlogikdaten (Nullen und Einsen) ebenso wie die Dauer und Frequenz der Bitimpulse, welche die Binärdaten darstellen.
  • Lernfähige Hochfrequenz(HF)-Sender sind bekannt und werden verwendet, um die Eigenschaften eines HF-Signals zu lernen, welches von einem Fernsteuerungssender für ein Garagentor gesendet wird, und um ein HF-Signal, welches jene Eigenschaften aufweist, zu erzeugen und an einen Garagentor-Öffnungsmechanismus zu senden. Beispiele für solche lernfähigen HF-Sender sind in den US-Patentschriften 5,442,340 ; 5,479,155 ; 5,583,485 ; 5,614,885 ; 5,614,891 ; 5,627,529 ; 5,661,804 ; 5,686,903 und 5,708,415 offenbart. Lernfähige HF-Sender der Art, wie sie in diesen Patentschriften offenbart sind, unterscheiden sich dadurch von den lernfähigen HF-Sendern, welche verwendet werden, um elektronische Heimgeräte zu steuern, dass die Trägerfrequenz des gesendeten HF-Trägersignals von einem System zum anderen merklich variieren kann. Ferner sind die Empfänger der Vorrichtungen, die unter Verwendung solcher HF-Steuersignale gesteuert werden, typischerweise fein darauf abgestimmt, ein HF-Signal zu empfangen, welches eine bestimmte Trägerfrequenz aufweist. Deswegen müssen lernfähige HF-Sender dieser Art nicht nur dieselben Eigenschaften des Datencodes wie ein lernfähiger IR-Sender lernen, sondern sie müssen auch die Trägerfrequenz des HF-Trägersignals lernen.
  • Sowohl lernfähige HF- als auch lernfähige IR-Sender umfassen typischerweise mehrere „Kanäle" zum Speichern der Eigenschaften mehrerer Signale. Jedes Signal ist typischerweise mit einem vom Benutzer betätigten Schalter verbunden, so dass ein Benutzer für den lernfähigen Sender ein bestimmtes der gelernten Signale auswählt, indem er den zugehörigen Schalter aktiviert. Um dem lernfähigen Sender zu ermöglichen, die Signaleigenschaften verschiedener Signale unterschiedlicher Länge und Dauer zu lernen, muss die innerhalb des lernfähigen Senders für jeden seiner Kanäle bereitgestellte und zugeordnete Speichermenge groß genug sein, um die Eigenschaften des längsten bekannten Signals zu speichern, welches der lernfähige Sender erwartungsgemäß möglicherweise lernen muss. Je größer demzufolge die Anzahl der bereitgestellten Kanäle in dem lernfähigen Sender, desto größer ist der benötigte Speicher. Wenn ferner ein Hersteller eines Ursprungs-Fernsteuerungssenders und eines entsprechenden Empfängers ein System konstruiert, um Datencodes mit größeren Längen als bei jedem zuvor bestehenden System zu verwenden, muss sich die Größe des zugeordneten Speichers je Kanal für den lernfähigen Sender entsprechend erhöhen, um solche Datencodes zu lernen und somit wirklich „universell" zu sein.
  • Die in den oben angeführten Patentschriften beschriebenen lernfähigen HF-Sender identifizieren zuerst die Trägerfrequenz eines empfangenen HF-Signals und demodulieren das Signal unter Verwendung eines Referenzsignals, welches eine Frequenz aufweist, die sich auf die Trägerfrequenz des empfangenen HF-Signals bezieht. Das demodulierte Datensignal wird mit einem relativ hohen Abtastintervall (ungefähr 68 μs) abgetastet, um einen digitalisierten Datenstrom zu erzeugen, welcher das Datensignal darstellt. Dieser digitalisierte Datenstrom wird im Direktzugriffsspeicher (RAM) eines Mikroprozessors gespeichert, bis der RAM mit Daten gefüllt ist. Der Prozessor analysiert dann den digitalisierten Datenstrom, um die Anfangs- und Endpunkte eines gesendeten Datencodeworts zu erkennen, indem er innerhalb des Datenstroms, mit welchem der RAM gefüllt ist, nach Wiederholungen von Datenstrukturen sucht. Der Mikroprozessor verdichtet dann den digitalisierten Datenstrom, indem er alle Daten entfernt, die nicht in dem identifizierten Datencodewort enthalten sind. Danach speichert der Mikroprozessor die verdichteten digitalisierten Daten in seinem nichtflüchtigen Speicher (Non-Volatile Memory, NVM). Wenn ein Schalter betätigt wird, der zu einem bestimmten Kanal gehört, reagiert der Mikroprozessor damit, dass er die Daten von seinem NVM in seinen RAM überträgt und ein Ausgangs-Datensignal erzeugt, indem er die Daten aus seinem RAM mit derselben Rate ausliest, mit welcher er das Signal während des Lernmodus abgetastet hat. Vorausgesetzt, diese Abtastrate ist hoch genug, ist diese Technik ausreichend, um jedes empfangene Datensignal zu erwerben und zu speichern, ohne dass man jede Impulslänge oder Impulsfrequenz der in dem Datensignal enthaltenen Binärdaten einzeln identifizieren muss. Somit arbeitet der Mikroprozessor effektiv als digitale Aufzeichnungsvorrichtung, um das Signal im Wesentlichen auf dieselbe Weise aufzuzeichnen, wie ein Computer ein über ein verbundenes Mikrofon empfangenes Sprachsignal speichert.
  • Um die Menge an NVM, die benötigt wird, um ein digitalisiertes Datensignal zu speichern, weiter zu verringern, wurde durch den Erfinder eine Komprimierungstechnik entwickelt, wodurch, sobald das digitalisierte Datensignal den RAM des Mikroprozessors gefüllt hat und unter Anwendung der in den obigen Patentschriften beschriebenen Verdichtungsroutine verdichtet worden ist, das verdichtete digitalisierte Datensignal dann weiter verarbeitet wird, indem Strukturen in dem Datensignal erkannt werden, Schablonen für jede identifizierte Struktur eingerichtet werden und eine Sequenz gespeichert wird, welche die Sequenzreihenfolge in dem digitalisierten Datensignal identifiziert, in welcher die Daten in dem Signal den eingerichteten Schablonen entsprechen. Insbesondere erkennt der Prozessor, nachdem das digitalisierte Datensignal, welches den Mikroprozessor-RAM füllt, verdichtet worden ist, die erste Anstiegsflanke in dem Datensignal (also den ersten Übergang von einem Wert „0" zu einem logischen Wert „1") und zählt dann die Anzahl der Abtastungen, welche sich durchgehend auf dem Wert „1" befinden. Wie in 1 dargestellt, sind jeder Schablone 5 Bytes zugeordnet. Jedes Byte kann für Zählungen bei einer logischen „1" einen Hexadezimalwert von „0" bis „FF" oder für Zählungen bei einer logischen „0" einen Wert von „0" bis „7F" annehmen. Der in jedem Byte gespeicherte Wert stellt die Anzahl durchgängiger Abtastungen mit einem bestimmten Binärlogikwert dar. Somit gibt es, wie in den ersten beiden Bytes der ersten Schablone dargestellt, in dem in 2 dargestellten beispielhaften Datencode „FF" + 4 (d. h. 300) Abtastungen mit dem Binärwert „1" für den ersten Datenimpuls. Weil der in dem zweiten Byte gespeicherte Wert kleiner ist als „FF", kann ermittelt werden, dass nach „FF" + 4 Abtastungen mit einem logischen Wert „1" eine Abtastung mit einem logischen Wert „0" erkannt wurde. Daher wird das nächste Byte in der ersten Schablone verwendet, um die Anzahl der Abtastungen mit dem logischen Wert „0" zu speichern. Wenn es mehr als „7F" Abtastungen mit dem Wert „0" gibt, wird das dritte Byte der ersten Schablone mit „7F" besetzt, und die Zählung wird fortgesetzt und in das nächste Byte und möglicherweise sogar das übernächste Byte gesetzt. Wenn eine logische „1" in dem digitalisierten Datensignal erkannt wird, bevor das letzte Byte der Schablone besetzt worden ist (so dass also der Wert in dem vierten Byte der ersten Schablone kleiner ist als „7F"), wird das letzte Byte mit „00" besetzt, und die Anzahl der Abtastungen mit dem logischen Wert „1" wird in der nächsten Schablone aufgezeichnet.
  • Bis zu fünfzehn Schablonen dieser Art können im Speicher gespeichert werden, und jeder ist ein Kennwert in der Sequenz von „0" bis „F" zugeordnet, so dass jede Schablone ihre eigene eindeutige Kennung aufweist. Natürlich entspricht die erste Schablone dem ersten Abschnitt des Datensignals und somit wird ein Wert „0" in einem Schablonensequenzabschnitt 10 des Speichers für den Kanal gespeichert. Wenn der Mikroprozessor die Anzahl der Abtastungen mit irgendeinem gegebenen logischen Wert zählt, vergleicht er die Anzahl der gezählten Werte mit der Anzahl der gezählten Werte für Schablonen, die bereits definiert worden sind. Wenn ein Abschnitt der Daten, die analysiert werden, bereits einer definierten Schablone entspricht, erzeugt der Mikroprozessor keine neue Schablone, sondern speichert stattdessen einfach die Kennung der entsprechenden zuvor definierten Schablone im Schablonensequenzabschnitt 10 des zugeordneten Speichers. Der Mikroprozessor so damit fort, jeden Abschnitt des verdichteten digitalisierten Datensignals zu analysieren, bis der gesamte Abschnitt des digitalisierten Signals auf diese Weise codiert worden ist.
  • In der Folge liest der Mikroprozessor nach dem Empfang eines Befehls, das gespeicherte codierte Datensignal zu senden, sequenziell die Sequenz der Schablonenkennungen aus, die im Schablonensequenzabschnitt 10 des Speichers gespeichert ist. Der Mikroprozessor verwendet diese Kennungen danach, um auf die identifizierten Schablonen in der Reihenfolge zuzugreifen, in welcher der Mikroprozessor die Schablonenkennungen während des Lernmodus gespeichert hat. Somit liest zum Beispiel in dem in 1 dargestellten Beispiel der Mikroprozessor das erste Byte der ersten Schablone aus und erzeugt einen digitalen logischen Wert „1" für eine Zählung von 256 (FF) Taktimpulsen, die mit derselben Abtastrate erzeugt werden, mit welcher das Signal digitalisiert wurde, und liest dann danach das zweite Datenbyte in der ersten Schablone aus und ermittelt, dass er bei der logischen „1" vier weitere Zählungen mit dieser Abtastrate erzeugen muss. Dann, wenn er erkannt hat, dass der aus einem der Bytes ausgelesene Wert kleiner ist als „FF", beginnt der Mikroprozessor, einen logischen Wert „0" für die Anzahl der Zählungen zu erzeugen, die in den verbleibenden Bytes der Schablone identifiziert werden.
  • Obwohl die oben beschriebene Codiertechnik für Datensignale bei im Wesentlichen allen Garagentor-Öffnungsmechanismen zufriedenstellend funktioniert, die in den USA verkauft werden, senden und empfangen bestimmte Garagentor-Öffnungsmechanismen, die in Europa verwendet werden, Datencodes, die zu lang sind, um im NVM des Mikroprozessors gespeichert zu werden, sogar wenn die obige Datenspeicherungstechnik angewendet wird. Noch problematischer ist es, dass diese Datencodes auch zu lang dafür sind, im RAM des Mikroprozessors gespeichert zu werden. Wenn das Datencodewort zu lang ist, um in den RAM des Mikroprozessors zu passen, kann der Mikroprozessor nicht ein gesamtes Codewort lernen und speichern und kann daher danach nicht den richtigen Datencode senden, auf welchen die ferngesteuerte Vorrichtung reagiert. Deswegen besteht ein Bedarf nicht nur für einen effektiveren Datenkomprimierungs-Codieralgorithmus, sondern auch für einen Komprimierungsalgorithmus, welcher in Echtzeit durchgeführt werden kann, wenn das empfangene Datensignal digitalisiert und im RAM eines Mikroprozessors gespeichert wird, so dass ein gesamtes Datencodewort für ein darauf folgendes Senden wirksam im RAM des Mikroprozessors und in seinem NVM gespeichert werden kann.
  • EP 0 763 806 offenbart eine lernfähige Fernsteuerungsvorrichtung zum Lernen von IR-Codes entfernter Einheiten. Die lernfähige Fernsteuerungsvorrichtung umfasst ein Steuermittel, ein Speichermittel, welches mit dem Steuermittel verbunden ist, ein IR-Sendemittel, ein erstes IR-Empfangsmittel, welches mit dem Steuermittel verbunden ist, und ein zweites IR-Empfangsmittel.
  • EP 0 763 806 offenbart auch ein Verfahren zum Lernen von IR-Codes z. B. von Satellitenempfängern, welches die folgenden Schritte umfasst:
    • (a) Ermitteln, ob das eingehende Signal eines eines Impulstyps oder eines modulierten Typs ist;
    • (b) Ermitteln, ob das eingehende Signal Toggle-Bits umfasst;
    • (c) Ermitteln der Datencodes;
    • (d) Ermitteln des Sendeformats; und
    • (e) Testen der gelernten Codes und Formate.
  • US 4,802,114 offenbart einen programmierbaren Fernsteuerungssender, welcher in einem Lernmodus Fernsteuerungscodes für die Fernsteuerung verschiedener Vorrichtungen empfängt und die Vorrichtungen gemäß den empfangenen Fernsteuerungscodes fernsteuert, indem er deren entsprechende Sender simuliert. Der Sender umfasst einen ersten Wiederholungsmuster-Diskriminator zum Komprimieren der Fernsteuerungscodes zu ersten komprimierten Daten, welche die Impulsbündelkomponente und die Impuls-Aus-Komponente darstellen. Der Sender umfasst auch einen zweiten Wiederholungsmuster-Diskriminator zum Umwandeln von Paaren der ersten komprimierten Daten in zweite komprimierte Daten. Der Sender umfasst auch ein Schaltungssystem für die Verwendung in einem Fernsteuerungs-Betriebsmodus zum Rückumwandeln der gespeicherten komprimierten Daten zu Codes, die für ein Senden zu einer speziellen zu steuernden Vorrichtung geeignet sind.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Dementsprechend ist es ein Aspekt der vorliegenden Erfindung, die obigen Probleme zu lösen, indem sie den Datenkomprimierungsalgorithmus bereitstellt, der in Echtzeit durchgeführt werden kann, wenn ein digitalisiertes Signal den RAM eines Mikroprozessors füllt. Es ist ein weiterer Aspekt der vorliegenden Erfindung, einen Datensignal-Komprimierungsalgorithmus bereitzustellen, welcher ein Datensignal wirksamer komprimieren kann. Ein weiterer Aspekt der vorliegenden Erfindung ist es, eine adaptive Datendigitalisierungs- und Komprimierungstechnik bereitzustellen, bei welcher mehrere verschiedene Abtastraten angewendet werden können. Noch ein weiterer Aspekt der vorliegenden Erfindung ist es, einen Komprimierungsalgorithmus bereitzustellen, welcher wirksam Datensignale komprimiert, welche ausgedehnte „Totzeiten" (also lange Perioden auf einer logischen Ebene „0") aufweisen.
  • Um diese und andere Aspekte und Vorteile zu erreichen, umfasst das Datenspeicherungsverfahren der vorliegenden Erfindung die folgenden Schritte: (a) Empfangen eines codierten Datensignals; (b) Abtasten des empfangenen codierten Datensignals mit einer ersten Abtastrate; (c) Zählen der Anzahl aufeinander folgender Abtastungen auf einer ersten logischen Ebene; (d) Speichern der Anzahl der in Schritt (c) gezählten Abtastungen in einem ersten Abschnitt einer Speicherschablone; (e) Zählen der Anzahl aufeinander folgender Abtastungen auf einer zweiten logischen Ebene; (f) Vergleichen der Anzahl der in Schritt (e) gezählten Abtastungen mit einem Schwellenwert; (g) Verringern der Abtastrate, mit der das empfangene codierte Datensignal abgetastet wird, und Zählen der Anzahl aufeinander folgender Abtastungen auf der zweiten logischen Ebene, wenn die Anzahl der in Schritt (e) gezählten Abtastungen den Schwellenwert überschreitet; und (h) Speichern der Anzahl der in Schritt (e) gezählten Abtastungen in der Speicherschablone, wenn die Schwelle nicht überschritten wurde, oder der Anzahl der in Schritt (g) gezählten Abtastungen, wenn der Schwellenwert überschritten wurde. Eine gemäß der vorliegenden Erfindung konstruierte Vorrichtung umfasst einen Prozessor, welcher dafür programmiert ist, die obigen Schritte auszuführen.
  • Diese und andere Merkmale, Vorteile und Gegenstände der vorliegenden Erfindung versteht und erkennt der Fachmann besser durch Bezugnahme auf die folgende Beschreibung, die Patentansprüche und die beigefügten Zeichnungen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Diagramm, welches die Inhalte eines Speichers eines herkömmlichen lernfähigen Senders veranschaulicht;
  • 2 ist ein Diagramm, welches ein beispielhaftes Datencodesignal der Art darstellt, wie sie typischerweise von einer Steuervorrichtung in einem lernfähigen Sender empfangen werden;
  • 3 ist ein schematisches Diagramm eines lernfähigen Senders in Blockform, welcher gemäß der vorliegenden Erfindung konstruiert ist;
  • 4A bis 4C sind Ablaufdiagramme der Datenkomprimierungstechnik, die in dem lernfähigen Sender der vorliegenden Erfindung realisiert ist; und
  • 5 ist ein Diagramm, welches die Inhalte des Speichers eines lernfähigen Senders darstellt, der gemäß der vorliegenden Erfindung konstruiert ist.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Die Datenspeicherungstechnik der vorliegenden Erfindung kann in jedem lernfähigen Sender realisiert werden, z. B. sowohl in lernfähigen IR- als auch in lernfähigen HF-Sendern. Soweit die Datenspeicherungstechnik der vorliegenden Erfindung insbesondere für die Anwendung in einem lernfähigen HF-Sender entwickelt wurde, wird unten eine kurze Beschreibung des allgemeinen Betriebs eines lernfähigen HF-Senders gegeben.
  • Die in den oben angeführten Patentschriften beschriebenen lernfähigen HF-Sender umfassen im Allgemeinen eine Antenne 102, welche benutzt wird, um während eines Lernmodus Ursprungssignale „B" von entfernten Ursprungssendern 104 zu empfangen und während eines Betriebsmodus Signale „T" an ferngesteuerte Vorrichtungen 106 zu senden. Der Fachmann wird erkennen, dass zum Senden und Empfangen dieser HF-Signale jeweils eigene Antennen benutzt werden können. Die Antenne 102 ist mit einem Mischer 108 verbunden, welcher während des Lernmodus das empfangene HF-Signal „B" mit einem Referenzsignal mischt, das von einem spannungsgesteuerten Oszillator (Voltage Controlled Oscillator, VCO) 110 erzeugt wird. Die Frequenz des vom VCO 110 erzeugten Referenzsignals wird über eine Phasenregelkreis-Schaltung 112 selektiv von einem Mikroprozessor 120 gesteuert. Die Phasenregelkreis-Schaltung 112 ist mit einem Frequenzsteuerungsanschluss 113 des VCO 110 verbunden und mit dem Ausgang des VCO 110 verbunden, um die Frequenz des ausgegebenen Referenzsignals zu überwachen.
  • Die Ausgabe des Mischers 108 wird durch einen Bandpassfilter 122 geleitet. Der Bandpassfilter 122 dient dazu, alle von dem Mischer 108 ausgegebenen Signale zu sperren, außer den Signalen, welche eine vorgegebene Frequenz aufweisen. Signale, welche diese vorgegebene Frequenz aufweisen, werden vom Mischer 108 nur ausgegeben, wenn die Differenz zwischen der Frequenz des vom VCO 110 erzeugten Referenzsignals und der Frequenz des empfangenen HF-Signals „B" 455 kHz beträgt. Die Ausgabe des Bandpassfilters 122 wird dann von einer Verarbeitungsschaltung 124 verarbeitet, welche einen Verstärker und ein Integrierglied umfasst, und dann an einen Dateneingabeanschluss 121 des Mikroprozessors 120 angelegt. Die Datenausgabe aus der Verarbeitungsschaltung 124 kann ähnlich jener in 2 dargestellten ähneln.
  • Während des Lernmodus variiert der Mikroprozessor 120 die Frequenz des VCO 110 Schritt für Schritt, bis er Daten an seinem Dateneingabeanschluss 121 erkennt. Da die Frequenzsteuerungssignalausgabe durch den Mikroprozessor 120 für jede vom VCO 110 zu erzeugende Frequenz einen unterschiedlichen digitalen Wert aufweist, kann der Mikroprozessor 120 den digitalen Wert des Frequenzsteuerungssignals zu der Zeit speichern, wenn Daten am Dateneingabeanschluss 121 erkannt werden. Dieser gespeicherte digitale Wert entspricht somit der Trägerfrequenz des empfangenen HF-Signals und kann deswegen verwendet werden, wenn der lernfähige Sender ein Signal übertragen muss, welches die Eigenschaften des gelernten HF-Signals aufweist.
  • Wenn der Mikroprozessor 120 das Vorliegen von Daten am Dateneingabeanschluss 121 erkennt, führt er den unten detaillierter beschriebenen Komprimierungsalgorithmus durch, um die eingegebenen Daten zu komprimieren und in seinem RAM 126 und NVM 128 zu speichern. Um den Lernvorgang eines der Kanäle innerhalb des lernfähigen Senders 100 auszulösen, betätigt der Benutzer einen der Schalter 144, 146 oder 147, welcher dem Kanal entspricht, in welchem die Signaleigenschaften zu speichern sind. Wenn der Benutzer einen der Schalter 144, 146 und 147 durchgehend für eine vorgegebene Zeitdauer von zum Beispiel fünf Sekunden herunterdrückt, erkennt der Mikroprozessor 120 eine solche Betätigung über eine Schalterschnittstelle 140 und reagiert damit, dass er in einen Lernmodus eintritt und bewirkt, dass die Leuchtdiode (LED) 150 zu blinken beginnt. Durch Blinken der LED 150 signalisiert der Mikroprozessor 120 dem Benutzer, ein Ursprungssignal „B" vom Ursprungs-Fernsteuerungssender 104 zu senden. Der Mikroprozessor 120 durchschreitet dann auf die Weise, wie sie oben allgemein beschrieben wurde, jede Frequenz, welche der Trägerfrequenz des Ursprungssignals „B" entsprechen kann. Eine detailliertere Beschreibung dieses Lernverfahrens wird in den oben angeführten Patentschriften gegeben. Sobald der Mikroprozessor 120 Daten an seinem Dateneingabeanschluss 121 erkannt hat, speichert er den digitalen Wert, welcher für die Frequenz des vom VCO 110 erzeugten Referenzsignals steht, in dem Kanalspeicher, der zu dem Schalter gehört, den der Benutzer betätigt hat. Die empfangenen Daten werden dann wie unten beschrieben verarbeitet und in einem Ab schnitt des NVM 128, welcher zu dem betätigten Schalter gehört, gespeichert.
  • Wenn ein Benutzer dann wünscht, dass der lernfähige Sender 100 ein Signal „T" an eine ferngesteuerte Vorrichtung 106 sendet, betätigt der Benutzer einen der Schalter 144, 146 und 147, der zu dem Signal gehört, welches wiederum die ferngesteuerte Vorrichtung 106 betätigt. Der Mikroprozessor 120 erkennt die Betätigung des Schalters und liest aus dem Speicher den gespeicherten digitalen Frequenzsteuerungswert aus, welchen er über die Phasenregelkreis-Schaltung 112 dem VCO 110 zuführt. Der Mikroprozessor 120 überträgt das Datencodewort, welches in Verbindung mit dem betätigten Schalter im NVM 128 gespeichert ist, in den RAM 126. Der Mikroprozessor 120 dekomprimiert und decodiert dann das gespeicherte Datencodewort und gibt es an einen Dateneingabeanschluss 111 des VCO 110 aus, wodurch das vom VCO 110 erzeugte Signal wirksam moduliert wird. Diese amplitudenmodulierte Signalausgabe aus dem VCO 110 wird durch den Verstärker 152 verstärkt und über die Antenne 102 als HF-Signal „T" an die ferngesteuerte Vorrichtung 106 gesendet.
  • Wie in den oben angeführten Patentschriften offenbart, kann ein solcher lernfähiger HF-Sender physisch und permanent in ein Fahrzeugzubehör, z. B. eine Sonnenblende, eine Dachkonsole oder einen Rückspiegel, eingebaut sein. Wenn sich der lernfähige Sender 100 permanent innerhalb eines Fahrzeugzubehörs befindet, umfasst er typischerweise eine Stromversorgungsschaltung 130, welche einen Stecker 132 aufweist, um die Stromversorgungsschaltung 130 mit der Fahrzeugbatterie 134 zu verbinden. Somit kann der lernfähige Sender direkt von der Fahrzeugbatterie mit Strom versorgt werden, anstatt von einer eigenen Batterie, welche ersetzt werden müsste. Ferner kann der Sender durch Bereitstellen mehrerer Schalter 144, 146 und 147 und einer gleichen Anzahl an Kanälen innerhalb des Speichers des lernfähigen Senders mehrere verschiedene Signaleigenschaften lernen und dadurch selektiv mehrere verschiedene Vorrichtungen fernsteuern.
  • Nachdem allgemein der Betrieb eines lernfähigen HF-Senders erläutert wurde, wird im Folgenden unter Bezugnahme auf die Ablaufdiagramme, die in 4A bis 4C dargestellt sind, auf das Speicherabbild, das in 5 dargestellt ist, und auf die Darstellung eines beispielhaften Datensignals, welche in 2 dargestellt ist, das verbesserte Datencode-Komprimierungsverfahren beschrieben.
  • Sobald der Mikroprozessor 120 während des Lernmodus die Trägerfrequenz des empfangenen HF-Signals identifiziert hat, beginnt er eine Routine, welche jener in 4A bis 4C dargestellten ähnelt. Der erste Schritt 201 der Routine ist es, bestimmte Zeiger und andere Parameter zu initialisieren, indem sie auf „0" gesetzt werden. Der erste Parameter „n" wird verwendet, um Datenabtastungen mit einem bestimmten logischen Wert zu zählen. Der zweite Parameter „B" wird verwendet, um auf verschiedene Bytes innerhalb der Schablonen zu zeigen. Ein dritter Parameter „T" ist ein Zeiger, welcher verwendet wird, um auf verschiedene Schablonen des Speichers zu zeigen. Ein vierter Parameter „X" wird verwendet, um auf Positionen im Schablonensequenzabschnitt des Speichers zu zeigen, und der Parameter „m" ist ein Merker, welcher verwendet wird, um die Abtastrate zu ermitteln, mit welcher der Mikroprozessor 120 das Datensignal abtastet, welches an seinem Dateneingabeanschluss 121 erscheint.
  • Nachdem die obigen Parameter initialisiert worden sind, überwacht der Mikroprozessor 120 die Daten am Eingang 121, bis er eine „Totzeit"-Periode (also eine lange Periode auf der logischen Ebene „0") erkennt (Schritt 202). Sobald der Mikroprozessor 120 das Ende der „Totzeit" erkannt hat, beginnt er das empfangene Datensignal abzutasten, indem er ein erstes Bit abtastet (Schritt 203). Wie unten noch detaillierter erläutert wird, wird diese Abtastung durchgeführt, indem der an den Dateneingabeanschluss 121 angelegte analoge Wert mit einem Schwellenniveau verglichen wird, um zu ermitteln, ob sich das Signal zu diesem bestimmten Zeitpunkt auf einem logischen Wert „1" oder „0" befindet. Die Abtastung wird vorzugsweise anfänglich mit 25 μs durchgeführt. In Schritt 205 ermittelt der Mikroprozessor 120 dann, ob es sich bei dem abgetasteten Datenbit um eine logische „1" handelt. Wenn nicht, tastet der Mikroprozessor 120 das nächste Datenbit ab (Schritt 203). Wenn es sich bei diesem nächsten Datenbit nicht um eine logische „1" handelt, fährt der Mikroprozessor 120 damit fort, als Schleife die Schritte 203 und 205 zu durchlaufen, bis sich ein abgetastetes Datenbit auf einer logischen Ebene „1" befindet.
  • Wenn in Schritt 205 anfänglich ein logischer Wert „1" erkannt wird, führt der Mikroprozessor 120 den Schritt 207 durch, indem er den Wert des Datenbitzählers „n" erhöht, um anzuzeigen, dass ein abgetastetes Datenbit mit einem logischen Wert „1" erkannt wurde. Als Nächstes tastet der Mikroprozessor 120 ein anderes Datenbit ab (Schritt 209) und überprüft, ob sich das abgetastete Datenbit auf einem logischen Wert „1" befindet (schritt 211). Wenn sich dieses nächste abgetastete Datenbit auf einer logischen „1" befindet, geht der Mikroprozessor 120 zu Schritt 213 über, wo er wieder den Wert „n" erhöht, um anzuzeigen, dass sich ein weiteres Datenbit in Folge auf einer logischen Ebene „1" befindet. Der Mikroprozessor 120 überprüft dann, ob der Wert des Zählers „n" „FF" (also 256) erreicht hat, welches in jeder Schablone der höchste Zählerwert ist, der in einem Byte gespeichert werden kann. Solange der Mikroprozessor 120 danach Datenbits abtastet und erkennt, welche einen logischen Wert „1" aufweisen, fährt er damit fort, als Schleife die Schritte 209, 211, 213 und 215 zu durchlaufen, und zählt die Anzahl solcher Datenbits, bis entweder ein Datenbit erkannt worden ist, welches eine logische Ebene „0" aufweist, oder die Anzahl aufeinander folgender Datenbits auf der logischen Ebene „1" den Hexadezimaiwert „FF" überschreitet.
  • Wenn der Wert von „n" „FF" erreicht, schreibt der Mikroprozessor 120 den Hexadezimalwert „FF" an der Stelle MEM (T, B) in den Speicher, bei welcher es sich am Anfang entsprechend dem ersten Byte in der ersten Schablone um MEM (0, 0) handelt (Schritt 225). Der Mikroprozessor 120 stellt auch den Wert von „n" auf „0" zurück und erhöht den Wert von „B", um auf das nächste Byte der Schablone zu zeigen. Vorausgesetzt, dass „B" nicht größer als 4 ist (Schritt 227), kehrt der Mikroprozessor 120 zu Schritt 209 zurück, um das nächste Datenbit abzutasten, und ermittelt in Schritt 211, ob es sich auf einer logischen Ebene „1" befindet. Der Mikroprozessor 120 fährt dann damit fort, die Anzahl aufeinander folgender abgetasteter Datenbits zu zählen, welche sich auf einer logischen „1" befinden. Wenn der Mikroprozessor 120 danach in Schritt 227 ermitteln sollte, dass „B" größer ist als 1, erkennt er, dass ein Fehler aufgetreten ist, und zeigt dem Benutzer eine Fehlermeldung an, bevor er die Lernsequenz beendet.
  • Wenn der Mikroprozessor 120 ein abgetastetes Datenbit erkennt, welches eine logische Ebene „0" aufweist, bevor alle Bytes in der ersten Schablone aufgefüllt sind, überprüft der Mikroprozessor 120 in Schritt 217, ob der Wert von „n" „0" ist. Wenn der Wert von „n" nicht „0" ist, speichert der Mikroprozessor 120 den letzten Wert von „n" in MEM (T, B) und stellt dann „n" auf „1". Wenn „n" „0" ist, speichert der Mikroprozessor 120 den Wert von „n" nicht im Speicher, sondern geht direkt zu Schritt 231 (4B) über, um das Zählen der Anzahl aufeinander folgender abgetasteter Datenbits auf der logischen Ebene „0" zu beginnen. Es ist vorherzusehen, dass der Mikroprozessor 120 in Schritt 217 nur ermitteln würde, dass „n" „0" ist, wenn unmittelbar nach dem Einschreiben von „FF" in das vorherge hende Byte ein „0"-Logikbit erkannt würde, um „FF" abgetastete Datenbits auf der logischen Ebene „1" direkt vor dem Erkennen eines „0"-Bits anzuzeigen. Anderenfalls hätte „n" einen anderen Wert als „0", der kleiner als „FF", aber größer als „0" wäre und in das nächste Byte der Schablone geschrieben werden sollte. Somit zählt dieser Algorithmus zum Beispiel im Fall des in 2 dargestellten Datensignals am Anfang „FF" Datenbits auf der logischen Ebene „1" und schreibt „FF" in MEM (0, 0) und zählt dann n = 04 Erkennungen darauf folgender Datenbits einer logischen „1" vor dem Erkennen eines Datenbits auf der logischen Ebene „0". Somit schreibt der Mikroprozessor 120 „04" in MEM (0, 1) (also in das nächste Byte der ersten Schablone).
  • Wenn der Mikroprozessor 120 in Schritt 219 den gezählten Wert von „n" in den Speicher schreibt, erhöht er dann den Wert „B", um auf das nächste Byte der Schablone zu zeigen (Schritt 221). Wenn der Wert von „B" nicht größer als 1 ist, geht der Mikroprozessor 120 zu Schritt 231 über, um die Anzahl der „0"-Logikbits zu zählen. Anderenfalls ermittelt der Mikroprozessor 120 in Schritt 223, dass ein Fehler aufgetreten ist, und beendet die Lernsequenz.
  • In Schritt 231 beginnt der Mikroprozessor 120 das Verfahren des Zählens der aufeinander folgenden abgetasteten Datenbits auf der logischen Ebene „0". Der Mikroprozessor 120 beginnt dieses Verfahren in Schritt 231, indem er das nächste Datenbit abtastet, und überprüft in Schritt 233, ob sich das abgetastete Datenbit auf einer logischen Ebene „0" befindet. Wenn sich dieses abgetastete Datenbit auf einer logischen Ebene „0" befindet, erhöht der Mikroprozessor 120 den Wert „n" in Schritt 235 und überprüft in Schritt 237, ob der Wert „n" den Hexadezimalwert „FF" erreicht hat. Wenn „n" nicht „FF" ist, wiederholt der Mikroprozessor 120 die Schritte 231 bis 237, bis entweder ein abgetastetes Datenbit erkannt wird, welches eine logische Ebene „1" aufweist, oder der Mikroprozessor 120 ermittelt, dass „n" „FF" ist.
  • Wenn „n" „FF" ist, schreibt der Mikroprozessor 120 in Schritt 239 „FF" in MEM (T, B) und stellt den Zähler „n" auf „0" zurück und erhöht den Wert des Byte-Zählers „B". Dann, vorausgesetzt, dass der Byte-Zähler „B" nicht größer als 4 ist (Schritt 241), fährt der Mikroprozessor 120 damit fort, aufeinander folgende abgetastete Datenbits auf der logischen Ebene „0" zu zählen, indem er als Schleife die Schritte 231 bis 241 durchläuft. Wenn jedoch in Schritt 233 ein abgetastetes Datenbit erkannt wird, welches sich auf einer logischen „1" befindet, bevor für das letzte Byte der Schablone „FF" Datenbits auf der logischen „0" gezählt werden, geht der Mikroprozessor 120 zu Schritt 243 über, wo er überprüft, ob der letzte Wert von „n" „0" ist. Wenn „n" nicht „0" ist, schreibt der Mikroprozessor 120 den Wert von „n" in MEM (T, B) und geht zu Schritt 247 über. Wenn anderenfalls „n" „0" ist, schreibt der Mikroprozessor 120 diesen „0"-Wert nicht in den Speicher, sondern lässt den Schritt 245 aus und geht zu Schritt 247 über, wo der Mikroprozessor 120 den Wert von „n" auf „1", „B" auf „0" und „m" auf „0" stellt und den Wert des Schablonenzeigers „T" erhöht, bevor er zu Schritt 255 übergeht (4C).
  • Wenn der Mikroprozessor 120 in Schritt 237 und 241 ermittelt, dass der Zähler „n" auf „FF" steht und dass der Byte-Zeiger „B" größer als 4 ist, dann geht der Mikroprozessor 120 davon aus, dass es weitere darauf folgende Abtastungen gibt, die sich auf der logischen Ebene „0" befinden können. Da jedoch in der Schablone keine Bytes mehr übrig sind, in welchen Zählwerte etwaiger weiterer abgetasteter Bits auf der logischen Ebene „0" gespeichert werden können, und da jede Schablone mit der Anstiegsflanke eines Impulses beginnt, welche bei einem Übergang von einer Logikebene „0" auf eine Logikebene „1" vorliegt, kann die Zählung weiterer logischer Ebenen „0" nicht den Weg von einer Schablone in die nächste Schablone überspannen. Weil ferner einige der HF-Steuersignale, welche von in Europa hergestellten Ursprungs-Garagentorsendern gesendet werden, bedeutende Mengen an „Totzeit" zwischen den Codewörtern umfassen (also ausgedehnte Perioden auf der logischen „0"), stellt die vorliegende Erfindung ein Mittel bereit, um das Vorliegen solcher „Totzeiten" zu erkennen. Wenn eine solche „Totzeit" erkannt wird, verlangsamt der Mikroprozessor 120 die Abtastrate des Mikroprozessors während dieser Totzeit, um das empfangene Datensignal wirksamer zu komprimieren und dadurch zu ermöglichen, dass die gesamte Totzeit wirksam in einer Schablone aufgezeichnet wird.
  • Um diese Funktionen auszuüben, erkennt der Mikroprozessor 120, wann das letzte Byte der Schablone definiert wird und wann der Zählwert logischer „0en" für dieses letzte Byte der Schablone den Hexadezimalwert „FF" erreicht hat. Wenn dies der Fall ist, führt der Mikroprozessor 120 den Schritt 249 aus, in welchem er nach einem Byte mit einem anderen Wert als „FF" das erste Byte der Schablone identifiziert, welches einen Wert „FF" aufweist. Mit anderen Worten ist dieses Byte jenes, welches dem Byte folgt, das das hintere Ende eines Logik-„1"-Impulses definiert. Der Mikroprozessor 120 überschreibt dann das „FF", welches in dem identifizierten Byte gespeichert ist, und stellt dort „01" ein, was als ungültiger Eintrag angesehen wird. Dann löscht der Mikroprozessor 120 in Schritt 251 alle Bytes der Schablone, welche jenem Byte folgen, in das er „01" geschrieben hat, so dass sie mit dem berechneten Wert der Anzahl an Abtastungen überschrieben werden können, welche mit der langsameren Rate vorgenommen wurden. In Schritt 253 stellt der Mikroprozessor 120 den Byte-Zeiger „B" auf den Wert des Bytes, welches jenem mit der „01" folgt, stellt die Abtastrate auf eine langsamere Rate (vorzugsweise 125 μs) ein, indem er den Merker „m" auf „1" stellt, und berechnet die Anzahl der bereits mit der anderen Rate gezählten Abtastungen, indem er die Anzahl der mit der schnelleren Rate gezählten „0"-Logik-Abtastungen durch fünf (dem Faktor, um welchen die Abtastrate verändert ist) dividiert, und nimmt die Zählung beginnend bei der errechneten Anzahl an Abtas tungen mit der langsameren Rate wieder auf. Der Mikroprozessor 120 durchläuft dann erneut als Schleife die Schritte 231 bis 241, um die Anzahl der Abtastungen auf der logischen Ebene „0" mit der langsameren Abtastrate zu zählen.
  • Wie der Fachmann erkennen wird, kann die Rate, mit welcher der Mikroprozessor 120 das an den Dateneingabeanschluss 121 angelegte Datensignal abtastet, verändert werden, indem eine Verriegelungsschaltung bereitgestellt wird, um die Ebene des Datensignals einzurasten und auf dem letzten Taktimpuls zu halten, welcher ebenfalls an die Verriegelungsschaltung angelegt wird, so dass die Taktfrequenz angepasst werden kann, um die Abtastrate zu verändern. Alternativ können Verzögerungen in die Software-Routine einprogrammiert werden, derart, dass die Abtastschritte mit den entsprechenden Zeitintervallen durchgeführt werden, wobei weitere Verzögerungen zwischen den Abtastschritten zur Ausführung gebracht werden können, wenn der Merker „m" eingestellt worden ist.
  • Der Mikroprozessor 120 fährt dann damit fort, die mit der langsameren Rate abgetasteten Bits zu zählen, bis danach in Schritt 233 ein Bit einer logischen „1" erkannt wird. Wenn ein Bit einer logischen „1" erkannt wird, geht der Mikroprozessor 120 auf die oben beschriebene Weise zu Schritt 243 über.
  • Wie oben angemerkt wird, wenn entweder alle Bytes einer Schablone gefüllt worden sind, oder wenn nach einer Sequenz erkannter Logik-„0"-Bits ein Bit einer logischen „1" erkannt wird, der Wert des Schablonenzeigers erhöht, so dass die nächste Schablone definiert werden kann, indem wieder die Anzahl der abgetasteten Bits bei jedem Logikwert gezählt wird. Da aufgrund von Wiederholungsstrukturen in den Daten einige der definierten Schablonen identische Definitionen aufweisen können, vergleicht der Mikroprozessor 120 die Definition der zuletzt definierten Schablone mit der Definition aller zuvor definierten Schablonen, um zu ermitteln, ob jene durch die letzte Schablone definierte spezielle Datenstruktur bereits definiert worden ist, damit er keinen Speicherplatz damit verschwendet, doppelte Schablonendefinitionen zu speichern. Die vorliegende Erfindung unterscheidet sich von dem früheren Verfahren dadurch, dass zwei Schablonenkennungen je Byte des Schablonensequenzabschnitts des Speichers gespeichert werden, wodurch die benötigte Speichermenge weiter verringert wird.
  • Um die richtige Rekonstruktion des Signals basierend auf den definierten Schablonen sicherzustellen, muss die durch diese Schablonen definierte Sequenz der Datenstrukturen in der Reihenfolge, in der sie auftreten oder erneut auftreten, auch in dem Speicher gespeichert werden. Somit wird jedes Mal, wenn eine Schablone unter Anwendung der in 4A und 4B dargestellten Routine definiert worden ist, im NVM 128 eine Schablonenkennzahl in einem Abschnitt des Speichers gespeichert, der dem Kanal zugeordnet ist. Der Mikroprozessor 120 führt diese Operation durch, indem er die Routine ausführt, die allgemein in 4C umrissen ist. Diese Routine beginnt in Schritt 255 damit, dass der Parameter „A" auf „0" gestellt wird, welcher dafür verwendet wird, jede der vorigen Schablonen zu durchlaufen, die definiert worden sind, und auf diese zu zeigen. Als Nächstes überprüft der Mikroprozessor 120 in Schritt 257, ob es irgendwelche zuvor definierte Schablonen gibt, indem er überprüft, ob „T" den Wert „1" aufweist. Wenn „T" den Wert „1" aufweist, gibt es keine vorigen Schablonen, und der Mikroprozessor 120 geht zu Schritt 259 über, wo er den Wert von „A" im Schablonensequenzabschnitt des Speichers SEQMEM(X) speichert. Der Wert des Zeigers „X" wird dann in Schritt 261 erhöht, um auf die nächste Stelle im Schablonensequenzabschnitt des Speichers zu zeigen. Dann überprüft der Mikroprozessor 120 in Schritt 263, ob irgendwelche zu komprimierenden Daten übrig sind, oder ob alle Schablonen definiert worden sind (es können sechzehn Schablonen definiert werden), oder ob der Wert des Zeigers „X" die Anzahl der Speicherstellen im Schablonensequenzabschnitt des Speichers überschreitet. Wenn irgendeine dieser Bedingungen erfüllt ist, beendet der Mikroprozessor 120 die Routine. Anderenfalls kehrt der Mikroprozessor 120 zu Schritt 209 (4A) zurück, um mit dem Abtasten von Datenbits für die nächste Schablone zu beginnen.
  • Wenn der Mikroprozessor 120 in Schritt 257 ermittelt, dass „T" nicht den Wert „1" aufweist, geht er davon aus, dass wenigstens eine zuvor definierte Schablone vorhanden ist. In Schritt 265 vergleicht der Mikroprozessor 120 die in dem ersten Byte der ersten definieren Schablone gespeicherten (also in MEM (A, B) gespeicherten) Werte mit dem im ersten Byte der zuletzt definierten Schablone gespeicherten Wert. Wenn diese verglichenen Werte nicht gleich sind, erhöht der Mikroprozessor 120 in Schritt 267 den Wert des Zeigers „A", um auf die nächste definierte Schablone zu zeigen, und ermittelt dann in Schritt 269, ob es sich bei der nächsten definierten Schablone in der Tat um die zuletzt definierte Schablone handelt, indem er überprüft, ob „A" den Wert „T – 1" aufweist. Wenn der Zeiger „A" den Wert „T – 1" aufweist, speichert der Mikroprozessor 120 in Schritt 259 den Wert von „A" auf der X-ten Position im Schablonensequenzabschnitt (SEQMEM(X)) des Speichers. Wenn der Mikroprozessor 120 andererseits in Schritt 265 ermittelt, dass der in dem ersten Byte der ersten Schablone gespeicherte Wert derselbe ist wie der in dem ersten Byte der zuletzt definierten Schablone gespeicherte Wert, erhöht der Mikroprozessor 120 in Schritt 271 den Wert des Byte-Zeigers „B". Wenn der Wert des Byte-Zeigers „B" noch nicht 5 erreicht hat (Schritt 273), fährt der Mikroprozessor 120 damit fort, die Werte zu vergleichen, die in jedem der Bytes der ersten definierten Schablone und der zuletzt definierten Schablone gespeichert sind. Wenn der Mikroprozessor 120 den Schritt 273 erreicht, wenn „B" den Wert 5 aufweist, was bedeutet, dass alle Werte jedes Bytes der beiden verglichenen Schablonen gleich sind, geht der Mikroprozessor 120 zu Schritt 275 über, wo er den Speicher für die zuletzt definierte Schablone T – 1 löscht und den Wert des Schablonenzeigers „T" auf T – 1 zurückstellt, um zu ermöglichen, dass der zugeordnete Speicher für die Schablone T – 1 danach benutzt werden kann, um die nächste Schablone zu definieren. Der Mikroprozessor 120 speichert dann den Wert „A" auf der X-ten Speicherstelle im Schablonensequenzabschnitt des Speichers (Schritt 259).
  • Wie aus den obigen Beschreibungen der Datenspeicherungstechnik der vorliegenden Erfindung und der vor der Erfindung angewendeten Datenspeicherungstechnik ersichtlich ist, kann sich die vorliegende Erfindung wirksam auf lange „Totzeit"-Perioden einstellen, welche oft in Signalen auftreten, die von Europäischen Garagentoröffner-Sendern gesendet werden. Wenn ein lernfähiger Sender, der die frühere Datenspeicherungstechnik anwendet, ein solches Signal empfängt, wird sein RAM mit Daten überfüllt, so dass der lernfähige Sender nicht ein gesamtes Codewort speichern kann, was zu einem Versagen dabei führt, den erforderlichen Datencode für ein darauf folgendes Senden zu lernen. Mit der vorliegenden Erfindung wird das empfangene Datensignal dagegen codiert, wenn das Signal empfangen und abgetastet wird. Somit muss nicht ein gesamtes digitalisiertes Datencodewort im RAM des Prozessors gespeichert werden. Ferner kann ein lernfähiger Sender, welcher die Datenspeicherungstechnik der vorliegenden Erfindung anwendet, durch Wechseln zu einer langsameren Abtastrate, wenn ein Schwellenwert aufeinander folgender Logik-„0"-Datenabtastungen gezählt wird, die codierten Daten wirksamer komprimieren, wenn in dem Datensignal eine lange „Totzeit"-Periode vorliegt.
  • Obwohl die vorliegende Erfindung so beschrieben worden ist, dass sie hauptsächlich für die Anwendung in einem lernfähigen HF-Sender entwickelt worden ist, um die oben angeführ ten Probleme zu überwinden, ist es für den Fachmann ersichtlich, dass die Datenspeicherungstechnik der vorliegenden Erfindung auch für andere lernfähige Vorrichtungen, z. B. für einen universellen IR-Fernsteuerungssender, angewendet werden kann. Ferner wird der Fachmann auf dem Gebiet der Datenspeicherung erkennen, dass die Methodik der vorliegenden Erfindung in anderen Anwendungen angewendet werden kann, bei denen ein Datensignal gespeichert werden muss.
  • Die obige Beschreibung ist nur als die Beschreibung der bevorzugten Ausführungsformen anzusehen. Dem Fachmann und denjenigen, die von der Erfindung Gebrauch machen, werden Modifikationen der Erfindung einfallen. Deswegen versteht es sich, dass die in den Zeichnungen dargestellten und oben beschriebenen Ausführungsformen lediglich der Veranschaulichung dienen und nicht den Umfang der Erfindung beschränken sollen, welcher durch die folgenden Patentansprüche definiert ist.

Claims (16)

  1. Lernfähiger Sender (100), der Folgendes umfasst: einen Empfänger (102) zum Empfangen eines codierten Datensignals, das von einem Ursprungssender (104) ausgesendet wurde; eine Speichervorrichtung; einen Steuerkreis (120), der mit dem Empfänger (102) und der Speichervorrichtung verbunden ist, zum Speichern des codierten Datensignals in der Speichervorrichtung, wobei der Steuerkreis dafür konfiguriert ist, folgende Schritte auszuführen: (a) Abtasten des empfangenen codierten Datensignals mit einer ersten Abtastrate, (b) Zählen der Anzahl aufeinanderfolgender Abtastungen des codierten Datensignals, die sich auf einer ersten logischen Ebene befinden, (c) Speichern der Anzahl der in Schritt (b) gezählten Abtastungen in einem ersten Abschnitt einer Speicherschablone in der Speichervorrichtung, (d) Zählen der Anzahl aufeinanderfolgender Abtastungen des codierten Datensignals, die sich auf einer zweiten logischen Ebene befinden, (e) Vergleichen der Anzahl der in Schritt (d) gezählten Abtastungen mit einem Schwellenwert, (f) Verringern der Abtastrate, mit der das codierte Datensignal abgetastet wird, und Zählen der Anzahl aufeinanderfolgender Abtastungen auf der zweiten logischen Ebene, wenn die Anzahl der in Schritt (d) gezählten Abtastungen den Schwellenwert überschreitet, und (g) Speichern – in einem zweiten Abschnitt der Speicherschablone – der Anzahl der in Schritt (d) gezählten Abtastungen, wenn die Schwelle nicht überschritten wurde, oder der Anzahl der in Schritt (f) gezählten Abtastungen, wenn der Schwellenwert überschritten wurde; und einen Sender (102), der mit dem Steuerkreis (120) verbunden ist, zum Empfangen und Senden des codierten Datensignals, während der Steuerkreis (120) das Signal aus der Speichervorrichtung liest.
  2. Lernfähiger Sender (100) nach Anspruch 1, wobei der Empfänger (102) ein HF-Empfänger ist und das codierte Datensignal ein HF-Signal ist.
  3. Lernfähiger Sender (100) nach Anspruch 1, wobei die Speichervorrichtung mehrere eindeutig definierte Schablonen enthält, die durch die gespeicherten Anzahlen gezählter Abtastungen definiert werden, wobei jeder der mehreren eindeutig definierten Schablonen eine eindeutige Schablonenidentifikationsnummer zugewiesen ist, wobei die Speichervorrichtung des Weiteren einen Schablonensequenzabschnitt enthält, in dem eindeutige Schablonenidentifikationsnummern in der Reihenfolge gespeichert werden, in der die Abtastungen, die diese Schablonen definieren, in dem codierten Datensignal erscheinen.
  4. Lernfähiger Sender (100) nach Anspruch 3, wobei der Steuerkreis (120) des Weiteren dafür konfiguriert ist, (h) in der Speichervorrichtung eine eindeutige Schablonenidentifikationsnummer zu speichern, die der Speicherschablone zugeordnet ist, in der die Anzahlen der in den Schritten (c) und (g) gespeicherten Abtastungen gespeichert wurden.
  5. Lernfähiger Sender (100) nach Anspruch 3, wobei der Steuerkreis (120) des Weiteren dafür konfiguriert ist, die Schritte (a)–(g) zu wiederholen und zu bestimmen, ob die gespeicherten Anzahlen von Abtastungen den gespeicherten Anzahlen von Abtastungen einer zuvor definierte Schablone entsprechen, und wenn es keine Entsprechung gibt, eine eindeutige Schablonenidentifikationsnummer für die neu definierte Schablone in dem Schablonensequenzabschnitt der Speichervorrichtung zu speichern, und wenn es eine Entsprechung zu einer zuvor definierten Schablone gibt, die eindeutige Schablonenidentifikationsnummer der entsprechenden Schablone in dem Schablonensequenzabschnitt der Speichervorrichtung zu speichern.
  6. Lernfähiger Sender (100) nach Anspruch 5, wobei der Steuerkreis (120) das codierte Datensignal durch Ausführen folgender Schritte aus der Speichervorrichtung liest: (i) Lesen – aus dem Schablonensequenzabschnitt des Speichers – einer ersten Schablonenidentifikationsnummer; (ii) Lesen – aus der Speichervorrichtung – der Anzahlen von Abtastungen auf der ersten und der zweiten logischen Ebene, die in der Schablone gespeichert sind, die durch die gelesene Schablonenidentifikationsnummer identifiziert wurde; (iii) Erzeugen eines codierten Datensignals mit einer ersten logischen Ebene, die für einen Zeitraum aufrecht erhalten wird, der gleich der Anzahl der Abtastungen ist, die in der Schablone für die erste logische Ebene gespeichert ist, geteilt durch die Abtastrate, mit der die Anzahl von Abtastungen erhalten wurde; (iv) Erzeugen eines codierten Datensignals mit einer zweiten logischen Ebene, die für einen Zeitraum aufrecht erhalten wird, der gleich der Anzahl der Abtastungen ist, die in der Schablone für die zweite logische Ebene gespeichert ist, geteilt durch die Abtastrate, mit der die Anzahl von Abtastungen erhalten wurde; (v) Lesen – aus dem Schablonensequenzabschnitt der Speichervorrichtung – der nächsten der sequenziell gespeicherten Schablonenidentifikationsnummern; und (vi) Wiederholen der Schritte (ii) bis (v), bis alle Schablonenidentifikationsnummern, die in dem Schablonensequenzabschnitt des Speicherabschnitts gespeichert sind, gelesen wurden.
  7. Lernfähiger Sender (100) nach Anspruch 1, der des Weiteren mehrere durch den Benutzer betätigbare Schalter (144, 146, 147) enthält, die mit dem Steuerkreis (120) verbunden sind, wobei die Speichervorrichtung in eine entsprechende Mehrzahl von Kanalsegmenten unterteilt ist, die jeweils einen Schablonendefinitionsabschnitt und einen Schablonensequenzabschnitt enthalten, wobei der Steuerkreis Daten aus einem bzw. in eines der Kanalsegmente der Speichervorrichtung liest oder schreibt, wenn ein entsprechender durch den Be nutzer betätigbarer Schalter (144, 146, 147) betätigt wurde.
  8. Lernfähiger Sender (100) nach Anspruch 7, wobei, wenn ein durch den Benutzer betätigbarer Schalter (144, 146, 147) mindestens einen vorgegebenen Zeitraum lang betätigt wurde, der Steuerkreis (120) ein codiertes Datensignal in einem entsprechenden der Kanalsegmente der Speichervorrichtung speichert, und wenn ein durch den Benutzer betätigbarer Schalter (144, 146, 147) kürzer als der vorgegebene Zeitraum betätigt wurde, der Steuerkreis (120) ein codiertes Datensignal durch Lesen von Daten, die in dem entsprechenden der Kanalsegmente gespeichert sind, erzeugt.
  9. Lernfähiger Sender (100) nach Anspruch 8, wobei der Empfänger ein HF-Empfänger ist, das codierte Datensignal ein HF-Signal ist und der Steuerkreis (120) eine HF-Trägerfrequenz des empfangenen HF-Signals identifiziert und Daten in der Speichervorrichtung speichert, welche die identifizierte HF-Trägerfrequenz darstellen.
  10. Lernfähiger Sender (100) nach Anspruch 1, wobei das codierte Datensignal ein binäres Signal ist.
  11. Verfahren zum Speichern eines binären Datensignals, das folgende Schritte umfasst: (a) Empfangen eines binären Datensignals; (b) Abtasten des empfangenen binären Datensignals mit einer ersten Abtastrate; (c) Zählen der Anzahl aufeinanderfolgender Abtastungen des binären Datensignals, die sich auf einer ersten logischen Ebene befinden; (d) Speichern der Anzahl der in Schritt (c) gezählten Abtastungen in einem ersten Abschnitt einer Speicherschablone; (e) Zählen der Anzahl aufeinanderfolgender Abtastungen des binären Datensignals, die sich auf einer zweiten logischen Ebene befinden; (f) Vergleichen der Anzahl der in Schritt (e) gezählten Abtastungen mit einem Schwellenwert; (g) Verringern der Abtastrate, mit der das empfangene binäre Datensignal abgetastet wird, und Zählen der Anzahl aufeinanderfolgender Abtastungen auf der zweiten logischen Ebene, wenn die Anzahl der in Schritt (e) gezählten Abtastungen den Schwellenwert überschreitet; und (h) Speichern – in der Speicherschablone – der Anzahl der in Schritt (e) gezählten Abtastungen, wenn die Schwelle nicht überschritten wurde, oder der Anzahl der in Schritt (g) gezählten Abtastungen, wenn der Schwellenwert überschritten wurde; und
  12. Verfahren nach Anspruch 11, das des Weiteren folgenden Schritt (i) enthält: Speichern einer eindeutigen Schablonenidentifikationsnummer, die der Speicherschablone zugeordnet ist, in der die Anzahlen der in den Schritten (d) und (h) gespeicherten Abtastungen gespeichert wurden.
  13. Verfahren nach Anspruch 12, das des Weiteren folgenden Schritt (j) enthält: Wiederholen der Schritte (b)–(i) und Bestimmen, ob die gespeicherten Anzahlen von Abtastungen den gespeicherten Anzahlen von Abtastungen einer zuvor definierten Schablone entsprechen, und wenn es keine Entsprechung gibt, sequenzielles Speichern einer eindeutigen Schablonenidentifikationsnummer für die neu definierte Schablone, und wenn es eine Entsprechung zu einer zuvor definierten Schablone gibt, sequenzielles Speichern der eindeutigen Schablonenidentifikationsnummer der entsprechenden Schablone.
  14. Vorrichtung, die eine Speichervorrichtung und einen Prozessor enthält und dafür konfiguriert ist: (a) ein binäres Datensignal zu empfangen; (b) das empfangene binäre Datensignal mit einer ersten Abtastrate abzutasten; (c) die Anzahl aufeinanderfolgender Abtastungen des binären Datensignals, die sich auf einer ersten logischen Ebene befinden, zu zählen; (d) die Anzahl der in Schritt (c) gezählten Abtastungen in einem ersten Abschnitt einer Speicherschablone der Speichervorrichtung zu speichern; (e) die Anzahl aufeinanderfolgender Abtastungen des binären Datensignals, die sich auf einer zweiten logischen Ebene befinden, zu zählen; (f) die Anzahl der in Schritt (e) gezählten Abtastungen mit einem Schwellenwert zu vergleichen; (g) die Abtastrate, mit der das empfangene binäre Datensignals abgetastet wird, zu verringern und die Anzahl aufeinanderfolgender Abtastungen auf der zweiten logischen Ebene zu zählen, wenn die An zahl der in Schritt (e) gezählten Abtastungen den Schwellenwert überschreitet; und (h) in der Speicherschablone die Anzahl der in Schritt (e) gezählten Abtastungen zu speichern, wenn die Schwelle nicht überschritten wurde, oder die Anzahl der in Schritt gezählten (g) Abtastungen zu speichern, wenn der Schwellenwert überschritten wurde.
  15. Vorrichtung nach Anspruch 14, wobei der Prozessor des Weiteren dafür konfiguriert ist, (i) eine eindeutige Schablonenidentifikationsnummer zu speichern, die der Speicherschablone zugeordnet ist, in der die Anzahlen der in den Schritten (d) und (h) gespeicherten Abtastungen gespeichert wurden.
  16. Vorrichtung nach Anspruch 15, wobei der Prozessor des Weiteren dafür konfiguriert ist, die Schritte (b)–(i) zu wiederholen und zu bestimmen, ob die gespeicherten Anzahlen von Abtastungen den gespeicherten Anzahlen von Abtastungen einer zuvor definierten Schablone entsprechen, und wenn es keine Entsprechung gibt, eine eindeutige Schablonenidentifikationsnummer für die neu definierte Schablone sequenziell zu speichern, und wenn es eine Entsprechung zu einer zuvor definierten Schablone gibt, die eindeutige Schablonenidentifikationsnummer der entsprechenden Schablone sequenziell zu speichern.
DE69838938T 1997-11-12 1998-11-12 Verfahren und Gerät zum Speichern von kodierten Datensignalen Expired - Lifetime DE69838938T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US6551797P 1997-11-12 1997-11-12
US65517P 1997-11-12
US09/071,210 US6137421A (en) 1997-11-12 1998-05-01 Method and apparatus for storing a data encoded signal
US71210 1998-05-01

Publications (2)

Publication Number Publication Date
DE69838938D1 DE69838938D1 (de) 2008-02-14
DE69838938T2 true DE69838938T2 (de) 2009-01-08

Family

ID=26745681

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69838938T Expired - Lifetime DE69838938T2 (de) 1997-11-12 1998-11-12 Verfahren und Gerät zum Speichern von kodierten Datensignalen

Country Status (3)

Country Link
US (1) US6137421A (de)
EP (1) EP0935226B1 (de)
DE (1) DE69838938T2 (de)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2808633B1 (fr) * 2000-05-04 2002-07-26 Sagem Recepteur radio courte portee multibande pour donnees de vehicule automobile
US8325008B2 (en) * 2001-04-25 2012-12-04 The Chamberlain Group, Inc. Simplified method and apparatus for programming a universal transmitter
US6489888B1 (en) 2001-06-29 2002-12-03 Johnson Controls Technology Company Using signal strength to identify tire position
GB2385449C (en) * 2002-02-13 2009-03-04 Steven Sevak Singh Remote control power switch
US20030197595A1 (en) * 2002-04-22 2003-10-23 Johnson Controls Technology Company System and method for wireless control of multiple remote electronic systems
WO2004077729A2 (en) 2003-02-21 2004-09-10 Johnson Controls Technology Company Trainable remote controller and method for determining the frequency of a learned control signal
EP1562802A2 (de) 2002-11-08 2005-08-17 Johnson Controls Technology Company Programmierbares sende-empfänger-system
US8174357B2 (en) * 2002-11-08 2012-05-08 Johnson Controls Technology Company System and method for training a transmitter to control a remote control system
JP2004302713A (ja) * 2003-03-31 2004-10-28 Hitachi Ltd 記憶システム及びその制御方法
US7068181B2 (en) 2003-07-30 2006-06-27 Lear Corporation Programmable appliance remote control
US7183941B2 (en) 2003-07-30 2007-02-27 Lear Corporation Bus-based appliance remote control
US7161466B2 (en) 2003-07-30 2007-01-09 Lear Corporation Remote control automatic appliance activation
US7181174B2 (en) * 2003-08-21 2007-02-20 The Chamberlain Group, Inc. Wireless transmit-only apparatus and method
US7889050B2 (en) * 2006-08-31 2011-02-15 Johnson Controls Technology Company System and method for training a trainable transmitter
US7719996B2 (en) * 2006-09-25 2010-05-18 Hewlett-Packard Development Company, L.P. Encoding timestamps
JP4283305B2 (ja) * 2006-12-15 2009-06-24 Smk株式会社 Rf通信モジュール及びrf通信システム
EP2139723A2 (de) 2007-03-22 2010-01-06 Johnson Controls Technology Company Beleuchtungsvorrichtungen
US9324230B2 (en) * 2008-12-04 2016-04-26 Gentex Corporation System and method for configuring a wireless control system of a vehicle using induction field communication
JP5007832B2 (ja) * 2008-06-30 2012-08-22 トヨタ紡織株式会社 車載用無線装置
CN102804720B (zh) 2010-01-22 2016-05-18 金泰克斯公司 集成了用于车辆的双向无线接口的通用无线可训练收发机单元
WO2011097471A1 (en) 2010-02-04 2011-08-11 Johnson Controls Technology Company System and method for wireless re-programming of memory in a communication system
US9890575B2 (en) 2013-12-09 2018-02-13 Viking Access Systems, Llc Movable barrier operator with removable power supply module
US9548823B2 (en) * 2014-11-11 2017-01-17 Viking Access System, Llc. Movable barrier operator with signal translation module
EP3268944B1 (de) * 2015-03-10 2019-12-25 Gentex Corporation Erhöhung der funkfrequenzleistung von aktivierungsnachrichten durch hinzufügen von totzeit
US10652743B2 (en) 2017-12-21 2020-05-12 The Chamberlain Group, Inc. Security system for a moveable barrier operator
US11074773B1 (en) 2018-06-27 2021-07-27 The Chamberlain Group, Inc. Network-based control of movable barrier operators for autonomous vehicles
CA3107457A1 (en) 2018-08-01 2020-02-06 The Chamberlain Group, Inc. Movable barrier operator and transmitter pairing over a network
JP6889136B2 (ja) * 2018-09-18 2021-06-18 株式会社東芝 データ伝送装置、データ伝送方法、コンピュータプログラム、データ伝送システム及びデータ受信装置
US11220856B2 (en) 2019-04-03 2022-01-11 The Chamberlain Group Llc Movable barrier operator enhancement device and method
US10997810B2 (en) 2019-05-16 2021-05-04 The Chamberlain Group, Inc. In-vehicle transmitter training

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0728448B2 (ja) * 1986-02-07 1995-03-29 アールシーエー トムソン ライセンシング コーポレイシヨン 再構成可能な遠隔制御送信器
US5475366A (en) * 1988-12-05 1995-12-12 Prince Corporation Electrical control system for vehicle options
US5614885A (en) * 1988-12-05 1997-03-25 Prince Corporation Electrical control system for vehicle options
US5442340A (en) * 1988-12-05 1995-08-15 Prince Corporation Trainable RF transmitter including attenuation control
US5479155A (en) * 1988-12-05 1995-12-26 Prince Corporation Vehicle accessory trainable transmitter
US5627529A (en) * 1994-03-11 1997-05-06 Prince Corporation Vehicle control system with trainable transceiver
IT1258448B (it) * 1992-07-24 1996-02-26 Siel Elettronica Spa Telecomando ad onde elettromagnetiche con funzioni di autoapprendimento.
US5379453A (en) * 1992-09-24 1995-01-03 Colorado Meadowlark Corporation Remote control system
US5564101A (en) * 1993-07-09 1996-10-08 Universal Devices Method and apparatus for transmitter for universal garage door opener
DE4423134C2 (de) * 1994-07-01 1998-07-30 Reitter & Schefenacker Gmbh Innenrückblickspiegel für Kraftfahrzeuge
US5661651A (en) * 1995-03-31 1997-08-26 Prince Corporation Wireless vehicle parameter monitoring system
US5686903A (en) * 1995-05-19 1997-11-11 Prince Corporation Trainable RF transceiver
US5699055A (en) * 1995-05-19 1997-12-16 Prince Corporation Trainable transceiver and method for learning an activation signal that remotely actuates a device
US5699054A (en) * 1995-05-19 1997-12-16 Prince Corporation Trainable transceiver including a dynamically tunable antenna
US5661804A (en) * 1995-06-27 1997-08-26 Prince Corporation Trainable transceiver capable of learning variable codes
GB2305276A (en) * 1995-09-15 1997-04-02 Thomson Multimedia Sa Learning remote control IR codes
US5841813A (en) * 1996-09-04 1998-11-24 Lucent Technologies Inc. Digital communications system using complementary codes and amplitude modulation

Also Published As

Publication number Publication date
EP0935226A3 (de) 2003-01-22
US6137421A (en) 2000-10-24
EP0935226B1 (de) 2008-01-02
DE69838938D1 (de) 2008-02-14
EP0935226A2 (de) 1999-08-11

Similar Documents

Publication Publication Date Title
DE69838938T2 (de) Verfahren und Gerät zum Speichern von kodierten Datensignalen
DE69914312T2 (de) Mehrfrequenz programmiebarer sender
DE3332761C2 (de)
DE19619694A1 (de) Lernfähiger Sendeempfänger
EP0106273B1 (de) Sicherheitseinrichtung
DE3741324C2 (de)
DE69637072T2 (de) Rollierendes code-sicherheitssystem
DE19619798A1 (de) Lernfähiger Sendeempfänger
DE19619715A1 (de) Lernfähiger Sendeempfänger
DE3733028C2 (de)
DE19732143A1 (de) Lernender Schnellabtastsender
DE3106427A1 (de) Fernbedienungssender
DE19624817A1 (de) Ausrichtbarer Sendeempfänger zum Erlernen veränderlicher Kodierungen
DE2755633C2 (de) Fernsteuerung zum Steuern, Ein- und Umschalten von variablen und festen Gerätefunktionen und Funktionsgrößen in nachrichtentechn. Geräten
DE2514789A1 (de) Verfahren und anordnung zur frequenzumtast(fsk)-uebertragung
DE3332667A1 (de) Verfahren zum fuehren von adresscodes fuer sender und empfaenger sowie eine vorrichtung zum ansteuern eines empfaengers mittels eines entfernt aufgestellten senders
EP0689704B1 (de) Verfahren und vorrichtung zur fernbedienung
DE2547844A1 (de) Anordnung zum pruefen einer verbindungsschaltung, insbesondere in nachrichtenanlagen
DE2513752A1 (de) Signalverarbeitungseinheiten fuer einen fernsteuerbaren elektronischen signalempfaenger
DE19732157A1 (de) Mehrfachfrequenzsender
DE2259940B2 (de) Impulssignalsender für eine Einrichtung zur Fernsteuerung von Gerätefunktionen
DE69632930T2 (de) Verfahren zur Steuerung eines Videorecorders
DE2818891C2 (de)
DE2638817C2 (de) Kanalauswahlanordnung für einen Fernsehempfänger
DE4025302C2 (de)

Legal Events

Date Code Title Description
8364 No opposition during term of opposition