Manchester dekodieren

OP #1099357
Lesenswert?

Hallo Forum,
ich habe fast den ganzen heutigen Tag damit verbracht ManchesterCode zu 
dekodieren. Ich hab versucht mir mit Excel etwas zusammen zu bauen, was 
die Daten den LogikAnalysers zerlegen kann. Leider ist das über alle 
maßen kompliziert und umständlich. Außerdem war ich zu doof, den 
Dekoderalgorithmus ordentlich in "Wenn"-Klauseln zu implementieren. Hab 
jetzt keine Lust mehr.
Kennt jemand eine technische Möglichkeit (Programm, Applet im Internet), 
ManchesterCode zügig dekodieren zu lassen?
Gast #1099658
Lesenswert?

Hi

Wenn ich
http://de.wikipedia.org/wiki/Manchester_Code
richtig verstehe, wird zu Beginn der Übertragung eine 'Präambel' 
übertragen.
Verstehe ich so, daß am Anfang immer das Gleiche übertragen wird, würde 
jetzt tippen, daß ein 0-1-0-1 Wechsel mehrfach wiederholt wird, damit 
der Empfänger sich auf Geschwindigkeit 'einstellen' kann.
Wenn bei fallender Takt-Flanke ebenfalls die Signal-Flanke fällt, wurde 
eine 1 übertragen, eird dagegen eine steigende Signal-Flanke erkannt, 
ist's eine 0.

Soweit mein Verständnis ... hab auch gelesen, daß der Manchester-Code 
recht einfach zu generieren/entschlüsseln sein soll.
An der Wortwahl erkennbar - noch nicht gemacht.

MfG
Gast #1099679
Lesenswert?

dekodieren, iss gaaaaaaanz einfach.

Man nehme ein Monoflop das sowohl auf LH- und HL-Flanke triggert.
Dieses stellt man auf 75% Haltezeit ein.
Der Bitwert der auf der Leitung liegt wenn das Monoflop zurückfällt,
ist der den man haben will.

Die Präambel zum synchronisieren gibts nur genau 1 mal.
Mit der kann dann auch testen ob die Leitung vielleicht invertiert.
Bei HDLC z.B. 0x7E.
Wobei die Präambel selbstverständlich auch länger sein kann.

Was vor der Präambel kommt, ist Privatsache und kann alles mögliche 
sein.
OP #1099694
Lesenswert?

Gast Posti wrote:
> Wenn bei fallender Takt-Flanke ebenfalls die Signal-Flanke fällt, wurde
> eine 1 übertragen, eird dagegen eine steigende Signal-Flanke erkannt,
> ist's eine 0.
Genau. Ausschlaggebend ist der Zeitpunkt des Taktsignals. Die oben 
genannte Regel gilt nämlich nur bei Zeitpunkt= T/2.  Um mehrere Nullen 
oder Einsen übertragen zu können, wird bei Zeitpunkt=T ein zu 
missachtender Flankenwechsel vollzogen.
Per Hand auch recht einfach zu machen, aber bei >7000 Bit/Flanken ist 
das doch recht mühselig und fehlerträchtig. Zumal ich ja den Takt nicht 
"sehen" kann. Muss also viel rum malen...
Unter 
http://www.cs.auckland.ac.nz/compsci314s2t/resources/Coding/index.html 
gibt es quasi die Gegenrichtung. Also die Erzeugung vom Manchester aus 
normalen Daten.
#5760560
Lesenswert?

Ich weiß, der Thread ist steinalt, aber war der beste Treffer bei meiner 
diesbezüglichen Suche. Leider auch ohne richtig zu helfen...

Ich habe eine Lösung für mein Problem gefunden, die sicher nicht 
jedermanns Geschmack ist, aber dem ein oder anderen Frickler (wie mich) 
vielleicht doch weiterhilft.
Ausgangslage war ein mit Arduino/CC1101 mitgeschnittener Datenstrom mit 
dem Format
1
944 1108 852 1084 880 576 400 572 420 1048
, der einfach in Excel importiert wurde.
Jetzt wusste ich, der erste Puls ist positiv, und die Pulslänge ist als 
Zahl codiert, Schwellwert H/L in etwa 750. In Manchester muss das also 
heißen:
1
11 00 11 00 11 0 1 0 1 00
 Diesen Code kann ich dann ganz einfach in den Online-Tools decodieren. 
Wie das aber bei 400 Werten machen?

Stehen die Werte ein Zeile "1", ab Spalte "B" berechne ich den Code in 
Zeile "2" über folgende Formel:
1
=WENN(B1="";"";WENN(ODER(A97="00";A97="0";A97="");WENN(B1>1500;"XXX";(WENN(B1>750;"11";"1")));WENN(B1>1500;"XXX";(WENN(B1>750;"00";"0")))))
Je nach Decodierer muss noch ein initiales "E" oder so zugefügt werden.

Eignet sich wirklich nur für zu Fuss-Übungen, aber manchmal braucht man 
eben das.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren