Pfad: Home => AVR-Übersicht => IR-Steuerung => IR-Analyse
IR-Transmitter

Analyse von IR-Steuerungssignalen


Software

Die Software für die Auswertung der gemessenen Daten ist in Pascal geschrieben. Die compilierte ausführbare Datei ist hier herunterladbar. Nach dem Auspacken kann die Exe-Datei gestartet werden.
Öffnen Messdatei Durch Klicken in das Feld "File" kann in einem Auswahldialog die Protokolldatei der Messung einer Fernsteuerung eingelesen werden. Die eingelesenen Messdaten erscheinen im linken Datenfenster.
Mit dem Knopf "Analyze" wird die Analyse gestartet. Im zweiten Datenfenster werden alle gefundenen Keys der Fernsteuerung angezeigt (Erkennung an Zeilen mit "Key="), im Beispiel einer Kamerasteuerung neun Tasten. Bei Auswahl einer Taste im zweiten Datenfenster werden die betreffenden Messdaten im dritten Fenster aufgelistet. Hier bedeutet "1:" eine aktive IR-LED, "0:" eine inaktive. Die Dauer des Signal ist in Mikrosekunden angegeben.

Beim Analysieren der Daten werden alle gemessenen Signaldauern der Steuerung in Kategorien eingeordnet und gemittelt, so dass Messungenauigkeiten vermieden werden können.

An den Seitenanfang, Zur IR-Leitseite

Sendedaten

Wenn im Feld "Cycles" als Mode "TX" eingestellt ist, dann werden die Signaldauern mit den im Fenster "TX options" angegebenen Zeitdauern umgerechnet. Sie geben an, mit welcher LED-Modulationsfrequenz gesendet werden soll (im Beispiel 38,4 kHz). Nach dem Drücken des Knopfes "Create table" werden alle Knöpfe der Fernbedienung analysiert und im Fenster unter "Assembler tables" ausgegeben.
Sendetabelle Die Tabelle listet für alle Tasten die ersten 150 Signale als .db-Tabelle auf. Die Tabelle ist folgendermaßen aufgebaut. Das erste Byte gibt die Anzahl an Wiederholungen der Sequenz an. Die Konstante "cH" gibt an, dass es sich um ein aktives Signal handelt, das heißt dass die IR-LED entsprechend beim High-Signal eingeschaltet wird. Die Konstante "cHW" zeigt an, dass die folgenden Werte 16 Bit lange Dauern angeben, ohne W, also "cH", gibt an, dass zwei 8-Bit-Werte folgen. Die folgenden zwei bzw. vier Bytes geben die aktiven Zyklen bzw. die inaktiven Zyklen an.

Die folgenden Zeilen sind ein Auszug aus der Sendetabelle für die Taste "Off" einer Fernsteuerung.

key_off:
.db 1+cHW,low(350),high(350),low(168),high(168),2+cH,26,60
.db 1+cH,26,17,1+cH,26,60,2+cH,26,17,2+cH,26,60
.db 4+cH,26,17,2+cH,26,60,2+cH,26,17,1+cH,26,60
.db 6+cH,26,17,1+cH,26,60,1+cH,26,17,6+cH,26,60
.db 1+cH,26,17,1+cHW,low(26),high(26),low(1571),high(1571)
.db 1+cHW,low(350),high(350),low(82),high(82),1+cHW,low(26),high(26),low(3686),high(3686)
.db 1+cHW,low(350),high(350),low(82),high(82),1+cHW,low(26),high(26),low(3686),high(3686)
.db 1+cHW,low(350),high(350),low(82),high(82),1+cHW,low(26),high(26),low(3686),high(3686)
.db 1+cHW,low(350),high(350),low(82),high(82),1+cHW,low(26),high(26),low(3686),high(3686)
.db 1+cHW,low(350),high(350),low(82),high(82),1+cHW,low(26),high(26),low(3686),high(3686)
.db 1+cHW,low(350),high(350),low(82),high(82),1+cHW,low(26),high(26),low(3686),high(3686)
.db 1+cHW,low(350),high(350),low(82),high(82),1+cHW,low(26),high(26),low(3686),high(3686)
.db 1+cHW,low(350),high(350),low(82),high(82),1+cHW,low(26),high(26),low(3686),high(3686)
.db 1+cHW,low(350),high(350),low(82),high(82),1+cHW,low(26),high(26),low(3686),high(3686)
.db 1+cHW,low(350),high(350),low(82),high(82),1+cHW,low(26),high(26),low(3686),high(3686)
.db 1+cHW,low(350),high(350),low(82),high(82),1+cHW,low(26),high(26),low(3686),high(3686)


