Funkamateur 01/84

zurück zu Teil 1

Funkamateure entwickeln Amateurcomputer "AC1" (2)

Dipl.-Ing. F. HEYDER - Y21SO

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.

Das Rechnerteil

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 ge­forderten 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 Ein­gang 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 Peripherieschalt­kreise 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 Schalt­kreise 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 meh­reren 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.

weiter mit Teil 3