Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » MFM-Festplatte emulieren » Themenansicht

Autor Thread - Seiten: -1-
000
10.05.2012, 11:58 Uhr
Patrick S.

Avatar von Patrick S.

Hallo zusammen,

ich würde gerne mal mit euch Ideen sammeln, ob und wie es möglich wäre, MFM-Festplatten durch eine SD-Karte zu ersetzen.

Ich habe im Netz nur Diskussionen dazu gefunden und würde mich gerne mal mit euch hier zu dem Thema austauschen.

Die Fakten sind mir zum Teil bekannt, die Platten sind quasi nur dumme mechnik
und die Schnittstelle wohl nur Informationen zu Flusswechseln (Umkehrung der Magnetisierung).

Die Umdrehungszahl mit 3600 Umdrehungen pro Minute ist bekannt,
jedoch würde ich gerne noch ein paar andere Fakten und Daten sammeln.
--
"Das gute an Standards ist, dass es so viele davon gibt."
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
10.05.2012, 16:48 Uhr
holm

Avatar von holm

Suche mal nach der Doku zur ST506, diese definiert den Standard.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
11.05.2012, 18:30 Uhr
Patrick S.

Avatar von Patrick S.

Vielen Dank, die hatte ich schon einmal im Blick und lese sie mir gerade durch.

So wie ich das verstanden habe, ist die Geometrie nicht festgelegt.
Das wirft bei mir die Frage auf: Wann weiß das Laufwerk bzw. der Controller,
dass der Kopf am Ende angekommen ist?

Weiterhin habe ich ein Problem folgendes zu verstehen:
"The transition of +MFM WRITE DATA line going down more positive than the
-MFM WRITE DATA will cause a flux reversal..."

Was ist mit "going down more positive" gemeint?
Die Pegel sind doch ebenfalls in dem Dokument beschrieben.
und da gibt es doch nur high oder low.

Gruß Patrick
--
"Das gute an Standards ist, dass es so viele davon gibt."
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
12.05.2012, 11:00 Uhr
MichaRa




Zitat:
Patrick S. schrieb

So wie ich das verstanden habe, ist die Geometrie nicht festgelegt.
Das wirft bei mir die Frage auf: Wann weiß das Laufwerk bzw. der Controller,
dass der Kopf am Ende angekommen ist?


Gruß Patrick

Die Geometrie des Laufwerks hat man immer dem Kontroller mitgeteilt.

Micha

Dieser Beitrag wurde am 12.05.2012 um 11:00 Uhr von MichaRa editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
12.05.2012, 11:36 Uhr
Rüdiger
Administrator



Zitat:
MichaRa schrieb
Die Geometrie des Laufwerks hat man immer dem Kontroller mitgeteilt.

Außer beim A7150. Der war so fortschrittlich, die auf Spur 0 hinterlegte Plattengeometrie zu lesen.
--
Kernel panic: Out of swap space.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
12.05.2012, 11:39 Uhr
Tom Nachdenk




Zitat:
Patrick S. schrieb
Weiterhin habe ich ein Problem folgendes zu verstehen:
"The transition of +MFM WRITE DATA line going down more positive than the
-MFM WRITE DATA will cause a flux reversal..."

Was ist mit "going down more positive" gemeint?
Die Pegel sind doch ebenfalls in dem Dokument beschrieben.
und da gibt es doch nur high oder low.

Ich würde das so interpretieren das es sich um eine differentielle Datenübertragung handelt und die Schaltschwelle nicht mit einem bestimmten Pegel sondern eben in der Relation der beiden Leitungen definiert ist.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
12.05.2012, 12:13 Uhr
Patrick S.

Avatar von Patrick S.

Ok, dass es eine differentielle Datenübertragung ist, ist eindeutig und wird auch hervorgehoben.
Aber es liest sich schon etwas krude, was ich da etwas knapp zitiert habe, oder?

Beim Low-Level-Format der MFM-Festplatte in meinem Kontron Logikanalysator, wird jedoch nicht nach der Geometrie gefragt, das irritiert mich etwas.
Soweit ich weiß, gab es 2 Ausstattungsvarianten, was die Größe der Festplatte betrifft.
--
"Das gute an Standards ist, dass es so viele davon gibt."

Dieser Beitrag wurde am 12.05.2012 um 12:15 Uhr von Patrick S. editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
12.05.2012, 14:15 Uhr
holm

Avatar von holm

Beim XT war es üblich Plattengeometrien mit DIL Schaltern oder Jumpern einzustellen.
Durchaus möglich das das Dein Kontron auch so macht.

Es existiert kein Mechanismus beim ST506 Interface der dem Controller über irgend eine Schnittstelle mitteilen könnte was die Platte für eine Physiche Geometrie hat oder was Sie sich für Sektorgrößen und Anzahlen wünscht. <basta>

