Das eBook Angewandte Mikroelektronik wurde von Hans Lohninger zur Unterstützung verschiedener Lehrveranstaltungen geschrieben. Weitere Informationen finden sie hier.


Pinbelegung Z80

Folgende Abbildung zeigt die Pinfunktionen und das Anschlussschema des Bausteins. Die Anschlüsse können in mehrere Gruppen zusammengefasst werden, die im Folgenden kurz besprochen werden sollen.

Z80-CPU Anschlussschema

Zur Stromversorgung benötigt der Baustein eine einzige Spannung von 5 V. Die Stromaufnahme beträgt je nach verwendeter Halbleitertechnologie und Taktfrequenz zwischen 10 und 200 mA.

Datenbus

Der Datenbus besteht aus acht bidirektionalen Datenleitungen D0 - D7 , auf denen der Transfer von Daten und Befehlen zwischen dem Mikroprozessor und der Außenwelt vor sich geht. D0 ist das LSB, D7 das MSB. Die Datenleitungen sind als Tri-State-Anschlüsse ausgeführt.

Adressbus

Der Adressbus besteht aus 16 Leitungen A0 - A15 , mit denen maximal 64 KByte adressiert werden können. Zur Adressierung von größeren Speichern müssen durch externe Hardware (z.B. Bank Switching oder MMU) zusätzliche Adressleitungen angesteuert werden. Die Adressleitungen sind Tri-State-Leitungen, damit eventuelle externe Prozessoren auf den Bus zugreifen können (siehe /BUSRQ).

System-Steuerleitungen

Die Steuerleitungen dienen zur Kontrolle des angeschlossenen Systems. Folgende Anschlüsse sind dazu vorgesehen:

/M1

Machine Cycle One (Ausgang, aktiv = LOW).

/M1 zeigt an, dass der aktuelle Maschinenzyklus einen Befehl aus dem Speicher holt und zur Ausführung bringt. Bei Befehlen mit zwei Befehlsbytes wird /M1 zweimal hintereinander auf LOW gebracht. /M1 wird auch zur Kennzeichnung eines Interrupt-Acknowledge-Zyklus zusammen mit dem Pin /IORQ verwendet.

/MREQ

Memory Request (Tri-State-Ausgang, aktiv = LOW).

Ein LOW Signal auf der Leitung /MREQ zeigt an, dass auf dem Adressbus eine gültige Adresse anliegt und entweder ein Byte gelesen (/RD=LOW) oder geschrieben (/WR=LOW) werden soll.

/WR

Write (Tri-State-Ausgang, aktiv = LOW).

Ein LOW-Signal auf der Leitung /WR zeigt an, dass der Mikroprozessor am Datenbus gültige Daten ausgibt, die entweder in den Speicher oder in einen Peripheriebaustein geschrieben werden sollen.

/RD

Read (Tri-State-Ausgang, aktiv = LOW).

Der Pin /RD wird von der CPU aktiviert, wenn Daten oder Befehle zwischen Speicher bzw. Peripherie und der CPU transferiert werden sollen.

/REF

Refresh (Ausgang, aktiv = LOW).

/REF zeigt an, dass die CPU auf den Adressleitungen A0-A6 eine gültige Refresh-Adresse gelegt hat. Mit dieser Refresh-Adresse soll beim Auftreten von /MREQ=LOW ein Refresh aller RAMs durchgeführt werden.

/HALT

Halt (Ausgang, aktiv = LOW).

/HALT zeigt an, dass die CPU den Befehl HALT ausgeführt hat und nun auf einen Interrupt (/NMI oder /INT) wartet, um wieder weiterzuarbeiten. Während der Haltperiode werden fortlaufend NOP-Befehle (no operation) ausgeführt, um den Refresh der Speicher zu gewährleisten.

/IORQ

Input Output Request (Ausgang, aktiv = LOW).