Die erste Zeile:

.db 1+cHW,low(350),high(350),low(168),high(168),2+cH,26,60


besagt, dass für 350 Zyklen à 26,04 Mikrosekunden ein High-Signal ausgesendet wird (ergibt Dauer von 9114 µs, gemessener Wert: 9120 µs), für 168 Zyklen pausiert wird (ergibt 4375, gemessen 4370). Dann wird zwei Mal (2+cH) ein Signal mit 26 Zyklen aktiv und 60 Zyklen inaktiv gesendet (26 = 677, gemessen 690, 60 = 1562, gemessen 1560).

Man erkennt an der Tabelle, dass ab der sechsten Zeile das immer gleiche Muster gesendet wird. Das Senden kann nach der ersten gleichen Zeile abgebrochen werden. Bei anderen Fernsteuerungen wiederholen sich die Muster, die zu Beginn stehen, immer wieder. Auf jeden Fall lässt sich an der Tabelle leicht erkennen, welche Sequenzen gesendet werden müssen. Wenn das Wiederholungsmuster nicht erkennbar ist, hilft es, die "Table length" zu erhöhen.

Der Tabelleninhalt kann entweder als Textdatei gespeichert werden oder in die Zwischenablage kopiert und von dort aus in die Quelldatei des Assemblereditors eingefügt werden.

An den Seitenanfang, Zur IR-Leitseite

Empfangsdaten

Wird nach dem Laden der Messdatei auf den Modus "RX" umgestellt, dann werden die Daten für den Empfang mit einem AVR-Prozessor aufgearbeitet. Dabei werden die im Feld "RX options" verwendet. Hier kann die Taktfrequenz des Prozessors und die Teilerrate des Timers eingestellt werden. Im vorliegenden Fall ist ein Timertick von 53,33 µ eingestellt. Mit "Create table" wird die Auswertung gestartet.
TX Tabelle
Die im Ausgabefenster dargestellte Tabelle ist folgendermaßen aufgebaut:
  1. Zunächst werden bit-orientierte Ausgabesequenzen identifiziert. Solche Sequenzen bestehen aus High- und Low-Sequenzen kurzer Dauer, im vorliegenden Fall ist eine Null 13 Zyklen High und 8 Zyklen low, eine Eins 13&Zyklen high und 29 Zyklen low. Solche Sequenzen werden z. B. als Adressen zu 8, 16 oder 32 Bits Länge gesendet. Die entsprechende Bandbreite für die Erkennung einer Null (11..14, 8..9) und einer Eins (11..14, 29..30) sind in Tabellenform angegeben.
  2. Die Bitsequenzen werden von einer Startsequenz eingeleitet. Im vorliegenden Fall ist das ein Signal mit 170..171 Zyklen High-Dauer und eine Pause von 82 Zyklen. Die Startsequenz ist meist für alle Tasten gleich. Falls nicht, wird der neue Wert jeweils den Tastenwerten mit gleicher Startsequenz vorangestellt.
  3. Die Tastenwerte werden entweder als Sequenzen oder als Einzelwerte ausgegeben. Sequenzen werden hexadezimal dargestellt, die Bitlänge ist im Kommentarteil der Zeile angegeben. Handelt es sich um ein einzelnes Signal, ist seine High- und Low-Dauer und die Erkennungsbandbreite angegeben.
  4. Am Ende der Tabelle sind für alle Tasten die Endsequenzen angegeben, die den erkannten Bitsequenzen folgen. Meist sind die Endsequenzen für alle Tasten gleich. Falls die einzelnen Sequenzen, z. B. zu je acht Bits, durch solche Endsequenzen getrennt, sind in diesem Tabellenteil zwei oder mehr Endsequenzen zu sehen.
Falls nur die Sequenzen ausgewertet werden sollen, kann das Auswahlfeld "Sequence codes only" angeklickt werden. Dann erscheinen nur diese Codesequenzen.

Der Inhalt des Fensters kann in eine Textdatei gespeichert oder in die Zwischenablage kopiert werden.

An den Seitenanfang, Zur IR-Leitseite

©2010 by http://www.avr-asm-tutorial.net