radio fernsehen elektronik 04/89 |
Seit Anfang 1988 werden im VEB Kombinat Robotron die neuen 2 x 80-Spuren-Diskettenlaufwerke K 5601 produziert. Viele Betriebe rüsten zur Typenbereinigung die älteren Bürocomputer, die noch die alten Laufwerke K 5600 enthalten, auf die neuen um. Oft können die alten Laufwerke von interessierten Amateuren billig erworben werden. Im folgenden Beitrag werden die Erfahrungen beschrieben, die beim Anschluß eines K-5600-Laufwerkes an einen U-880-Mikrorechner gewonnen wurden.
Die Diskette, die auch als Floppy Disk bezeichnet
wird, ist das typische Speichermedium
für 8-bit-Personalcomputer, Sie ist billig, leicht austauschbar
und hat mit einer
Kapazität von 120 Kbyte bis 1,4 Mbyte ein ausreichendes
Speichervermögen für die meisten
Anwendungsfälle. Die Aufzeichnung der Daten auf Disketten erfolgt
in konzentrischen
Spuren. Die Spur 0 liegt außen, die Spuren selbst sind in
Sektoren eingeteilt (Bild 1).Jeder Sektor
besteht aus einem Kennzeichnungsfeld und einem Datenfeld,
von denen jedes
mit 15 Synchronbytes beginnt und mit der Prüfsumme CRC endet. Vor
der ersten Benutzung
muß eine fabrikneue Diskette formatiert werden. Dabei werden die
Kennzeichnungs- und
Datenfelder angelegt und die Datenfelder mit dem Byte 0E5H beschrieben.
Bei allen
späteren Schreibzugriffen werden nur noch die Datenfelder
beschrieben.
Zur Auszeichnung wird fast nur noch das MFM-Verfahren verwendet (Bild 2),
das gegenüber dem älteren FM-Verfahren die doppelte
Aufzeichnungsdichte bietet.
Es wurde das Laufwerk vom Typ K 5600.10 verwendet. Tafel 1 sind seine technischen Daten, Tafel 2 die Belegung des 26poligen indirekten Steckverbinders zu entnehmen. Diese Laufwerke können Daten auf einer Seite der Diskette in 40 Spuren aufzeichnen. Sie wurden hauptsächlich in den Bürocomputern A 5120 und A 5130 eingesetzt. Daneben wurde noch der Typ K 5600.20 mit 80 Spuren (einseitig) angewendet. Er hat, wie die Importlaufwerke, einen 34poligen direkten Steckverbinder. Alle einseitigen Laufwerke lassen sich ohne Veränderungen mit der vorgestellten Schaltung verwenden. Bei 80-Spur-Laufwerken muß nur der Disk-Parameter-Header (DPB), der im BIOS-Programm enthalten ist, geändert werden. Zweiseitige Laufwerke erfordern größere Änderungen in Hard- und Software.
Die Verbindung zwischen Rechnerbus und Diskettenlaufwerk bildet die
Anschlußsteuerung.
Ihre Hauptaufgaben bestehen in der Positionierung des Lesekopfes und
der Umwandlung
der seriellen Daten des Laufwerkes in die parallelen Daten des
Rechnerbusses. Mit
der Floppy-Disk-Controller-IS U 8272 steht ein Bauelement zur
Verfügung, das fast
alle diese Funktionen übernimmt [1].
Trotzdem wird noch eine nicht unwesentliche
Außenschaltung benötigt.
Bild 3 zeigt eine einfache Variante.
Busankopplung
Die Ankopplung an den U-880-Bus erfolgt in der üblichen Weise. Der
Bustreiber DS 8286
kann entfallen, wenn nicht mehr als zehn MOS- oder TTL-Bauelemente an
eine Datenleitung
angeschlossen werden. Mit der angegebenen Schaltungsvariante werden die
Adressen 40H
bis 4FH belegt. Auf eine Auswertung von A1 und A2 wurde verzichtet, da
der volle
E-A-Adreßraum des U 880 kaum ausgenutzt wird.
Verbindung mit dem Laufwerk
Das Diskettenlaufwerk benötigt alle Signale in negierter Form. Als
Leitungstreiber
wurde ein Gatter mit offenem Kollektor DL 003 vorgesehen, die
Empfänger sind zur
Leitungsanpassung mit Pull-up-Widerständen versehen worden.
Für die Datenleitungen
RD und WR sind angepaßte Leitungen notwendig (105
Ohm-Flachbandkabel oder verdrillter
Klingeldraht). Bei einer Leitungsführung in einem vieladrigen
Kabelbaum ergab sich eine
deutliche Verschlechterung der Lesesicherheit.
Einige Anschlüsse am U 8272 sind doppelt
belegt. Die Umschaltung erfolgt mit dem Signal /RW/SEEK. Da im
Normalfall nur eine der
beiden Funktionen benötigt wird, kann auf Multiplexer verzichtet
werden.
Laufwerksauswahl
Bei nur einem vorhandenen Laufwerk erübrigt sich eine
Laufwerksauswahl. Das Selektsignal
/SE wird auf Masse gelegt. Für die Motoreinschaltung /MO wurde
eine Verzögerungsschaltung
entworfen. Bei jedem Zugriff des U 880 auf den FDC U 8272 wird C1
entladen und der Motor
eingeschaltet. Wenn eine Sekunde lang kein Diskettenzugriff stattfand,
schaltet sich der
Motor wieder aus. Damit werden Diskette und Laufwerk geschont.
Außerdem verringert sich
die Geräuschbelästigung.
Das Signal zum Andrücken des Lese-Schreibkopfes /HL ist im
Laufwerk mit den Signalen /MO
und /SE verkoppelt (s. Bild 4). Bei stehendem
Motor wird also der Andruckfilz abgehoben,
obwohl /HL auf Masse gelegt wurde. Beim Positionieren bleibt der Kopf
angedrückt
(wie im PC 1715). Zur Schonung der Disketten kann natürlich auch
das /HL-Signal vom
U 8272 verwendet werden.
Takterzeugung
Der Floppy-Disk-Controller U 8272 benötigt einen fast
symmetrischen Takt von 4 MHz.
Dieser läßt sich am einfachsten mit einem 8-MHz- oder
16-MHz-Quarz, aber auch mit einer
frequenzstabilen LC-Schaltung erzeugen.
Der Schreibtakt WRCLK hat eine Breite von etwa 250 ns bei einer
Frequenz von 500 kHz.
Einfacher Datenseparator
Etwas problematischer ist die Gewinnung des Lesetaktes. Eine einfache
und relativ
zuverlässige Lösung aus [2] zeigt Bild 3.
Sie hat den Vorteil, daß keinerlei Abgleich nötig
ist. Bei Disketten, die vom gleichen Laufwerk beschrieben wurden, gibt
es keine Probleme.
Bei fremden Disketten treten etwa ab Spur 30 verstärkt Lesefehler
auf. Die Lösung ist also
bei einem Laufwerk durchaus brauchbar. Das Prinzip besteht darin,
daß die DL 193 bei jedem
Impuls von /RD auf den Zählerstand 4 gesetzt wird (Bild 5). Da die Zählfrequenz nicht
geregelt wird, treten bei Drehzahl- und Frequenzschwankungen leicht
Fehler auf.
Datenseparator mit PLL (Bild 6)
Bei höheren Anforderungen sollte mit einem spannungsgesteuerten
Oszillator VCO und einer
PLL-Schaltung gearbeitet werden (Bild 6). Das
Monoflop D3.1 arbeitet als Oszillator.
Der frequenzbestimmende Kondensator C3 wird über R8 aufgeladen.
Zusätzlich wird über
R7 ein Strom eingespeist, der die Frequenz des Oszillators noch einmal
um ±100 kHz
verändern kann. Die Nadelimpulse von D3.1 werden von D1 in eine
symmetrische Rechteckform
umgewandelt. Die /RD-Impulse vom Laufwerk verlängert D3.2 auf etwa
700 ns. Sie werden
in D2 mit den Impulsen vom Oszillator verglichen. Bei
Phasenverschiebungen entsteht an
N1 eine Spannungsdifferenz, die verstärkt wird und über R7
den Oszillator nachregelt.
Beim Aufbau dieser PLL-Schaltung sollten temperaturstabile Bauelemente
verwendet werden.
Für C1 bis C4 kommen nur Folienkondensatoren in Frage. R1 und R2,
C1 und C2 sowie R3 und
R4 sollten möglichst gepaart sein. Zum Abgleich wird unbedingt ein
digitaler Frequenzmesser
benötigt. Nach dem Aufbau der gesamten PLL-Schaltung wird
zunächst überprüft, ob am Ausgang
von N1 eine Spannung von 2,5 V anliegt, die notfalls mit R5
nachgeregelt wird. Dann wird die
Frequenz des Oszillators mit Dickschichtregler R8 auf 1 MHz
eingestellt. Nun wird an den
/RD-Eingang ein regelbarer Impulsgenerator mit einer Frequenz von 250
kHz angeschlossen,
der z.B, ein weiterer DL-123-Oszillator sein kann. Die Frequenz an D3.1
darf sich dabei
nicht verändern. Mit dem Impulsgenerator wird jetzt der
Frequenzbereich von 200...300 kHz
in beiden Richtungen langsam durchfahren. Spätestens bei 225 kHz
bzw. 275 kHz muß die
PLL-Frequenz einrasten und sich bis zur anderen Grenze mitziehen
lassen. Wenn der
Fangbereich zu klein ist, kann er mit R7 beeinflußt werden. Zum
Schluß wird mit R9 bei
einer Frequenz von 250 kHz der Ausgangsimpuls von D5 in die Mitte der
Impulse an D1.2
eingestellt. Dieser Vorgang muß mit Hilfe eines Oszillografen
kontrolliert werden. Damit
ist der Abgleich abgeschlossen, und das Einlesen echter Daten von der
Diskette kann beginnen.
Wenn das Diskettenlaufwerk arbeitet, können zur weiteren
Optimierung die Werte von R8, R9
sowie R1 und R2 noch einmal vorsichtig verändert werden. Dazu wird
mit dem Programm Power
(Funktion DS) in der Routine BIOS der Wert von VZAHL auf 1 gesetzt. Nun
wird mit der
Funktion Test eine gesamte Diskette gelesen. Das Programm Power am Ende
gibt die Zahl
der aufgetretenen Lesefehler aus, so daß sich optimale Werte
für die Widerstände finden
lassen. Der Impulsverlauf der PLL-Schaltung ist aus Bild
7 ersichtlich.
Während bei der Hardware eines Computers noch weitgehend eigene
Vorstellungen verwirklicht
werden können, ist man bei der Software auf die standardisierten
Betriebssysteme der
industriellen Computer angewiesen, wenn deren umfangreiche
Programmbibliotheken genutzt
werden sollen. Dabei sind natürlich die Vorschriften des
Geheimnisschutzes und des
Urheberrechts zu beachten.
Das Standardbetriebssystem für 8-bit-Personalcomputer ist CP/M,
die dazu kompatiblen
DDR-Systeme sind u.a. SCP, CP/A und Micro-DOS.
CP/M besteht aus dem Kommandoprozessor CCP, dem logischen
Betriebssystem BDOS und den
physischen Routinen BIOS. CCP und BDOS sind universell, nur BIOS
muß an den jeweiligen
Computer angepaßt werden.
Die Anzahl der Datenbytes in einem Sektor ist bei CP/M unterschiedlich.
Sie kann 128 byte,
256 byte, 512 byte oder 1024 byte betragen. In der DDR haben sich die
Spurformate
16 x 256 byte und 5 x 1024 byte durchgesetzt. Bei 256-byte-Sektoren
besitzt eine
einseitige Diskette mit 40 Spuren eine Datenkapazität von 148
Kbyte. Die ersten drei
Spuren sind für das Betriebssystem reserviert. Interessanter
für den Amateur ist das
Format mit 1024-byte-Sektoren. Hier passen 200 Kbyte auf eine Diskette,
wenn auf die
Spuren für das Betriebssystem verzichtet wird. Wie Versuche
gezeigt haben, ist beim
Laufwerk K 5600.10 auch Spur 41 noch nutzbar, so daß eine
Kapazität von sogar 205
Kbyte erreicht wird.
Tafel 3 zeigt eine BIOS-Version für die
vorgestellte Schaltung. Vorgesehen sind drei
logische Laufwerke. Die Laufwerke A und B beziehen sich beide auf das
eine wirklich
vorhandene K 5600. Mit Laufwerk A werden Disketten im Format von 5
Sektoren zu 1024
byte auf 41 Spuren verarbeitet. Dabei bilden 1024 byte eine Gruppe.
Dieses Format sichert
die maximale Diskettenausnutzung mit 205 Kbyte.
Auf Systemspuren wurde verzichtet. Da auf jeden Fall ein Urlader-EPROM
für den Systemanlauf
benötigt wird, kann in diesem auch das ganze Betriebssystem
untergebracht werden (CCP, BDOS
und BIOS benötigen zusammen nur vier IS U2716).
Laufwerk B ist für den Datenaustausch mit SCP-Computern auf
148-Kbyte-Disketten vorgesehen.
Laufwerk C wurde für den Einsatz einer RAM-Floppy mit 128 Kbyte
vorbereitet.
Die Unterprogramme für das Lesen und Schreiben eines
128-byte-Sektors müssen noch eingefügt werden.
Das Programm ist nicht als "Kochrezept" zu verstehen, sondern soll
Anregungen für die Entwicklung
eigener BIOS-Versionen geben. Eine vollständige Behandlung dieser
Problematik kann aus Platzgründen nicht erfolgen (s.[3] [4]).
Am Anfang des BIOS-Systems befindet sich die Liste
mit den Einsprüngen in die Unterprogramme.
Beim Warmstart (WBOOT) muß noch das Laden von CCP und BDOS vom
EPROM in den RAM eingebaut
werden. Das BIOS läuft ebenfalls nur im RAM. Weiterhin fehlen die
Programme für Bildschirm,
Tastatur und Drucker. Sie müssen unter Beachtung der
CP/M-Schnittstellen individuell für
den jeweiligen Computer erstellt werden.
READ und WRITE beinhalten die Umblockung der Sektoren von 1024-byte-
oder 256byte-Disketten
auf die 128-byte-CP/M-Sektoren. Bei einem Fehler von READ oder WRITE
wird der Vorgang zehnmal
wiederholt (VZAHL). Nach dem dritten Fehler wird der Kopf neu
positioniert.
Zusätzlich wurde das Unterprogramm Format aufgenommen. Es dient
zur Formatierung einer Spur
im Format 5 x 1024 byte. Um eine fabrikneue Diskette zu formatieren,
muß für alle 41 Spuren
zunächst SETTRK und dann Format aufgerufen werden.
Nachdem das BIOS-System mit den eigenen Unterprogrammen
vervollständigt wurde, wird
es mit M80 (bzw. ASM) übersetzt und mit dem Kommando
LINKMT CPM = CCP, BDOS, BIOS/P:XX00
gelinkt (M80.COM, LINKMT.COM, CCP.REL und BDOS.REL befinden sich auf
der Installationsdiskette
von CP/A). XX00 ist die Anfangsadresse des CCP. Sie ergibt sich aus dem
Platz, den das
gesamte Betriebssystem, vom Speicherende gerechnet, benötigt. Das
Programm CPM.COM wird
nun zusammen mit dem Urlader im EPROM gespeichert. Der Urlader
muß nach dem Systemreset
das BIOS-System in den RAM laden und dann zu BOOT springen. Danach
meldet sich der Computer mit A>.
Nun kann man versuchen, auf Laufwerk B: eine Diskette einzulesen. Sie
muß auf einem
Laufwerk K 5600.10 mit 148 Kbyte formatiert worden sein. Disketten, die
mit
80-Spur-Laufwerken beschrieben wurden, bringen oft Probleme beim Lesen.
Wenn beim Lesen Fehler auftreten, kann die Ursache festgestellt werden,
indem der Inhalt
der RESULT-Zellen mit Hilfe des Monitors kontrolliert wird. Die
wichtigsten Fehler mit
ihren wahrscheinlichsten Ursachen sind:
Das Kopieren von Disketten ist normalerweise die
einzige Gelegenheit, bei der wirklich zwei
Laufwerke benötigt werden. Wenn eine RAM-Floppy vorhanden ist,
gibt es dabei keine Probleme.
Steht keine zur Verfügung, kann man sich mit dem Programm Power
behelfen. Mit dem Kommando
LOAD Datei.xyz 3D00
wird die Datei (maximal 39 Kbyte - bei 10-Kbyte-System ohne CCP) in den
Hauptspeicher ab Adresse
3D00 geladen. Nach Diskettenwechsel und CTRL-C wird die Datei mit
SAVE Datei.xyz 3D00 anz
auf die andere Diskette übertragen. Dabei ist anz die Anzahl der
Sektoren, die das Programm Power
nach LOAD gemeldet hat.
[1] | Böhl, E.: Integrierte Floppy-Disk-Controller-Schaltungen
U 8272 D 08 und U 8272 D 04. radio fernsehen elektronik, Berlin 36 (1987) 11, S. 703 bis 715 |
[2] | Kramer, M.: Praktische Mikrocomputertechnik. Berlin: Mililärverlag der DDR 1987 |
[3] | Beschreibung des Betriebssystems CP/A. Institut für Informatik und Rechentechnik der Akademie der Wissenschaften der DDR 1985 |
[4] | Anwenderdokumentation SCP 1520; Anleitung für den Programmierer und Anleitung für den Systemprogrammierer. VEB Robotron-Buchungsmaschinenwerk Karl-Marx-Stadt 1984 |
[5] | Böhl, E.: Der Floppy-Disk-Controller U 8272 D und sein
Einsatz. Mikroprozessortechnik, Berlin 2 (1988 ) 4, S. 102-104 |
[6] | Lanßky, S.: Minidisketten-Laufwerk robotron K 5600. Neue Technik im Büro, Berlin 27 (1983) 1, S. 29-32 |
40 KByte | 65 KByte | 16 KByte |
Tafel 1 | Bild 1 | Bild 2 |
142 KByte | 48 KByte | 37 KByte |
Bild 3 | Tafel 2 | Bild 4 |
22 KByte | 81 KByte | 19 KByte |
Bild 5 | Bild 6 | Bild 7 |
364 KByte |
Tafel 3 |