Wenn dieses Signal auf LOW geht, enthält die untere Hälfte des Adressbusses eine gültige I/O-Adresse. Mit Hilfe der Signale /RD und /WR werden dann Daten geschrieben oder gelesen. /IORQ wird auch in einem Interrupt-Acknowledge-Zyklus (zusammen mit /M1) eingesetzt.

CPU-Steuerleitungen

/WAIT

Wait (Eingang, aktiv = LOW).

Wird die Leitung /WAIT aktiviert, so wird die CPU während eines Speicher- oder eines I/O-Zugriffs angehalten, bis /WAIT wieder auf HIGH geht. Mit diesem Signal können langsame Speicher oder Peripheriebausteine mit einer zu schnellen CPU synchronisiert werden. Das /WAIT-Signal kann auch dazu verwendet werden, die CPU im Single-Step-Verfahren zu betreiben. ACHTUNG !! Solange die CPU im WAIT-Zustand ist, wird der Refresh unterdrückt.

/RESET

Reset (Eingang, aktiv = LOW).

Ist dieser Anschluss aktiviert, wird die CPU initialisiert, wobei der Programmzähler auf null gesetzt, der maskierbare Interrupt deaktiviert, der Interruptmodus auf null gesetzt und die Register I und R mit dem Wert null geladen werden.

/BUSRQ

Bus Request (Eingang, aktiv = LOW).

Das Signal /BUSRQ wird dazu verwendet, der CPU mitzuteilen, dass sie den Adressbus, den Datenbus und die Kontrollsignale mit Tri-State-Ausgang in den hochohmigen Zustand schaltet, damit ein anderer Prozessor auf den Bus zugreifen kann. Wenn /BUSRQ aktiviert worden ist, setzt die CPU nach der Beendigung des aktuellen Maschinenzyklus diese Leitungen in den hochohmigen Zustand und zeigt dies durch Aktivierung der Leitung /BUSAK an.

/BUSAK

Bus Acknowledge (Ausgang, aktiv = LOW).

Zeigt an, dass der Busanforderung (siehe /BUSREQ) eines anderen Prozessors stattgegeben wurde und die entsprechenden Busleitungen sich im hochohmigen Zustand befinden. ACHTUNG !! Während /BUSAK aktiv ist, erfolgt kein Refresh der dynamischen RAMs.

CLK

Clock (Eingang).

Der Anschluss CLK dient zur Synchronisation der internen Abläufe. Der Takt wird extern erzeugt und bestimmt die Arbeitsgeschwindigkeit des Mikroprozessors. Der Takt darf eine gewisse Maximalfrequenz (2.5 bis 8 MHz) nicht überschreiten, die in der Bauteilspezifikation angegeben ist. Außerdem darf diese Frequenz auch einen Minimalwert von 250 kHz nicht unterschreiten, da sonst die Register ihren Inhalt verlieren würden.

Interruptleitungen

/INT

Interrupt Request (Eingang, aktiv = LOW).

Am Anschluss /INT können externe Bausteine eine Interruptanforderung an die CPU abgeben. Diese Anforderung wird akzeptiert, wenn das Interrupt-Enable-Flip-Flop auf 'Enable' steht und das /BUSRQ-Signal nicht aktiv ist. Der genaue Ablauf eines Interruptzyklus und die verschiedenen Arten der Interruptsteuerung sind im Kapitel Interruptverarbeitung beschrieben.

/NMI

Non Maskable Interrupt Request (Eingang, aktiv = negative Flanke).

Die nicht maskierbare Interruptanforderung hat eine höhere Priorität als die maskierbare (/INT) und wird immer am Ende eines Befehls angenommen. Beim Auftreten eines Signals an /NMI wird die CPU gezwungen, an die Stelle $0066 im Adressraum zu springen und dort die Programmausführung fortzusetzen. ACHTUNG!! Ein permanentes/WAIT-Signal verhindert die Beendigung eines Befehls und damit auch die Ausführung des NMI. Zur genaueren Beschreibung siehe Interruptverarbeitung.


Last Update: 2008-05-31