www.mikrocontroller.net

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


Autor: Reinhard Heuberger (Firma: PRIVAT) (pdp11gy)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Reinhard Heuberger (Firma: PRIVAT) (pdp11gy)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Reinhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk Brunner (falk)
Datum:

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

MfG
Falk

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Reinhard Heuberger (Firma: PRIVAT) (pdp11gy)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lattice User (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Reinhard Heuberger (Firma: PRIVAT) (pdp11gy)
Datum:

Bewertung
0 lesenswert
nicht 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 ...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.