Das Ding ist als was es erscheint, eine Drivemechanik mit Schreib/Leseverstärker, mehr nicht.
Anzahl der Sektoren, Lückenlängen oder Modulationsart sind Sache des Controllers.
Die meisten PCs haben 17 Sektoren MFM formatiert, die P8000 18. Kürzere Gap Lengths machen das möglich. Die meisten PC Controller benutzen zur Datensicherung ECC, die P8000 CRC.
Die Flußwechsel die Du da beim Schreiben drauf spuckst kommen auch wieder runter mit mehr oder weniger Jitter. Was Du damit machst ist Dein Bier.
MFM Platten sind von der Rechnerseite her halbwegs kompatibel (Registerebene), Niemand hat allerdings je garantiert das die Platten zwischen PC Controllern verschiedener Hersteller austauschbar sind.

Dieser ganze Käse war hier übrigens schon mehrfach zu lesen.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
12.05.2012, 15:00 Uhr
Patrick S.

Avatar von Patrick S.

Wie freundlich Du dich doch ausdrückst...

Wie ich bereits schrieb, habe ich das Thema eröffnet um mich auszutauschen und Ideen zu sammeln.

Ich kann auch einfach den Kram und meine Ideen die mir dazu langsam kommen für mich behalten, etwas entwickeln und hinterher fertige Platinen auf Ebay anbieten.
Da hat dann keiner was von.
Der Vorteil, wenn man sich austauscht, ist jedoch, dass andere die Sache nachvollziehen können und im Falle einer zufriedenstellenden Lösung das ganze selbst nachbauen können.
--
"Das gute an Standards ist, dass es so viele davon gibt."

Dieser Beitrag wurde am 12.05.2012 um 15:05 Uhr von Patrick S. editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
12.05.2012, 15:58 Uhr
Enrico
Default Group and Edit


Holm meinte damit auch "such mal im Forum danach".
Das hatten wir schon ein paar mal. Ich schrieb dazu auch schon mal was.

Es hilft ja auch nicht viel, wenn man immer mal was dazu schreibt, letztendlich
x-mal das selbe.
--
MFG
Enrico

Dieser Beitrag wurde am 12.05.2012 um 16:00 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
12.05.2012, 16:14 Uhr
holm

Avatar von holm

Patrick ich bekomme jetzt regelrecht Angst das Du Deine Ideen für Dich behalten könntest, möglicherweise entgeht mir die Erfindung des warmen Wassers.

Manno. Enrico hat Recht, man muß auch mal selbständig etwas erarbeiten können. Lies die Spezifikation, lies den ganzen P8000 WDC Thread und frage dann bitte das, was Du noch wissen möchtest. Um Gotteswillen aber stelle nicht das was hier schon zu lesen steht als erneute Frage. Ständige Wiederholung nervt.

Von meinem Wissen gebe ich gerne ab, allerdings nur so lange, wenn das der Gegenüber auch macht. Entwickle Deine Ideen mit unserer Hilfe weiter und verkaufe Sie bei Ebay, dann wird sich schon eine Möglichkeit ergeben Dir einen Stahlträger zwischen die Beine zu werfen.
Denkst Du wir kommen alle auf der Wurschtsuppe daher geschwommen?
Soo nu is gut, nun komme wieder runter.

Es lohnt auch sich bei der Gelegenheit anzusehen was das ESDI Interface als Nachfolger
von ST506 gemacht hat.
Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 12.05.2012 um 16:15 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
12.05.2012, 17:11 Uhr
Patrick S.

Avatar von Patrick S.

Ich habe gesucht und zum Schlüsselbegriff MFM wenig gefunden.
Auch außerhalb dieses Forums habe ich mich damit befasst.

Der Punkt ist, im Netz und in PDF-Dokumenten steht eben NICHT immer alles, was man benötigt. Das zeigt auch meine spezifische Frage zur Formulierung in dem Dokument.

Den Stahlträger nehme ich persönlich und denke mir meinen Teil dazu.
Meine Andeutung spielte eher darauf an, andere überhaupt nicht erst zu dem Thema zu befragen.

Ich denke mir nicht, dass ihr "auf der Wurschtsuppe daher geschwommen" kommt, sondern habe reichlich Respekt vor dem hier konzentrierten Wissen.

Ich lasse mir jedoch SEHR ungern etwas unfreundlich vor den Latz knallen, weil ich vielleicht neu im Forum bin, wenn zudem mein Kenntnisstand unbekannt ist.

Nun wieder zu etwas konstruktivem.
Was viele besprochen haben, ist die Formatierung der SD-Karte,
um sie am PC lesen zu können.
Meine Gedanken gehen jedoch eher in die Richtung , dies zu verwerfen.
Ich kann die Platte, die hier in einem alten Pc stirbt, auch nicht an einen aktuellen Pc hängen und was lesen oder darauf schreiben, solange ich nicht auf magische Weise den Controller mit in den neuen Pc setze.

