Forum: FPGA, VHDL & Co. Taktsynchronisation


von Kim N. (kim)


Lesenswert?

Hallo
Ich will einen BUS mit meinen FPGA abhören und die Daten auswerten und 
bearbeiten, das klappt auch alles mehr oder weniger gut. Allerdings habe 
ich ein Problem mit der Taktsynchronisation. Ich weiss zwar das man 
Signalübergänge in der Mitte des Bitintervalls zur Taktsynchronisation 
benutzen kann (Manchester Code). Habe jedoch nicht wirklich eine Idee 
wie ich meinen FPGA nun höfflich mitteile synchroniesere dich damit ;)

zur synchronistation wird folgendes Signal vor jeden Paket gesendet:

_-_-_-_-_-

Ich hab mir jetzt vorgestellt dieses Signal irgendwie mit meine DCM zu 
verkoppeln...hab aber grosse zweifel das so einfach geht......

Danke schonmal für die Hilfe !!!

Gruss
Kim

PS. FPGA Spartan 3E und halt ISE

von Falk B. (falk)


Lesenswert?

@ Kim Nagel

>Ich will einen BUS mit meinen FPGA abhören und die Daten auswerten und
>bearbeiten, das klappt auch alles mehr oder weniger gut. Allerdings habe

Welche Bitrate? Was für ein Bus? Datenbreite?

>ich ein Problem mit der Taktsynchronisation. Ich weiss zwar das man
>Signalübergänge in der Mitte des Bitintervalls zur Taktsynchronisation
>benutzen kann (Manchester Code). Habe jedoch nicht wirklich eine Idee
>wie ich meinen FPGA nun höfflich mitteile synchroniesere dich damit ;)

>zur synchronistation wird folgendes Signal vor jeden Paket gesendet:

>_-_-_-_-_-

>Ich hab mir jetzt vorgestellt dieses Signal irgendwie mit meine DCM zu
>verkoppeln...hab aber grosse zweifel das so einfach geht......

Das kannst du quasi vergessen. DCM ist nur mit sehr sauberen Takten 
anstuerbar, so wie sie ein Quarzoszillator liefert.

In deinem Fall brauchst du wahrscheinlich eine Überabtastung. Sprich du 
musst mit einem festen Takt, welcher ca. 4..16 mal schneller ist als 
dein Datenstrom das Datensignal abtasten und verarbeiten.

MfG
Falk



von Kim N. (kim)


Lesenswert?

>Welche Bitrate? Was für ein Bus? Datenbreite?

ca 12Mhz +/- 8%
Manchester Code
maximale daten 192bit

>Das kannst du quasi vergessen. DCM ist nur mit sehr sauberen Takten
>anstuerbar, so wie sie ein Quarzoszillator liefert.

Das habe ich mir fast gedacht...

>In deinem Fall brauchst du wahrscheinlich eine Überabtastung. Sprich du
>musst mit einem festen Takt, welcher ca. 4..16 mal schneller ist als
>dein Datenstrom das Datensignal abtasten und verarbeiten.

Auf sowas hätte man auch selber kommen können...
Denke werde mit 6-facher Frequnz abtasten dann sollte der Takt nicht 
weglaufen...

Danke!!

gruss
Kim

von Falk B. (falk)


Lesenswert?

@ Kim Nagel

>ca 12Mhz +/- 8%

Ich nehme an du meinst 12 Mbit/s. Kein Thema für ein FPGA von heute.

>Manchester Code
>maximale daten 192bit

Ich nehme an das ist die maximale Datenpaktelänge, nicht die Busbreite 
;-)

>Denke werde mit 6-facher Frequnz abtasten dann sollte der Takt nicht
>weglaufen...

Das Weglaufen muss deine intelligente Statemachine verhindern, indem sie 
mal schneller und mal langsamer zählt. USB im Fullspeed Modus (12 
Mbit/s) arbeitet mit 4fach überabtastung und so einer Statemachine. 
Praktisch machst du damit ein Takt- Datenenrückgewinnung (neudeutsch 
CLock-Data-Recovery)

MFG
Falk

von Kim N. (kim)


Lesenswert?

@ Falk

> Ich nehme an du meinst 12 Mbit/s. Kein Thema für ein FPGA von heute.
> Ich nehme an das ist die maximale Datenpaktelänge, nicht die Busbreite
> ;-)

ähm wenn du so fragst ja :-)




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.