Forum: Mikrocontroller und Digitale Elektronik Manchester: Startbedingung?


von Franz (Gast)


Lesenswert?

Hi,

ich möchte via IR Daten übertragen. Dazu kodiere ich mein Signal in 
Manchester. Aber: Woher weiß mein Client, dass jetzt die 
Datenübertragung anfängt? Schließlich kann das Signal ja mit einer 
logischen Null anfangen (Datenbit: 1, Clock: 1). Dann verpasst der 
Empfänger ja das erste Halbbit.

von Ahem (Gast)


Lesenswert?

Welche Variante der Manchester-Kodierung? Wie wird der IR-Sender 
moduliert?

Je nachdem gibt es verschiedene Methoden, den Anfang zu finden.

von Jadeclaw D. (jadeclaw)


Lesenswert?

Beim Ethernet gibt es das gleiche Problem. Die Lösung dort: 7 x 0x55 als 
Vorspann, darauf synchronisiert sich der Empfänger, danach 1 x 0xD5 als 
Rahmenbeginn (Start Frame Delimiter), dann die Daten, am Schluß eine 
Prüfsumme (CRC32) über die Nutzlast. Das niederwertigste Bit geht zuerst 
raus, damit ist sichergestellt, daß die Eins am Schluß des achten Bytes 
als Vorspannende erkannt wird.

Gruß
Jadeclaw.

von Franz (Gast)


Lesenswert?

Ok... das ist aber eine hässliche Lösung. Zumal ich nur maximal 2.5kBaud 
über den TSOP17 bekomme. Da bleibt dann gerade mal 1.25kByte/s inklusive 
dieses Overhead. Aber es führt wohl kein Weg daran vorbei... :-(

von Jadeclaw D. (jadeclaw)


Lesenswert?

Ähem. Diese TSOP-Teile haben doch eine Trägererkennung/Demodulierung. Da 
brauchst du keine Manchesterkodierung, es reicht völlig aus, einen 
Rechteck von 30 - 50 kHz (Frequenz je nach verwendetem TSOP) auf die 
SendeLED zu geben und im Takt der Daten ein- und auszuschalten. So wird 
es auch bei IR-Fernbedienungen gemacht. 1, 2 Startbytes als Startkennung 
und Prüfsumme über die Nutzlast müssen aber trotzdem sein.

Gruß
Jadeclaw.

von Michael A. (micha54)


Lesenswert?

Hallo,

die Lösung ist doch uralt und nennt sich Char-Stuffing.
Es wird ein spezifisches char ausgewählt, z.B.0xA5.
Findet man ein 0xA5 im Text, so wird es verdoppelt.
Beim Lesen kann man also nach 2 Zeichen einen Blockanfang erkennen.

Siehe [Character 
stuffing]http://www.itwissen.info/definition/lexikon/Zeichen-Fuellung-character-stuffing.html

Gruß,
Michael

von Franz (Gast)


Lesenswert?

> Ähem. Diese TSOP-Teile haben doch eine Trägererkennung/Demodulierung. Da
> brauchst du keine Manchesterkodierung

Ich denke schon, da man nicht davon ausgehen kann, dass die internen 
Oszillatoren genau genug gehen.

von Jadeclaw D. (jadeclaw)


Lesenswert?

Dann schau dir diese TSOPs mal genauer an. Der Sendeträger erscheint 
nämlich nicht am Ausgang, der Ausgang vermeldet nur Träger da oder eben 
nicht da. Je nach verwendetem TSOP kann dieses Träger da oder nicht da 
mit ein paar kHz erfolgen. Der Sendeträger muß auch nicht sehr genau 
sein, +- 1 kHz hat kaum Auswirkungen auf die Empfindlichkeit. Die TSOPs 
selber haben keinen Oszillator eingebaut, diese Dinger funktionieren wie 
ein Geradeausempfänger.

Gruß
Jadeclaw.

von Peter D. (peda)


Lesenswert?

Franz wrote:

> ich möchte via IR Daten übertragen. Dazu kodiere ich mein Signal in
> Manchester. Aber: Woher weiß mein Client, dass jetzt die
> Datenübertragung anfängt? Schließlich kann das Signal ja mit einer
> logischen Null anfangen (Datenbit: 1, Clock: 1). Dann verpasst der
> Empfänger ja das erste Halbbit.

Du fängst einfach die Übertragung mit einem bekannten Bit an, also immer 
0 oder immer 1.
Der RC-5 Code fängt z.B. immer mit einem 1-Bit an.


Peter

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.