Ich habe überlegt, ob es nicht eher möglich ist, das rotierende Medium zu emulieren, anstatt von FAT32 zu lesen und dann auf die Schnittstelle des Controllers zu übersetzen. Letzteres beinhaltet gleich 2 Aufgaben die ein Mikrocontroller erledigen muss.
Beim ersten Ansatz käme es zwar auch auf Geschwindigkeit an, aber soweit ich weiß, kann ohne jegliche Formate relativ schnell auf einer SD-Karte herum rutschen.
Das übersetzen zwischen Controller und erneutes Übersetzen auf FAT32 könnte somit entfallen.
--
"Das gute an Standards ist, dass es so viele davon gibt."
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
12.05.2012, 17:31 Uhr
holm

Avatar von holm

Den Stahlträger kannst Du ruhig persönlich nehmen, wenn Du hier Leute ausfragst und das Produkt dann handeln willst. So macht man sich sehr enge Freunde fürs Leben.
Ich sage nochmal und jetzt so: Trage hier überhaupt erst einmal irgend etwas bei ehe Du damit drohst Deine Ergebnisse für Dich zu behalten oder kommerziell zu verwerten. Got it now?

Um eine MFM Platte zu emulieren muß man den Datenstrom den der Controller schickt in Echtzeit analysieren, die relevanten Daten extrahieren und auf das vorgesehene Medium ablegen können. Für dieses Vorhaben benötigt man einen Datenseparator der den Datenstrom zerlegt. Wie viel davon in reiner Software und wie viel in Hardware möglich/notwendig ist, entscheidet hier wirklich die Verarbeitungsleistung der eingesetzten MCU (ich nehme nicht an, das Du das ausschließlich in Hardware gießen willst).

Wie man das macht, kann man sich im Endeffekt auf jedem MFM Controller ansehen, denn dieser enthält Alles um seinen eigenen Datenstrom lesen zu können, das Ding ist ja schließlich bidirektional. Es läuft also darauf hinaus, 2 MFM Disk Controller über Kreuz zu koppeln. (Den billigen Firlefanz auf Stepper Signale zu reagiern oder die Kopfumschaltung zu bewerkstelligen betrachte ich hier mal nicht, das ist Pillepalle im Vergleich zum Rest)

Das Problem an der ganzen Sache ist, das Du wirklich in Echtzeit auf die Signale des "richtigen" Controllers reagieren mußt und Du mußt eine ganze Datenspur repetierend in der richtigen Geschwindigkeit und Zusammensetzung zur Verfügung stellen können.
Da aber die Diskformate wie schon angedeutet erheblich differieren können, baust Du einen Emulator für exakt einen Controllertyp. Ein Universeller Emulator entsteht so nicht, es sei denn, Du digitalisierst die gesamte Spurinformation mit und legst diese ab, es könnte nur sein, das dann derart viel Overhead entsteht das Du viele SD Karten brauchst um eine 5MB Platte zu emluieren.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
12.05.2012, 17:41 Uhr
Enrico
Default Group and Edit



Zitat:
holm schrieb
Es lohnt auch sich bei der Gelegenheit anzusehen was das ESDI Interface als Nachfolger
von ST506 gemacht hat.
Gruß,

Holm

Nicht wirklich. ESDI hat zwar die Stecker von MFM/RLL geerbt, kodiert aber mit NRZI.
MFM/RLL-Interface passt funktional zu einem Floppy-Controller.

Im direkten Vergleich der Dokus ist ESDI der funktionale Nachfolger von SMD.
Dazwischen gabs auch nochmal SDI:
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
12.05.2012, 17:46 Uhr
Enrico
Default Group and Edit



Zitat:
Patrick S. schrieb
Ich habe gesucht und zum Schlüsselbegriff MFM wenig gefunden.
Auch außerhalb dieses Forums habe ich mich damit befasst.

Der Punkt ist, im Netz und in PDF-Dokumenten steht eben NICHT immer alles, was man benötigt. Das zeigt auch meine spezifische Frage zur Formulierung in dem Dokument.

http://en.wikipedia.org/wiki/ST-506

http://www.binarydevotion.com/?p=6

http://wiki.classic-computing.de/index.php/ST506-HowTo

etc....

Und hier der fertige Plattenemulator für "lau":

http://www.storagenewsletter.com/news/disk/emulator-hdd-with-the-old-st506-interface-datex

alles schon gehabt.
--
MFG
Enrico

Dieser Beitrag wurde am 12.05.2012 um 17:48 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
12.05.2012, 17:55 Uhr
Patrick S.

Avatar von Patrick S.

Ich drohe nicht.
Zuvor hatte ich überlegt es im Alleingang zu versuchen. Das wäre dann alles auf meinen Mist gewachsen, ohne Forum.

Holm, mir liegt mehr am Frieden mit Dir und den anderen, als es den Anschein haben mag. Dieser fehlende Eindruck ist dem Medium (Text / Internet) zuzuschreiben.

