Forum: Mikrocontroller und Digitale Elektronik Sichere IR-Verbindung


von Phillip (Gast)


Lesenswert?

Ich muss 2 AVRs (ATmega8) über Infrarot miteinander verbinden, d.h. ich
brauche eine bidirektionale Kommunikation ohne Master und Slave.
Das TWI Interface würde mir gut gefallen, aber es hat eben die
Einteilung in Master und Slave...
Die Verbindung mus zudem noch relativ sicher sein. aber das ist nicht
das Problem, eine CRC Routine habe ich bereits.

von Rufus T. Firefly (Gast)


Lesenswert?

Dann sieh' Dir mal das IrDA-Protokoll* an. Dafür gibt es fertige
Sender- und Empfängerbausteine - ein weiterer Vorteil wäre die
Möglichkeit, eventuell auch mit anderen IrDA-Geräten (PDA, PC etc.) zu
kommunizieren.

*) www.irda.org

von Phillip (Gast)


Lesenswert?

Dran habe ich shcon gedacht...
Ich benötige allerdings keine so hohe Geschwindigkeit und vor allem
habe ich schon ein paar IRF274 IR-Dioden und TSOP1736 herumliegen die
ich verwenden möchte.

von tex (Gast)


Lesenswert?

vieleicht eine total blöde Idee, aber warum eigentlich nicht via RS232?
einen Phototransistor (mit verstärker) an den RX eine IR- Diode an den
TX?
Nicht in der Luft zerreissen bitte! Ist nur eine Idee!

von Rufus T. Firefly (Gast)


Lesenswert?

"keine so hohe Geschwindigkeit"?

IrDA kann, wie beispielsweise von Palm-PDAs realisiert, auch mit
verhältnismäßig langsamen Baudraten (< 115200) betrieben werden. Ich
weiß jetzt gerade "offhand" nicht, bis zu welcher Baudrate das
heruntergeht, meine aber 19200 in der Liste der angebotenen Raten
gesehen zu haben.

Du könntest ja das IrDA zugrundeliegende Protokoll
(Datensicherungsschicht) mit Deinen Sende- und Empfangsdioden
realisieren; niemand zwingt Dich, dazu spezielle IrDA-Transmitter zu
verwenden.

von Phillip (Gast)


Lesenswert?

ok...
Rs232 gefällt mir gar nichtmal so schlecht...
Man kann es ja auch mit Paritätsbit verwenden.
Kan man einfach so eine Sendediode mit einem Transistor an Rx
anschliessen und den TSOP an Tx?

von Rufus T. Firefly (Gast)


Lesenswert?

@Philip: Im Prinzip ja, aber es empfiehlt sich, einen höherfrequenten
Träger mit den seriellen Daten zu modulieren. Dann ist es auf der
Empfängerseite einfacher, das Nutzsignal von Störungen ('ne Lampe
reicht!) zu trennen.

Dieses Konzept wird auch in üblichen IR-Fernbedienungen angewendet.

von Zotteljedi (Gast)


Lesenswert?

Apropos Störungen, Nutzsignal und trennen. Ich wollte letzens einen
RC5-Empfänger mit einem 36 kHz TSOP basteln, und bin schier
verzweifelt, warum das Ding manchmal Interrupts bekommen hat, obwohl
ich nichts gemacht habe. Es ist meine Schreibtischlampe,
Leuchtstoffröhre. Nur als Vorwarnung, bevor jemand am gleichen Problem
ein paar Tischkanten verschleißt.

Der Fernseher, zu dem die Fernbedienung eigentlich gehört, hat sich
übrigens von der Lampe nicht stören lassen, selbst wenn man voll in
sein "Auge" reinleuchtet kann er die Fernbedienung einwandfrei
erkennen und richtig schalten. Vielleicht war mein TSOP auch einfach
kaputt bzw. nicht schmalbandig genug, und es gibt besseres.

von thkais (Gast)


Lesenswert?

@Zotteljedi:
Ich habe seit Jahren eine IR-Fernbedienung auf Basis eines TSOP laufen.
Störimpulse bekommt man immer rein, auch wenns noch so schmalbandig
wäre. Die Kunst ist eben, diese Störungen vom Nutzsignal zu trennen.
@Phillip:
Der I2C-Bus ist durchaus nicht in "Master" und "Slave" getrennt.
Jeder Baustein darf auch Master sein.
Dein Problem ist allerdings, daß Du dann zwei Signale (Takt und Daten)
übertragen mußt - und das würde sehr aufwendig werden.
Der in den üblichen Fernbedienungen verwendete Träger um die 35-40 kHz
eignet sich nur zum Übertragen von kleinen Datenmengen. Bei einer
Baudrate von 9600 Baud würden pro Bit nur ca. 4 Impulse der
Trägerfrequenz übrigbleiben - das ist zuwenig.
Schau Dir mal den LM567 an, das ist ein PLL der auch als Tondekoder
verwendet werden kann.

von Peter D. (peda)


Lesenswert?

@Zotteljedi,

Dein TSOP ist völlig in Ordnung, aber er kann doch nicht wissen,
welches Protokoll Du verwendest.

Es ist also allein Deine Auswertesoftware, die nicht in Ordnung ist.

Schau dir z.B. mal meine Routine in der Codesammlung an. Die macht
diverse Tests, um falsche Impulslängen und falsche Datenpakete zu
unterdrücken.



Peter

von Zotteljedi (Gast)


Lesenswert?

> Dein TSOP ist völlig in Ordnung, aber er kann doch nicht wissen,
> welches Protokoll Du verwendest.

Ich war viel mehr verwundert, daß die Lampe überhaupt eine Reaktion
hervorgerufen hatte. Mir war nicht so klar, daß die genau (bzw. unter
anderem auch) bei 36 kHz rumstört.

Vielleicht bastel ich mir für den nächsten Versuch einen optischen
Tiefpaßfilter ('ne Socke drüberziehen oder sowas)...

Vom nächsten Lotterie-Gewinn wird eh erstmal ein Oszi gekauft, wenn man
nur ein Multimeter zum Debuggen hat, dann sieht jedes Problem wie
Gleichstrom aus.

von Phillip (Gast)


Lesenswert?

Wen ich aufmodulieren will, benötige ich aber eine externe Schaltung (Rx
Ausgang NAND 36kHz Signal) oder ich mache es intern indem ich mit einem
Timer ein 36Khz Signal generiere und den Ausgangspin entweder aktiviere
oder deaktiviere.

von Zotteljedi (Gast)


Lesenswert?

Ein externer NE555 ist doch kein Problem, mit C = 10 nF, Ra = 2,2 kOhm
und Rb = 1 kOhm recht nah dran (35,5 kHz), wenn eins der Bauteile
trimmbar ist könnte das gut hinhauen. Kurzes googeln scheint zu zeigen,
daß das praxistauglich ist.

von Peter D. (peda)


Lesenswert?

"Ein externer NE555 ist doch kein Problem"

Nö, aber nur völlig überflüssig.

Schau Dir mal T1 an, da gibt es einen Modus "toggle pin on compare".

Also einfach das Toggle ein- oder ausschalten.

Und dann z.B. im Manchestercode senden. Die IR-Empfänger haben nämlich
eine interne AGC um sich wechselnden Lichtverhältnissen anzupassen. Die
kann aber irritiert werden, wenn lange Zeit nur 1 oder 0 gesendet wird.


Peter

von Phillip (Gast)


Lesenswert?

Wo gibt`s ein Beispiel zum Manchestercode oder einem anderen sicheren
Übertragungscode, ev. mit CRC?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.