Forum: Mikrocontroller und Digitale Elektronik Manchester code decodierung


von Jan R. (Gast)


Lesenswert?

Hallo,


Möchte Manchmester Code dekodieren --> im Internet lese ich, dass das am 
besten mit einer PLL geht -->. Manche sagen es würde auch mit einem 
einfachen XOR Gatter gehen aber nur, wenn das taktsignal Phasengleich 
ebenfalls am XOR Gatter anliegt. --> die PLL ist ja ein Regelkreis. An 
welchem Bauteil, kann man das Dekodierte datensignal jetzt abnehmen 
(Phasenkomparator, Shleifenfilter , VCO)? --> Die PLL braucht ja auch 
eine gewisse Zeit, um eine Phasenlageveränderung auskegeln zu können. 
Nach dem auskegeln, ist die Spannung am Phasenkomparator wider 0. Am 
Schleifenfilter ist die Spannung (bei gleicher Frequenz des Signales) 
nach dem ausregeln auch wider gleich dem davor? --> wärend der Zeit des 
auskegelnd! zukt die Spannung am Phasenkomparator und am Schleifenfilter 
ist es auch unkonstant. Wo kann ich das datensignal also abgreifen?

MfG

von Ralph (Gast)


Lesenswert?

Du brauchst eine PLL und ein XOR.

Mit der PLL lässt sich die Taktfrequenz des Datenstroms erzeugen.
Diese Taktfrequenz zusammen mit dem Datensignal aufs XOR.
Und am Ausgang des XOR liegt das Datensignal an.

Das geht übrigens in beide Richtungen. Also codieren und Decodieren.

von Falk B. (falk)


Lesenswert?

Das Zauberwort lautet Takt- und Datenrückgewinnung, neudeutsch CDR 
(clock & data recovery). Das ist bei Manchester ziemlich einfach, kriegt 
man volldigital mit wenigen FlipFlops hin. Indirekt steckt da auch eine 
PLL drin, wenn gleich die bei Manchester sehr einfach ausfällt.

von Jan R. (Gast)


Lesenswert?

Ralph schrieb:
> Du brauchst eine PLL und ein XOR.
>
> Mit der PLL lässt sich die Taktfrequenz des Datenstroms erzeugen.
> Diese Taktfrequenz zusammen mit dem Datensignal aufs XOR.
> Und am Ausgang des XOR liegt das Datensignal an.
>
> Das geht übrigens in beide Richtungen. Also codieren und Decodieren.

Aber ändert das taktsignal am Ausgang der PLL nicht andauernd seine 
Phase ?
Wie kann man den Takt phasenrichtig zurückgewinnen?

von Jan R. (Gast)


Lesenswert?

Jan R. schrieb:
> Ralph schrieb:
>> Du brauchst eine PLL und ein XOR.
>>
>> Mit der PLL lässt sich die Taktfrequenz des Datenstroms erzeugen.
>> Diese Taktfrequenz zusammen mit dem Datensignal aufs XOR.
>> Und am Ausgang des XOR liegt das Datensignal an.
>>
>> Das geht übrigens in beide Richtungen. Also codieren und Decodieren.
>
> Aber ändert das taktsignal am Ausgang der PLL nicht andauernd seine
> Phase ?
> Wie kann man den Takt phasenrichtig zurückgewinnen?

??

von None (Gast)


Lesenswert?

http://de.wikipedia.org/wiki/Manchesterkodierung

Immer vorher etwas gurgeln, dann fragen...

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Jan R. schrieb:
> Aber ändert das taktsignal am Ausgang der PLL nicht andauernd seine
> Phase ?
> Wie kann man den Takt phasenrichtig zurückgewinnen?

PLL heisst doch 'Phase Locked Loop' - die Phase am Ausgang bleibt also 
konstant und das Datensignal wird nun z.B. mit einem XOR wiedergewonnen, 
bei dem an einem Eingang das PLL signal liegt und am anderen die 
Manchester Daten.
MCs nehmen oft statt der PLL einen Timer, der vom Signal synchronisiert 
wird, das prinzipielle Vorgehen bleibt aber das gleiche, auch der Timer 
dreht die Phase nicht.

von None (Gast)


Lesenswert?

Besser:

www.atmel.com/images/doc9164.pdf

von Jan R. (Gast)


Lesenswert?

Matthias Sch. schrieb:
> Jan R. schrieb:
>> Aber ändert das taktsignal am Ausgang der PLL nicht andauernd seine
>> Phase ?
>> Wie kann man den Takt phasenrichtig zurückgewinnen?
>
> PLL heisst doch 'Phase Locked Loop' - die Phase am Ausgang bleibt also
> konstant und das Datensignal wird nun z.B. mit einem XOR wiedergewonnen,
> bei dem an einem Eingang das PLL signal liegt und am anderen die
> Manchester Daten.
> MCs nehmen oft statt der PLL einen Timer, der vom Signal synchronisiert
> wird, das prinzipielle Vorgehen bleibt aber das gleiche, auch der Timer
> dreht die Phase nicht.

