|
|
Signale von einer IR-Fernbedienung empfangen
Fernbedienungen für Ferneher und ähnliches arbeiten
mit Infrarot. Die Signale die sie aussenden, können mit der TSOP-Schaltung
über den COM-Port eingelesen werden. Die verschiedenen
Hersteller
benutzen dabei neben unterschiedlichen Protokollen auch
Trägerfrequenzen von 36 bis 40kHz. Da ein Abweichen in kleinen
Grenzen
von dieser Frequenz lediglich die Reichweite verkleinert,
können z.B.
auch mit einem TSOP1736 problemlos Signale einer 40kHz-Fernbedienung
empfangen werden. Näheres dazu in der Beschreibung
zur TSOP-Schaltung.
Mit dem Programm TSOPEIN.BAS
lassen sich die Signale sichtbar machen und man kann die zeitliche
Abfolge analysieren. Das geht auch unter Windows recht genau, da mit
den Timerregistern gearbeitet wird,die unabhängig vom
Systemtakt
arbeiten. Mit dem aufgezeichneten Signal lässt sich relativ
leicht der
von der Fernbedienung benutzte Code bestimmen. Ein recht gute Seite zum
Aufbau verschiedener IR-Protokolle (leider auf Englisch) ist http://www.xs4all.nl/~sbp/knowledge/ir/ir.htm
Der Benutzer gibt zu Beginn die Dauer der Aufzeichnung an. Diese kann
zwischen einer Millisekunde und einer Sekunde liegen. Durch
drücken
einer Taste der Fernbedienung wird die Aufzeichnung gestartet.
Vorrausgesetzt die TSOP-Schaltung
funktioniert und ist
richtig angeschlossen, ergibt sich dann z.B. so eine Aufzeichnung:
Gedrückt wurde die Taste "1"
fürs
erste Programm. Man kann sehr schön
ablesen, dass zu Beginn ein 8ms langer Impuls gesendet wird, gefolgt
von einer 4ms-Lücke. Das ist eindeutig das auf der oben
angesprochenen Seite
als "X-Sat" bezeichnete Protokoll. Dem Startsignal folgen zwei Gruppen
kürzerer Impulse, wieder getrennt durch eine 4ms-Pause. Bei
diesem
Protokoll sind jeweils die ersten acht dieser Kurzen Impulse das Byte,
das den Gerätecode enthält, der Letzte ist sozusagen
ein Stoppimpuls.
Ein Impuls mit kurzer Pause danach ist eine Null, einer mit langer
Pause eine Eins, gelesen wird von links nach rechts. Der
Gerätecode ist
also 20. Das zweite Byte ist 1, was der Code für Taste 1 ist.
Auch hier
ist der 9. Impuls der Stoppimpuls.
Viele Protokolle arbeiten mit dieser Aufteilung in Geräte- und
Funktionscode. So stören sich die Fernbedienungen z.B. von
Ferseher und
Videorecorder des gleichen Herstellers nicht, auch wenn sie ihre Daten
nach dem gleichen Verfahren übertragen. Hier noch zwei weitere
Beispiele, bei beiden beiden wurde jeweils die Taste "1"
gedrückt:
RC-5-Code

Sharp-Code
Kennt
man erst mal den Aufbau des Signals, lässt sich - am besten
auch unter
Benutzung der Timerregister wie im Beispielprogramm - eine Auswertung
programmieren und so können verschieden Funktionen bequem per
Fernbedienung gesteuert werden. Umgekehrt ist auch ein Senden solcher
Signale möglich. Dazu mehr im entsprechenden Abschnitt.
|
|