Du hast es auf den Punkt gebracht, die Signale für den Motor, die Auswahl des Kopfes und ob man Lesen bzw. Schreiben will, ist Kleinkram.
Das Timing wird zum Problem, wenn es darum geht die Daten zu liefern.

Meine Gedanken gingen in der Tat in die Richtung, die gesamte Spurinformation digital abzubilden.
Warum also nicht eine Karte mit 32GB Kapazität nutzen,
um meinetwegen 20 - 200MB abzubilden.

Es geht nicht um die Verhältnismäßigkeit, sondern einfach nur darum, nicht ständig mit alten Festplatten zu ringen oder zu schauen, ob man noch eine auftreiben kann, die in einem Jahr auch den Geist aufgibt.

Ich werde das die Tage eventuell mal durchrechnen und schauen, ob es realisierbar ist.

Übrigens, ich habe weder studiert noch so ein fundiertes Hintergrundwissen
wie manch anderer hier. Zwar habe ich eine Ausbildung zum Fachinformatiker,
jedoch stelle ich deren Wert selbst in Frage.
Zuletzt habe ich Ideen.
--
"Das gute an Standards ist, dass es so viele davon gibt."
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
016
12.05.2012, 20:33 Uhr
Alex-70



OT: Das hier ist wieder ein typischer "Forum-Effekt". Beobachte ich schon, solange es Foren gibt. Vollkommen Themenunabhängig.
Wurde das schon mal tiefenpsychologisch untersucht? Wäre mal ne Doktorarbeit drin...
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
017
12.05.2012, 21:09 Uhr
Mobby5



Ich melde vorab schon mal unverbindlich Interesse an 6 Bausätzen/Platinen an.
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
018
12.05.2012, 21:14 Uhr
holm

Avatar von holm

Diese ganze NAND Flash Technik ist in Ihrer letzten Entwicklungsform (mehrere Bits/Zelle durch unterschiedliche Level) auch nicht mehr das, was endlose Zuverlässigkeit verspricht.
Ich habe erst kürzlich (AFAIK bei classiccmp.org) wieder darüber gelesen.

Wenn Du die Information als "Audiostream" aufzeichnest stolperst Du früher oder später über das Nyquist Theorem, um 5Mhz aufzeichnen und wieder abspielen zu können brauchst Du die doppelte Samplerate, wenn die Kurvenform auch noch restauriert werden soll vervielfacht sich das abhängig von der zu restaurierenden Grenzfrequenz. Die ganze Sache "eplodiert" aufwandsmäßig ziemlich schnell...

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
019
12.05.2012, 21:29 Uhr
Micha

Avatar von Micha

@Alex-70: 'türlich wär ne Doktorarbeit in nem Laber-Fach drin, Soziologie etc., klar. Die würde allerdings niemandem wirklich weiterhelfen, höchstens dem Urheber einen lahmen Doktortitel verschaffen.

Wie man wirklich MFM zwischen
Aussenseite und Innenseite der Box nachbilden sollte ist offenbar ein sehr anspruchsvolles Thema. Wenn man auf dem Level "digitales Aufzeichnen analoger Informationen aus ursprünglich digitalen Signalen ansetzt" hat man meiner Meinung nach was falsch gemacht. Das fühlt sich einfach nicht richtig an. Muss aber gestehen dass ich mich mit dem Thema bisher noch nicht so intensiv beschäftigt habe. Interessant ist es aber allemal.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
020
12.05.2012, 21:44 Uhr
Alex-70



