Forum: FPGA, VHDL & Co. Oversampling, Taktrückgewinnung


von Gast (Gast)


Lesenswert?

Wir programmierten in der Schule einen seriellen Sender. Dazu brauchten 
wir beim Empfänger ein Oversampling zur Taktrückgewinnung. Jedoch 
versteh ich nicht ganz, wie man den Takt dabei rückgewinnt.


Vielleicht kann mir wer helfen..

mfg

von Oskar (Gast)


Lesenswert?

PLL - gfs ein händisch programmierte.

von Falk B. (falk)


Lesenswert?

@ Gast (Gast)

>Wir programmierten in der Schule einen seriellen Sender. Dazu brauchten
>wir beim Empfänger ein Oversampling zur Taktrückgewinnung. Jedoch
>versteh ich nicht ganz, wie man den Takt dabei rückgewinnt.

Schau dir mal die Funktionsweise eines UART an. Dort wird mit 
Überabtastung gearbeitet.

Siehe auch Baud, Baudratenquarz.

http://pdfserv.maxim-ic.com/en/an/AN2141.pdf

MfG
Falk

P.S.

@ Oskar (Gast)

>PLL - gfs ein händisch programmierte.

http://video.google.de/videoplay?docid=763949850889929695

von Gast (Gast)


Lesenswert?

Hm...

Es gibt eine Abtastfrequenz - das ist mir schon klar und bei unserem 
Beispiel beträgt die 32.6 kHz. Das Startbit sagt dem Empfänger, dass nun 
Daten übertragen werden, und eine halbe Bitlänge später kann er das 
erste Datenbit abtasten, eine weitere Bitlänge später dass 2. Datenbit ? 
So richtig ?

Was ich da jetzt nicht ganz verstehe - Das Oversampling besteht aus 
folgenden  Teilen: Übertragen vom Sender wird immer 1 Bit(insgesamt 
ergeben 10 Bits ein e Übertragung, sprich 10 Bits gehören immer 
zusammen), dann folgt ein Flankendetektor und danach ein 12-Bit-Counter. 
Wenn aus dem Flankendetektor '1' rauskommt, wird der Counter 
zurückgesetzt. Nach dem Counter folgt schließlich noch einmal ein 
Flankendetektor.

Was hat der Counter hier für eine Aufgabe bzw warum wird er 
zurückgesetzt, wenn eine Flanke aus dem 1. Flankendetektor komm ?

von Falk B. (falk)


Lesenswert?

@ Gast (Gast)

>So richtig ?

Ja.

>Was ich da jetzt nicht ganz verstehe - Das Oversampling besteht aus
>folgenden  Teilen: Übertragen vom Sender wird immer 1 Bit(insgesamt
>ergeben 10 Bits ein e Übertragung, sprich 10 Bits gehören immer
>zusammen),

Arbeite mal an deinen Formulierungen. Das klingt ziemlich verdreht.

>Was hat der Counter hier für eine Aufgabe bzw warum wird er
>zurückgesetzt, wenn eine Flanke aus dem 1. Flankendetektor komm ?

Zeichne das mal. Sonst reden wir aneinander vorbei. Poste die Zeichnung 
unter Beachtung der Bildformate.

MFG
Falk

von Gast (Gast)


Angehängte Dateien:

Lesenswert?

Hm der untere Teil mit den 3 Flip Flops und einem XOR soll der 
NRZI-Decoder sein.


PS: Habs jetzt nur schnell mitn Paint gezeichnet, hab nichts anderes auf 
dem PC ;-)

von Falk B. (falk)


Lesenswert?

@ Gast (Gast)

>Hm der untere Teil mit den 3 Flip Flops und einem XOR soll der
>NRZI-Decoder sein.

Passt im Prinzip.

>PS: Habs jetzt nur schnell mitn Paint gezeichnet, hab nichts anderes auf
>dem PC ;-)

Aber leider nicht die Bildformate beachtet. :-(

Nun, der erste Flankendetektor synchronisiert den Zähler auf die 
Flankenwechsel im Signal, der zweite generiert aus dem Zählerüberlauf 
von 2047 auf 2048 einen Übernahmepuls. D.h. deine Daten müssen 4096 
Takte lang sein, bei 32,6 kHz Takt sind das dann ~ 8 Bit/s. Kann man so 
machen.

MFG
Falk

von Gast (Gast)


Lesenswert?

Hm

Und was macht nun der Counter genau? Dient der zur Abtastung und alle 
2^12(=4096) ns wird abgetastet?

von Falk B. (falk)


Lesenswert?

@ Gast (Gast)

>Und was macht nun der Counter genau? Dient der zur Abtastung und alle
>2^12(=4096) ns wird abgetastet?

Erstmal sind das keine ns, sondern Takte! Und der stellt, wie bereits 
gesagt, eine sycnhrone Zeitbasis zu Abtastung der Daten zur Verfügung. 
Wenn der Zähler einfach frei laufen würde, wäre die Phase von Zähler und 
Datenstrom undefiniert, asynchron. D.h. der Zählerstand Null würde nicht 
genau mit dem Start eines Bit zusammenfallen. Durch den Flankendetektor 
wird er nun aber immer zum Beginn eines Bits zurückgesetzt, sprich mit 
dem Datenstrom synchronisiert. Nun läuft er erstmal für eine Weile 
synchron (im Gleichschritt) mit den ankommenden Daten. Das geht eine 
Weile gut. Nach ein paar Bits kann es aber passieren (und es WIRD 
passieren!), dass der Zähler zu weit oder zu wenig gezählt hat. Nicht 
weil er sich verzählt, sondern weil der Takt vom Zähler und der Takt vom 
Datenstrom nie 100%ig gleich sind. Also muss in regelmässigen Abständen 
der Zähler durch eine Flanke im Datenstrom neu synchronisiert werden. 
Die NRZI Kodierung ist dabei hilfreich.

MfG
Falk

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.