Ja aber die PLL passt die Phase dem Eingang an, der Phasenkomparator ist 
ja praktisch auch ein XOR, der nur 0 Ausgibt, wenn die Eingangs und 
ausgangsphasen gleich sind. Die Phase des Signals ändert sich jetzt doch 
aber, deshalb müsste sich auch die Phase am Ausgang ändern. Sprich der 
Wert am Ausgang des Schleifenfilters, ändert sich, bis die Phase und 
Frequenz von Eingang und Ausgang stimmen.

von chris_ (Gast)


Lesenswert?

Hier wird die Manchesterdekodierung auf einem AVR verwendet:
http://www.hobby-roboter.de/forum/viewtopic.php?f=4&t=127#p544

von Jan R. (Gast)


Lesenswert?

Matthias Sch. schrieb:
> Jan R. schrieb:
>> Aber ändert das taktsignal am Ausgang der PLL nicht andauernd seine
>> Phase ?
>> Wie kann man den Takt phasenrichtig zurückgewinnen?
>
> PLL heisst doch 'Phase Locked Loop' - die Phase am Ausgang bleibt also
> konstant und das Datensignal wird nun z.B. mit einem XOR wiedergewonnen,
> bei dem an einem Eingang das PLL signal liegt und am anderen die
> Manchester Daten.
> MCs nehmen oft statt der PLL einen Timer, der vom Signal synchronisiert
> wird, das prinzipielle Vorgehen bleibt aber das gleiche, auch der Timer
> dreht die Phase nicht.

Phase zwischen Eingang und Ausgang dreht sich nicht. Aber wenn sich die 
phase des Eingangs ändert?

von Georg G. (df2au)


Lesenswert?

Jan R. schrieb:
> Aber wenn sich die
> phase des Eingangs ändert?

Hast du schon bemerkt, dass es ein Schleifenfilter gibt? Das ist ein 
Tiefpass in der Regelung. Die Ausgangsphase folgt der Eingangsphase 
nicht ruckartig sondern langsam. Sie ist also der Mittelwert der 
Eingangsphase über x Perioden.

von Jan R. (Gast)


Angehängte Dateien:

Lesenswert?

So das isn Ansatz. Der Takt am Ausgang, hat eine Leichte 
Phasenverschiebung zum Eingangstakt (PLL Mittelwert). Das RC Glied sowie 
die beiden Inv. Schmitt-Trigger sind für die Glättung zuständig.
Kann man das So machen oder ehr Blöd?

von Georg G. (df2au)


Lesenswert?

Daten und Takt haben beim Manchester Code eine feste Zuordnung. 3kHz und 
10kHz sind nicht möglich.

Der Wikipedia Artikel (https://de.wikipedia.org/wiki/Manchester-Code) 
gibt dir das notwendige Grundlagen Wissen.

von Jan R. (Gast)


Lesenswert?

Das darfst du auch nicht als 3 KHz sehen du musst es als ein Datensignal 
sehen, welches halt nur an diesen Stellen High bzw. LOW wird. Mit einem 
XOR Gatter wie imWwikilink beschrieben dekodiere ich ja. Das einzige 
Problem: das Taktsignal, zur Dekodiereung muss das Taktsignal am erzeuge 
Phasengleich zum Empfänger Signal sein.das ist hier jetzt leider nicht 
der Fall (PLL bildet Phasen Mittelwert) also brauche ich das RC Glied 
für die Glättung. Habt ihr noch ne bessere Idee?

von Georg G. (df2au)


Lesenswert?

Jan R. schrieb:
> Habt ihr noch ne bessere Idee?

Ja, zurück zu den Grundlagen. Das Datensignal darf sich nicht zu 
beliebigen Zeiten ändern. Sonst kann man den Takt nicht zurück gewinnen.

Erzeuge dir ein richtiges Manchester Signal und übe damit die PLL.

von Christian R. (supachris)


Lesenswert?

Man kann das Manchester Signal natürlich auch überabtasten, da muss man 
den Takt nicht zwangsläufig rekonstruieren. Dazu muss aber die Bitrate 
bekannt und konstant sein. Mache ich in CPLD/FPGA immer mal. Geht auf 
einem µC genauso, aber man muss min. 8-fach Überabtasten.

von Humbug (Gast)


Lesenswert?

Jan R hat recht. Da sich beim Manchester die Phase häufig zwischen 0 / 
180° ändert, kann eine normale PLL niemals einrasten. Es wird auch kein 
brauchbares Regelsignal erzeugt.
Abhilfe: Mit einer Flankenerkennung (Impulsverdoppelung) mit XOR, Pulse 
erzeugen. Diese Pulse triggern ein Monoflop, das sich mit dem 
Ausgangsimpuls für ca. 3/4 Bitzeit selbst sperrt. Nach Synchronisation 
(0-1 / 1-0) kommen nur noch Impulse in jeder Bitmitte durch. Darauf kann 
eine PLL synchronisiert werden.
An dieser Stelle muss der Referenz-Clock eine L-H-Flanke haben.

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.