Funkamateur 01/84 |
zurück zu Teil 1 |
Es würde den Rahmen dieser Beitragsserie sprengen, ausführlich auf die Grundlagen der Mikrorechner einzugehen, speziell auf die Funktionsweise der verwendeten LSI-Schaltkreise. Dafür wird auf das Studium der einschlägigen Fachliteratur verwiesen, z.B. [1], [2], [3]. Um die Übersichtlichkeit der Stromlaufpläne zu erhalten, werden Busleitungen bzw. funktionell zusammengehörige Leitungen als Kabelbäume (fette Linien) gezeichnet und die einzelnen Leitungen im Kabelbaum numeriert. Wenn Bezeichnungen von Anschlüssen (Pins) oder Leitungen überstrichen verwendet werden, so bedeutet das, daß sie im aktiven Zustand Low-Pegel führen. Für die logischen Pegel werden die Bezeichnungen Low ~ 0 bis 0,8 V und High ~ 2 bis 5.25 V verwendet. Da sich zum Zeitpunkt der Manuskripterarbeitung die Leiterplatte noch in der Bearbeitung befand, ist bei den meisten TTL-Schaltkreisen noch keine Zuordnung der einzelnen Gatter bzw. Funktionselemente zu den jeweiligen Schaltkreisen möglich. Diese werden dann nur mit D, DG oder DN durchnumeriert. Wenn nicht anders vermerkt, können für alle TTL-Schaltkreise auch Basteltypen eingesetzt werden.
Die logische Struktur des Rechnerteils ist in
Bild 3 dargestellt, der
Stromlaufplan
in
Bild 4. Kernstück des
Rechnerteils, und damit des Amateurcomputers "AC1", ist der
Mikroprozessor U 880 D. Die besonderen Vorteile dieses Schaltkreises
sind u.a. folgende:
- nur eine Betriebsspannung;
- Einphasensystemtakt bis max. 2.5 MHz;
- praktisch unbegrenzter Kellerspeicher;
- Ein- und Ausgänge sind TTL-kompatibel;
- komfortabler Befehlssatz (158 Grundbefehle);
- Refresh für dynamische RAMs;
- verschiedene Interruptmöglichkeiten;
- Minimalkonfigurationen sind mit geringem Aufwand möglich.
Zur Steuerung seiner Funktion besitzt der U 880 D einen Takteingang und
die Steuereingänge
/WAIT, /INT, /NMI, /BUSRQ und /RESET. Um den Mikroprozessor in einen
definierten
Anfangszustand zu versetzen, ist es erforderlich, einen Low-Impuls an
seinen
RESET-Eingang anzulegen. Dieser wird durch das Aufladen des RC-Gliedes
R6/C1
und die Negatoren DN1 und DN2, die als Trigger wirken, nach dem Anlegen
der
Betriebsspannung automatisch erzeugt (power on reset). Durch
Anschließen eines
Tasters an X3 ist es dann möglich, diesen Vorgang auch im
eingeschalteten
Zustand zu wiederholen. Bei der Verwendung dynamischer Speicher ist
dieser
Rücksetzimpuls dann aber in seiner Länge zu begrenzen, um
einen Datenverlust
infolge zu großem Refresh-Abstandes zu vermeiden. Außerdem
wird über VT1 auf
der M1-Leitung für die Dauer des Reset Low-Pegel erzeugt, um
sicherzustellen,
daß auch die PIO-Schaltkreise U 855 D [1] rückgesetzt werden. Das ist
möglich,
da während des Reset alle Ausgangsleitungen der CPU in den
hochohmigen Zustand
übergehen. Der erforderliche Systemtakt wird der
Bildschirmsteuerung entnommen,
um einen zweiten Taktgenerator einzusparen und über DG1 dem
Takteingang der CPU
zugeführt. Zur Gewährleistung des geforderten
High-Pegels des Taktes wird der
Ausgang von DG1 über einen Pull-up-Widerstand (R4 = 330 Ω) an +5 V
gelegt. Der
zweite Eingang von DG1 ist an den Bussteckverbinder X1 geführt, er
bleibt in
diesem Fall offen bzw. wird zur besseren Störsicherheit an +5 V
gelegt. Dieser
Eingang wurde für eine mögliche Fremdeinspeisung des
Systemtaktes vorgesehen.
Die restlichen Steuereingänge, die eine Unterbrechung bzw.
Verzögerung des
normalen Programmablaufes bewirken, werden über die
Widerstände R1/R2/R3 und R5
an +5 V gelegt. Dadurch wird deren inaktiver Zustand eingestellt, der
dann durch
Verbinden des jeweiligen Eingangs mit Masse wieder aufgehoben werden
kann.
Die Adreßeingänge A0 bis A15 sowie die Steuerausgänge
/MREQ, /IORQ, /RD und /WR
werden über DN3 bis DN22 verstärkt und negiert. Das ist
erforderlich, da diese
Informationen an mehrere TTL-Eingänge gelegt werden müssen.
Sonst würden die
Ausgangsstufen der CPU, die etwas mehr als eine normale TTL-Last
treiben können,
überlastet. Aus schon vorn genannten Gründen wurde auf den
Einsatz von
Bustreiberschaltkreisen auf der Grundleiterplatte verzichtet. Der
Halt-Zustand
der CPU wird über VT2 und R16 durch die Lumineszensdiode VD1
angezeigt. Der
Datenbus D0 bis D7 sowie ein Teil des Adreß- und Steuerbusses
werden ungetrieben
an die jeweiligen Anschlüsse der Speicher- und Peripheriebausteine
der
Grundleiterplatte geführt. Alle Anschlüsse der CPU, also der
gesamte Daten-,
Adress und Steuerbus, sind an den Bussteckverbinder X1 gelegt.
Damit wird
eine spätere Erweiterung des Rechners ermöglicht, wobei dann
aber
Bustreiberschaltkreise zwischengeschaltet werden sollten. Da alle
Speicher- und
Peripherieschaltkreise ihre Informationen mit der CPU über
den Datenbus
austauschen, und somit parallel an diesen angeschlossen sind, ist es
notwendig,
dafür zu sorgen, daß jeweils nur der angesprochene
Schaltkreis aktiviert wird.
Sonst könnten Ausgangsstufen gegeneinander arbeiten oder Daten an
falsche
Empfänger gelangen. Beides kann zum Zusammenbruch des Systems
führen. Deshalb
gibt es zur Realisierung des Busprinzips, außer den
Zuständen High und Low
einer Ausgangsstufe solcher Schaltkreise bzw. Baugruppen, noch deren
hochohmigen
Zustand, bei dem keiner der Ausgangstransistoren leitet. Diesen Zustand
nehmen
dann alle Ausgangstreiber der nicht angesprochenen Baugruppen oder
Schaltkreise
an. Die Eingänge solcher Schaltkreise bzw. Baugruppen sind
ebenfalls mit
Enable-Signalen gekoppelt, die die anliegende Information für
gültig erklären.
Die Ansteuerung dieser Auswahl oder Selectleitungen erfolgt
entsprechend der
Informationen des Adreß- und Steuerbusses durch eine
entsprechende Logik.
Die Funktion dieser Logik ist im "AC1" für Speicherbaugruppen (D18
bis D3)
und Peripheriebausteine (D18 bis D2) prinzipiell gleich.
Als eigentlicher Dekoder wird jeweils ein MH 7442, ein
Binär-zu-Dezimal-Dekoder,
verwendet. Dabei wird 1, die Binäradresse an die Eingänge 20,
21, 22
gelegt und der Eingang 23 als Enableeingang benutzt. Durch
ihn
werden die ständig anliegenden Binärdaten an den Bereich 0
bis 7 zur Auswahl
der entsprechenden Bausteine oder in den Bereich 8 bis 15 dekodiert,
falls die
anliegenden Daten nicht für die Bausteinauswahl bestimmt sind. Die
Ausgänge 8
und 9 können also nicht mitverwendet werden. Der Eingang 23
wird
vom jeweiligen Gatter des D18 angesteuert. Da die hier verwendeten
Speicherbausteine
jeweils einen Adreßumfang von 1K(1024) belegen, muß auch
die Speicherauswahl
in Schritten zu 1 KByte erfolgen. Bei Beginn des Speichers ab Adresse 0
werden
die Adreßleitungen A10, A11 und A12 zur Bausteinauswahl
dekodiert, und zwar
genau dann, wenn A13 bis A15 gleich Low und MREQ (Speicheranforderung)
aktiv.
Da die Adreßleitungen durch die Verstärkung mit den
Invertern D 104 D negiert
vorliegen, entspricht dann ein Low am Ausgang 7 des Dekoders dem
Auswahlsignal
für die Adressen 0 bis 3FFH und demzufolge ein Low am Ausgang 0
den Adressen
1C00 bis 1FFFH. Die Auswahlsignale für die Peripheriebausteine
sind in
Schritten zu vier gestaffelt, da CTC, PIO und SIO des U-880-D-Systems
jeweils
vier Kanäle enthalten. Das heißt, hier erfolgt die Auswahl
anhand von A2 bis A4,
wenn A5 bis A7 Low und IORQ aktiv sind, analog zur Speicherauswahl. Die
Adreßleitungen A8 bis A15 brauchen hier nicht beachtet zu werden,
da nur 256
Peripherieadressen möglich sind.
Auf der Grundleiterplatte werden nur zwei Auswahlsignale für CTC
und PIO benötigt,
die restlichen Auswahlsignale werden zum Bussteckverbinder X1
geführt, um sie bei
entsprechenden Erweiterungen zu nutzen. Die Adreßdekodierung
wurde in beiden
Fällen vollständig ausgeführt, so daß einer
Erweiterung bis an die Grenzen des
Systems von dieser Seite keine Beschränkung auferlegt wird.
Anstelle der MH 7442
erfüllen z.B. auch Schaltkreise der Typen DS 8205 und MH 74154 die
gleiche
Funktion, die Anschlußbelegung ist jedoch anders. Eine
Realisierung dieser
Logik ausschließlich mit Gatterschaltkreisen ist zu aufwendig.
Da der Mikroprozessor U 880 D nach dem Reset ab der Adresse 0 mit der
Programmabarbeitung
beginnt, muß auch sein Anfangs- oder Grundprogramm auf dieser
Adresse beginnen. Das heißt,
in diesem Adreßbereich muß sich ein Festwertspeicher
befinden, ein Speicher, der
seine Daten auch nach dem Ausschalten beibehält. Auf der
Grundleiterplatte des
"AC1" befinden sich dafür vier Steckplätze für EPROMs U
555 D im
Adreßbereich 0 bis 0FFFH, also maximal 4 KByte im
Festwertspeicher. Um zu verhindern,
daß die Ausgangstreiber dieser Speicher durch Schreibzyklen
infolge von
Programmfehlern zerstört werden, sind die Auswahlsignale für
diese Schaltkreise
mit dem Lesesignal RD verknüpft (DN23 bis DN26, DG2 bis DG5), so
daß sie nur
während eines Speicherlesezyklus aktiviert werden. Diese
Speicherschaltkreise
benötigen außer den +5 V auch noch -5 V und +12 V. (X7/X10).
Für eine mögliche
Bestückung mit maximal zwei Speicherschaltkreisen doppelter
Kapazität, wie
z.B. Intel 2716, sind die bei den zusätzlichen
Betriebsspannungsleitungen über
Lötösen wahlweise an die notwendigen Leitungen
anschließbar. Die vier
Auswahlsignale wären dann jeweils paarweise zusammenzufassen, z.B.
durch eine
Diodenverknüpfung. Als Arbeitsspeicher, einem Speicher, den die
CPU sowohl
beschreiben als auch lesen kann, werden statische RAM-Schaltkreise U
202 D verwendet.
Da diese Schaltkreise bitorganisiert sind, sind 8 Schaltkreise (D8 bis
D15)
für die erforderliche Datenwortbreite der CPU notwendig. Zur
Vermeidung von
Einschränkungen, die sich bei einem einfachen Busanschluß
der Datenleitungen
dieser Schaltkreise, also einer Parallelschaltung der jeweiligen
Datenein- und
ausgangsleitungen ergeben würden, wie z.B. eine Verlängerung
der Zugriffszeit,
sollten die Datenausgänge über Tri-state-Stufen an den Bus
gelegt werden. Um
auch hier ohne Bustreiberschaltkreise auszukommen, werden die
Datenausgänge
über Open-Kollektor-Stufen und Pull-up-Widerstände (R8 bis
R15) an den
Datenbus angeschlossen. Da die hier verwendeten D-103-D-Gatter (DG8 bis
DG15)
die Daten invertieren, müssen zusätzlich die Negatoren DN27
bis DN34 eingefügt
werden. Diese AusgangsbeschaItung wird nur dann über DG6/DG7
aktiviert, wenn
ein Lesezyklus auf diesem Speicherbereich vorliegt.
Um diese Zusatzschaltung bei einer einfachen Verdopplung des
Arbeitsspeichers durch
Auflöten weiterer acht U 202 D im Huckepackverfahren gleich
mitzunutzen, sind zwei
benachbarte Auswahlsignale (Adressen 1800 bis 1BFFH und 1C00 bis 1FFFH)
zur Aktivierung
durch DG6 zusammengefaßt. Anstelle der U 202 D sind auch S 202 D
einsetzbar,
wobei dann aber infolge der höheren Zugriffszeit [4] dieser Schaltkreise ein
Wait-Zyklus
bei jedem M1- oder besser Speicherzugriff zu diesem Bereich
einzufügen ist,
oder man setzt den Systemtakt herab. Das Einfügen des Wait-Zyklus
kann z.B. mit
der Schaltung nach [1] erfolgen,
die dann günstig über den Bussteckverbinder X1
anzuschließen ist.
Zum Datenaustausch mit dem Rechner ist auf der Grundleiterplatte ein
paralleler
Ein-Ausgabe-Schaltkreis PIO (D17) enthalten. Er verfügt über
16 Leitungen, die man
wahlweise als Ein- oder Ausgabeleitung programmieren kann und über
vier Quittungssignale.
Die Leitungen PA0 bis PA7 werden dabei zum Anschluß der Tastatur
benutzt. Der Port
B ist für Anwendungen frei. Weiterhin befindet sich ein
Zähler- und
Zeitgeberschaltkreis CTC (D16) auf dem Rechnerteil der
Grundleiterplatte. Er
verfügt über vier Kanäle, deren Zeitkonstante bzw.
Zählerstand ebenfalls
programmierbar sind, und die man auch hintereinanderschalten kann.
Dieser
Schaltkreis wird z.B. zur Steuerung der Zeitabläufe im CW- und im
RTTY-Programm benutzt. Der Anschluß dieser beiden
hochintegrierten Schaltkreise
ist unproblematisch, ihre Anschlüsse werden einfach mit den
entsprechenden
Leitungen des Bussystems verbunden. Die Ein- und Ausgänge der
Zähler und die
Datenports des PIO sind auf den Peripheriesteckverbinder X2 gelegt.
Zur Festlegung der Reihenfolge bei mehreren gleichzeitig
anliegenden Interruptanforderungen
dient die Anordnung der einzelnen Peripheriebausteine in der
Interrupt-Prioritätenkette
durch die Anschlüsse IEO und IEI. Hier wurden dem CTC die
höchste Priorität
zugeordnet, indem sein IEI-Eingang an +5 V gelegt wurde. An seinen
IEO-Ausgang
ist dann der PIO angeschlossen, er hat damit die nachfolgende
Priorität. Der
IEO-Ausgang des PIO ist zur Erweiterung an den Bussteckverbinder X1
geführt.
In Verbindung mit der noch zu beschreibenden Bildschirmsteuerung sind
mit
diesem Rechnerteil bereits viele Anwendungen realisierbar. wie z.B. CW-
und
RTTY-Programme.