Wäre mal ne Idee für ein neues Schulfach (für uns ist es eh zu spät

"Das Führen formal-sachlicher Diskussionen in der Ausprägungsform "Internet-Forum", fehlertolerant ausgeführt in der Praxis" oder so...
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
021
12.05.2012, 23:24 Uhr
Mobby5



Steht also erstmal die Frage: "Wie hoch sind die Lese-Schreibfrequenzen bei den DDR-Rechnern?"
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
022
13.05.2012, 01:12 Uhr
Enrico
Default Group and Edit



Zitat:
Mobby5 schrieb
Steht also erstmal die Frage: "Wie hoch sind die Lese-Schreibfrequenzen bei den DDR-Rechnern?"

Deine Frage ist falsch.
Die PLL hat bei MFM i.d.R. 5 MHz. Die Freqeunz ändert sich ständig, da die
Kodierung MFM ist.

Mal als Bsp.:


--
MFG
Enrico

Dieser Beitrag wurde am 13.05.2012 um 01:20 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
023
13.05.2012, 01:41 Uhr
Rüdiger
Administrator


Helft mir mal bitte zu verstehen, wo genau das Problem liegt.

Die Kopf-Positionierleitungen zur Bildung einer Offset-Adresse auf der Speicherkarte benutzen.

Versuchen wir zu Formatieren:
Der Takt wird leider bei ST506 vom HDC nicht mitgeliefert, den müsste man per Quarz und PLL aus den Daten gewinnen. Das wurde auch auf den originalen HDCs gemacht (Mansfeld hatte da eine Lösung mit einer 8-stufigen Verzögerungsleitung), sollte also technisch beherrschbar sein.
In jeder Taktzelle hat die Datenleitung nur 1 Zustand, bei Taktwechsel ändert sich je nach Bitmuster der Pegel oder eben nicht.
Den gewonnenen Takt über einen Zähler zum Hochadressieren der Karte benutzen und den Inhalt der Datenzelle als jeweils 1 Bit fortlaufend auf die Speicherkarte schreiben.
Bei Erreichen des Endes der "Datenspur" muss der Adresszähler auf den Anfangswert zurückspringen.

Versuchen wir zu lesen:
Per Quarz und Zähler die Speicherkarte hochadressieren. Das zu jeder Adresse gelesenen Bit stellt den jeweiligen Zelleninhalt dar.
Den Zelleninhalt blind auf den originalen HDC (als Differenzsignal) schicken, der HDC gewinnt seinen Takt ja eh selbst und macht auch das Herausfiltern des gewünschten Sektors und das Bewerten der CRCs selbst.
Bei Erreichen des Endes der "Datenspur" muss der Adresszähler auf den "Spuranfang" zurückspringen.

Sektorweises Schreiben:
(Hier bin ich mir nicht sicher, wie das der Original-HDC macht. Ich vermute, er liest so lange in der Spur, bis er die Sektorkennung des gewünschten Sektors empfangen hat und schaltet dann innerhalb einer Anzahl Startbits die Schreibleitung ein.)
Lesen wie gehabt. Wenn die Schreibleitung aktiviert wird, auf den aus den Sendedaten rückgewonnenen Takt umschalten und Bit für Bit schreiben, bis die Sendeleitung wieder aus ist, was genau in einer der Sektorlücken der Fall sein wird.


Bliebe die Frage, wie groß die Datenmenge (also inkusive Sektorzwischenräumen, Startbits, CRC,...) ist.
Die K5504.50 hat im Rohzustand 50 MByte Daten. Verteilt auf 1024 Spuren und 5 Köpfe sind das 10 KByte Nutzdaten pro Umdrehung.
Die Anzahl der Flusswechsel liegt bei MFM in der Größenordnung der Anzahl der Datenbits.
Jeder Flusswechsel würde 1 Bit Platz auf der Speicherkarte belegen.

Für die Speicherkarte selbst sollten 4 MBit/s kein Problem sein.
Dass die Speicherkarte dann an anderen Rechnerarten nicht sinnvoll lesbar ist, ist mit klar, aber das muss sie ja auch nicht.

Arbeiten Speicherkarten Bitweise oder Byteweise? Falls letzteres, die Daten in einem Schiebregister parallelisieren.

Falls die Speicherkarten zu häufiges Schreiben/Lesen nicht mögen, könnte ich mir auch eine Lösung auf Basis von RAM + Stützbatterie vorstellen.

Daten analysieren/separieren/zwischenspeichern/prüfen muss man bei meinem Konzept nicht.

Habe ich irgendwo einen Denkfehler?
--
Kernel panic: Out of swap space.

Dieser Beitrag wurde am 13.05.2012 um 11:58 Uhr von Rüdiger editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
024
13.05.2012, 12:25 Uhr
Enrico
Default Group and Edit



Zitat:
Rüdiger schrieb
Habe ich irgendwo einen Denkfehler?

Ja, einige.
Ich wollte den ganzen Kram eigentlich nicht nochmal schreiben.

Bei MFM ist der Takt schon mit eingebettet. Je nach Lage der Impulse, Anzahl
sind das L-Bits, H-Bits oder Takt. (oder so ähnlich)

Wichtig sind die zeitlichen Abstände und Längen der Impulse. Das ist bei jedem Controller anders.
Dazu kommt auch noch die Präkompensation. Da verschieben sich die Impulse um ein paar ns.

Ca. 10 kb an Daten pro Spur dürfte schon hinkommen. Das sind aber die Daten als solches. Wieviele Flusswechsel dabei auf der Platte landen, kann man aber gar nicht so genau sagen. Auf alle Fälle sind das mehr als die Bits in der Summe, da das ja immer umcodiert werden muss.

Z.B. man will ein Byte 00h auf die Platte packen. Das kann man nicht einfach so bitseriell zur Platte schicken, da sich Magnetfelder mit mit Änderung des Stromflusses ändern.

Eine Analyse von irgendwelchen Daten wäre auch nicht möglich, da das auch Abhängig vom Controller ist. Weit davor, also ganz unten sind die FW-Impulse, welche auch vom Controller abhänging sind.

Einziger gangbarer Weg MFM/RLL-Platten zu emulieren, ist es den Datenstrom zu sampeln. In dem Fall allerdings andersherum, als das bei Audio der Fall wäre.

Die Pegel sind definiert, man muss die zeitlichen Abstände der Pegel zueinander aufzeichen. Sicherlich mit Schieberegister, die mit schätzungsweise 100-200 MHz getaktet werden müssen. (siehe oben, Impuls von 50ns). Das lagert man dann auf einem schnelle Cache-RAM, welcher die ganze Spur beinhaltet. Später kann das dann auf Platte geschrieben werden.
Ohne FPGA o.ä. dürfte da nichts zu machen sein.

Das müsste aber alles erst noch erforscht werden.

Das kannst Du also nicht einfach mal eben so auf eine SD-karte oder Platte speichern. Es müssen ja die Längen der Impulse stimmen.
--
MFG
Enrico

Dieser Beitrag wurde am 13.05.2012 um 12:31 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
025
13.05.2012, 13:22 Uhr
tp




Zitat:
Enrico schrieb
Das kannst Du also nicht einfach mal eben so auf eine SD-karte oder Platte speichern. Es müssen ja die Längen der Impulse stimmen.

Warum nicht? Das ist genau das was ein Logik Analysator macht. Man kann dann nur eben nicht auf die SD Karte gucken und die Nutzdaten verstehen, da es nur die Signalverläufe sind.

Bei >=100MHz baut man das natürlich trotzdem nicht mal eben schnell, evtl. passendes FPGA Board gibt's immerhin günstig: Open Bench Logic Sniffer.
--
Die Zeit ist auch nicht mehr, was sie mal war! (Albert Einstein)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
026
13.05.2012, 13:39 Uhr
Enrico
Default Group and Edit


Der LA kopiert die Daten so wie sie kommen aber auch nicht auf auf die Karte drauf. Das kommt da als irgendeine Art von Datei drauf.
Wie solll denn Impuls mit 50 ns Länge oder noch weniger auf die Karte kopiert werden?
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
027
13.05.2012, 13:46 Uhr
Rüdiger
Administrator



Zitat:
Enrico schrieb
Bei MFM ist der Takt schon mit eingebettet. Je nach Lage der Impulse, Anzahl
sind das L-Bits, H-Bits oder Takt. (oder so ähnlich)

OK. Zum Adress-Hochzählen muss man den Takt dann zumindest extrahieren. Dann eben ohne PLL, was die Sache einfacher machen sollte.


Zitat:
Wichtig sind die zeitlichen Abstände und Längen der Impulse. Das ist bei jedem Controller anders.

Die Verstärker auf den Platten haben sicher ein ähnliches Impulsverhalten, sonst könnte man unterschiedliche Plattentypen ja nicht im selben Rechner verbauen.
In der Impulslänge selbst steckt keine Information, das kann also ein Festwert sein, der in der Größenordnung 1/4 des Taktes liegt.


Zitat:
Dazu kommt auch noch die Präkompensation. Da verschieben sich die Impulse um ein paar ns.

Wenn der Takt beim Schreiben aus den Daten extrahiert wird, ist das Schreiben erstmal unkritisch: 1 Flusswechsel = 1 Taktzelle = 1 Kartenbit.
Die Präkompensation dient doch bei der echten Platte dazu, der prinzipgebundenen Verschiebung der Daten beim Lesen entgegenzuwirken. Was also bedeutet, dass die Daten nach dem Lesen immer in halbwegs gleichem Raster am HDC ankommen sollten.


Zitat:
Wieviele Flusswechsel dabei auf der Platte landen, kann man aber gar nicht so genau sagen.

Mit Rücksicht auf eine gute Auslastung der Plattenkapazität wird man den Overhead so klein wie möglich gemacht haben.
Bei FM ist es 1 Flusswechsel pro Bit.
Bei den Disketten ergibt MFM eine doppelte Kapazität gegenüber FM bei gleichem Medium. Würde bedeuten, dass man da weniger Flusswechsel pro Bit braucht.


Zitat:
Eine Analyse von irgendwelchen Daten wäre auch nicht möglich, da das auch Abhängig vom Controller ist.

Das ist mir klar.


Zitat:
Einziger gangbarer Weg MFM/RLL-Platten zu emulieren, ist es den Datenstrom zu sampeln. In dem Fall allerdings andersherum, als das bei Audio der Fall wäre.

Das sehe ich als technisch schwer umsetzbar an, sehe aber keine Notwendigkeit, das zu tun.
Ein paar Byte Sendedaten auf einem schnellen Speicheroszi abbilden und schauen, ob die Bitfolge auf der Speicherkarte dieselbe ist, sollte doch reichen, oder?


Zitat:
Die Pegel sind definiert, man muss die zeitlichen Abstände der Pegel zueinander aufzeichen. Sicherlich mit Schieberegister, die mit schätzungsweise 100-200 MHz getaktet werden müssen.

Der Taktabstand ist doch für jeden Rechner konstant. Damit sollte sich der Speicherkarten-Lesetakt doch durch einstellbaren Festwert bilden lassen.
Wie groß der ist, müsste man aus dem Flusswechselabstand der Schreibdaten messen können.




Zitat:
Es müssen ja die Längen der Impulse stimmen.

Aber die sollten für einen Rechner konstant sein, könnten also auch auf dem Adapter einstellbar realisiert werden.
--
Kernel panic: Out of swap space.

Dieser Beitrag wurde am 13.05.2012 um 13:56 Uhr von Rüdiger editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
028
13.05.2012, 14:12 Uhr
Patrick S.

Avatar von Patrick S.

@holm
Da liegen noch meine größten Sorgen. Ich kann noch nicht abschätzen, ob es überhaupt passen würde.

@tp
Genau, es geht nur um die Signalverläufe.

@Rüdiger
SD-Karten also Flash sind ein Verschleiß behaftetes Medium. Sie verkraften nur eine bestimmte Anzahl Schreibvorgänge pro Speicherzelle.
Selbst wenn eine SD-Karte irgendwann den Geist aufgibt, so kann man sie einfacher ersetzen. Man könnte vielleicht sogar ein Abbild der Karte auf einem anderen Pc ablegen, wenn man sich das Einrichten eines Systems ersparen will, sofern ein Auslesen byte-weise am Pc möglich ist. (wäre hinterher zu testen).
Ob man die Karten Bit für Bit oder Byte für Byte lesen/schreiben kann, versuche ich auch noch heraus zu finden.
Ich meine, der Zugriff erfolgt immer auf Bytes, aber das das gehört zu den Dingen, die ich auch noch versuche herauszufinden.
Bisher habe ich auf eine SD-Karte nur mittels fertiger Routinen zugegriffen.

Irgendwo im Netz war ich auch mal über einen Audio-Recorder/Player gestolpert, der die Audiopegel auch roh auf die Karte geschrieben hat. Es wurden nur 8 Bit gesampelt aber die Samplerate war sehr hoch.
--
"Das gute an Standards ist, dass es so viele davon gibt."
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
029
13.05.2012, 14:48 Uhr
tp




Zitat:
Enrico schrieb
Der LA kopiert die Daten so wie sie kommen aber auch nicht auf auf die Karte drauf. Das kommt da als irgendeine Art von Datei drauf.
Wie solll denn Impuls mit 50 ns Länge oder noch weniger auf die Karte kopiert werden?

Im einfachsten Fall sieht die "Datei" (ob die dann als Datei im FAT Filesystem der SD-Karte gepspeichert wird, oder einfach direkt ohne Filesystem auf der Karte landet ist dabei egal) so aus, dass schlicht die Zeiten zwischen den Flusswechseln gespeichert werden. Im Beispiel, weil sich's so besser schreibt, mal als Text-Format:


Quellcode:
<signal> <zeitdauer in ns>
1        50
0        52
1        500     <- mal angenommen 500ns ist die größte speicherbare Zeitdauer...
1        500     <- ...dann gibt's einfach mehrere Zeilen
1        85
0        77
1        85
0        76

Das Format selber ist nicht wirklich das Problem, die Frage ist eigentlich nur, ob die Zeitmessung zwischen den Flusswechseln genau genug wird, um beim Abspielen den Leser wieder glücklich zu machen. Und außerdem muss die Datenmenge natürlich noch so sein, dass die Datenrate der Karte nicht dauerhauft überschritten wird. Kurzzeitige Spitzen müsste vermutlich sowieso ein zwischengeschalteter RAM abfangen.

@Patrick S.: Soweit ich weiß, erfolgt der Zugriff auf SD-Karten immer nur blockweise, außerdem dürften die meisten verbreiteten Routinen den SPI Mode nutzen. Ob der für die hierfür nötige Geschwindigkeit reicht, keine Ahnung. Gut möglich, dass der SDIO Mode notwendig ist. Siehe http://www.sandisk.com/Assets/File/OEM/Manuals/SD_SDIO_specsv1.pdf
--
Die Zeit ist auch nicht mehr, was sie mal war! (Albert Einstein)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
030
13.05.2012, 15:02 Uhr
Enrico
Default Group and Edit



Zitat:
Rüdiger schrieb

Zitat:
Enrico schrieb
Bei MFM ist der Takt schon mit eingebettet. Je nach Lage der Impulse, Anzahl
sind das L-Bits, H-Bits oder Takt. (oder so ähnlich)

OK. Zum Adress-Hochzählen muss man den Takt dann zumindest extrahieren. Dann eben ohne PLL, was die Sache einfacher machen sollte.

Was für Adressen denn man blos?
Da gibts keine Adressen. Welcher Impuls da nun Takt ist oder Daten kann man auch nicht entscheiden. Das ist alles Abhängig vom Rechner und Controller.




Zitat:

Zitat:
Wichtig sind die zeitlichen Abstände und Längen der Impulse. Das ist bei jedem Controller anders.

Die Verstärker auf den Platten haben sicher ein ähnliches Impulsverhalten, sonst könnte man unterschiedliche Plattentypen ja nicht im selben Rechner verbauen.
In der Impulslänge selbst steckt keine Information, das kann also ein Festwert sein, der in der Größenordnung 1/4 des Taktes liegt.

Ähnlisch schon, aber auch nicht mehr. Das ist Abhänhig von der Magnetesierung. Wenn die Beschichtung zu schelcht oder zu gut ist, ändert sich alles, und es gibt Fehler.
Aber das interessiert ja hier nicht.


Zitat:

Zitat:
Dazu kommt auch noch die Präkompensation. Da verschieben sich die Impulse um ein paar ns.

Wenn der Takt beim Schreiben aus den Daten extrahiert wird, ist das Schreiben erstmal unkritisch: 1 Flusswechsel = 1 Taktzelle = 1 Kartenbit.
Die Präkompensation dient doch bei der echten Platte dazu, der prinzipgebundenen Verschiebung der Daten beim Lesen entgegenzuwirken. Was also bedeutet, dass die Daten nach dem Lesen immer in halbwegs gleichem Raster am HDC ankommen sollten.

Die Rechnung geht nicht auf.
Vorrausgesetzt die Impulse haben die gleiche Breite, ist es bei den L-Pegeln nicht der Fall.
Die Präcomp sollte man schon berücksichten, da nichts über den MFM-Controller als bekannt angesehen werden kann.

z.B. steht bei Wikipedia es etwas anders da:
http://de.wikipedia.org/wiki/Modified_Frequency_Modulation

Kan sein, dass sich das unter 022 auf die Schreib/lese Köpfe der Platte bzeiht und nicht auf die Datenleitungen der Schnittstelle.

WZBW.



Zitat:

Zitat:
Einziger gangbarer Weg MFM/RLL-Platten zu emulieren, ist es den Datenstrom zu sampeln. In dem Fall allerdings andersherum, als das bei Audio der Fall wäre.

Das sehe ich als technisch schwer umsetzbar an, sehe aber keine Notwendigkeit, das zu tun.
Ein paar Byte Sendedaten auf einem schnellen Speicheroszi abbilden und schauen, ob die Bitfolge auf der Speicherkarte dieselbe ist, sollte doch reichen, oder?

Wie willst Du das Vergleichen?




Zitat:

Zitat:
Die Pegel sind definiert, man muss die zeitlichen Abstände der Pegel zueinander aufzeichen. Sicherlich mit Schieberegister, die mit schätzungsweise 100-200 MHz getaktet werden müssen.

Der Taktabstand ist doch für jeden Rechner konstant. Damit sollte sich der Speicherkarten-Lesetakt doch durch einstellbaren Festwert bilden lassen.
Wie groß der ist, müsste man aus dem Flusswechselabstand der Schreibdaten messen können.

Woher willst Du das wissen?
Das ist nicht gesagt. Bei der P8000 ist die PLL etewas höher.
Der K8915-Controller und der vom A7150 haben zwar den gleichen Plattencontroller, aber andere Präcomp.



Zitat:

Zitat:
Es müssen ja die Längen der Impulse stimmen.

Aber die sollten für einen Rechner konstant sein, könnten also auch auf dem Adapter einstellbar realisiert werden.

Mit einem Poti würde ich da nichts einstellen müssen.
Das ist ein ewiges Gebastel und auf bestimmte Controller beschränkt.
Nachvollziehbar ist es auch nicht mehr, und austauchbar sicherlich genau so wenig.
--
MFG
Enrico

Dieser Beitrag wurde am 13.05.2012 um 15:20 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
031
13.05.2012, 15:08 Uhr
Enrico
Default Group and Edit



Zitat:
tp schrieb

Zitat:
Enrico schrieb
Der LA kopiert die Daten so wie sie kommen aber auch nicht auf auf die Karte drauf. Das kommt da als irgendeine Art von Datei drauf.
Wie solll denn Impuls mit 50 ns Länge oder noch weniger auf die Karte kopiert werden?

Im einfachsten Fall sieht die "Datei" (ob die dann als Datei im FAT Filesystem der SD-Karte gepspeichert wird, oder einfach direkt ohne Filesystem auf der Karte landet ist dabei egal) so aus, dass schlicht die Zeiten zwischen den Flusswechseln gespeichert werden. Im Beispiel, weil sich's so besser schreibt, mal als Text-Format:

Sag ich ja.
Der schreibt auch nicht einen Impuls mit 50ns Länge auf die Karte, sondern "sampelt" das, und packt das Sample auf die Karte.
--
MFG
Enrico

Dieser Beitrag wurde am 13.05.2012 um 15:14 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
032
13.05.2012, 15:40 Uhr
holm

Avatar von holm

http://www.mikrocontroller.net/topic/190913
http://www.vintage-computer.com/vcforum/showthread.php?24420-MFM-decoder-for-RL02-up-and-running-but-sector-header-format-unclear-and

Hier Projekt RL02 lesen:
http://www.pdp11gy.com/indexD.html#file:///E:/homepage/indexD.html
Gruß,
Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 13.05.2012 um 17:20 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek