|
Busbelegung
Das Bussystem des NDR Klein Computers ist eine schon ziemlich durchdachte Angelegenheit: Je nach Komplexität des aufgebauten Systems kann der Bus von unterschiedlichen Steckkarten belegt werden. Immer wurde darauf geachtet, dass die Belegung kompatibel zu allen Baugruppen ist - selbst über verschiedenen Prozessorarchitekturen hinweg.
Das Bussystem lehnt sich von den Signalen her stark an den standardisierten ECB-Bus an, ist aber aufgrund der einfachen Pfostenleisten günstiger übersichtlicher realisierbar. Bei den verscheidenen Prozessorkarten wurde darauf geachtet, dass die Signale Kompatibel erzeugt werden, so dass alle veröffentlichten Erweiterungskarten grundsätzlich mit den verschiedenen Z80 Systemen, allen 68000 Systemen und dem 8088 genutzt werden können.
Alle Steckkarten, unabhängig von deren Breite werden immer beginnend bei Pin 1 in den Bus eingesetzt. Je nach Umfang des zusammengestellten Systems wird nur ein Teil des Busses belegt.
Designmängel
Nach meiner Einschätzung enthält das Bussystem einen kleinen Designfehler. Für die kurzen Baugruppen (I/O Karten) wäre das Signal /NMI hilfreich bzw. notwendig gewesen. Im Gegenzug ist das RFSH Signal für I/O Karten sinnlos. Schmale Baugruppen können also keinen Non Maskable Interrupt auslösen. Im Nachhinein lässt sich das natürlich nicht mehr ändern.
Weiterhin werden meines Wissens nach die Leitungen PI und PO auf keiner der Baugruppen verwendet. Nach meiner Meinung wären hier besser die Adressleitungen A20 und A21 verwendet worden. Zumindest unter Verwendung der CPU 68000 und 68020 wären dann 4 MByte Adressraum anstelle von 1 MByte möglich gewesen.
Tabelle der Bussignale
Signal |
Pin |
Ausbaustufe |
Verwendung |
-5V |
1 |
SBC, I/O, MEM |
nicht benutzt |
+12V |
2 |
SBC, I/O, MEM |
Versorgungsspannung |
-12V |
3 |
SBC, I/O, MEM |
Versorgungsspannung |
+5V |
4 |
SBC, I/O, MEM |
Versorgungsspannung für alle digitalen Schaltkreise |
+5V |
5 |
SBC, I/O, MEM |
Versorgungsspannung für alle digitalen Schaltkreise |
0V |
6 |
SBC, I/O, MEM |
Versorgungsspannung für alle digitalen Schaltkreise |
0V |
7 |
SBC, I/O, MEM |
Versorgungsspannung für alle digitalen Schaltkreise |
D0 |
8 |
SBC, I/O, MEM |
Datenbus |
D1 |
9 |
SBC, I/O, MEM |
Datenbus |
D2 |
10 |
SBC, I/O, MEM |
Datenbus |
D3 |
11 |
SBC, I/O, MEM |
Datenbus |
D4 |
12 |
SBC, I/O, MEM |
Datenbus |
D5 |
13 |
SBC, I/O, MEM |
Datenbus |
D6 |
14 |
SBC, I/O, MEM |
Datenbus |
D7 |
15 |
SBC, I/O, MEM |
Datenbus |
/RD |
16 |
SBC, I/O, MEM |
READ Signal |
/WR |
17 |
SBC, I/O, MEM |
WRITE Signal, Schreiben von Daten |
/IORQ |
18 |
SBC, I/O, MEM |
IO REQUEST, Zugriff auf Ein- oder Ausgabebereich |
/MREQ |
19 |
SBC, I/O, MEM |
MEMORY REQUEST, Zugriff auf Daten- oder Programmspeicher |
A0 |
20 |
SBC, I/O, MEM |
Adressbus |
A1 |
21 |
SBC, I/O, MEM |
Adressbus |
A2 |
22 |
SBC, I/O, MEM |
Adressbus |
A3 |
23 |
SBC, I/O, MEM |
Adressbus |
A4 |
24 |
SBC, I/O, MEM |
Adressbus |
A5 |
25 |
SBC, I/O, MEM |
Adressbus |
A6 |
26 |
SBC, I/O, MEM |
Adressbus |
A7 |
27 |
SBC, I/O, MEM |
Adressbus |
/RESET |
28 |
SBC, I/O, MEM |
RESET Signal, Hardware- und Softwaregestuert |
M1 |
29 |
SBC, I/O, MEM |
Machine Cycle |
PHI |
30 |
SBC, I/O, MEM |
Taktsignal |
/RFSH |
31 |
SBC, I/O, MEM |
Refreshsignal |
/INT |
32 |
I/O, MEM |
Interruptanforderung |
/WAIT |
33 |
I/O, MEM |
Für Zugriff auf langsame Baugruppen |
A8 |
34 |
MEM |
Adressbus |
A9 |
35 |
MEM |
Adressbus |
A10 |
36 |
MEM |
Adressbus |
A11 |
37 |
MEM |
Adressbus |
A12 |
38 |
MEM |
Adressbus |
A13 |
39 |
MEM |
Adressbus |
A14 |
40 |
MEM |
Adressbus |
A15 |
41 |
MEM |
Adressbus |
BANKEN |
42 |
MEM |
Steuerung für unterschiedliche Speicherbänke |
/BUSRQ |
43 |
MEM |
Busanforderung für DMA |
/BUSAK |
44 |
MEM |
Bestätigung einer Busanforderung |
PI |
45 |
MEM |
Interrupt Priority In, nicht benutzt |
PO |
46 |
MEM |
Interrupt Proirity OUT, nicht benutzt |
/NMI |
47 |
MEM |
Nicht maskierbarer Interrupt |
A16 |
48 |
MEM |
Adressbus |
A17 |
49 |
MEM |
Adressbus |
A18 |
50 |
MEM |
Adressbus |
A19 |
51 |
MEM |
Adressbus |
0V |
52 |
MEM |
Versorgungsspannung |
0V |
53 |
MEM |
Versorgungsspannung |
RES |
54 |
MEM |
Reserve |
Die wichtigsten Signale
In der folgenden Tabelle sind alle Signale des Bussystems des NKC kurz beschrieben. Bei allen erhältlichen Busplatinen und Prozessorkarten wurde auf die Kompatibilität untereinander geachtet, so dass man sich keine Gedanken über die Zusammenstellun der verschiedenen Baugruppen machen muss.
Signal |
Beschreibung |
+5V, 0V |
Dies sind die Versorgungsspannungsanschlüsse für die digitale Elektronik. Häufig werden die Spannungen auch als VCC (+5V) und GND (0V) bezeichnet. Je nach Ausbaustufe des NKC können auf der positiven Versorgungsspannung Ströme bis zu 10A notwendig werden. |
D0 ... D7 |
Der Datenbus besteht aus 8 Datenleitungen über die alle Informationen von und zum Mikroprozessor geleitet werden. Bei Z80 und 68008 ist der Bus 8 Bit breit, sollen Prozessoren mit einer Datenbusbreite von mehr als 8 Bit eingesetzt werden, so ist eine Auftrennung notwendig. Die Auftrennung kann bei der BUS3 in der Mitte bei der zweireihigen Buchsenleiste vorgenommen werden. Zusätzlich sind die Signale /WR /RD /IORQ und /MREQ an dieser Stelle zu trennen. |
/RD |
Leseanforderung auf dem Datenbus. Der Prozessor teilt über einen Low-Pegel mit, dass mit dem aktuellen Zyklus Daten vom Bus in den Prozessor gelesen werden sollen. |
/WR |
Schreibbenachrichtigung für den Datenbus. Der Prozessor teilt über einen Low-Pegel mit, dass mit dem aktuellen Zyklus Daten vom Prozessor zum Speicher oder zur Peripherie geschrieben werden sollen. |
/IORQ |
Mit diesem low-aktiven Signal teilt der Prozessor mit, dass eine Peripherie angesprochen werden soll. Die Richtung, in der die Daten zur Peripherie übertragen werden sollen, wird durch /RD und /WR angegeben. |
/MREQ |
Mit diesem low-aktiven Signal teilt der Prozessor mit, dass der Speicher angesprochen werden soll. Die Richtung, in der die Datenübertragung stattfinden soll, wird durch /RD und /WR angegeben. |
A0 ... A7 |
Die niederwertigen Adressleitungen des 64 KByte umfassenden Adressraumes. Mit diesem Teil der Adressen lassen sich alle Peripherieeinheiten ansprechen. Beim Z80 sind 256 verschiedene I/O Adressen möglich, von den 65536 I/O-Adressen des 68008 werden nur die untersten 8 Bit ausgewertet. |
RESET |
Das Rücksetzsignal bringt die CPU und die Peripherie in einen definierten Zusatnd. Das RESET-Signal wird automatisch beim Einschalten des Systems erzeugt. Beim 68000 kann das Signal zusätzlich durch einen speziellen Prozessorbefehl ausgelöst werden. |
M1 |
Das Bussignal ist nur bei Verwendung des Z80 Prozessors vorhanden und wird bei jedem neuen Zyklus einmal aktiv. Bei Systemen mit 68000 Prozessor ist dieses Signal nicht belegt und kann daher nicht sinnvoll universell verwendet werden. |
PHI |
Dieses Signal führt die Systemtaktfrequenz und ist ebenfalls von der verwendeten Prozessorkarte und der Bestückung abhängig. Das Signal sollte nicht verwendet werden, um Abläufe auf anderen Steckkarten zu steuern. |
RFSH |
Das Signal dient zum zyklischen Auffrischen von dynamischen RAM-Bausteinen und wird von der Z80 CPU automatisch generiert. Da der 68000 kein solches Signal besitzt, wird es im NKC nicht verwendet. Die Speicherkarten mit dynamischen RAM-Bausteinen erzeugen ihr eigenes Refresh-Signal. |
/INT |
Mit einem Low-Pegel auf dieser Leitung wird ein Interrupt im Prozessor ausgelöst. So kann die Peripherie bei Auftreten bestimmter Ereignisse die CPU veranlassen, einen bestimmten Programmteil zur Behandlung des Ereignisses aufzurufen. |
/WAIT |
Durch dieses Signal kann der Prozessor angehalten werden und dieent zur Synchronisierung zwischen dem schnellen Prozessor und eventuellen langsamen Peripheriebausteinen. |
A8 ... A15 |
Die oberen Adressleitungen des 64 KByte umfassenden Adressraumes. |
BANKEN |
Das Signal beietet die Möglichkeit, andere Speicherbaugruppen in den Adressraum einzublenden. Es ist High-Aktiv und wird zum Beispiel durch die Baugruppe BANKBOOT genutzt. |
/BUSRQ |
Mit einem Low-Pegel auf dieser Leitung wird der CPU mitgeteilt, dass eine andere Baugruppe die Kontrolle über den Bus übernehmen will. Dies ist zum Beispiel bei einer DMA-Anforderung (Direct Memory Access) der Fall. Eine solche Anforderung muss von der CPU durch das Signal BUSAK bestätigt werden. |
/BUSAK |
Bestätigung der CPU, dass eine Busanforderung erkannt und jetzt ausgeführt werden kann. In der Regel erfolgt das Signal BUSAK nach Abarbeitung des Befehls, der Bei Empfang des Signals BUSRQ ausgeführt wurde.. |
PI |
Dient zur Regelung der Interrupt-Priorität und wird im NKC nicht verwendet. |
PO |
Dient zur Regelung der Interrupt-Priorität und wird im NKC nicht verwendet. |
/NMI |
Nicht maskierbarer Interrupt. Ein Low-Pegel auf dieser Leitung weist den Prozessor an, ein spezielles Unterprogramm zur Behandlung der Anforderung abzuarbeiten. |
A16 ... A19 |
Mit dieser Erweiterung des Adressbusses kann der Speicher auf bis zu 1 MByte ausgebaut werden. Beim 68000 sind maximal 2 MByte, beim 68020 maximal 4 MByte möglich, da diese Prozessoren einen 16 bzw. 32 Bit breiten Datenbus verwenden. |
+12V, -12V, -5V |
Zusätzliche Versorgungsspannungen zur Verwendung auf speziellen Eingabe- und Ausgabebaugruppen. |
Unterschiedliche Busbreiten für Daten
|
Das ganze Bussystem ist in dieser Form für einen Datenbus mit einer Breite von 8 Bit ausgelegt. Auf diesem Bus lassen sich ohne besondere Anpassungen alle Baugruppen mit 8 Bit Prozessoren verwenden. Dies sind die Systeme Z80, 68008 und 8088. Die Position der Prozessorbaugruppe sowie aller anderen Baugruppen ist in dieser Konfiguration beliebig. |
|
Will man eine Baugruppe mit einem 16 Bit Datenbus verwenden (zum Beispiel den 68000), so reichen die 8 Datenleitungen des BUS3 nicht aus. Aus diesem Grund wurde eine besondere Anordnung des Busses geschaffen, der es ermöglicht, den Datenbus in zwei Hälften zu je 8 Bit aufzuteilen.
Dazu muss die Prozessorbaugruppe in der Mitte der BUS3 plaziert und der Bus an der doppelreihigen Buchsenleiste getrennt werden (nur die Signale D0 ... D7, WR, RD, IORQ und MREQ). Alle Baugruppen, die durch I/O Adressen angesprochen werden sollen, sind dann auf der Seite mit den geraden Adressen zu bestücken. Alle Speicherbaugruppen müssen doppelt bestückt werden. |
|
Nach gleichem Schema wird auch verfahren, wenn der Datenbus (bei Verwendung des Prozessors 68020) mit 32 Bit Breite ausgeführt werden muss. Dazu werden dann jedoch zwei Buskarten benötigt. Die Prozessorplatine stellt die Verbindung zwischen den beiden Busplatinen her, beide Busse müssen in der Mitte getrennt werden.
Alle Speicherbaugruppen müssen jetzt vierfach installiert werden, was den Aufbau eines solchen Systems entsprechend teuer macht. Natürlich erhält man so auch die vierfache Menge an nutzbarem Speicher.
Die Eingabe- und Ausgabebaugruppen werden weiterhin nur mit dem 8 Bit breiten Datenbus angesprochen und müssen an der richtigen Stelle eingesetzt werden. Zur Verwendung ist eine Anpassung des Grundprogramms notwendig. |
|