Eine IR-Fernbedienung, zur Steuerung und Parametrierung eines Mikrocontrollers, stellt eine komfortable Schnittstelle zwischen Benutzer und Steuerung dar. Gleichzeitig reduziert sich der Hardwareaufwand, da anstatt einer Tastatur nur ein IR-Empfänger vorgesehen werden muss.
Um eine sichere Datenübertragung zu ermöglichen, wird nicht einfach Licht AN/AUS übertragen, sondern es wird ein mit 30 kHz 40 kHz moduliertes Signal gesendet.
Dabei bedeutet ein solches Signal eine "1" und kein Signal eine "0" :
Das Demodulieren übernimmt ein geeigneter IR-Empfänger bereits für uns. Dies ist zum Beispiel ein SFH506 oder ein TSOP1738 u.ä. Leider gibt es bei den Protokollen eine Vielzahl von unterschiedlichen Formaten. Die Zustände 0 und 1 sind dabei entweder als Bitwechsel oder durch das Impuls/Pausenverhältnis definiert.
Ein recht weit verbreitetes Protokoll ist der von der Firma Philips entwickelte RC5-Code. Dieses wird u.a. von den Firmen Loewe, Grundig, Philips und Marantz benutzt. Das Protokoll ermöglicht das Adressieren von 32 Geräte mit je 64 Befehlen. So kann man problemlos den Fernseher einschalten, ohne dass gleichzeitig alle anderen RC5-Geräte mit eingeschaltet werden.
Der Aufbau des Codes besteht aus:
2 Startbits
1 Togglebit (wechselt bei jeder Übertragung, um das Festhalten einer Taste zu erkennen)
5 Adressbits
6 Befehlsbits
Der RC5-Code verwendet ein biphasenkodiertes Format, d.h. ein Bitzustand wird durch einen Bitwechsel definiert. Dabei bedeutet ein Wechsel von 0 > 1 = "1"
und ein Wechsel von 1 > 0 = "0".
Die Gesamtlänge eines so kodierten Bits beträgt 1,778ms, wodurch sich eine Gesamtzeit von 24,889ms pro Übertragung ergibt. Zwischen zwei Übertragungen ist eine Pause von min. 114ms. Die Programmierung ist recht einfach, da es sich um eine feste Bitzeit handelt. Nach dem Erkennen einer Übertragung, wählt man einen festen Samplepunkt (z.B. erstes oder letztes Drittel eines Bits) und kann dann sofort auf den Bitzustand schliessen.
Ein Demoprogramm für den RC5-Code findet man unter Download.
SIRCS/CNTRL-S-Code
SIRCS steht für das IR-Protokoll und CNTRL-S ist das drahtgebunde Protokoll. Das Protokoll wurde von Sony entwickelt und besteht aus 1 Startbit und 12..20 Datenbits. Die Daten sind aufgeteilt in 5..13 Bit Adresse und 7 Bit Befehl. Man erkennt, dass die Länge einer Übertragung von der Adresse abhängig ist. Als Adresse werden auf jeden Fall 5 Bit übertragen, sollten mehr Bits erforderlich sein, so werden diese entsprechend angehängt. Die Bitzustände sind durch ein unterschiedliche Impulslängen definiert.
Jede Übertragung beginnt mit einem 2,4ms langen Startbit. Es folgt eine Pause von 0,6ms, worauf die Datenbits folgen. Zwischen zwei Übertragungen liegen min. 45 ms. Damit das Empfangsgerät Übertragungsfehler feststellen kann, wird jeder Befehl wiederholt (2..5mal) übertragen. Eine Programmierung ist ebenfalls recht einfach:
Man ermittelt die Zeit zwischen zwei positiven Flanken. So kann man Startbit (2.4ms+0.6ms), eine "0" (1.2ms) und eine "1" (1.8ms) leicht erkennen. Allerdings muss man darauf achten, das die Länge variabel sein kann.
Viele Fernbedienungen senden aber trotzdem eine feste Bitanzahl, so dass man die Programierung einfacher halten kann.
DENON Code
Beim diesem Protokoll werden 16 Bits übertragen, diese sind aufgeteilt in 5 Bit Adresse, 10 Bit Befehl und 1 Stop-Bit. Die Modulationfrequenz beträgt 32 kHz. Es wird kein Startbit gesendet. Damit die Übertragungssicherheit erhöht wird, wird jede Übertragung 2x gesendet (in einem Abstand von 65ms). Dabei wird beim 2. Mal der Befehl invertiert übertragen. Die Bitzustände sind durch die Impulspausenlänge definiert.
Motorola Code
Der Motorola-Code ist vergleichbar mit dem RC5-Code. Die Bit werden ebenfalls biphasenmoduliert übertragen, allerdings ist die Bitzuordnung anders. Ein Wechsel von 1 à 0 entspricht hier einer 1 und ein Wechsel von 0 à 1 einer 0. Die Implusdauer ist 512 µs. Die Modulationfrequenz betragt 32 kHz. Eine Übertragung besteht aus 11 Bits, die sich aus 1 Pre-Bit, 1 Start-Bit und 9 Befehls-Bits zusammensetzt. Eine komplette Übertragung besteht immer aus min. 3 Einzelübertragungen: Beim Drücken einer Taste werden neun 1 Bits gesendet. Dann folgt eine Pause. Jetzt der entsprechende Befehl übertragen. Dies geschieht, solange die Taste gedrückt ist. (mit einer Pause zw. 2 Übertragungen). Abschließend werden wieder neun 1 Bits übertragen.
Diese Informationen erheben keine Anspruch auf Vollständigkeit. Sollten sich Fehler eingeschlichen haben, bitte eine kurze Mail () .
Wir sind immer auf der Suche nach kleinen (oder grösseren) Beschreibungen zu Protokollen oder Tutorials. Wenn jemand etwas für uns hat - immer her