Forum: FPGA, VHDL & Co. MFM Decoder und clock recovery (mit DE1 board )


von Reinhard H. (Firma: PRIVAT) (pdp11gy)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

bin noch neu hier , allerdings gibt es hier immer wieder was 
interessantes zu lesen, so dass ich mich mal gerne an Euch in obiger 
Angelegenheit wende.
Ich befasse mich quasi ehrenamtlich mit der Sicherung/Erhaltung von 
alter Computer/Storage Technolgie( 1970-1980). Mehr dazu auf meiner 
Homepage www.pdp11gy.com . Derzeit arbeite ich an einem DEC-RL02 
Simulator.
Angefangen habe ich mit ARM-7 und Altera-MAXII , bin aber nun auf 
CyclonII mit DE1 Board und habe somit nun auch Memory für FIFO's usw. 
Ich kann zwar MFM Signale decoden, aber nur wenn die Clock ( 4.1 Mhz ) 
vorhanden ist. Beim Encoden muß ich dann allerdings das komplette 
Disk-Track/Sector Layout inklusive CRC nachbilden. Einfacher wäre es , 
wenn ich einen, bzw zwei komplette Tracks einlesen könnte ( 22400 Byte 
). Allerdins ist beim Lesen eines Tracks die Clock weg und ich müsste 
aus den MFM Daten die clock gewinnen. Hab mich mal umgeschaut beim 
Manchester Deoden, aber leider ist dieses Format ganz anders.( Siehe 
Anhang )
Meine Frage: Hat jemand Erfahrung und eventuell einen Tipp, wie ich die
Clock aus dem MFM Signal bekomme. Mit einen PLL sollte es doch möglich
sein, aber die FPGA-PLL's arbeiten wohl anders oder ich bin schon zu 
alt, um das noch zu verstehen ? ( Siehe Homepage , kapitel 1.6 )
Für jeden Hinweis bin ich SEHR dankbar.
Viele Grüsse, Reinhard

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Du wirst in einem FPGA einen grundsätzlich anderen Ansatz wählen müssen:
Du nimmst eine relativ hohe Taktfrequenz (der Einfachheit halber hier 
z.B. mal 41MHz) und machst damit einen Zähler. Und jetzt lässt du den 
Zähler laufen. Jedesmal bei einer steigenden Flanke der MFM-Daten siehst 
du nach, ob der Zähler jetzt z.B. zwischen 9 und 11  (kurze Pause) oder 
zwischen 18 und 22 (lange Pause) oder gar zwischen 27 und 33 (sehr lange 
Pause) angekommen ist. Daraus kannst du dann nach passender 
Synchronisierung deine Daten herleiten.
Anschliessend wird der Zähler wieder auf 0 gesetzt und das Spiel beginnt 
von vorn...

von Reinhard H. (Firma: PRIVAT) (pdp11gy)


Angehängte Dateien:

Lesenswert?

Vielen Dank für den interessanten Hinweis.
Bin wohl in eine Sackgasse geraten, denn ich wollte das Decoding von 
1980
quasi 1:1 übernehmen wie im Anhang dargestellt.
Habe zwar schon mal von dieser Methode gelesen, aber nicht so ganz
realisiert und wahrgenommen. Vielleicht gibt es ein Referenz Design wie
man so etwas umsetzt. Grüsse, Reinhard

von Falk B. (falk)


Lesenswert?

@  Reinhard Heuberger (Firma: PRIVAT) (pdp11gy)

>realisiert und wahrgenommen. Vielleicht gibt es ein Referenz Design wie
>man so etwas umsetzt. Grüsse, Reinhard

Als Ansatz kann man die Takt- und Datenrückgewinnung, neudeutsch CDR, 
Clock & Data Revovery, von USB Full Speed anschauen. Dort wird mit 48 
MHz der 12 Mbit/s Datenstrom abgetastet und zurückgewonnen. Funktioniert 
sogar, hab ich vor Jahren mal mit rumgespielt. ;-)

www.usb.org/developers/whitepapers/siewp.pdf

MfG
Falk

von Reinhard (Gast)


Lesenswert?

Hallo Falk,

danke für die Info und den Link. Im Augenblick habe ich noch nicht so 
ganz
den Durchblick, besonders das Thema DPLL.  Gibt es dafür vielleicht ein
Schaltungs-Beispiel dazu? Ansonsten denke ich mal, ich muß doch den
Vorschlag von Lothar annehmen. Viele Grüsse, Reinhard

von Falk B. (falk)


Lesenswert?

Lothar Vorschlag ist eine DPLL, Digitale Phase Locke Loop, Und im dem 
Link ist praktisch eine beschrieben.

MfG
Falk

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

So eine Aufsynchronisierung habe ich z.B. auch für das 
Manchester-Codierte RC-5 Signal verwendet:
http://www.lothar-miller.de/s9y/categories/50-RC-5

von Reinhard H. (Firma: PRIVAT) (pdp11gy)


Lesenswert?

Vielen Dank für alle Infos.
Die Seite von lothar ist ja echt sehr interessant.
Mal sehen, wie ich das hinbekomme. Manchester code
ist einfacher, denn es gibt kein phase-shifting, aber
die Beispiele helfen mir bestimmt weiter.
Also, herzlichen Dank nochmals an Alle, Reinhard

von Lattice User (Gast)


Lesenswert?

Reinhard Heuberger schrieb:
> Ich befasse mich quasi ehrenamtlich mit der Sicherung/Erhaltung von
> alter Computer/Storage Technolgie( 1970-1980). Mehr dazu auf meiner
> Homepage www.pdp11gy.com . Derzeit arbeite ich an einem DEC-RL02
> Simulator.

Schon mal mit dem Gedanken gespielt eine PDP11 im FPGA zu realisieren, 
macht bestimmt Spass.

von Reinhard H. (Firma: PRIVAT) (pdp11gy)


Lesenswert?

>
> Schon mal mit dem Gedanken gespielt eine PDP11 im FPGA zu realisieren,
> macht bestimmt Spass.

Tja, nachgedacht schon, allerdings noch sehr weit weg für mich und vor
allem ein Zeitproblem, denn ich mach alles in meiner Freizeit.
Möglich sollte es schon sein , wenn man z.B. die Sourcen vom NIOSII
Processor hätte, welchen ich nun anstelle des ARM-7 einsetze.
Soll ja auch ein Projekt geben, wo ein Motorolla MC68000 und ein
Atari in einen Altera ( CyclonII?) FPGA läuft.
Mehr Freieit bräuchte ich ...

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.