mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Manchester: Startbedingung?


Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ahem (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Variante der Manchester-Kodierung? Wie wird der IR-Sender 
moduliert?

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

Autor: Jadeclaw Dinosaur (jadeclaw)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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... :-(

Autor: Jadeclaw Dinosaur (jadeclaw)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael Appelt (micha54)
Datum:

Bewertung
0 lesenswert
nicht 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/Zeiche...

Gruß,
Michael

Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jadeclaw Dinosaur (jadeclaw)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.