Teubner Studienskripten Elektrotechnik Baur,
Einführung in die Radartechnik 253 Seiten. DM 19,80
Ebel,
Regelungstech...
172 downloads
1655 Views
73MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Teubner Studienskripten Elektrotechnik Baur,
Einführung in die Radartechnik 253 Seiten. DM 19,80
Ebel,
Regelungstechnik 5., überarbeitete und erweiterte Aufl. 215 Seiten. DM 18,80
Ebel,
Beispiele und Aufgaben zur Regelungstechnik
Eckhardt,
Numerische Verfahren in der Energietechnik 208 Seiten. DM 17,80
Fender,
Fernwirken
Freitag,
Einführung in die Zweitortheorie
Frohne,
Einführung in die Elektrotechnik
3., überarbeitete und erweiterte Aufl. 167 Seiten. DM 16,80
112 Seiten. DM 15,80 3., neubearbeitete und
erwe~terte
Aufl. 168 Seiten. DM 16,80
Band 1 Grundlagen und Netzwerke 5., durchgesehene Aufl. 172 Seiten. DM 16,80 Band 2 Elektrische und magnetische Felder 4., durchgesehene Aufl. 281 Seiten. DM 19,80 Band 3 Wechselstrom 4., durchgesehene Aufl. 200 Seiten. DM 17,80 Gad,
Feldeffektelektronik 266 Seiten. DM 19,80
Gerdsen,
Hochfrequenzmeßtechnik 223 Seiten. DM 18,80
Gerdsen,
Digitale Ubertragungstechnik 322 Seiten. DM 21,80
Goerth,
Einführung in die Nachrichtentechnik 184 Seiten. DM 16,80
Haack,
Einführung in die Digitaltechnik 4. Auflage. 232 Seiten. DM 18,80
Harth ,
Halbleitertechnologie 2., überarbeitete Aufl. 135 Seiten. DM 17,80
Heidermanns, Elektroakustik
138 Seiten. DM 15,80 Hilpert,
Halbleiterelemente 3., erweiterte Aufl. 184 Seiten. DM 16,80
Höhnle,
Elektrotechnik mit dem Taschenrechner
Kirschbaum,
Transistorverstärker
228 Seiten. DM 16,80 Band 1 Technische Grundlagen 3., durchgesehene Aufl. 215 Seiten. DM 17,80 Band 2 Schaltungstechnik Teil 1 3., durchgesehene Aufl. 231 Seiten. DM 18,80 Band 3 Schaltungstechnik Teil 2 2., durchgesehene Aufl. 247 Seiten. DM 18,80 Morgenstern, Farbfernsehtechnik 2., überarbeitete und erweiterte Aufl. 260 Seiten. DM 19,80 Morgenstern, Technik der magnetischen Videosignalaufzeichnung
200 Seiten. DM 17,80
Fortsetzung auf der 3. Umschlagseite
Zu diesem Buch Das Skriptum bringt eine Einführung in die Technik der 8-Bit-Mikrocomputer an Hand des Mikroprozessors 8085 und seiner peripheren Bausteine. An die Darstellung der arithmetischen und gerätetechnischen Grundlagen s~hlie ßen sich die Hardware - und Softwarethemen an . Die Hardware-Linie führt von der Struktur des Mikroprozessors 8085 über den Aufbau von lauffähigen Mikrocomputern zum Anschluß von peripheren Geräten an die Ein - /Ausgabebausteine. Ausgehend vom Befehlssatz des Mikroprozessors werden die 8085-Assemblersprache und die Hilfsmittel zur Programmentwicklung erklärt. Zahlreiche Programmbeispiele und Schaltungsvorschläge ergänzen den Stoff. Den Schluß bilden vergleichende Kurz darstellungen der Mikroprozessoren 8088 und Z80 .
·!
Einführung in die Mikrocomputertechnik Grundlagen Programmierung Schaltungstechnik Von Dipl.-Ing.
Rainer Scholze
Professor an der Fachhochschule DIrn
2., überarbeitete und erweiterte Auflage Mit 174 Bildern, 44 Beispielen und 30 Tafeln
B.
G.
Teubner Stuttgart
1987
Prof . Dipl.-Ing. Rainer Scholze 1940 geboren in Warnsdorf/Sudetenland, Ab itur 1960 in Gunzenhausen/Mfr . Nach der Wehrpflicht St udium der Nachrichtentechnik von 1961 bi s 1966 an der Technisc hen Hochschul e München. 1967 Eintritt in die Firma AEG- Telefunken . Nach eineinhalbjähriger Tätigke it in verschiedenen Bere i chen der Firma ab 1968 Entwicklungsingenieur im Rec hnerbe reic h in Kons tan z , ab 1971 a l s Le it e r e ine s Labors für die Pl anun g von Rechn e r-
Zent raleinheiten. Seit 1974 Dozent f ür Computer- und Mi krocomputertechnik sowie Grundl agen der Elektro t echnik an der Fachhoch schul e Ulm .
CIP- Kurztitelaufnahme der Deuts chen Bibliothek Scholze, Ra iner : Einführung in die Mikrocomputertechnik: Grundlagen, Programmierung, Scha ltungs t ec hnik / von Rainer Scholze . - 2., überar b . u . erw . Aufl. - Stuttgart : Teubne r 1987 (Teubner-Stud i enskript en ; 104 : El ekt rotechnik) ISBN 3-519-10104-1 NE: GT Da s Werk e ins chli eß lich a ll er seiner Teil e ist urheber rech tl ieh gesc hüt zt. J ede Verwertung außerhalb der engen Grenzen des Urheb e rrec htsge se tzes ist ohne Zus timmung
de s Verlages unzulässig und strafbar. Das gil t besonders fü r Verv i e l fä ltigungen, Übersetzungen , Mikroverfilmungen und die Einspeicherung und Verarbeitung in elekt r oni sc he n
Systemen.
© B. G. Teubner Stutt gart 1987 Printed in Ge rmany
Gesamtherstellung: Druckhaus Beltz, Hemsbach/Bergstraße Umschlaggestaltung: M. Koch, Reut lingen
Vorwort Die vorliegende Einführung in die Mikrocomputertechnik ist aus Vor l esungen und Laborpraktika entstanden , die der Verfasser an der Fachhochsch u le Ul m hält. Verwertet wurden auch Er f a h ru ngen a u s der Durchführung zahlreicher Fortbi l du ngskurse und Semi nare für Ingenieure und Techniker aus der Industrie. Obwohl die Hardware - Struktur und die Programmierung des weit verbreiteten Mikroprozessors
8085
und seiner wichtigsten
peripheren Bausteine a l s konkretes Beispiel in praxisnaherForm beh andelt sind , wurde gleichzeitig großer Wert auf eine allge mein gültige Darstellung der Strukturen und Verfahren der Mi krocomputertechnik gelegt. Die Darlegung der arithmetischen u nd gerätetechnischen Grundlagen nimmt einen großen Raum ein . Das Buch beinha l tet eine Einführung in die Assemblerprogrammierung mit vielen kleinen Beispielen, eine Beschreibung der Entwicklungs-Hilfsmittel und den Aufbau von Mikrocomputersystemen. Großes Gewicht wurde auf die grundsätzliche Behandlung der Ein - /Ausgabeschnittstellen und -verfahren sowie deren Rea lisierung mit den Bausteinen der 80 ' er Mikrocomputerrei he gelegt. - Ein Verzeichnis am Ende des Bandes erleichtert das Aufsuchen der Beispiele zur Dualarithmetik und zur Assembler programmierung . Da der Versuch , dem Mikrocomputer - Anfänger eine recht umfassen de Einführung in die 8 - Bit - Mikrocomputertechnik zu einern echten "S tudentenpreis " zu bieten, vorn Markt posi ti v aufgenommen wurde, soll die vorliegende zweite Auflage dem Leser zusätzlich einen ersten Einblick in die 16 - Bit - Mikrocomputerwelt geben . In einern neuen Absc h nitt werden die weiterführenden Eigenschaften des 8/16 - Bit - Mikroprozessors
8088
beschrieben, der auch als lei -
stungsfähigerer Nachfolger des nach wie vor aktuellen 8085 bezeichnet werden kann . Um eine der Alternativen zum 8085 auf zuzeigen , wurde in die Neuauflage eine Kurzdarstell u ng des ZILOG - Mikroprozessors Z 8 0 aufge nommen , der einige über die Kompat i bilität zum 8085 hinausgehende Systemeigenschaften bietet.
- 6 -
Gedacht i st das Skriptum hauptsächlich für Studenten der Informatik und elektrotech nisch er Fac h richtungen an Fachhochschulen und Un iversitäte n, sowi e für Ing e ni eure und Techniker in der be r uflichen Praxis. Es soll nicht die Dat en - und Handbücher der Hersteller ersetzen , sondern die Voraussetzungen f ü r deren Verwen dung schaffen . Für das Verständnis des I n h alts ist d ie Kennt nis d er digitalen Schal tungstechnik erforder l ic h; von Vorteil sind a llg e mei ne EDV -Kenntnisse und/oder Progr ammi erer fahrung. Der Mi k roprozessor 8085 ste h t a ls ausbaufähiges 8-Bit - System am un tere n Ende der 80 ' er Prozessorreihe der Firmen INTEL und SIEMENS, die vom single c h ip - Mikrocomput er bis z u den 16 -Bi tund 32-Bit-Mikroprozessorsystemen reicht . Di e Kenntnis des re lativ einfachen und überschaubaren 8085 ist ei n e wertvolle Basis für das Verständnis der wesentlic h komplexeren 16- und 32 -B it Generation . Die bes chri ebenen peripheren Baus teine (Pu ffe r, seriell e und parallele Ein-/Ausgabe, OMA-Cont ro ll er , Int er ruptControl l er , Zeitge ber) werden bei a ll en Prozessoren der 80 ' er Reihe ei ng esetzt. In die zweite Auf l age sind neu entw ickelt e periphere Ba u steine bzw . Weiterentwicklungen - meist a us An forderungen der 16 - Bit-Systeme entstanden - aufge n omme n bzw . durch Verweise ber üc ksi chtigt worden . An die ser Stelle möch te ich Herr n Dipl. - Ing. (FH) S. Görges , Konstanz für die Durchsicht des Manuskripts und wertvolle An regunge n danken , ebenso der Firma SIEMENS für Hinweise zu ihren a l s Be ispiele in das Skript aufgenomme n en Systemen. Auch das Automatisierungslabor der Fachhochschu l e Ulm sei hier erwähnt , dess en Persona l stets bemüht war und ist, die gerätetechni schen
Vora u ssetzungen für ein zeit gemäß es Arb e iten auf dem
sehr schn e ll e bige n Gebiet der Mikrocomputertechnik z u sc h affen . Dem TEU BNER - Verlag sei für die angene hme Zusammenarbeit gedankt.
Ulm, im Herbst 1987 Rain~r
Scholze
Inhalt 1
Seite
Grundlagen der Mikrocomputertechnik 1.1
11
1.1 .1
Binäre Darste l lung von Information
11
1 . 1.2
1. 2
1.3
11
I n formationsdarstellung Binäre Zahlendarstel l ungen
13
1.1.2 . 1
Dua l zahlensystem
13
1.1.2.2
Darstellung negativer Dualzahlen
17
1.1 . 2 . 3
Oktalzahlen und Hexadezimalzahlen
20
1.1.2.4
Binär codierte Dezimalzahlen
23
1 . 1.3
ASCII - Zentra l code
1.1 . 4
Befehle , Adressen , Operanden, Assembler notation
23 27
Struktur und Arbeitsweise von Mikrocomputern
31
1. 2.1
Funktionseinheiten des Mikrocomputers
31
1 . 2.2
Bus - Architektur von Mikrocomputern
34
1. 2 . 3
Hauptspeicher
37
1 . 2 . 3.1
Organisation des Hauptspeichers
37
1 . 2.3.2
Speicherarten und - technologien
39
1.2.3.3
Aufbau und Schnittstelle von Speicherbausteinen
42
1 . 2.4
Mikroprozessoren
46
1. 2.5
Abläufe im Mikroprozessor
50
1.2 . 5.1
Startvorgang
51
1. 2. 5. 2
Befehlsab l auf
51
1 . 2.5.3
Adressierunq
54
1.2. 6
Ein - /Ausgabe und Peripheriegeräte
59
1.2 . 7
Ergänzungseinheiten
64
Arithmetische und logische Operationen
66
1 . 3.1
66
Addition und Subtraktion von Dualzahlen 1 . 3.1.1 Addition vorzeichenloser Festpunktzahlen
66
1 . 3.1 . 2
Subtraktion vorzeichenloser Festpunktzah l en
67
1.3 . 1.3
Addition und Subtraktion von Zweierkomp l ementzahlen
69
1.3.1 . 4
1.3 . 2
Mehrfachlange Addition und Subtraktion Multiplikation und Division von Dualzahlen
71 72
- 8 Seite 1.3.3 1.4
2
Logische Operationen
76
1.4. 2
80
Programmi ere n in Asse mbl ersprac he
2. 2
2. 3
2. 4
76
1.4.2.1
Maschinencode und Assemblersprache
80
1.4 . 2 . 2
Speicherp l an
81
1. 4 . 2.3
Programmzeilen in Assemblersprache
82
1.4.2.4
Assembleranweisungen
84
1.4. 3
Programmerstel lung mit maschinellem Assembler
87
1.4.4
Höhere Sprachen und Struktogramme
89
Der Mikroprozessor 8085 2 .1
74
Programmieren von Mikrocomputern 1.4.1 Programmanalyse und Programmablaufplan
90
Struktur des Mikroprozessors 8085
90
2. 1. 1
Register - und Transportstruk tur
91
2 .1. 2
Maschinenzyklen und Ab l aufsteuerung
2 .1 .3
Systembus und Ablaufsteuerung
100
2 .1. 4
Signal - Zeitdiagramrne für 8085 - Befehle
107
2 .1. 5 2. 1. 6
Serielle Ein - /Aus g abe l eitungen des 8085 Stackorganisation
110 111
95
Befehlsliste des Mikroprozessors 8085
113
2.2. 1
Übersic htsliste der 8085 -Befe hl e
113
2.2 . 2
8085-0perationscodes in hexadezimaler Versc hlü sselung
113
Beschreibung der 8085 - Befehle
114
2. 3. 1 2.3.2 2 . 3.3 2.3.4
119 124 130 137
Transferbefehle Arithmetikbefehle Logikbefeh l e Sprungbefehle
2. 3. 5
Unterprogramm- Aufruf - und Rückkehrbefehle
142
2. 3. 6 2.3.7
Sonder - und Steuerbefehl e Zur Verarbe itun g von BCD-Zahlen
152
2. 3. 8
Zur Unt erprogrammorganisation
1 52 1 54
Programrn-Unterbrechungssystem 2 . 4 . 1 Programm-Unterbrechung a ll gemein
1 58 1 58
2. 4. 2 2.4.3
161 167
Die Unterbrechu ngssteuerung des 8085 Aufbau von Unterbrechungsprogrammen
- 9 -
Seite 2.4.4
3
1 78
3. 1 3.2
Übersicht Programm- Entwicklung in Assemblersprache (Beispiel)
178
3.3
Monitor - Betriebsprogramm
190
182
3.3.1
Monitor - Kommandos
19 1
3.3.2
Aufbau des Monitor-Programms
195
3 . 3 . 3 Hilfsprogramme des Monitors Mikrocomputer - Entwicklungssysteme
1 99 199
3.4.1
Struktur eines MikrocomputerEntwicklungssystems
200
3.4.2
Grundbegriffe und Bedienhinweise
205
3.4 . 3
Programmtest mit dem Testemulator
210
Aufbau von Mikrocomputersystemen
218
4. 1
218
Mikrocomputer - Konfiguration 4 . 1.1 4.1 . 2
4. 2
4 .3 5
174
Hilfsmittel zur Programm- Entwicklung
3. 4
4
Unterbrechungssystem mit externen Unterbrechungs - Steuerbausteinen
Blockschaltbild für 8085 - Mikrocomputersysteme Realisierungsformen von Mikrocomputern
Anschaltung von Funktionseinheiten an den 8085 - Systembus 4 . 2. 1 Isolierte und speicherbezogene Ein-! Ausgabe
219 221 225 225
4.2 . 2
Auswahl der Funktionseinheiten
227
4 . 2.3
Dekodierung der Speicher - und Ein - ! Ausgabeadresse
230
4. 2. 4 4.2 . 5
Anschluß von 8085 - Spez i albausteinen Die 8080 - Standard- Schnittstelle
Gesamtschaltung eines 8085 - Mikrocomputersystems
235 239 242
Mikrocomputer - Ein - !Ausgabeorganisation
249
5.1
Schnittstellen von peripheren Einheiten 5. 1 . 1
Passive Parallel - Ein-!Ausgabe
250 250
5 . 1.2
Parallele Handshake-Schnittstelle
254
5. 1 . 3
Serielle Ein - !Ausgabeschnittstelle
256
- 10 Seite 5.2
5. 3
5.4
5.5
6
7
Steuerung der Ein-/Ausgabe durch den Mikrocomputer
264
5 . 2 .1
Polling-Verfahren
265
5.2.2
Interrupt-gesteuerte Ein - / Ausgabe
270
5. 2 . 3
Block-Ern-/Ausgabe im OMA-Betrieb
274 , 277
Parallel-Ein-/Ausgabebaustein 8255 5.3.1
Struktur des Bausteins 8255
277
5.3 . 2
Programmier un g des Bausteins 8255
280
5.3.3
Handshake-Schnittstelle des Bausteins 8255
286
5. 3. 4
Anschluß eines Druckers mit CENTRONICS Schnittstelle
291
Serieller Schnittstellen - Bauste in 8251A
295
5 . 4.1
Struktur des Bausteins 8251A
296
5 .4 .2
Programmierung des 8251A im Asynchronmodus
299
Zeitgeber - Baustein 8253
301
5.5. 1
Struktur und Programmierung des 8253
30 1
5.5 . 2
Betriebsarten des Zeitgebers 8253
305
5.5 . 3
Einsatz des Bausteins 8253 als programmierbarer Taktgenerator
308
Der Mikroprozessor 8088 - eine Kurzdarstell ung
312
6.1
Struktur des Mikroprozessors 8088
313
6.2
Segmentierung des Speicherraums
318
6. 3
Befehle und Adressierungsarten des 8088
320
Vergleich des Mikroprozessors Z80 mit dem 8085
322
Anhang Literaturverzeichnis
327
Verzeichnis der Beispiele
330
Sachregister
332
1
Grundlag en der Mikrocomputertechnik
Mit der Erfindung des Mikrocomputers wurde Computerleistung früher i n hohen Stahlschränken voller Leiterplatten verpackt auf Chip-Ebene verfügbar. Mikrocomputer sind Computer
auf
k l einstem Raum ; sie haben den gleichen logischen Aufbau , die gleiche interne Arbe itsweise wie ihre großen Brüder u nd nutzen diese l ben mathematischen Verfahren. In diesem Abschnitt sollen die Grundlagen der Informationsver arbeitung soweit dargestellt werden , wie dies für das Ver ständnis der im folgenden behandelten 8-Bit Mikrocomputer er forderlich ist. Beispielsweise wird die Gleitpunktarithmetik weggelassen , da sie bei kleinen bis mittleren Mikrocomputer anwendungen selten benötigt wird . 1.1
Informatiönsdarstellung
Bevor auf die Verarbeitung der Information und die dafür er forder l ichen gerätetechnischen Einrichtungen des Mikrocomputers eingegangen wird , ist die Darstellung der Information zu klären . Die angegebenen Beispiele beziehen sic h hierbei schwerpunktmäßig auf den Mikroprozessor 8085 . Ausführlich wird die Informat ionsdarstellung in Computern und Mikrocomputern behandelt in 111 1.1.1
121
131 .
Binäre Darstellung von Information
Mikrocomput er sind digital arbeitende Geräte , die ihre Infor mation (Daten) in binären , d.h . zweier Zustände fähigen Elementen speichern und binäre Signale verarbeiten. Entsprechend ist die gesamte Information im Mikrocomputer aus binären Zu standsgrößen oder Binärstellen zusammenzusetzen . Eine binäre Zustandsgröß e kann nach 141 die Binärzeichen 0 und 1 annehmen. Bit ist nach DIN 44300 141 die Kurzform für Binärzeic hen . Sprechweise: Das Bit ist 0, oder : das Bit ist 1. Mit den Bi nä rzeichen 0 und 1 lassen sich zweiwertiqe technische Zustände beschreiben (Tafel 1).
- 12 Tafel 1
Zuordnung der Binärzeichen zu technischen Zuständen
Binärzeichen
Scha lter
Spannung
Flipflop
0
AUS
LOW
rückgesetzt
1
EIN
HIGH
gesetzt
Strom 0 mA 20 mA
Will man die Schaltzustände von 8 Schaltern darstellen , so benötigt man 8 BinärzeichensteIlen (BitsteIlen), die zu einem logischen Binärwort zusammengefaßt werden können . Ein 8-Bit l anges Binärwort wird als Byte bezeichnet. Es ist übli ch , die BitsteIlen eines Binärworts rechts mit Stellen-Nr . 0 beginnend durchzunumerieren (Bild 1) . Legt man die in Tafel 1 getroffene Zuordnung zugrunde , so ist gemäß Bild 1 im 8-Bit Wort der Schalter 3 in EIN - Stellung , der Schalter 4 in AUS-Stellung U$W.
7 6 5 4 3 2 1 0 8- Bit Wort:
10111110111011101
~
Bitste ll en - Nr .
= Schalter-Nr.
16 -Bit Wort: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 __ Bitste11en - Nr.
111011111010101111111110101010111 Bild 1
8 - Bit- und 16 - Bit Binärwort
Im Mikrocomputer werden Binärwörter fester Länge verarbeitet. Die ei nmal festgelegte Wortlänge bestimmt im wese n tlichen die Leistungskl asse eines Mikrocomputersystems . Üblich sind Wortlängen von 4 Bit , 8 Bit, 16 Bit und 32 Bit . Beim Mikrocomputersystem 8085 beträgt die Wort länge 8 Bit (1 Byte). Dan eben können im 8085 auch 16-Bi t Worte , die sich aus 2 Bytes zu sammensetzen, als Einheit angesprochen und verarbeitet werden (Bild 1) . Ein Binärwort ist zunächst nur ei n e Kombination von Binär zeichen (Bitkombination bestimmter Länge) , die im Mikrocomputer vom jeweiligen Verarbeitungszustand abhängig :
- 13 -
* als logisches Wort eine Anzahl von Binärzuständen, z.B. Schalterstellungen, repräsentiert
* eine Zahl in einem vereinbarten Zahlensystem darste l lt (s. Abschn. 1.1.2)
* a l s Zeichen eines zur Textverarbeitung vereinbarten Zeichencodes behandelt wird (s. Abschn. 1.1.3)
* als Maschinenbefehl interpretiert und ausgeführt wird (s. Abschn. 1. 1. 4 ) . 1.1 . 2
Binäre Zahlendarstellung
Das Dezimalsystem mit den Ziffern 0 , 1 , 2,3 .. 9 hat a l s Basis des Zahlensystems die kleinste , gerade nicht mehr in einer Ziffer darstel l bare Zahl 10 . Das Dezimalsystem ist ein po l yadisches Zah l ensystem . Die Ziffernfolge x x x x (Stellenschreibweise) 3 2 l O hat den aus der Potenzschreibweise ersichtlichen dezimalen Wert x 3 ·10
3
+ x 2 ·10
2
+ xl·10
1
0
+ xO·10 .
Ordnet man den Binärzeichen 0 und 1 (Abschn. 1 . 1 .1 ) die Zah l enwerte 0 und 1 zu, so erhält man die Binärziffern 0 und 1. Zahlendarstellungen , die mit einem Ziffernvorrat von zwei ziffern auskommen , sind binäre Zahlensysteme . 1 . 1.2 . 1
Dualzahlensystem. Wendet man das Bildungsgesetz für
polyadische Zahlensysteme auf den Ziffernvorrat 0 und 1 an, so erhält man das Dualzahlensystem mit der Basis 2 . Eine Folge von Binärziffern bzw. Dualziffern x x x x (Stellenschreib 3 2 l O . . . 3 2 welse) hat lm Dualsystem den dezlmalen Wert x · 2 + x · 2 + 3 2 1 0 X ·2 + X ·2 (Potenzschreibweise). Dabei werden die Ziffern l O stellen mit steigenden Potenzen zur Basis 2 gewichtet . Bei ganzen Zahlen stellt man sich das Komma rechts von der Stelle 0 vor: X X X X '. In der Potenzschreibweise 3 2 l O
mit dem Gewicht 2
Beispiel 1: Dual - Dezimal - Umwandlung . Die (vorzeichenlose) Dualzahl a = 1101 2 ist in eine Dezimalzahl umzuwandeln .
8
+
4
+
0
+
1
1 · 8 + 1·4 + 0·2 + 1 · 1 , 10
13
- 14 ist schon die Vorschrift für die Umwandlung ganzer Du a l zahlen in Dezimalzahlen (Beispiel 1 ) enthalten . Beim Arbeiten mit ver sch iede n en Zahlensystemen empfiehlt es sich , die jeweils zugrundeliegende Zahlenbasis a l s tiefge stellten Index an die Zahl anzuhängen (vgl . Beispiel 1) . Bei der Umwandlung von Dezimalzahlen in Dualza hl en prüft man, welche Potenzen zur Basis des Zielsystems - hier Basis 2 in der gegebenen Dezimalza hl enthalten sind . Man beginnt mit der h öchsten ent halt enen Zweierpotenz , subtra hi ert deren Wert von der Dezimalzahl , wie d erholt dasselbe mit dem verbleibenden Rest usw.
(Beispiel 2) .
Bei spiel 2 : De zi mal - Dual -Umwandlung (Subtraktionsmethode) . Die Dezimalzahl a
=
1 65
10
ist in die e nt sprechende Dual za hl
umzuwandeln . 1 65 - 128 = 37 ; 2
3 7 - 32
7
Du a l za hl
2 a
5 - 4 = 1;
5;
5
1 - 1 = 0;
22
2
0
= 1 0 1 0 0 1 0 1 2 ;
Da s beschriebene Verfahren eig n et sich zur Umwandlung von De zimalzahlen in Zah l ensysteme mit be li ebiger Basis . Dasse lbe gilt für die Di vis ionsmethode
(Beispiel 3) . Die Zahl des Ziel -
systems (hi er Dualzahl) entsteht durch die Notierung der Reste Beispiel 3 : Dezimal - Dual -Umwandlung (Divisionsmethode) . Die Zahl a = 366 Basis 366 18 3 91 45 22 11 5 2 1
2 2 2 2 2 2 2 2 2
10
ist in die dual e Dars te llung zu brin ge n .
Quotient
Rest
183 91 45 22 11 5 2 1 0
0 1 1 1 0 1 1 0 1 -
Dualzahl a
1\
MSB t
11
0
1
1
0
I 1
1
LSB 1
oI
L· 20
- 15 bei fortlaufender Division der Dezimalzahl bzw . der entstehen den Quotienten durch die Basis des Zielsystems (hier 2) . Bei dieser Methode wird zuerst das am weitesten rechts stehende least significant bit (LSB) und zuletzt das höchstwertige linksstehende most significant bit (MSB) ermittelt. Zur Darstel lung der dreistel l igen Dezimalzahl benötigt man eine neun stellige Dualzahl. Al lg emein gilt , daß eine Dualzahl etwa 3,3 - mal mehr Stellen hat als die entsprechende Dezimalzahl . Da die Binärziffern der Dualzahl in den binären Elementen des Mikrocomputers einfach abbildbar und Rechenoperationen mit bi nären Ziffern technisch einfach realisierbar sind 151, werden Zahlwerte im Computer fast durchweg als Dualzahlen
darge-
stel l t. In einem 8-Bit langen Register eines Mikrocomputers kann eine 8 - stellige Dualzahl, in einem doppeltlangen Register (Registerpaar) eine 16-stellige Dualzahl gespeichert werden . In Bild 2 sind die Wertebereiche der zwei Zahlenformate für vorzeichenlose , ganze (Festpunkt-) Zahlen angegeben .
0 ... . (2
Bereich: Bitnummer
MSB 7 6
c::-
0
8-Bit Dual zahl
8
5
4
2
3
III
I
/ 1 11
o . ... 255
-1)
1
LSB 0 0
I
/ 1 11
Stellenwert t::::> MSB Bitnummert::::> 15 14 13 12 11 10
c::-
7
6
5
4
3
2
1
LSB 0
I I
21521421321221121029 2 8 2 7 2 6 2 5 2 4 2 3 22 2 1 2 0 Bereich:
Bi ld 2
8
IIIIIIIIIII
16-Bit i5\:iaIZah 1
~~~~len-
9
0 ..... (2
16
_1 ) = 0 .. .. . 65535
Darstellung und Zahlenbereich von ga n zen vorzeichen l osen Dualzahlen
Entsprechend den gebrochenen Dezimalzahlen sind auch die gebrochenen Dualzahlen definiert : a
=
O, x _ l x_ 2 x _ 3 ..
=
x _ 1 · 2 - 1 + x _ . 2- 2 + 2
X_
3
. 2- 3
- 16 Die Umwandlung gebrochener Dualzahlen in gebrochene Dezimal zahl en und umgekehrt sei an Hand der Beispiele 4 und 5 er läutert . Beispiel 4: Dual-Dezimal-Umwandlung von Brüchen. a = 0 , 1101
2
1.2 - 1 + 1.2- 2 + 0 . 2- 3 + 1.2 - 4 = 1 · 0,5 + 1·0,25 + 0 · 0 , 125 + 1·0 , 0625
Die Umwandlung in Beispiel 4 ergibt sich direkt aus der Potenzschreibweise der gebrochenen Dualzahl. Zur Umwandlung von Dezimalbrüchen in Dualbrüche wird die MUltiplikationsmethode angewendet (Beispie l 5). Dabei multipli ziert man den Dezimal bruch mit der Basis 2 des Zielsystems, wobei die sich ergeben de Stelle vor dem Komma die höchstwertige Ziffer des Dualbruchs ist; der gebrochene Rest des Ergebnisses wird erneut mit 2 mul tip li ziert usw. Beispiel 5: Dezima l-Dual-Umwandlung von Brüchen (Multiplikationsmethode). Dualziffer 0 , 452
0;904 0,808 0,616 0,232 0,464 0 , 982 0 , 856
2 2 2 2 2 2 2 2
0,904 1 , 808 1,616 1 , 232 0,464 0,982 1,856 1,712
°11 1
°°1 1
I I MSB
t
I
t
t
LSB
Dualzahl Stellengewicht Der Dualbruch a (Beispiel 5) kann in eine m Register mit 8 Bi närstellen gespeichert werden , indem man sic h das Komma links vor dem Register vorstellt . Die Umwandlung " geht nicht auf ". Wandelt man die erhaltene Dualzahl a = 0 ,01110011 entsprechend Beispiel 4 in einen Dezimalbruch zurück , so erhält man a* = 0 , 4492187
10
• Die Abweichung von der Ausgangszahl a = 0 , 452 10
- 17 ergibt sich , weil die Umwandlung in Beispie l 5 nach 8 Dual stel l en abgebroc hen wurde . Bei Zahlen mit ganzem und gebrochenem Anteil wird gemäß den besprochenen Verfahren jeder Teil für sich umgewandelt und an schließend die vollständige Zahl wieder zusammengesetzt . 1.1.2.2
Darstellung negativer Dualzahlen . Zur Un terscheidung
von positiven u nd negativen Dualzahlen müssen - wie im Dezi malsystem üblich - die Vorzeichen + und - eingeführt werden . In der Vorzeichen - Betragsdarstellung wird der Betragszahl im Dualsystem eine Vorzeichenste i le VZ h inzugefügt , für die festgelegt ist :
o
Dua l zah l
entspricht +,
1 e n tspricht Eine 8- Bit lange
Wertebereich
Dualzahl nach Bild 3 hat den Wertebe -
Bild 3
Vorzeichen-Betragsdarstellung
reich - 1 27 . . .. 0 .. •• + 1 27 .
Für die computer i n terne Darstel lu ng und Verarbeitung von Zah len ist die Vorzeichen - Betragsdarstellung u ngeeignet , da Vorzeichensteile und Ziffernsteilen gesondert behandelt werden müssen. Die Darstellung negativer Zahlen als Komplemente der positiven Zahlen gestattet dagegen eine einheitliche Behandl u n g von Vorzeichen - und Ziffernsteilen im Rec h enwerk des Mikrocomputers und ermöglicht außerdem eine einfache Rückf üh rung der Subtraktion auf die Addition komplementärer Zahlen . Bei de n Dualzahlen unterscheidet man Einerkomplement und Zwei erkomplement . Das Einerkomplement ader Dualzahl a ist die Ergä n zung der Zahl a zur größten darstellbaren Zahl des Zah lenbereichs . Für eine n-stellige Dualzahl gilt a = (2 n - 1) - a. Sc h e matisch entsteht das Einerkomplement im Dualsystem durch bitweise Invertierung der Dualzahl (Beispiel 6) .
- 18 Das Zweierkomplement a
der Dualzahl a ist deren Ergänzung zur 2 n nächsthöheren Zweierpotenz 2 , also zur kleinsten im Zahlenbe-
reich gerade nicht mehr darstellbaren Zahl. Für eine n - stellin = 2 - a . Schematisch 2 bildet man das Zweierkomplement durch bitweises Invertieren ge Dualzahl ist das Zweierkomplement
a
der Dualzahl a (Einerkompleme nt) und ansc h ließende Addition einer 1 (Beispiel 6). Beispi el 6 : Bildung des Zweierkompl e ments . In einem 4-stelligen Dualzahlensystem ist das Zweierkomplement zu a = 5 10 z u bilden . a) durch Subtraktion n 10000 Hilfsgröß e 2 2
n
- a a
16 5
2
11
b) schematisch 2
= 16
10
11000012
10
101011 2
10
01 1011 1 2
10
a =
5
a =
10
+1
a
2
10
10101 1 2
10
110101 2 = + 0001 2
+ 1
11
=
10
11 011 1 2
Einerkomplement Zweierkomplement
In ei n e m 4- stel ligen Dualsystem nach Beispiel 6 ist die nächst4 16 (Hilfsgrösse); das Zweierkomple -
höhere Zweierpotenz 2 ment zu a = 5
ist a 1011 2 = 1110 . Bildet man entsprechend 2 10 das Zweier komplement für a = 5 in einem 8-stelligen Dual10 system , so erhält man 11111011 = 251 . 2 2 10
a
Die Komplementieru ng eines Zahlenkomplements führt wieder auf die Ausgangszahl zurück , wie leicht nachzuweisen ist :
(a 2 )2
=
(2
n
- a)2 = 2
n
-
(2
n
- a) = a;
Trägt man die in 4 BinärsteIl en darstellbaren Dualzahlen 0000
2 bis 1111 2 in einen Zahlenring (Bild 4) ein , so kann man die Dualz ah l en 0000 bis 0111 mit MSB = 0 a ls positive Zahlen 0 bis
~
und die Dualzahlen 1000 bis 1111 mi t MSB = 1 als negative
Zahlen - 1 bis - 8 auffassen . Es lä ßt sich leicht zeigen , daß bei der Zuordnung gemäß Bild 4 die negativen Zahlen die Zweierkomplemente der entsprechenden positiven Zahlen sind. Man vergleiche z . B. das Zweierkomplement der Zahl 5 (Beispiel 6) mit der - 5 des Zahlenrings .
- 19 -
Auch in der Zwei-
10
höchstwertige Bit 11
ner Vorzeichen -
11 00
9- 5
12 ~
-4
\
0) steht rechts
~
15
I
-- ) 1
I
1111
des Betrags. Das Bild 4
01 0 0
len
14 "';:-
1) das Komplement
der Zweierkomple -
+
tive Zah-
''0. - 2
Zahl , bei negati -
Vorzeichen ist in
(
nega -
131
M
~ ~
V
~
0
4
I
5
u
n u
6
m
v
~
0
u
M
m E
~
N
V
~
m X v
~
0 1 0 1 1
1 3
1 1
0 1 1 0 0
1 4
1 2
0 1 1 0 1
1 5
1 3
0 1 1 1 0
1 6
1 4
0 1 1 1 1
1 7
1 5
2 0
1 6
1
0
1 0 0 0 1
2 1
1 7
1
1
1 0 0 1 0
2 2
1 8
1
2
1 0 0 1 1
2 3
1 9
1
3
1 0 1 0 0
2 4
2 0
1
4
I
0 0 0 0
I
B
c V
0
~
C
~
~
E
m ~ ~ v ~ m v
~
D F
--
- 22 In Tafel 2 sind die Dezimalstellen 0 bis 20 in verschiedenen Zahlensystemen angegeben . Ein Binärwort wird in das Oktalsystem gewandelt, indem man von rechts beginnend Dreiergruppen bildet und für jede Dreiergruppe die in Tafel 2 angegebene Oktalziffer hinschreibt . Falls notwendig , ist das Binärwort nach links mit Nullen zu einer vollen Dreiergruppe zu ergänzen (Beispiel 8) . Die so gewonnene Oktalzahl wird zur Kennzeichnung noch mit einem tiefgestellten Index 8 versehen . Bei der Rückumwandlung sind die Oktalziffern durch ihre binäre Verschlüsselung nach Tafel 2 zu ersetzen . Bei spiel 8 : Darstellung von Bi närwort en im Okta l- und Hexa dezimalsystem . 0110101000111110
l6 - Bit Binärwort
r Ergänzung Darstel l ung i m Okta l code Darstellung im Hexadezimalcode
"000110101000111110B
~~~~~'-y--J -
10
6
10
5
7
6 8 = 10 6510 7 62
0110101000111110B
'---y-'~~~-
6
A
3
E 16 =
6A3EH
Ganz entsprechend erfolgt die Umwandlung zwischen Binärworten und Hexadezimalzahlen . Statt Dreiergruppen faßt man hier Vie rergruppen zusammen und kennzeichnet die Hexadezimalzahl mit einem tiefgestellten Index 16 (Beispiel 8). In der ma schinellen Datenverarbeitung bereitet der Umgang mit tiefgestellten Indizes SChwierigkeiten . Zur Kennzeichnung der geltenden Zahlenbasis hängt man deshalb einen Buc hstaben an die Zahl an, und zwar ein 0 für Oktal , ein H für Hexadezimal, ein B für Binär und ein D für Dezimal . Zur Unterscheidung der Ziffer 0 vom Buc hs taben 0 wird die Ziffer 0 üblicherweise mit einem Schrägstrich
I versehen dargestellt : 10 (s. Beispiel 8).
Bei Mikrocomputern geschieht die Ein - /Ausgabe von Programmen und Daten auf maschinennaher Ebene vielfach im Hexadezimalsystem . Ein 8-Bit langes Binärwort im Speicher , z . B. 11110110101 ,
- 23 wird auf dem Bildschirm hexadezimal ausgegeben als E9, eine 16 - Bit - lange Adresse kann in Form von 4 Hexadezimalziffern über die Tastatur eingegeben werden. 1.1.2 . 4
Binär codierte Dezimal zahle n. Da viele Mikrocomputer
eine einfache Dezimalarithmetik durch Befehle unterstützen , soll kurz auf das BCD-Zahlensystem (d.h.
~inary
~oded ~ecimal)
eingegangen werden . Mit dem in Tafel 2 entha ltenen (natürli chen BCD - Code werden die Dezimalziffern
0 bis 9 einzeln binär
verschlüsselt . Zur Unterscheidung von anderen bekannten Zif ferncodes (Aiken - Code , Gray-Code) wird der BCD- Code auch als Dualcode oder B-4 - 2- 1 - Code bezeichnet . Bei der Darstellung einer BCD-codierten Dezimalzahl im Rechner bleibt die Struktur der Dezimalzahl erhalten ; z . B. wird die Dezimalzahl 19B4 intern als Folge von 4 BCD - Ziffern gespeichert : 19B4 = 0001 100 1 1000 0100. Nach der Potenzschreibweise ergibt sich der Wert der BCD-Zahl wie erwartet :
Da in einer Tetrade 16 verschiedene Binärkombinationen 0000 bis 1111 existieren und durch die Dezimalziffern nur die ersten 10 Kombinationen belegt sind , bleiben 6 KOmbinationen ungenutzt, die man Pseudotetraden nennt (Tafel 2). Bei der Verarbeitung von BCD-Zahlen sind durch die Existenz der Pseudotetraden Dezimalkorrekturen erforderlich , die bei der Beschreibung der BOBS - Befehle noch erläutert werden . 1.1.3
ASCII-Zentralcode
In Computern wie in Mikrocomput ern will man in der Regel nicht nur Zahlen , sondern auch Text ein - /ausgeben und verar beiten . Deswegen sind neben den Dezimalziffern
0 bis 9 auch
die Buchstaben des Alphabet s (groß und wahlweise klein) und Sonderzeichen binär zu verschlüsseln . Neben diesem darstellba ren alphanumerischen Zeichenvorrat (Ziffern , Buchstaben , Son derzeichen) müss en im Zentralcode eines Computers bzw . Mikro-
-
24 -
computers noch Steuerzeichen für die Steuerung des Datenaustauschs und der angeschlossenen Peripheriegeräte
definiert
sein . Anders als die darzustellenden Schriftzeichen werden die Steuerzeichen von den peripheren Geräten interpretiert
und
ausgeführt . Beispielsweise bewirkt das Steuerzeichen CR (engl . ~arriage ~eturn)
einen Wagenrücklauf bei druckenden Geräten
bzw . das Rückstel l en des Cursors (= Lichtmarke) an den Zeilen anfang bei Bildschirmen . In der Mikrocomputertechnik wird ausschließlich der aus dem amerikanischen Fernschreibcode hervorgegangene 7- Bit - ASCIICode (Tafel 3) als Zentralcode zugrundegelegt . ASCII ist die Abkürzung für
~erican
Standard Code for Information Inter-
change. Der ASCII - Code wurde als Norm von dem internationalen Normengremium ISO (!nternational
~tandardization
als ISO -7- Bit Code , vom CCITT-Komitee
Qrganization)
(~omite ~onsultatif
International !elegraphique et !elephonique) als CCITT-Nr . S und vom Deutschen Normenausschuß (DNA) in der DIN-Vorschrift 66003 als Norm übernommen 161. Mit der 7- Bit langen Binärkombination b ... b laut Codetabelle 7 l sind 128 Zeichen verschlüsselbar. Die niederwertige Tetrade b b b b (Ziffernteil) wäh l t eine von 16 Zeilen in der Zei4 3 2 l chenmatrix aus , die höherwertigen 3 Bitstellen b b b (Zonen 7 6 S teil) wäh l en eine von 8 Spalten aus und fixieren somit ein Zeichen in der Matrix . I m Mikrocomputer wird ein 7- Bit-ASCII - Zeichen rechtsbündig in einem 8 - Bit - Register oder einer 8-Bit-Speicherzelle gespeichert . Die freibleibende Bitstelle in der hÖherwertigenTetrade wird entweder fest mit
ß
oder zur Datensicherung mit einem
Paritätsbit (engl. parity bit) belegt (Bild 6) . Bei geradzahliger Parität (eng l. even parity) wird die Anzahl der Einsen im ASCII - Zeichen durch ein hinzugefügtes Paritäts bit zu einer insgesamt geraden Anzahl von Einsen ergänzt (s. Beispiel 9) . Das Paritätsbit wird vom Sender z u jedem Infor mationswort erzeugt und hinzugefügt , vom Empfänger geprüft und gegebenenfalls entfernt . Stimmt im Empfänger die vereinbarte Parität nicht, so ist die Information während der Übertragung
- 25 -
Tafe l 3
I
I
b
b
7
6
ASCII-Codetabelle nach DIN 66003 16 1 I n ternationale Referenzversion
:
I
b
5
b
4
b
3
b
2
b
l
b7 -
0
0
0
0
I
I
I
I
b
--
0
0
I
I
0
0
I
I
--
0
I
0
I
0
I
0
I
0
I
2
3
4
5
6
7
b
6 5
I~ hex Zeile
hex
0
0
0
0
0
NUL
DLE
SP
0
@
P
-
P
0
0
0
I
I
SOH
DCI
!
I
A
Q
a
q
0
0
I
0
2
STX
DC2
"
2
B
R
b
r
0
0
I
I
3
ETX
DC3
#
3
C
S
c
s
4
D
T
d
t
0
I
0
0
4
EOT
DC4
* ):(
0
I
0
I
5
ENQ NAK
%
5
E
U
e
u
0
I
I
0
6
ACK
SYN
&
6
F
V
f
v
7
G
W
g
w
0
I
I
I
7
BEL
ETB
-
I
0
0
0
8
BS
CAN
(
8
H
X
h
x
I
0
0
I
9
HT
EM
)
9
I
Y
i
Y
I
0
I
0
A
LF
SUB
*
:
J
Z
j
z
K
[* k
{* I*
I
0
I
I
I
I
B
0
0
C
FF
FS
,
N /
?
0
n 0
-
Fü r die de u tsc h e Referenzversion si n d in der Tabe ll e * ma r kierten Zeichen wie fo l gt zu ersetzen : [ { durch u nd du rc h un d l:l du rc h '\ du rc h durc h @ d u rc h durch durch J durch
1
I
DEL
d ie mi t $ § ß
- 26 ASCII -Zeichen
07 06 05 04 03 02 01 00 ~Bit-Nr. im Datenwort ~ '-------v----" ~ ZonenZiffernoder teil teil Paritybit
=-1
Bild 6
ASCII-Zeichen im Byte
verfälscht worden. Beispiel 9 zeigt einen Text im ASCII-Code ohne und mit Paritätsbit. Neben der geradzahligen ist auch die ungeradzahlige Parität (engl . odd parity) üblich.
Beispiel 9: Textdarstellung im ASCII-Code. Text
l 7 9
~ ~
(SP) U L M
"7 9~~
ULM"
ASC II- Verschlüsselung ohne Paritybit ~-------,
o
binär
0011 0011 0011 0011 0010 0101 010 0 0100
0111 1001 0000 0000 0000 01 01 1100 1101
hex 37 39 30 30 20 55 4C 40
[_rn!:.: _P~::.i~~b~ t_(~ven binär 1011 0011 0011 0011 1010 0101 1100 0100
0111 1001 0000 0000 0000 010 1 1100 1101
parity )
hex B7 39 30 30 AO
55 CC 40
In der Codetabelle (Tafel 3) sind in den Spalten 2 und 3 die Sonderzeichen und Dezimalziffern verschlüsselt. In den Spalten 4 und 5 sind die Großbuchstaben, in den Spalten 6 und 7 die Kleinbuchstaben abgebildet . Tafel 3 gibt die internationale Referenzversion des ASCII - Alphabets wieder; die mit
* gekenn -
zeichneten Bitkombinationen können national unterschiedliche Zeichen zugeordnet werden . Die Besonderheiten der deutschen Referenzversion sind als Fußnote in Tafel 3 angegeben . Welche der in Spalte 0 und 1 definierten Steuerzeichen in pe ripheren Geräten und Datenübertragungseinrichtungen jeweils verwendet werden , ist den Geräte -Handbüchern zu entne h men. Im folgenden sind einige für das Arbeiten mit dem Oatensicht-
-
27 -
gerät wichtigen Steuerzeichen erklärt , im übrigen sei auf 16 1 verwiesen: CR
Wagenrücklauf
LF
Zeilenvorschub (!ine ! eed); Cursor eine Zeile weiter
(~arriage
~eturn);
Cursor an Zeilenanfang
SP
Zwischenraum (space); Cursor e in Schritt nach rechts
BS
Rückwärtsschritt
(~ack ~pace) ;
Cursor ein Schritt zur ück
Di e Steuerzeichen können auf der ASCI I- Standardtastat ur zum Teil durch gleichzeitiges Dr ücken der CTRL-Taste
(~ontro!)
u nd
einer Buchstabentaste erzeugt werden, sofern k eine Steuerzeichen-Taste vorhanden ist. Dabei bewirkt die gedrückte CTRLTaste d as Löschen der Bitstellen-Nr. 7 im Buchstaben-Code . Zum Beispiel können die Steuerzeich en für das Einschalten (DC1) und Ausschalten (DC3) der Bi l dschirm- Ausgabe durch fo lg e nde Tastenkombinationen erzeugt werden : CTRL - Q CTRL - S
1.1.4
DCl DC3
bewirkt Sender einscha l ten } bewirkt Sender ausschalten
X- ONjX- OFF Steuerzeichen
Befehle, Adressen, Operanden, Assemblernotation
Die Auf gaben, die ein Mikrocomputer letztlich ausführt, werden ihm in Form einer Befehlsfolge vom Programmierer vorgegeben . Die zentrale Verarbeitungseinheit des Mikrocomputers , der Mi kropro zessor, interpretiert die einze l nen Befehle der Rei h e nach u n d führt sie nacheinander aus. Hierzu muß die Befehls folge in einem Speicher liegen, zu dem der Mikroprozessor Zugang h at . Zu einem Programm gehören neben den Befehlen auch Operanden. Das si nd Zahlen, l ogische Binärworte und Zeichen gemäß Abschn. 1 . 1 .1, 1.1.2 und 1 .1. 3, die von den Befeh l en verarbeitet werden . Die P l ätze , auf denen Befehle und Operande n im Speicher li e gen, werden durch Adressen (Speicheradressen) identifiziert. Ei n Speicherplatz oder eine Speicherzelle nimmt jeweils ein Byte auf. Adressen sind natürliche Zahlen. Beim 8085 sind Spe icheradr essen 16 Bit lang , d .h. der Adreßbereic h geh t von Obis 65 535 10 (Bytes) , hexadezimal von
~000
bis FFFF.
Sämtliche Befehle, die ein Mikroprozessor eines bestimmten
- 28 -
Typs versteht und ausführt, sind in einer Befehlsliste festgelegt; in der mittleren Leistungsklasse liegt die Anzahl der realisierten Befehle
etwa
zwischen
50
und
150 .
Befehle
gleichartiger Wirkung werden im a llgemein en in Gruppen zusammengefaßt, was die Übersic ht über den Befehlvorrat eines Pro zessors erleichtert. Beim 8085 unterscheidet man folgende Be fehlsfamilien: Transferbefehle übertragen Daten zwisc hen verschiedenen Orten im Mikrocomputer. Arithmetikbefehle verarbeiten Operanden unterschiedlicher Länge (Addition und Subtr aktion). Logikbefehle bewirken logische Verknüpfungen von Operan den. Schiebefehle zum Verschieben von Registerinhalten Sprungbefehle für Programmverzweigungen auf beliebige Speicheradressen Unterprogramm- Aufruf - und Rückkehrbefehle Sonder- und Steuerungsbefehle. Mikrocomputerbefehle können ausführlich, wie folgt,
ange-
schrieben werden: 1. Befehl:
Lade das Register A mit dem Inhalt des Speicher platzes , auf den die Adresse im Befehl zeigt
2. Befehl:
Tran sportiere den Inhalt des Registers A in das Register B
3. Befehl:
Addiere die Zahl 24
10
zum Inhalt des Registers A
Es wird wesentlich kürzer und übersichtlicher, wenn man für die einzelnen Befehle eine mnemotechnische Kurzschreibweise einführt. Sie ist in der Assemblersprache eines Mikroprozessors festgelegt, die zudem noch die Verwendung von symbolischen Adressen statt absoluter Speicheradressen zuläßt. In Bild 7.a sind die drei Befehle in der 8085 - Assemb l erschreib weise 171 wiedergegeben. Die Befehlsfolge beginnt an der symbolischen Adresse START. De r erste Befehl enthält die symboli sche Speicheradresse SPADR, die den Operanden im Speicher bezeichnet , der zweite Befehl spricht 2 Register mit den Regi sternamen A und B an, und im dritten Befehl ist der Operand
- 29 in
dezimaler
Form
im Befehl
selbst
angegeben
(Direktope -
rand) . Für den Mikroprozessor ist die symbolische Schreibweise der Befehle jedoch noch nicht ausführbar. Er versteht Befehle nur in Form binärer Muster. Vor der Ausführung der Befehle durch den Mikroprozessor
muß
deshalb
ein
Übersetzungsvorgang
(Assembliervorgang) stattfinden, der die symbolische n Assemblerbefehle von Bild 7 .a in Bitmuster gemäß Bild 7 . b umwan de lt. Dabei werden die mnemotechnischen Operationscodes (OpCodes) durch ihre Binärmuster gemäß Befehlsliste ersetzt , für a) Befehle in 8085-Assemblerschreibweise Symbolische Adresse ~o:p::-:c:o:d:e~~A:d:r=e:s::s:e:/:o:p:e:r:a:n~d START :
LDA
SPADR
MOV
B, A
2. Befeh l
ADI
24D
3 . Befeh l
1. Befehl
-
b) Befehle im 8085 - Maschinencode (binär und hexadezimal) Op - Code
Adresse/Op'erand
00111010
00000000
hexadezimal: 3A f'/f'/ f'/A
00001010
01000111 11000110
00011000
1. Befehl
47
2 . Befeh l
C6 18
3. Befehl
c) 8085 - Maschinencode im Hauptspeicher (binär und hexadezimal) Abso lute Adresse
Maschinencode binär
f'/5f'/f'/H :
00111010
f'/5f'/lH:
00000000
f'/5f'/2H:
00001010
}
f'/5f'/3H : f'/5f'/4H:
01000111
}
11000110
f'/5f'/5H:
00011000
}
Bi ld 7
~Jaschinencode
hexadezimal
l.
Befehl
{
3A f'/f'/ f'/A
2. Befehl
{
47
3 . Befehl
{
C6 18
Befehle in 8085 - Assemblernotation und 8085-Maschinencode 171
-
30 -
die symbolische Adresse SPADR wird eine natürliche Dualzahl als absolute Speicheradresse des Operanden eingesetzt, die Registernamen A und B machen den dafür festgelegten Bitnummern Platz und der dezimale Operand 24 wird dual verschlüsselt. Wie in Bild 7.b ersichtlich , ist der erste Befehl 3 Bytes (Op- Code und Adresse), der zweite Befehl 1 Byte lang, u nd der dritte Befehl benötigt 2 Bytes für Op-Code und Operand . Es fällt auf, daß die Registeradressen für A und B mit im ersten Befehlsbyte , das den Operationscode enthält , untergebracht werden. Das ist bei vielen Mikrocomputertypen der Fall . Durch die Dekodierung des Operationscodes erfährt der Mikroprozessor , aus wievielen Bytes der aktuelle Befeh l besteht . In einem Speicher, in dem jede adressierbare Zelle ein Byte aufnimmt , sind die 3 Befehle z.B. ab der absoluten Adresse \
ß5ßßH
Byte für Byte angeordnet (Bild 7 . c); der symbolischen
Adresse START wird die absolute Adresse Die
\
~ür
ß5ßßH
zugewiesen .
den Menschen unhandlichen Bitmuster werde n in Pro -
grammprotokollen und bei Ein - /Ausgabevorgängen in der Regel hexadezimal dargestellt (s . Bild 7 . b und 7 . c) .
,
Professionelle Mikrocomputeranwender lassen den eben beschriebenen Assembliervorgang durch ein Übersetzerprogramm (Assembler) automatisch von einem Computer ausführen.
Ein - Byte - Befehl
Op - Code/r
Befehle mit
Zwei - Byte - Befehl
Op - Code/r
Befe h le mit Reg i sterbezug
Konstante
und Direktoperand
Drei-Byte-Befehl
Regist~rbezug
Op - Code/r
Befe hl e mit Registerbezug
Adresse low
und vollständiger
Adresse high
Speicheradresse
Abkürzungen: Op - Code d . h . Operationscode r d.h. Registeradresse Bi l d 8
Befehlsformate des Mikroprozessors 8085 17 1
- 31 Der vollständige Befe hl ssatz des Mikroprozessors 8085 ist in Absch n. 2 . 2 und 2 . 3 beschrieben. In Bild 8 sind die Mög l ic hkeiten des Befehlsaufbaus (Befeh lsf ormate) im Mikroprozessor 8085 in a l lgemeiner Form zusammengestellt.
1. 2
Struktur und Arbeitsweise von Mikrocomputern
1.2.1
Funktionseinheiten des Mikrocomputers
Der Mensch als Informationsverarbeitungssystem nimmt In forma tion aus seiner Umgebung auf, speichert und verarbei tet sie un d gibt die Ergebnisse bei Bedarf weiter. Er f üh rt damit die 4 Grundfunktionen der Informations- oder Datenverarbeitung aus: EINGEBEN
SPEICHERN
VERARBEITEN
AUSGEBEN
Setzt man automatisc h e Informationsverarbeitungssysteme ein , dann übernehmen diese die Steuerung
und
Ausführung
der v ier
Grundfunktionen. Der Mensch wird in die Rolle des Bedieners gedrängt. Die elektronische Ladenwaage ist ein gut übersc haubares auto ma tisches Datenverarbeitungssystem (Bild 9) , das die
Grund-
funktionen selbständig ausf ühr t : Es liest das ermittelte Gewicht vom externen mechanischen Wiegesystem ein und erhält den Grundpreis der Ware vom Bediener über die Dezimaltastatur; es Dezimal tastatur
Matrixdrucker Steuerung
-1- -- - - -,-, Ver , arbeitung
, I
~-------I . , I Spel-
I cherung Wieg esystem Bild 9
, I
Mikrocomputersystem
Siebensegmentanzeige
Elektronische Ladenwaage als Datenverarbeitungssystem
-
32 -
speichert diese Daten, führt den Verarbeitungsvorgang Preis Gewicht x Grundpreis aus und gibt den Prei s der abgewogenen Ware über die externen Ausgabeeinrichtungen Siebensegmentan zeige und Matrixdrucker aus. Weitere Datenverarbeitungsvorgänge können nach Bedarf vera nlaßt werden , z.B. die Summierung mehrerer Einzelposten
zu
einem Gesamtbetrag . Die Steuerung und Ausführung der Funktio nen gemäß Bild 9 übernimmt heute ein in die Waage eingebautes Mikrocomputersystem . Eine Weiterentwicklung stellt das Kassenterminal (in Kaufhäusern) dar, das im al l gemeinen eine Strichcode - Leseeinrichtung besitzt und zum Datenaustausch mit einem zentralen Computer verbunden ist. Der Begriff Mikrocomputer umfaßt alle Hardware-Komponenten eines Systems mit Au snahme der peripheren Geräte (Matrixdruk ker , Tastatur , Wieg esystem usw . ) ; er e ntspricht der Zentraleinheit gemäß DI N- Norm 44300 14 1. Den Grun dfunktion en i n Bi ld 9 entsprechend besteht
der
Mi-
krocomputer aus 3 Funktionseinheiten , dem Mikroprozessor als ze n traler Verarbeitungseinh eit , dem zentralen Speicher (Haupt speicher) und den Ein - /Ausgabekanälen (Bild 10) . Unter ei n em Mikrocomputersystem versteht man den zentralen Mikrocomputer und die angeschlossenen peripheren Einheiten sowie die erforderliche Software (Bild 10) . Als Software bezeichnet man die Gesamtheit der Programme , die a u f einem Computer bzw. Mikrocomputer ablaufen . Die peripheren Einheiten (PE) umfassen sämtliche Ein - /Ausgabegeräte (z.B Da tensichtgerät, Tastatur , Drucker, Digital-Ein - /Ausgabe , Ana log - Ein - /Ausgabe) und die peripheren Speicher (z . B . Floppy Disc , BUbble - Speicher , Kassettenspeicher). Diese sind vom Hauptspeicher innerhalb des Mikrocomputers zu unterscheiden . Nach Bild 10 stehen die Funktionseinheiten über Datenpfade mitei n ander in Verbindung . Über die Ein - /Ausgabekanäle werden Daten (Befe hl e und Op eranden) von den Eingabegeräten gelesen
- 33 und in den Mikroprozessor übertragen. Der Mikroprozessor verarbeitet Programme, d.h. er holt Befehle aus dem Hauptspeicher und führt sie aus; er überträgt Operanden in den Speicher , die dieser aufbewahrt, und liest sie bei Bedarf wieder aus. Die Ausgabe von Daten erfolgt vom Mikroprozessor über die Ein - / Ausgabekanäle zu den Ausgabegeräten. Größere Datenmengen werden auf peripheren Speichern abgelegt; von dort müssen sie vor ihrer Verarbeitung im Mikroprozessor in den Hauptspeicher geladen werden. Der in Bild 10 gestrichelt eingetragene Datenpfad zwischen Speicher u nd Ein-/Ausgabekanälen ermöglicht eine direkte Daten-Ein - /Ausgabe vom/zum Mikrospeicher unter Umgehung des Mikroprozessors (engl. direct
~emory ~ccess ,
DMA).
r--------, r-I rI I
H I I I I
I I
I I
Hauptspeicher RAM/ROM '-----;'~---...I
Mikro prozessor
I I
')vi' I I I I I I
L ~=
Bild 10
I
s= I I I I I
PERIPHERE EINHEITEN (Ein-/Ausgabe, Speicher)
I Ein - /Aus gabe kanäle
Funktionseinheiten eines Mikrocomputersystems
In Tafel 4 sind übliche Begriffe für Mikrocomputer-Funktions einheiten und ihre Abkürzungen zusammengestellt. Sie entspre chen im wesentlichen DIN 44 300.
- 34 Tafel 4
Bezeichnungen und Abkürzungen für MikrocomputerFunktionseinheiten
deutsch Mikrocomputer MC,
englisch
~C
---------------------Microcomputer MC
Zentraleinheit ZE Mikroprozessor MP,
~P
Microprocessor MP
Zentralprozessor ZP
Central Processing Unit CPU
Hauptspeicher HSP
Main Memory
(Mikro-) Speicher
Memory
Ein-/Ausgabekanal EA-Kanal
Input/Output Channel IOC Input/Output Port IO - Port
Ein-/Ausgabeprozessor EAP
Input/Output Processor IOP
Periphere Einheit PE
Peripheral Unit PU
Mikroperipherie Peripheres Gerät
1 . 2.2
Peripheral Devic e
Bus-Architektur von Mikrocomputern
Bei Mikrocomputern sind die Funktionseinheiten meist durch Busleitungen mit e inander verbu nden. Bild 11 zeigt die typische Architektur eines Mikrocomputers. Ein Bus besteht aus einer Anzahl Sammelleitungen, an die alle Funktionseinheiten des Mikrocomputers angeschlossen sind. Ein Busteilnehmer kann abhängig von seiner Funktion am Bus Sender, Empfänger oder beides sei n. Für jede Busleitung gilt, daß zu einer Zeit nur ein Sender aktiv sein darf; alle übrigen Sender müssen abgeschaltet sein. Bei den fast durchweg üblichen Tri State - Bussen in TTL-Technik müssen daher alle Sender ausgänge - mit Ausnahme des aktiven - hochohmig sein. Die Information auf einer Busleitung kann von mehreren Bus - Empfängern gleichzeitig übernommen werden . Das Buskonzept stellt die ei nf achste Möglichkeit dar, viele Funktionseinheiten miteinander zu ver binden . Eine sternförmige Verbindung der Funktionseinheiten wäre wesentlich aufwendiger. Die Leistungsfähigkeit eines Bus systems ist jedoch insofern beschränkt, als zu einer Zeit -
- 35 -
wäh re nd e in es Buszyklus - nur eine I nformationseinheit zwi sche n 2 Bu steilnehmern übertragen werden kann. Im Systemb u s eines Mikroprozessors sind alle Busleitungen de finiert , d i e für die Übertragung von Daten zwischen den ange s ch lossenen Funktionseinheiten benötigt werden . Er besteht aus 3 Tei l b u ssen : Datenbus , Adre ßbus u n d Steuerbus (s . Bil d 11) .
Systembus Datenbus D7 - 0 Mi kro p r ozessor
I
8 Bit
1'1 Adressenbus AIS1"l'0
16 Bit
1'1
I
MP
Ste uerb us
II
I Takt
Haupt speicher
B
I ROM I
r
Ei n- !Ausgabe kanäle
Ergänzu ngs einh eite n:
GJQ~
- Ti mer - In ter rup t - Ar ithme tik
Ein - !Ausg abe Schnittstel l e n v
Perip here Einheiten Bi l d 1 1
Struk tur ei nes 8 - Bit Mikrocomputers
Der Date n bus ist beim 8-Bit- Mikroprozessor 8 Bit breit
(D7 - ~) ,
so daß während eines Buszyklus ein Byte parallel übertragen werde n kann . Der Datenbus ist bidirektional , d.h. der Date ntra n sfer erfolgt - abhä ngig von der Art des Buszyklus - wahlweise in e i ne der beide n Ric h tungen (vom Mikrop rozessor weg , bzw. z um Mikroprozessor hin) . Üb er den Adreßb u s Überträgt der Mikroprozesso r die aktue ll e Adresse einer Speichereinheit , eines Ein - !Ausgabekana l s oder eines Ergänzungsbausteins (Bild 11) . Der Adreßbus ist unidi -
- 36 rektional, d.h . die Adresse wird stets vom Mikroprozessor (als Sender) aufgeschaltet und von den übrigen Busteilnehmern empfangen. Bei einem 16 - Bit breiten Adressenbus
(A15 - ~)
sind 64 K
Adressen ansprechbar . Durch die Dekodierung eines Teils der Adreßleitungen werden Se l ektionssignale gebildet , die jeweils einen der passiven Busteilnehmer auswählen und aktivieren . Sämtliche Steuer - und Meldeleitungen , die für den Betrieb der Speicher, der Ein - /Ausgabekanä l e un d Erweiterungsbausteine notwendig sind , faßt man im Steuerbus (engl. control bus) zusammen, obwohl manche Steuersignal e nur für einzelne Busteil nehmer relevant sind. Die wichtigsten Steuersignale
si nd
Schreib - und Lesesignale . Sie sagen der adressierten Speicheroder Ein-/Ausgabeeinheit, ob sie ein Informationsbyte auf den Datenbus legen (Funktion Lesen bzw . Eingeben) oder die auf dem Datenbus stehende Information übernehmen
soll
(Funktion
Schreiben bzw. Ausgeben) . Di e Steuerleitungen sind großentei ls unidirektional . Der Steuerb u s des Mikroprozessors 8085 wird im Abschnitt 2 .1. 3 erk l ärt . Die dominierende Stellung des Mikroprozessors am Systembus nach Bild 11 beruht darauf , daß der Mikroprozessor oft der ei nz ige aktive Bustei ln ehmer ist: er betreibt den Bus; schaltet Adressen und Steuersignale a uf und veranlaßt
er die
passiven Busteilnehmer (Speicher, Ein-/Ausgabekanäle , Ergän zungsbausteine) zu bestimmten Reaktionen . Die passiven Funktionseinheiten am Bus können Baugruppen , einzelne hochintegrierte Bausteine oder einfache Pufferbausteine sein, deren Anzahl vom Ausbau des Gesamtsystems abhängt. Die Ergänzungseinheiten stellen im wesentlic h en eine Erweiterung der Pro zessoreigenschaften , z.B . des Interruptsystems oder der Arith metik-Hardware dar . Aufwendigere Mikrocomputer-Konfigurationen erhält man, wenn mehrere (aktive) Mikroprozessoren
an einem Systembus zusam-
menarbeiten und sich bei einer zentralen Bus - Zuteilungslogik um die zeitlich begrenzte Regie über den Systembus bewerben (Multi-Mikrosysteme) . Auch beim OMA- Betrieb (vgl.
Abschn.
-
37 -
1 . 2.1) von schne ll en peripheren Speichern erhält ein DMA- Controller als aktiver Busteilnehmer für die Dauer des Datenaus tauschs die Regie über den Systembus. Der Mikroprozessor hängt sich inzwischen vorn Systembus ab, indern er seine Ausgänge
in
den hochohmi gen Zustand schaltet. Der Systembus ist die Schnittstelle des Mikroprozessors zu den übrigen Komponenten des Mikrocomputersystems. In der vorn Prozessortyp abhängigen Busdefinition ist neben der Anzahl und Bedeutung der Signalleitungen auch der zeitliche Ab l auf der Buszyklen festge l egt . Darüberhinaus gibt es Standardbusse für Mikrocomputer-Platinensysteme, z.B. MULTIBUS oder VME -Bus, die verschiedene Funktionseinheiten über die Rückwandverdrahtung des Baugruppenträgers miteinander verbinden .
1.2 . 3
Hauptspeicher
Die folgenden Betrachtungen beziehen sich auf Speichereinhei ten , die als Teil des Mikrocomputers direkt an den Systembus a n gesch l ossen sind (Bild 11) . Nach
14 1 zeichnen sich Haupt -
speicher dadurch aus , daß Zentralprozessoren und bestimmte Ein - /Ausgabeeinheiten
die
einze ln en
Speicherplätze
durch
Adressen (Speicheradressen) unmittelbar aufrufen können. Statt Hauptspeicher werden auch die allgemeineren Begriffe Zentralspeicher und Speicher verwendet. Nach Abschn. 1.2 .1 muß die aktuell im Mikroprozessor z u verar beitende Information im Hauptspeicher stehen . Stehen Programme und Daten auf peripheren Speichern (Hintergrundspeichern) , so müssen sie vor ihrer Bearbeitung in den Hauptspeicher geladen werden. 1. 2.3.1
Organisation des Hauptspeichers. Di e kleinste adres-
sierbare Einheit des Hauptspeichers ist das binäre Speicher wor t, das in einer Speicherzelle oder einern Speicherplatz steht. Bei 8 - Bit Mikroprozessoren ist das Speicherwort im all gemeinen ein Byte lang. Informationseinheite n, die l ä nger sind als 8 Bit , werden in zwei, drei oder vier aufeinanderfo lgende
- 38 Speicherplätze gelegt. Nach Bild 12 ist jedem 8 - Bit - Speicherplatz einer Speichereinheit eindeutig eine Speicheradresse zugeordnet. Der Umfang des verfügbaren Speicher- Adressenraums n hängt von der Bitanzahl der Speicheradresse ab. Da Speicher einheiten an den Systembus des Mikroprozessors angesch l ossen werden, bestimmt die Breite des Adressenbus (vgl. Abschn. 1.2.2) die Anzahl der adressierbaren Hauptspeicherplätze. Ein 16 - Bit breiter Adressenbus erschließt einen Adressenraum von 16 64 K Worten mit Adressen von 0 bis 2 - 1 bzw. 0 bis 64 K - 1, wobei 1 K = 2 10 = 1024. Adressenbus
Wort-Nr .
+7
o
AlS v
lc:::J
o
n~-> Datenbus
o
D 7
2 1 0 ~ Bit - Nr. Wort 0
1
Wort 1
2 3
Wort 2 Wort 3
4
Wort 4
n - 2
-
~
n - l~
-
Lesezyklus Bild 12
-
fJ
Schreibzyklus
Wortstruktur des Hauptspeichers
Vom Adressenraum zu unterscheiden ist der tatsächlich mit Speicherbausteinen bestückte Teil des verfügbaren Adressen raums, die Speicherkapazität. Die Hauptspeicherkapazität - ge messen in KB = K Bytes - ist ein wichtiges Kriterium für die Beurteilung der Leistungsfähigkeit eines Mikrocomputersystems. Die Größe der verwendeten Speicherbausteine bestimmt die
mög-
lichen Ausbaustufen des Hauptspeichers. Verwendet man 2.B . Bausteine mit 2 KB Umfang, so kann der verfügbare Speicher Adressenraum nach Bedarf in Stufen von 2 K Bytes ausgebaut werden (s. Bild · 13).
- 39 Wird eine Speichereinheit vom Bus her ausgewählt , so kann in einem Speicherzyklus ein Byte vom Datenbus in die durch die Adresse ausgewählte Speicherzelle eingeschrieben (Speicher Schreibzyklus) oder in einem Speicher - Lesezyklus ein Byte aus dem Hauptspeicher ausgelesen und auf den Datenbus geschaltet werden . Während des Speicherzyklus muß die gültige Adresse am Speicher anstehen. Welche Zyklusart auszuführen ist, erfährt die Speichereinheit durch die Interpretation des Lese-Steuersignals
READ
und des Schreib- Steuersignals
WRITE.
Näheres
hierzu in Abschn. 1.2.3.3. Als Hauptspeicher sind nur Speichereinheiten mit wahlfreiem Zugriff einsetzbar , d.h. der direkte Zugriff auf beliebige Adressen innerhalb des Adressenraums muß ohne Einhaltung einer bestimmten Adressenreihenfolge (sequentieller Zugriff) möglich sein. 1. 2. 3. 2
Speicherarten und -technologien. Hauptspeicher von
Mikrocomputern werden fast ausschließlich als Halbleiterspei cher in verschiedenen MOS-Technologien tor) realisiert. Von
(~etal
oxid semiconduc -
den Zugriffsmöglichkeiten her unter -
scheidet man Schreib - /Lesespeicher und Festwertspeicher . SChreib-/Lesespeicher zur Speicherung veränderlicher Daten sind im normalen Betrieb lesbar und beliebig oft beschreibbar. Sie werden als RAM (
~andom ~ccess
~emory)
bezeichnet , was im
Deutschen "Speicher mi t wahlfreiem Zugr iff" bedeutet. Es gibt statische RAMs , deren Speicherelemente Flipflops sind, und dy namische RAMs, bei denen die Binärinformation in den Gate-Sub stratkapazitäten von MOS-Feldeffekttransistoren gehalten wird . Beide Speicherformen vergessen bei Abschalten der Versorgungsspannung ihren Speicherinhalt . Der Festwertspeicher verliert seine einmal eingeschriebene In formation beim Abschalten der Versorgungsspannung nicht . Er kann im Normalbetrieb nicht beschrieben, sondern nur gelesen werden und heißt daher ROM
(~ead ~nly
~emory).
Der Zugriff auf
einzelne Worte ist auch hier wahlfrei. Der Festwertspeicher
- 40 wird zur Speicherung von Programmen und Konstanten im Mikro computer eingesetzt , die man nicht nach jedem Abschalten der Spannung neu eingeben will. Das Einschreiben der Information ist ein gesonderter Vorgang , der entweder schon bei der Herstellung des Speichers stattfindet (maskenprogrammierte ROM Bausteine) oder vom Anwender in speziellen Programmiergeräten vorgenommen wird (PROM - und EPROM-Bausteine , d .h. Erogrammable ROM und steine
~rasable
(~lectrically
Erogrammable ROM). Für die EEPROM-Bau~rasable
PROM) benötigt man weder eigene
Programmiergeräte noch UV-Löscheinrichtungen wi e für EPROMs. dezimal
hexadezimal
odoo
ßßßß
2047 2048
ß7FF ß8ßß
4095 4096
ßFFF lßßß
614 3 614 4
17FF 18ßß
8191 8192
lFFF 2ßßß
63488
F8ßß
65535
FFFF
Bild 13
4 KB ROM/EPROM
2 KB frei
Adreßra um
2 KB RAA
64 KB
frei
Beispiel für Adreßraum und Speicherausbau
Festwertspeicher und Schreib-/Lesespeicher können im Mikrocomputer nach Bedarf nebeneinander eingebaut werden. In Bi l d 1 3 ist ein Beispiel für den Speicherausbau eines Mikrocomputers mit 2- KB-RAA- und ROM-Bausteinen gegeben . Man beachte die Ge genüberstellung der dezimalen und der bei Mikrocomputern übli chen hexadezimalen Zählweise. Da die Halbleiter-Herstel l er zu den gängigen EPROM-Bausteinen (z.B. Typ 2764 mit 8 K x 8 Bit) statische RAA - Bausteine mit nahezu identischer Belegung der Bausteinanschlüsse (z.B. Typ HM 6264 mit 8 K x 8 Bit) liefern, kann derse l be Sockel
in
- 41 einer Mikrocomputer-Schaltung (nach Umstecken weniger ' An schlüsse) mit EPROM - oder RAM - Bausteinen bestückt werden . In der Entwicklungsphase werden als Programmspeicher bevorzugt EPROM-Bausteine eingesetzt , die der Entwickler durch UV-Bestrahlung selbst löschen und mit geeigneten Programmiergeräten erneut beschreiben kann. Beim Übergang zur Serienfertigung können die EPROM -B austeine durch PROM - oder ROM - Bausteine er setzt werden, deren Inh alt nicht mehr korrigierbar ist. Ohne hier eine vo l lständige Übersicht über die aktue llen Bausteintypen und Technologien geben zu können 15711581, sind in Tafel 5 einige viel verwendete Speicherbausteine zusammenge stellt . Die Tafel zeigt die Steigerung der Integrationsgrade bis
1 M Bit pro
Baustein , womit sicher nicht das Ende der
Speicherentwicklung erreicht ist. Die SChnittstellensignale Tafe l
5
Auswahl aktueller Speicherbausteine (1987) Speicherart
Typ
Techno logie
Zugriffs - Hersteller zeit
4 Kx 4
RAM STAT I C
2168
NMOS
100 ns
INTEL
2 Kx 8
RAM STATIC RAM STATIC EPROM EEPROM
2128 HM6116 2716 2816
NMOS CMOS NMOS NMOS (H)
1 50 120 350 250
INTEL HITACHI AMD INTEL
Organi sation
ns ns ns ns
4 Kx 8
EPROM
2732A
NMOS (H)
200 ns
INTEL
8 Kx 8
RAM STATIC EPROM EPROM ROM
HM6264 2764A R87C64 TC5365
CMOS NMOS ( H) CMOS CMOS
100 200 250 250
HI TACHI INTEL ROCKWELL TOSHIBA
64 K x 1
RAM STATIC RAM DYNAMIC
j.lPD4361 M5K4164
CMOS NMOS
40 ns 1 50 ns
NEC MITSUBISHI
16 K x 8
EPROM ROM
27128 23C 128
NMOS (H) CMOS
200 ns 150 ns
INTEL NEC
32 K x 8
EPROM RAM STATIC
27C256 CHMOS j.lPD43256 CMOS
170 ns 100 ns
INTEL NEC
120 ns
HITACHI
100 ns
S IEMENS
256 K x 1
RAM DYNAN I C
HM50257
IMx l
RAM DYNAMIC
HYB511000
Abk.:
NMOS
(H) d .h. HMOS - Technologie von INTEL
ns ns ns ns
- 42 der Bausteine sind - unabhängig von der angewandten Technolo gie - TTL-kompatibel. Die Versorgungs spannungen sind bis auf wenige Ausnahmen einheitlich + 5 V. Bei höheren Integrations graden gehen viele Hersteller von der NMOS - Technologie auf die wesentlich verlustärmere CMOS-Technologie über , da bei stei genden Integrationsgraden die Verlustleistung pro Bit gesenkt werden muß . Statische RAM - Bausteine sind in der Anwe ndung einfacher als dynamische RAMs, da sie keine Refresh - Logik zum zyklischen Er neuern der flüchtigen Speicher inhalte benötigen. Trotzdem wer den dynamische RAM-Bausteine wegen ihres niedrigen Preises pro Bit viel eingesetzt . Zu allen EPROM-Bausteinen sind schnittstellengleiche, masken programmierte ROMs lieferbar. Die neueren EEPROM-Bausteine er fordern für den zeitaufwendigen Lösch - und Schreibzyklus (la ms/Byte beim Typ 2816) im Vergleic h zu den EPROMs zusätz liche Schaltungsmaßnahmen. Die Weiterentwicklung der EEPROM - Techno logie könnte langfristig die RAM - und ROM/EPROM - Bausteine er setzen 1.2 . 3 . 3
1581. Aufbau und Schnittstelle von Speicherbausteinen.
Hauptspeicher von Mikrocomputern können aus einem oder mehreren hochintegrierten Speicherbausteinen bestehen. Beim Zusammenschalten mehrerer Bausteine werden aus den höherwertigen Bitstellen der Speicheradresse AlS (~hip ~elect - Signale
Z die Freigabesignale
CS, low active) für die einze lnen Bau-
steine gewonnen (s. Abschn. 4.2.2 und 4.2.3), während die nie derwertigen Adreßbits zur Auswahl der Speicherworte innerhalb des Bausteins direkt an den Sc h altkreis anzu l egen sind . Bild 14 zeigt die interne Struktur eines statischen Lese - /Schreib Speicherbausteins mit der Kapazität 2 K x 8 Bits . Die einzel nen Speicherelemente (Bitspeicher) werden durch Koinzidenz von Zeilen- und Spaltenleitungssignalen
ausgewählt , die sich aus
der internen Dekodierung der 11 Adreßleitungen AIO Die Daten l eitungen D7 -
~
ergeben.
0 sind im Ruhezustand hochohmig und da -
mit vom Datenbus abgekoppelt . Die Datensender im Baustein wer -
- 43 den nur aktiviert, wenn der eS-Eingang und das Lese-Steuersig nal RD
(~ea~)
auf low - Pegel geschaltet werden: es liegt ein
Speicher- Lese zyklus vor. Nehmen das eS - Signal und das Schreib Steuersignal WR (write) low - Pegel an , werden die Datenempfän ger im Baustein aktiviert : in einem Speicher- Schreibzyklus wird das Datenwort vom Bus in ein Speicherwort eingeschrieben .
AO A3 AS AG
1 1 1
A7
1 1
A8
1
Ag
1
X/Y
Speicher Zei len deko die rer
matrix 128 x 1 28
........ DO Dl D2 D3 D4 D5 D6 D7
SpaltenEin-/Ausgabe
WR es RD
Bild 14
Struktur eines RAM - Bausteins (Organisation 2 K x 8)
Bei EPROM - Bausteinen gibt es statt der Daten - Eingabesteuerung eine Programmier logik und statt des Schreib - Steuereingangs WR einen Programmiereingang . In ROM-Bausteinen sind keiner l ei Vorkehrung e n für Dat e n - Eingabe zu finde n, es gibt auch keine
- 44 Lese-/Schreib - Steuerleitungen. ' Aufbau und Daten verschiedener Speicherba u steine sind in 1541 gegebe n. Die exakte Beschreibung des Lese- und Schreibvorga n gs an der Schnittstelle von Speicherbausteinen erfolgt mit Hilfe
von
Signal - Zeitdiagrammen (Bild 15 und 16) . Sie sind die Grundlage für den Anschluß von Speicherbausteinen an den Systembus des Mikrocomputers . Die Einhaltung der Min . -/Max .- Zeitangaben in der angefügten Tabelle sichert der Herstel l er zu . Beim Lesezyklus (Bild 15) müssen die Adressen insgesamt minde ste n s 150 ns (t 150 ns (t
) anstehen . Nach der Zugriffszeit von max . RC ) bzw . nach tCE (max. 150 ns) bzw. nach t OE (max .
ACC 50 ns) legt der Baustein 2128 den Inhalt der adressierten
f - - - - - - t RC - - - --
--1
Adresse
RD (OE) D7 - 0 (D out ) ----/7---~~[:JD~a~t~e~n~g[u~ ·· Il!tIi~9~~~~~-hochohmig (HZ) '-..:.. Daten undef iniert Y Einige , vom Hersteller garantierte Zeit - Parameter (Bsp Symbol
Parameter
min .
2128) : max.
-
t RC t ACC
Read Cycle Time (Lese - Zykluszeit) Address Access Time (Zugriffszeit)
150 ns
tCE t OE t OH t OHZ t CHZ
Chip Select Access Time
150 ns
Bild 15
150 ns
50 ns
Output Enable Time Output Hold Time from Address Change
0
-
Output in HZ (hochohmig) from OE
-
50 n s
Output in HZ (hoc h o hmig) fro m CE
Lesezyklus für RAM-Baustein (Daten 2128 1541)
50 ns
- 45 Byte - Zelle auf die Datenleitungen D7
-~ .
Er schaltet sie nach
den angegebenen Haltezeiten erst wieder ab , wenn sich Adressen ändern und die Steuersignale CS und OE
(~utput
die en-
able) inaktiv werden. Das Schreib-Steuer signal WR liegt wäh rend des Lesezyklus auf hi·gh - Pegel. Auch beim Speicher - Schreibzyklus (Bild 16) muß die gültige Adresse insgesamt mindesten 150 ns (t
)' bzw. mindestens 150 wC ns (t AW ) lang bis zur Beendigung des Schreibzyklus durch Ab schalten der Steuersignale CS (= CE) oder WE (WR) anstehen .
Der Speicherbaustein schaltet die internen Daten- Eingangspuf fer zur Übernahme des Informationsbytes vom Datenbus ein , wenn die beiden Steuersignale CS und WR aktiviert sind . Während der
t
wc
Adresse t
Ch"fl~t-\
--rO''( - ,J ' 0 1
'{
S-
~
-
86 -
Anweisung der Anfangsmarke ADDSA die physikalische Adresse l"'H zu , an der der erste ausführbare Befehl " LXI SP, l FFFH " beginnt . Fehlt die ORG - Anweisung , dann geht der Assembler nac h 171 von der Anfangsadresse , aus . Die "END "- Anweisung am statischen Ende eines Quellprogramms zeigt dem Assembler das Programmende an . Die Anweisung " name EQU expr " (engl. equates) weist dem Namen im Markenfeld den für die Laufzeit des Programms konsta n ten Wert von expr zu; expr kann ein konstanter B- Bit-Wert oder eine 16 - Bit-Adresse sein 171 . Der Ausdruck expr im Operanden feld kann eine Zahl in einem zulässigen Zahlensystem oder ein vom Assembler zu berechnender arithmetischer Ausdruck sein . Die EQU - Anweisung definiert keine Speicherzelle ; der Name im Markenfeld darf nicht mit einem Doppelpunkt abgeschlossen wer den . Für die zwei Programmzeilen von Bild 41 NMOUT
EQU CALL
'7"H NMOUT
setzt der Assembler im Maschinencode hexadezimal ab : CD " CD ist der Operationscode des Aufrufbefehls CALL , "
'7 .
ist das
niederwertige und '7 das höherwertige Byte der Adresse . Nach Bild 39 sollen die fünf Operanden im Hauptspeicher im Anschluß an die auszuführende Befehlsfolge abgelegt werden . Die DB - Anweisung (engl.
~efine ~yte)
" [marke :] DB operanden " legt
die im Operandenfeld definierten Bytes ab der symbolischen Adresse marke in aufeinanderfolgenden Speicherplätzen ab . Eine DB-Anweisung kann bis zu acht , durch Kommata getrennte Bytes belegen. Die physikalische Anfangsadresse der definierten Daten ergibt sich aus dem Stand des Adreßpege l s während der As semblierung an dieser Stelle. Der aktuelle Adreßpegel zeigt dem Assembler stets die nächste verfügbare Speicherstelle zur Ab lage von übersetzten Befehlen oder Daten an (s. Abschn . 1 . 4 . 3) . In Bild 41 wird der Adreßpegelstand nach dem letzten übersetz ten Befehl dem Namen OPDLI zugewiesen . Die Daten im Operanden teil sind dezimal definiert. Weitere Anweisungen des BOBS-Assemblers 171 sind hier aus Platzgründen nicht behandelt .
-
87 -
Das dynamische Ende des Programms (Bild 41) wird durch den Halt - Befehl HLT mark iert . Der Mikropr ozessor bl eibt auf diesem Befehl stehen, bis er z .B. durch ein Reset-Signal auf die Speicheradresse 1.4. 3
0 springt.
Programmerstellung mit maschi nellem Assembler
Kleine Programme kann man von Hand mi t Hi l fe der Befehlsliste aus der Assemblersprache in den ablau ffähigen Maschinencode übersetzen , was in der Einarbeitungsphase durchaus z u e mpfeh len ist . Für etwas längere Programme ist die manuelle Methode zu zeitaufwendig und zu fehleranfä ll ig ; man setzt Überset z ungsprog ramme (Ass e mbl e r) ein. Die umf a ngre ich e n Über setzerprogramme können in der Regel nicht auf den tei l weise recht "kleinen" Anwendungssystemen ablaufen , für die das Programm erste llt wird . Die Übersetzung erfolgt entweder auf Universal rechnern oder a u f spezialisierten Mikrocomputer-Entwicklungssystemen (s. Ab schn. 3 .1). Im Pr in zip sind zwei Üb ersetzungs läufe erforderlich : Im ersten Lauf ermit telt der Assembler den Speicherbedarf für Befehle und Daten; er übernimmt alle im Markenfeld auftretenden Namen in eine Symboltabel l e und ordnet ihnen ihre absolute Adresse im Programm bzw . deren Wert (b ei der EQU- Anwei s ung) zu. Di e absoluten Adressen gibt der Adreßpegelzähler des Assemble rs an , der zu Beginn der Übersetzung auf die absolute Programmanfa ng sadresse gesetzt wird (ORG - Anweisung) . Im zweite n Lauf setzt der Assemb ler de n Maschinencode a b. Dabei ersetzt er die symbolisc hen Adr esse n im Operanden-/Adres senfeId durch die absoluten (physikalischen) Adressen aus der Symboltabelle . Mit der Übersetzung wird g l e ich zeitig ei ne Programmliste (eng l. program listing) erzeugt , die das Quellprogramm (Bi l d 41) und den gewonnenen Maschinencode in Hexadezi ma Ida rst eIlung e nthä l t . Sämtliche Arbeitsschritte bei der Entwicklung eines Programms mit automatischem Assembler vom Programmablaufplan bis zur Dokumentation sind in Bild 42 in Form eines Flußdiagramms dar gestellt. Auf Grund der bisherigen Erläuterungen und den Be -
-
nach Abschn. 1. 4 . 1
} ---
nach Abschn . 1. 4.2
} ---
z.B. über die Tastatur des Bediengeräts
} ---
88 -
Programrnablaufpläne erstellen
auf Computer OdeJ Mikrocomputer__ _ Entwicklungssystem Assembler gibt Syntaxfehler an
ja
mit Hi l fe eines MC-Testsystems
} ---
Semantikfehler ergeben sich beim Test
} -----
mit einem } PROM/EPROMProgrammiergerät
pro-}
ergänzend zu grammab l aufplan und listing
ja
_ __ _
___ _ Bild 42 Pr ogrammentwicklung mit automatischem Assembler
- 89 merkungen zu jedem Symbol dürfte das Flußdiagramm weitgehend " selbsterklärend" sein.
Auf Mikrocomputer-Entwicklungssysteme
wird in Abschnitt 3 eingegangen. 1.4.4
Höhere Sprachen und Struktogramme
Höhere Programmiersprachen sind problemorientiert und (weitge hend) rechnerunabhängig 1231. Ihre Sprachelernente, die Anwei sungen (engl. statements), sind im Gegensatz zur Assembler sprache nicht aus den Maschinenbefehlen eines Mikroprozessor typs übernommen, sondern durch den Einsatzbereich bestimmt. Man unterscheidet die Aufgabenbereiche der technisch - wissen schaftlichen Datenverarbeitung , der kommerziellen Datenverarbeitung und der Prozeßdatenverarbeitung (Echtzeit-Datenverar beitung). Auf Mikrocomputern angewendete höhere Sprachen mit unterschiedlichen Einsatzschwerpunkten sind FORTRAN, BASIC, PASCAL, PL/M und C . Ein statement einer problemorientierten Sprache wird in der Regel durch eine Anzahl von Maschinenbefehlen auf dem Mikro prozessor zur Ausführung gebracht. Es ist die Aufgabe des maschinenorientierten Übersetzerprogramms (engl . compiler) , für die Anweisungen der höheren Sprache den Machinencode des Ziel rechners zu erzeugen . Auf di e Sprachelemente von höheren Sprachen besonders zuge schnitten sind die Struktogramme oder Nassi -S hneidermann -D ia gramme 1231, die üblicherweise mit Anweisungen in einem Pseudocode (Entwurfsprache) beschriftet werden . Str u ktogramme erset zen hier die in Abschnitt 1.4.1 beschriebenen Flußdiagramme. Obwohl das Schreiben eines Programms in einer höheren Sprache im a ll gemeinen einfacher ist und kürzere Entwicklungszeiten (mehr Anweisungen pro Tag) beansprucht als das Codieren in Assemblersprache, behauptet sich letztere vor allem im Bereich der hardware -n a h en, realzeit - orientierten Anwendungen 124 11 25 1. Of t werden in einer höheren Programmiersprache geschriebene Programmteile (Moduln) mit Assemblerroutinen zusammengebunden . Man spricht dann von multimodularer Programmierung.
90 2
Der Mikroprozessor 8085
Der Mikroprozessor 8085 ist kein isolierter Baustein; e r ist in Struktur und Befehlsvorrat eng verwandt mit der 80'er Reihe der I NTEL - bzw . SIEMENS-Mikroprozessoren , die bei den 8-Bit Single Chip - Mikrocomputern 8048 und 8051 beginnt, die 8- Bit Mikropro zessoren 8080 u n d 8085 einschließt und bei den leistungsfähigen 16-Bit Mikroprozessoren 8088, 8086 und 80286 endet . Auf Grund der weitgehend identischen Bus-Schnittstellen sind die Ein-/Ausgabe- , Interface- und Ergänzungsbausteine des 8085 an allen Mikroprozessortypen der 80 ' er Reihe einsetzbar . In diesem Kapitel werden Struktur , Schnittstellen und Befehls satz des Mikroprozessors 8085 (MP 8085) soweit dargestellt , daß der Anwender den Baustein 8085 zum Aufbau von Mikrocomputersystemen einsetzen und effiziente 8085-Programme schrei ben kann . Es ist nicht die Aufgabe dieses einführenden Skriptums , a u f begrenztem Platz die Datenbücher und ProgrammierHandbücher eines bestimmten Mikroprozessortyps vollständig wiederzugeben . Hierzu sei auf die Produktbeschreibungen 171, 112 1,
1131 und 1611 verwiesen .
Der Baustein 8085A ist ein VLSI - Baustein
(~ery
!arge
~cale
integration), in dem etwa 5000 Transistorfunktionen auf einer ~hip-Fläche von ca. 6 x 6 mm 2 integriert sind. Er ist in einem 40 - poligen dual-in-line - Gehäuse verpackt , dessen Anschlußbelegung Bild 43 zeigt . Der 8085 benötigt nur eine Versorgungsspannung von 5 Volt und arbe i tet in den NMOS - Versionen mi t
3 MHz ,
5 MHz oder 6 MHz, in der CMOS-Version mit 3 MHz Grundtakt 162 1 . 2. 1
Struktur des Mikroprozessors 8085
Die allgemeine Beschreibung der Struktur von Mikroprozessoren in den Abschnitten 1.2.4 und 1..2.5 wird hier für den MP 8085 konkretisiert und ergänzt. Der Baustein 8085 enthält das Re chenwerk einschließlich ALU und Registerstruktur, das Leitwerk einschließ l ich Takterzeugung , Ablauf- und Systembussteuerung , eine Unterbrechungssteuerung und serielle Ein - /Ausgabeleitun-
- 91 gen , wie auf dem 8085 - Blockschaltbild (Bild 44) erkennbar ist. Die 40 Anschlüsse des MP 8085 teilen sich auf in den Systembus mit Steuerbus , Adreß- und Datenleitungen, in die seriellen Ein-/Ausgänge
(SID, SOD) und die Unterbrechungseingänge.
Da der MP 8085 mehr Schnittstellensignale benötigt, als das 40 - polige Gehäuse zur Verfügung stellt , werden die 8 Busleitungen
AD7 - ~
zwei-
fach genutzt. Innerhalb eines Buszyklus sind sie im Zeitmultipexbetrieb zuerst die niederwertigen Adreß leitungen
A7 - ~
und anschlie -
ßend für den Rest des Zyklus die Datenleitungen
D7-~ .
Logisch gesehen hat der MP 8085 sechzehn Adreßleitungen , die einen Speicher adressenbereich von 64 K Bytes er -
IO/M Sl RD WR
ALE
AD~
S~
ADl AD2 AD3 AD4 AD5 AD6 AD7 VSS
Al S A14 Al3 A12 All AIO A9 A8
Bild 43
schließen . 2.1.1
V CC HOLD HLDA CLK(OUT) RESET I N READY
Xl X2 RESET OUT SOD SID TRAP RST 7.5 RST 6.5 RST 5 . 5 INTR INTA
Anschlußbelegung des Bausteins 8085
Register - und Transportstruktur
Der Mikroprozessor 8085 hat als interne, zentrale Verkehrsader einen 8 - Bit breiten Datenbus
D7 - ~ ,
an den alle 8 - Bit - und 16 -
Bit Register des Prozessors angeschlossen sind (Bild 44) . Über den bidirektionalen Daten-/Adressenpuffer (ADR/DATEN)
kann der
interne Datenbus
geschal -
D7-~
auf den externen Datenbus
AD7 - ~
tet werden und umgekehrt, was bei jedem Speicher - und Ein - / Ausgabezyklus geschieht . Der interne Aufbau des 8085 entspricht im Prinzip der allgemeineren Struktur in Bild 17. Die 8- Bit - und 16-Bit Register des 8085 (Bild 44) lassen sich in programmierbare und nichtprogrammierbare Register untertei len. Die für den Anwender wichtigen programmierbaren Register (Bild 45) sind in den Maschinenbefehlen explizit (durch Regi steradressen ) oder implizit (durch den Operationscode) adres -
Bild 44
X2
Xl
RST6.5
ALU
~ 11 1
M~kr~~rozessors
HLDA
Registerblock
Adreßb u s
A15-8
Adreß/Datenbus
AD7 - ~
B- REG 8 C- REG 8 D-REG 8 E-REG 8 H-REG 8 L-REG 8 Stackl20inter 16 Befehlszähler 16
8085 (Abkürzungen vg l. Bild 17)
I
\~HOLD
S~ SI 10/M
Maschinen-' zyklussteuerung
/'IOV\",c.sGc.rSI" ,,;Icv.uYJf
Zeit- und Ablaufsteuerung
8
TRAP
11,;tl,",-'
-.J
'"
- (r)
(CY)
Der DAA- Befe h l wandelt den I nha l t des Akk umu l ators - nach der Addition zweier BCD- Zahl en - in zwe i binärcodier t e (BCD - ) Ziffern um , wobe i e r das AC - Bit u nd das CY-Bit ab f ragt (5 . Abschn . 2 . 3 . 7) .
100100 1111
DAA
J
Zykl en/Takte : 1/4 '
Fl a g s: x x x x x
Zyk l en/Takte : 2/7
Fl ags : x x x x x
(CY)
111 011 11 0 [ I konst I
(A) - konst -
(A) -
Subtrahiere den Wert konst im zweiten Befe hl sbyte und den I nha l t des CY - Bits vom Inha l t des Akkumulators .
SB I konst
Fl a gs : x x x x x Zyklen/Takte : 2/7
(A) - konst
(A) -
Subtrahiere den Wert konst im zweiten Befehlsbyte vom Inha l t des Akkumulators.
[11010110 1 I konst I
Zykl en/Takte : 2/7
Flag s: x x x x x
Zyk l en/Takte: 2/ 7
F l ags: x x x x x
Zyk l en/Takte : 2/7
Fl ags : x x x x x
Zyk l en/Takte : 1/4
Fl a gs: x x x x x
SUI konst
(A) + konst + (CY)
(A) -
Addiere den Wert konst im zweiten Befehlsbyte und den Inhalt des CY - Bits zum Akkumulatorinhalt .
[11 0011 1 0 [ I konst I
A ~ ~-p konst
ACI konst
11100011 0 1
(A) + konst
(A) -
Addiere den Wert konst im zweiten Befehlsbyte zum In h alt des Akkumulators .
ADI konst
110011110 1
- ((HL) ) - (CY)
(A) _
Der Inhalt des Speicherplatzes, auf den das Register paar HL zeigt und der I nhalt des CY - Bits werden vom Akkumulator subtrahiert .
SBB M
(A)
(A) -
Der I nha l t des Registers r und der I nha l t des CY - Bits werden vom Akkumulatorinhalt subtrah iert.
11 00 11 555 1
(A)
8085 - Arithmetikbefehle (Fortsetzung v on Seite 1 27)
SBB r
Tafel 12
co
IV
.....
- 129 Zum Retten des CY Flags , das nach dem
Stack
Subtraktionsbefehl
(SP) + 2 -
si Z I -I AC I - 1 pI-I CY
(SP)
0 1 1 1 01 0 10 11 1 0 1 1 _ _ _ _ _ _ _ _--'
den Borger enthält, wird das gesamte Pro -
-
flags ( A)
~
gramm - Status - Wort in Bild 60
den Stack abgelegt (Bild 60).
Wirkung des Befehls " PUSH PSW " (in Beispiel 18)
Beispiel 19: Addition mehrfachlanger Festpunktzahlen. Die 3Byte-langen Zahlen sind im Speicher unter den symbolischen Adressen ADRA und ADRB abgelegt. Die 3-Byte-lange Summe soll , beginnend mit dem niederwertigen Byte , an der Adresse ADRA ab gelegt werden (s . Speicherplan vor und nach der Addition) . vorher: ADRA
----
nachher:
RAM 8
5
ADRA + 1 --
B
F
ADRA + 2 --
9
E
ADRB
9
A
ADRB + 1 - -
6
3
ADRB + 2 --
6
0
.-
A s s e m b 1 e r n BSP19: LXI LXI
H, ADRA B, ADRB
(low)
ADRA
---
RAM (low)
1
F
ADRA + 1 - - _
2
3
(high)
ADRA + 2 - - -
~
C
( h igh)
(low)
ADRB
9
A
(low)
ADRB + 1- - _
6
3
ADRB + 2 -- --
6
0
(high)
(high)
t a t i o n
0
;Operandenadressen in die Re ;gisterpaare HL und BC laden
LDAX B ADD M MOV M, A
; (A)_9AH ; (A)_(A) + 85H (A) , (A) ; (ADRA) _
INX INX LDAX ADC MOV
H B B M M, A
; ; ; ; ;
INX INX LDAX ADC MOV
H B B M M,A
; ; ; ; ;
lFH
(HL) = ADRA + 1 (BC) = ADRB + 1 (A)-63H (A) _ (A) + ~BFH + (CY) (ADRA+l) _ (A) , (A) = 23H (HL) = ADRA + 2 (BC) = ADRB + 2 (A)_6DH (A)_ (A) + 9EH + (CY) (ADRA+2)_ (A), (A) = ~CH
}
nieder wertige Bytes
}
mittlere Bytes
}
höchst wertige Bytes
- 130 Der Programmablauf in Beispiel 19 läßt sich an Hand der Kommentare leicht verfolgen: Die drei Bytes einer Zahl werden nacheinander zu den entsprechenden Bytes der anderen Zahl addiert. Bei der Addition der niederwertigen Bytes wird das CYFlag nicht einbezogen (ADD-Befehl) , bei der Addition der hö herwertigen Bytes wird der Übertrag aus der Addition der je we il s niederwertigeren Bytes hinzuaddiert (Befehl ADC .. ). Die Addition der höchstwertigen Bytes liefert einen Übertrag, die entstandene Summe ist hier nicht in drei Bytes darstellbar. Zu Beginn des Programms sind die Operandenadressen ADRA und ADRB in die Registerpaare HL und BC zu laden, um anschließend register - indirekt auf die Operanden zugreife n zu können (vgl . Abschn . 1.2.5 . 3). Vor dem Zugriff auf höherwertige Bytes sind die Adressen in den Registerpaaren HL und BC zu inkrementieren. Die Operanden - Speicherplätze sind im Programm nicht defi niert. Die Befehlsfolge des Beispiels 19 besteht aus einer vorbereitenden Initi alisierung der Adressenregister und aus drei nahezu identischen Befehlsgruppen , die j eweils eine Byteaddition durchführen. Diese "Geradeaus"-Programmierung ist speicher platzaufwendig und wird bei einer größeren Anzahl zu addieren der Bytes unsinnig. Nach dem Kennenlernen der Sprungbefehle wird dieselbe Aufgabe als Programmschleife organisiert (s. Beispiel 23) . 2. 3. 3
Logikbefehle
Die Logikbefehle des 8085 fü hr en logische Verknüpfungen (UND , ODER, EXCLUSIV ODER) von 8-Bit - Größen im Akkumulator mit sol chen in Registern, Speicherplätzen und Direktoperand- Befehlen aus. Sie verändern die Status - flags in der angegebenen Weise . Da bei logischen Operationen keine Überträge entstehen , wer den die Werte des CY - Flags und des AC - Flags so festgelegt , wie es in den Befehlsbeschreibungen angegeben ist . Die Logikbefehle umfas sen außerdem zwei Befehle zum Setzen und Inve rtieren des CY - Flags und vier Verschiebebefehle. Beim 8085 sind dies Rotationsbefehle, die sich ausschließlich auf
- 131 -
de n Akkumu l ator beziehen und dessen Inhalt pro Befehl nur um ei nen Schritt (ein Bit) verschieben. Die Rotationsbefeh l e übernehmen das jeweils aus dem Akkumulator herausgeschobene Bit (A7 oder Aß) in das CY-Flag . Mit bedingten Sprungbefehlen (s . Abschn . 2 . 3 . 4) sind dann einzelne Akkumulator - Bitstellen ab fragbar.
Zu samme n mit den l ogischen Operatio nen UND , ODER , EX-
CLU S I V OD ER ermögl i chen die Versc h iebebefehle ei n e Bitverar beit u ng i m 8085 . In komplexeren Mikroprozessoren gibt es zusätzlich zu den Ro tationsbefehlen arithmetische und logische Verschiebebefeh l e . Beim logischen (geradeaus) Verschieben eines Registerinha l ts nac h li n ks oder nach rec h ts wird das herausfallende Bit in das CY-F l ag übernommen und eine
~
n achgezogen (Bild 61). Ist der
Inhalt des Registers eine vorzeichenlose Dualzahl , dann ent spric h t
die Verschiebung logisch links um eine Stelle einer
Multiplikation mit dem Faktor 2 , die Verschiebung logisch rec h ts u m ei n e Ste ll e ei n er Division durch 2. Be im arit hmetisc h e n Verschieben eines Registerin h a l ts nach l i n ks wird eine
~
nachgezogen, beim arithmetischen Versch i e -
ben n ach rechts wird die höchstwertige Stelle (A7) nachgezoge n . Ist der Inha l t des Registers eine vorzeichenbehaftete Zweierkomp l eme n tzah l, dann entspricht das arithmetische Ver schieben nach links um eine Stelle einer Multip l ikation mit 2 , das arithmetische Verschieben nach rechts um eine Stelle einer Division durch 2 . Durch Zahlenbeispiele lassen sich diese Festste l lungen leicht veranschaulichen .
Ve rschi e b e op e r at i o n e n l ogisc h
l i nk s
(x2 )
B-1A7 I 1+1 Aß l:tl 1
~Y
ar i th metisch Bild 61
ca CY
~
[3-hzl 1+1 Ih A7 CY M i 1
1
rechts ( /2 )
~I A7
1
~
1+1
AI!
0
Cf] CY
djl 1+1 1
1 1
Logische und arithmetische Verschiebeoperationen
~
A~
Zyklen/Takte: m/n
konst
M
1
110110110 1
ORA
110110555
r
(A) V ((HL) )
Die Bitstellen des Akkumulators werden mit den ent sprechenden Bitstellen des 5peicherplatzes , auf den HL zeigt , ODER-verknüpft. Ergebnis gelangt in den Akku .
(A) _
Die Bitstellen des Akkumulators werden mit den ent sprechenden Bitstellen des adressierten Registers r ODER - verknüpft. Das Ergebnis gelangt in den Akku.
(r)
(A)_(A) V
1\
ORA
(A)_(A)
Die Bitstellen des Akkumulators werden mit den ent sprechenden Bitstellen des zweiten Befehlsbytes konst UND-verknüpft . Das Ergebnis gelangt in den Akku.
k onst
((HL) )
Die Bitstellen des Akkumulators werden mit den ent sprechenden Bitstellen des 5peicherplatzes, auf den das HL - Registerpaar zeigt , UND - verknüpft . Das Ergeb nis gelangt in den Akku .
1\
1111001101
AN!
11 0100110 1
(A)
(A) _
ANA
M
Die Bitste ll en des Akkumulators werden mit den ent sprechenden Bitstellen des adressierten Registers UND-verknüpft. Das Ergebnis gelangt in den Akku .
110100555 1
.0 x x 1 x
.0 x x 1 x
.0 x x 1 x
.0 x x .0 x
.0 x x .0 x Zyklen/Takte: 2/7
Flags :
Zyk l en/Takte : 1/4
Flags:
Zyklen/Takte: 2/7
Flags:
Zyklen/Takte: 2/7
Flags :
Zyklen/Takte: 1/4
Flags:
(A) _ ( A ) 1\
100101111 1
ANA
(r)
Zyklen/Takte: 1/4
r
Flags :
(A)_(A)
Der Akkumulatorinhalt wird bitweise invertiert.
- - - - -
Flags : CY Z 5 AC P
formal verbal
CMA
Befehlswirkung
8085 - Logikbefehle (5 . 1 32 - 134)
Befehlsbytes
Mnemonik
Tafel 1 3
I
i
I
I I
I
I
..... W IV
konst
Flags: ~
x x
~
x
konst
r
M
110lllllO
CMP
110lllsss
CMP
I
I
! 1l1011l0 J l konst I
XRI
I
~
x x
~
x
~
x
-
(r)
Flags:
x x x x x
-
((HL) )
Flags:
x x x x x
Der Inha l t des Speicherplatzes , auf den HL zeigt, wird Zyklen/Takte: 2/7 vorn Akku subtrahiert. Der Akku bleibt unverändert. Die Status-flags beschreiben das Ergebnis: (Z)_l, wenn (A) = ((HL)) ; (CY)-l, wenn (A) < ((HL)), (CY)_O, wenn (A) ~((HL) l.
(A)
Der Inhalt des Registers r wird vorn Akku subtrahiert. Zyklen / Takte: 1/4 Der Inhalt des Akkumulators bleibt unverändert. Die Status - flags beschreiben das Ergebnis der Subtraktion : (Z)--l, wenn (A) = (r); (CY) __ l, wenn (A) < (r), (CY)_O , wenn (A) ~(r).
(A)
Zyklen/Takte: 2/7
x x Flags:
(A)~(A)_konst
Die Bitstellen des Akkumulators werden mit den entsprechenden Bitsteilen des zweiten Befehlsbytes konst durch die EXCLUSIV- ODER -Funktion verknüpft. Ergebnis in Akku.
~
Die Bitstellen des Akkumulators werden mit den entspre Zyklen/ Takte: 2/ 7 chenden Bitstellen des Speicherplatzes, auf den HL zeigt, EXCLUSIV- ODER - verknüpft . Ergebnis gelangt in Akku.
Flags:
x
(A)_(A)_((HL))
M
11010lllO
~
XRA
x x
Zyklen/Takte: 1/4
~
Flags:
(A)_(A)_(r)
Die Bitstellen des Akkumulators werden mit den entspre chenden Bitstellen des adressierten Registers r durch die EXCLUSIV- ODER - Funktion verknüpft. Ergebnis in Akku.
r
11 0101555 1
XRA
v Zyklen/Takte: 2/7
(A)_(A)
Die Bitstellen des Akkumulators werden mit den entspre chenden Bitstellen des zweiten Befehlsbytes konst durch die ODER - Funktion verknüpft. Ergebnis gelangt in Akku.
konst·
! llllOllO ! L konst J
ORI
w w
.....
x x
x
x
x
.
• 1+1
I~I 1
I
Zyklen / Takte: 1 / 4 _
I
I
Das CY - F l ag wird auf 1 ge se tzt .
1 - - - -
100110111 1
I
Fl ag s :
-
(CY)_ l
-
STC
-
Zyk l en/Takte: 1 / 4
x -
Flag s :
AfO
IY
x - - - Zyk l e n /Takte: 1 /4
Flags:
Der I nha l t des CY- F l ags wird invertiert .
I
x - - - Zyk l en/ Takte: 1 / 4
Flags:
100 11 11 111
I~I
AfO
13)
1:rJ AfO
x - - - -
Zykle n /Takte: 1 / 4
Fl ags:
(CY)_(CY)
1
i;)
AfO
1
x - - - -
Zyk l en/Takte : 1 / 4
Flags:
CMC
100011111 1
RAR
CY
(An)_(An+l) ; (CY)-(AfO); (A7)_(CY) De r Akku i n h a l t wird zyklisch um 1 Bit n ac h rechts durch ca=:+1 CY hi ndurch verschoben. CY A7
1
1
1 1 1-;-1 I A7
~
Der Akk u inha l t wird zyklisch nach links durch CY h indurch versc hoben .
10001011 1 1
~I A7
(An+ l )_(An) ; (CY) __ (A7); (AfO) _(CY)
CY
CE
(CY)-(AfO)
RAL
(A7)_(AfO) ;
(An)_(An+l) ;
Der Akkumul atorinhalt wird zyklisch um 1 Bit nach r e chts verschoben .
100001111 1
c:t-41 CY A7
(CY)_ (A7)
RRC
(An); (AfO)-(A7);
Der Akk umu l atorinhalt wird zyklisch um 1 Bit n ac h links versc h o b e n.
F lags:
100000 111 1
konst
(An+l) _
-
RLC
(A)
Der Wert konst im zweiten Befehlsbyte wird vorn Akku Zyklen / Takte : 2 / 7 subtrahiert . Der Akku bleibt unverändert. Di e Status flags b eschreiben das Ergebn i s der Subtraktion: (Z) __ 1, wenn (A) = konst; (CY)_ l, wenn (A) -' -.J
0tll'
01FF0F 0B 79 B0 C8 C32D0A
0A2A 0A20 0A2E 0A2F 0A30 0A31
CO ZEIT
NO ERRORS
A 05A6 A 0A2A
INT55
A 0A1D
INTT1
A 0A00
NMOUT
A 06C6
AUFRUF DES UNTERPROGRAMMS CO CALL CO CALL ZEIT AUFRUF DES UNTERPROGRAMMS ZEIT 28 BLANf( ENDLOSSCHLEIFE 29 JMP 30 31 ***** INTERRUPT SUB ROUTINE INT55 FUER RST5.5-EINGANG ********* 32 :BENOETIGTE REGISTER FUER DAS UNTERBROCHENE PSW 33 INT55: PUSH PUSH B :PROGRAMM INTT1 RETTEN 34 :AKTUELLE INTERRUPTMASKE IN DEN AKKU LADEN 35 RIM NMOUT :INTERRUPTMASKE HEX AUF BILDSCHIRM AUSGEBEN 36 CALL :UNTERPROGRAMM ZEI T AUFRUFEN 37 CALL ZEIT 38 POP B :REGISTER FUER UNTERBROCHENES PROGRAMM :AUS STACK REGENERIEREN 39 POP PSW :GENERELLE INTERRUPTMASKE FREIGEBEN 40 EI :RUECKKEHR AN UNTERBRECHUNGSSTELLE IN INTT1 RET 41 42 43 ***** UNTERPROGRAMM ZEIT ***** 44 :BEWIRKT EINE KONSTANTE ZEITUERZOEGERUNG FUER BILDSCHIRM-AUSGABE 45 B,0FFFH :ZAEHLGROESSE NACH BC LADEN 46 ZEIT: LXI :REGISTERPAAR eBC) DEKREMENTIEREN 47 DCX B A,C :UORBEREITUNG FUER NULLABFRAGE 48 MOU 49 ORA B :RETURN, WENN eBC) = 0 50 RZ ZEIT+3 Si JMP 52 END
("
ASSEMBLY COMPLETE,
USER SYMBOLS BLANf( A 0A 12 URST 55 A 0BOA
F5 C5 20 CDC606 CD2A0A Ci F1 FB C9
0A1D 0A1E 0A1F 0A20 0A23 0A26 0A27 0A28 0A29
0A14 CDA605 0A17 CD2A0A 0A1A C3120A
w
.... -.J
- 174 2.4.4
Unterbrechungssystem mit externen Unterbrechungs Steuerbausteinen
Als Beispiel für die Erweiterung der Unterbrechungseingänge des 8085 durch eine externe Unterbrechungssteuerung seien der Anschluß und die Arbeitsweise des verbreiteten programmierbaren Unterbrechungs - Steuerbausteins 8259 (bzw. dessen neuere Version 8259A) besc h rieben. Der programmable i n terrupt controller (PIC) ist eine Ergänzungseinheit im Sinne des Abschnitts 1 . 2 . 7 , die - wie ein Ein - /Ausgabebaustein programmiert - das Unterbre chungssystem des Mikroprozessors auch fu n ktionell wesentlich erweitert . Die 8 Unterbrechungseingänge IR~
(~nter r upt ~equest)
(höchste Priorität) bis IR7 (niederste Priorität) des Bau -
steins splitten die Priorität 5 des Eingangs INTR am 8085 wei ter auf (Bild 80). Mit Ausnahme der zwei Leitungen INTR/INT und INTA ist der Ansch l uß des Bausteins identisch mit dem An schluß eines Ein - /Ausgabebausteins an den Systembus . Mit Hilfe der Kaskadierungsansc h lüsse kön n en bis zu 9 Baustei n e des Typs 8259A mit 64 zusätzlichen Unterbrechungseingä n gen zusammenge schaltet werden. Zu der nur bei größeren Mikrocomputersystemen erforderlichen Kaskadierung mehrerer 8259(A) - Bausteine sei auf
- - - - - - - - - - - - - j ! - - - t - ' I A15 8 0 8 5
~
--------_~-.,---,-Jl D7-~
:r;:
INTA~~==========~~==~========~~
I NTR 1-- - - - - ,
INT INTA WR RD
D7 - ~
Steuer bus
A~
Erläuterungen : Kaskadierungs l eitungen **) V anlegen, wenn nur CC ein 8259A vorhanden
**)
*)
Bi ld 80
Unterbrechungsanforderungen
Un t erbrec h ungs-Steuerbaustein 8259A a m Systembus
- 175 die Hersteller-Handbücher 1151 und 1161 verwiesen. Die Schaltung des Sammel-Unter brechungseingangs IN
im 8088
ist im Prin zip nach Bild 81 realis iert. Die generelle Interrupt maske INTE maskiert auch den Sammel-Unterbrechungseingang INTR (vgl . Abschn . 2 . 4.2); d.h. mit (INTE) =
0 sind sämtliche exter -
nen Unterbrechungssteuerungen blockiert Wird der Baustein 8259(A) durch
INTR
RESET IN
r-18085
I I I I I I I I I
IR intern - - - __ INTA
Übertragen von Steuerwörtern in der Initialisierungsphase geeig net programmiert, läuft beim Er -
Bild 81 Prinzipschaltung des Unterbrech ungse inga n gs INTR im 8085
kennen einer Interruptanforderung folgender Dialog zwischen dem 8085 und dem 8259(A) ab: 1. Der 8259(A) unterbricht den MP 8085 durch ein Signal vom INT - Ausgang (Bild 80). 2 . Sofern es die generelle Interruptmaske (INTE) zuläßt , nimmt der 8085 nach Beendigung des lauf en den Befehls den Unterbrechungswunsch an, indem er einen INA-Maschinenzyklus (vgl. Tafel 7) mit dem Signal (INTA) = 0 fährt. 3 . Das INTA-Sign al veranlaßt den interrupt controller , den Ope rationscode des CALL - Befehls auf den Datenbus zu l egen , den der 8085 einliest. 4 . Ausgelöst durch den Operationscode CALL , fügt der 8085 zwei weitere Maschinenzyklen mit (INTA) = 0 an , in denen der 8259(A) als Antwort zuerst die niederwertigen 8 Bit (2 . INA-Zyklus) und dann die höherwertigen 8 Bit (3. INA - Zyklus) der Vektoradresse auf den Datenbus legt . 5 . Der 8085 nimmt die Adreßbytes entgegen und führt den Unter programmaufruf aus , der in ein der Interr uptnummer i zugeordnetes Int erruptprogramm i führt. (Arbeitet d er 8259A mit den l6-Bit Mikroproz essoren 8086/88 zusammen , weicht der Dialog von dem eben beschriebenen ab.) Der Baustein 8259(A) realisiert ein Mehrebenen-Interruptsystem mit Vektoradressen, in dem jedem Unterbrechungseingang IR i über das Verzweigungsschema gemäß Bild 82 ein Interruptpro -
- 176 i n terrupt request am 8259(A):
Vektor adressen vom
8i59 (A)
InterruptVektortabe ll e
~nterrupt
Erogramme
0
VA(0)
I- VEKTOR(0)
IP
IR 1
VA(l)
I - VEKTOR( l )
IP 1
VA(2)
I - VEKTOR(2)
IP 2
VA ( n )
I- VEKTOR(n)
IP n
IR
->
IR 2
IR n Bild 82
0
Verzweigung bei Mehrebenen - Interruptsystem
gramm I P i fest zugeordnet ist . Der interrupt contro l ler 8259 erzeugt die Vektoradressen VA(i) hardwaremäßig nach Bild 83 im Abstand ix4 bzw . ix8 bezogen auf eine Rumpfadresse, die i n der Initialisierungsphase an den Baustein übertragen wird . Die Vek toradresse VA(i) legt der interrupt control l er auf den Systembus. Sie zeigt auf einen der äquidistanten Int erruptvektoren I - VEKTOR(i) im Speicher, in denen Sprungbefehle auf d i e Interr uptprogramme IP i
(mit beliebi g en Anfangsadressen) stehen .
Die Eigenschaften des Bausteins 8259A sind in 1151 und 1161 detai ll iert beschrieben . Im folgenden seien nur ein paar we sentliche Merkmale dieses leistungsfähigen, vielseitig ei n setzbaren interrupt contro llers herausgegriffen . Sein Verhalten ist
Interruptnummer i
(bei der Initialisierung ge l adene
**)
+
Rumpfadresse
fest *)
r---------------~--------------~\~~ AlS A14 A9 A8 A7 A6 A5 A4 A3 A2 Al A0
' - - - - - -__v , - - - - - - - . J A ' - - - - - - _ y
(3 . INA - Zyklus)
(2. INA- Zyklus)
'--------------_v~------------~J Vektoradresse VA(i)
*) wenn Adreßintervall 4 eingeste ll t **) mit i
Bild 83
= 000 ,
001 bis 111
x
= 0/ 1
Bildung der Vektoradresse VA(i) im Baustein 8259(A)
- 177 durch das Übertragen von Steuerwörtern (initialization command words leWs und operation command words Oews) an verschiedene Aufgabenste I lungen anpaßbar . Die Grundbetriebsart ist die voll verschachtelte Betriebsart (eng l. ful l y nested mode) . Sie entspricht weitgehend dem in Abschnitt 2.4 . 1 beschriebenen Verfahren mit festen Eingangs prioritäten , wobei zusätzlich die Laufpriorität berücksichtigt wird ; das aktuelle Interruptprogramm kann nur durch Unterbre chungsanforderungen höherer Priorität unterbrochen werden . Hat man in einer Anwendung mehrere Unterbrechungssigna l e von i m Prinzip g l eicher Priorität , die nacheinander ber ücks i chtigt werden sollen, wählt man die Betriebsart rotierende Prioritäten (eng l . rotating priority mode) . Bei automatischem Rotieren wird stets der eben bediente Unterbrechungseingang i auf die niedrigste Priorität gesetzt , der Eingang i+l erhält die höch ste Priorität usw. Beim Rotieren durch Software wird die j e weils niedrigste Priorität während des Betriebs durch Übertra gen eines Steuerworts festgelegt . In jeder Betriebsart sind die Interrupteingänge
IR~-7
des Bau -
steins durch ein Unterbrechungsmaskenregister selektiv sperr bar, wobei ein Maskierungsbit wahlweise nur den betreffenden Eingang sperrt oder diesen Eingang und alle Eingänge geringerer Priorität. Die Interrupteingänge des Bausteins sind durch ein Steuerbit auf Pegeltriggerung (high Pegel) bzw. auf Flankentriggerung (ansteigende Flanke) einstellbar .
- 178 3
3. 1
Hilfsmittel zur Programmentwicklung
Übersicht
Die Abläufe bei der Entwicklung eines Mikrocomputer - Programms wurden bereits in Bild 42 dargestellt. Man versteht darunter die Erstellung eines ablauffähigen Objektprogramms und den Test des Programms auf dem Mikrocomputer - Zie l system , auf dem das Programm ablaufen soll . Zur Un terstützung der einzelnen Entwicklungsphasen werden verschiedene Hilfsprogramme und Geräte eingesetzt . Der Erfolg beim Einsatz von Mikrocomputer schaltungen wird wesentlich durch die verfügbaren EntwicklungsHilfsm itte l mitbestimmt. Der Text - Editor ist ein Hilfsprogramm zur Eingabe und zur Kor rektur von Quellprogrammen (in Assemblersprache oder einer höher en Programmi ers prache) über die Tastatur eines Bedienge räts . Der Texteditor legt das eingegebene Programm in einer Quelldatei auf dem Hintergrundspeicher des Rechnersystems ab. Prog ramme in ihren verschiedenen Zuständen werden in Form von Datei en (engl. files) verwaltet. Eine Datei ist eine logisch zusammenhängende Datenmenge mit einem symbolischen Namen (s. Abschn . 3.2). Assembl er - bzw . Compilerprogramme übersetzen Quellprogramme in Objektprogramme , die zum Ablauf auf einem Mikrocomputersy stem bestimmt si nd. Zusätzlich zur Objektcode - Datei liefern die Üb ersetzer ei ne List -D atei , die das komplette Programmlisting (vgl . Beispiel 27) enthält . Linker (Binder) - und loca ter-Programme benötigt man nur bei der modularen Entwicklung von Mikrocomputer - Programmen
171.
Der linker verbindet mehrere selbständig übersetzte Objektmoduln, die in verschiedenen Sprachen geschrieben worden sein können, zu einem Programmkomplex . Oft werden ein Hauptprogrammmodul und mehr ere Unterprogrammmoduln zusammengebunden . Der locater setzt die bis dahin programmrelativen Adressen in ab solute Speicheradressen um (Ent re l ativierung) .
- 179 Ein Ladeprogramm (loader) bringt das ablauffähige Mikrocompu ter - Programm zur Ausführung bzw . zum Test in den Hauptspeicher . Das Monitor - Programm, auch als debugging-Programm bezeichnet , beinha l tet die wichtigsten Funktionen, die zum Bedienen des Mikrocomputers über eine Bedienkonsole (Sichtgerät, Fernschreiber oder Hexadezimaltastatur mit alphanumerischer Anzeige) er forderlich sind sowie einige Vorkehrungen zum Test von Program men (s . Abschn . 3.3) . Test - Emulatoren bilden das Verhalten eines Ziel-Mikroprozessors (meist) durch einen Mikroprozessor desselben Typs hardwaremäßig im Emulator nach. Der besonders be scha l tete Emulationsprozessor führt das zu prüfende Programm mittels Testhilfen wie Halte punkt - und Einzelschritt- Steuerung quasi auf dem Zielsystem aus , wobei er von einem übergeordneten (master) Prozessor ge steuert und überwacht wird . Der Emulator ist mit einem vielpo ligen Kabel über den Bausteinsockel des Zie l prozessors mit dem Zielsystem verbunden (Bild 84). Der Vorteil der Emulation be steht darin , daß im Zielmikrocomputer selbst keinerlei Testhil fen (weder Hardware noch Software) erforderlich sind. Der realtime tracer (Echtzeit - Ablaufverfolger) ist eine wert volle Erweiterung des Emulators; er nimmt die Zustände der
Test system
Mikro prozessor sockel
Entwick l u ngs programme
,,"
, )- - - - - ---
(Personal) Computer , mi t Per i pher ie
Emulator
v~--------------J
Zie l system mit Anwenderperipher i e
En t wick l ungssystem Bild 84
Trennung von Entwicklungssystem und Zielsystem
- 180 Daten -, Adressen- und Statusleitungen am emulierenden Prozes sor während jedes Maschinenzyklus auf und schreibt sie in ei nen sehr schnellen trace - Speicher . Dies geschieht beim Ablauf des zu testenden Programms im Echtzeitbetrieb auf dem Zielsy stem . Im Anschluß daran läßt sich der Programmablauf durch An zeigen der trace - Speicher- Inhalte rückwärts verfolgen. Nach dem erfolgreichen Test des Programms wird das ablauffähi ge Objektprogramm in der Regel mit einer Programmier - Einrich tung (PROM-/EPROM-programmer) in einem Festwertspeicher kon serviert. Bei der Programmierung von herkömmlichen Computern ist im all gemeinen das Zielsystem , auf dem das entwickelte Programm ab laufen soll , identisch mit dem EntwiCklungscomputer, auf dem das Programm erstellt bzw.erprobt wird. Computer ab einer ge wissen Leistungsklasse bieten die hardware- und softwareseiti gen Voraussetzungen für den Betrieb der beschriebenen Programme . Ein Emulator ist hier naturgemäß nicht erforderlich , eine realtime trace - Einrichtung ermöglicht auch im größeren Compu ter den Echtzeittest von Programmen , insbesondere im Bereich der Prozeßrechnertechnik. In der Mikrocomputertechnik herrschen andere Randbedingungen. Bei vielen technischen Anwendungen , die man etwa mit dem Be griff Geräteautomatisierung umreißen könnte , ist das Mikrocomputer-Zielsystem so klein , daß die hardwareseitigen Vorausset zungen (Bediengeräteanschluß , Speicherumfang , Testschaltungen , evtl . Betrieb von Hintergrundspeichern) für den Betrieb von Hilfsprogrammen nicht gegeben sind . Hier müssen Zielsystem und Entwicklungssystem gerätemäßig getrennt werden (Bild 84) . Das EntwiCklungssystem kann ein spezialisiertes Mikrocomputer - Ent wicklungssystem
1281 sein , das sämtliche Entwicklungshilfen
einsch l ießlich einem realtime trace - Emulator beinhaltet (s iehe Abschn. 3 . 4) oder ein Universa l rechner, häufig ein Personal Computer, auf dem die Entwicklungs-Hilfsprogramme laufen. Ne ben Text - Editor , Lader und Hintergrundspeicher - Verwaltung er möglichen Cross Assembler und Cross Compiler das Übersetzen von
- 181 Programmen für beliebige Ziel - Mikroprozessoren , di e nicht im Entwick l ungscomputer enthalten sind. Das Zielsyste m kann an den Universalrechner über ei nen externen Emulator angeschlos sen werden , der das übersetzte , ablauffähige Programm aufnimmt oder in das Zielsystem überträgt und den Test lauf unter den vorgegebenen Bedingungen durchführt . Der Emulator hängt dabei am Systembus des Universalrechners oder an e iner serie l len Schnittstelle (z.B. V. 24, s. Abschn . 5.1.3) . Hat man nur einen Universalrechner mit cross software , jedoch keinen Emulator zur Verfügung, so kann das überse tzte Programm über ein e serielle Kopplung in das Ziel system übertragen oder mit Hilfe einer Tastatur von Hand eingegeben werden (Bild 85 ) .
seri e lle Kopplung
system cross software
Universalrechner Personal Computer
Zielsystem Prototypensystem
Bedien Sichtgerät
System Design Kit Bild 85
Konfiguration bei Programm-Entwicklung ohne Emulator
In diesem Fall muß das Zi elsyste m üb er ein eigenes Betriebs und Testprogramm (Monitor) und di e notwendigen Peripheriean schlüsse verf ügen. Zur Übertragung des Programms aus dem Uni versalrechner (host computer) in das Zielsystem sind auch Da t e nträger wie Kassette, Di sket te oder Lochstreifen möglich. Zielsysteme mit den genannten Bedien- und Testmög l ichkeiten sind z . B. Prototypensysteme , Ein - Platinen-Baukastensysteme und Perso nal Computer . Statt großen Universalrechn ern werden in zunehmendem Maße preis werte Personal - Computer als host computer ohne oder mit externem
- 182 Emu lator eingesetzt . Di e Betriebssysteme CP!M , UNI X und MSDOS auf diesen Systemen gestatten ei ne kom fortab le Pro 1301 1311 grammentwicklung und Datenha ltun g für Mikrocomputer - Zielsyste me . Somit gibt es - abhängig von der verfügbaren Geräteausstattung - zwei Möglichkeiten des Programmtests (Bild 86.a und b). We nn im Zielsystem selbst keine Testhilfen zur Ver fü gu n g stehen , wie dies im Automatisierungsbereich oft der Fall ist , bleibt nur der Test mit dem Emulator.
a) Programmtest mit Emulator Objekt-
,--~_~_~_:_~_'_. . . HDUMP.OBJ auf floppy disc
Objekt-
~
. .~_~_~_~_m_~ . ~ Ö =>
Programmausführung auf Zielsystem unter Reg ie des Emu lators
im Zielsystem oder im Entwicklungssystem
8
b) Programmtest mit Monitor im Zi e lsyst e m Objektcode __d_a_t_e_i_~ HDUMP.OBJ auf floppy disc Bild 86
3. 2
Objektpro --.:>.... ......g_r_a_m_m_--' - r
~lon i tor
=:::;>
Programmausführung auf Zie lsystem un ter Regie des Monitors (debuggers)
~--------~vr----------,J
im Zi e ls ystem
Programmtest mit Emulator (a) oder Monitor (b)
Programm-Entwick l ung in Asse mblersprac h e (Beispie l)
Vor der weiteren Besch reib ung ei nz e lner Entwicklungs-Hilf smit t el sei an Hand eines Programmbeispiels (Beispiel 28, HDUMP) deren Einsatz erläut ert . Nac h der Erstellung des Flußdiagramms (Bil d 90) und der Niederschrift des Progr a mms in der 8085 - As s e mbI ers pra che ASM85 wird das Mikrocomputer - Entwicklungssystem SME der Firma SIEM ENS bzw . MDS der Firma INTEL (Serie 11)
132 1
zur weiteren Programm - Entwicklung und Dokumen tation ei nges etzt .
- 183 Eine kurze Beschreibung der einzelnen Komponenten des Mikrocomputer -Entwicklungs systems folgt im Abschnitt 3 .4 . Die Eingabe des Quellprogramms HDUMP über die ASCII -Tastatur des Bedien-Sichtgerätes erfolgt unter der Regie des Text-Edi tors CRED IT im Entwicklungssystem, der ei ne QuellprogrammDatei (engl . source file) HDUMP . SRC auf dem Hintergrundspei cher anlegt (Bild 87) . Die Erweiterung des Dateiname n s . SRC (von
~ouE~e)
ist frei wäh l bar . Ansch l ießend wird der 808S - As-
sembler ASM80 MOD8S gestartet. Er holt den Quellcode aus der Datei HDUMP . SRC (der hier eine ORG - Pegelanweisung enthä l t) , übersetzt ihn, und l iefert den absolut adressierten Objektcode in einer Objektdatei mit dem Namen HDUMP.OBJ und ein ProgrammDo kument (program l isting) in der List-Datei HDUMP .LST. Die Er weiterungen . OBJ und . LST legt der Assemb l er fest. Läßt man den Inhalt der List - Datei ausdrucken , so erhält man ein vol lstä nd iges Programmprotokoll (program listing)
(siehe Bsp . 27
und Bsp. 28) das z un ächst die Unterlage für den Programmtest und danach ein wesent l icher Teil der Programmdokumentation ist . HDUMP . OBJ Objekt programm
HDUMP.SRC
RWIT ~~~_~_S~_~_~_1_er_~ ~ ~8 ~
HDUMP . LST
programm
Programm -l isting
--
BedienSichtgerät Bild 87
Text - Editor
Da tei
Assemblier programm
Dateien
Programm-E ingabe , Übersetzung und Programmspeicherung im Mikrocomputer - Entwicklungssystem (SME/MDS)
Au f gabenste Ilun g für Beispiel 28: In einem UnterprogrammHDUMP ist ein vorgegebener Hauptspeicherbereich hexadezimal ver schlüsselt auf dem Bildschirm des Mikrocomputer-Terminals darzus te llen. Jedes Speicherbyte ist als Folge zweier Hexade zima lziffern anzuzeigen und zwischen benachbarte Bytes ist je
- 184 -
ein Leerzeichen einzufügen, sodaß man z . B. erhält : 5A 4 1 3F 15IL . . Kommt ma'n auf dem Bildschirm ans Zeilenende , so fügt dessen Steuerung selbsttätig die Steuerzeichen Wagenrücklauf (CR) und Zeilenvorschub (LF) ein . Anfangsadresse u nd Länge des Speicher bereichs er h ält das Un terprogramm HDUMP vom a u fr uf e nden Pro gramm in den Registern HL (Anf~ngsadresse) und E (L änge in Bytes) . Der darstellbare Bereich ist somit h öchstens 255 Byte lang . Zur Lösung: HDUMP zerlegt j e des Speicherbyte gemäß Bild 88 in eine linke und eine rechte Tetrade, die a l s Hexadezima l zi f fern 15 .. . F interpretiert werden. Der 4- Bit Code jeder Hexadezimal ziffer ist in deren 7-Bit-langen ASCII - Code um zuwande ln und dann au f den Bi ldschirm auszugeben; der Bildschirm " verste h t " ASCI I-codi erte Zeichen .
Byte im Speiche r
11010:00101
~
I
Binär codierte Hexadezima l ziffer
~Ir-0- 0- 1""01
I
I
, ASCII - codierte Hexadezimalziffer
Byte auf Bildschirm Bild 88
1 ...0"T11-0-
Unterprogramm
t - -- CNHASC
0 -00.:...0-l.....1 10 101 100101
~/
____ __ Unterprogramm CO
A 2
Hexadezima l e Darstellung eines Bytes
Die Umwandlung e iner Hexadezimalziffer aus dem Tetradencode in den ASC II- Code geschieht in dem Unterprogramm CNHASC. Es erwar tet die binär versch lüsselte Hexadezimalziffer in de n rechten 4 Akkumulatorste ll en (rechtsbündig , die übrigen Ste llen sind gelöscht) und lie f ert die 7- Bit ASC II-Kombination in den Stel l en A6 . .. A15 des Akkumulators (die Stelle A7 ist gelöscht) . Das Verfahren der Codeumwandlung zeigt das Flußdiagramm in Bild 89 . Dabei er f ordern die Hexadezimalziffern 15
9 eine
andere Umwandlung als die Ziffern A . .. F , da von der Ziffer 9
- 185 -
(=
A
39H) zur Ziffer (=
41 H) ein Sprung
in der ASCII - Codierung erfolgt . Man vergleiche hierzu die Codetabellen in Tafel 2 und Tafel 3. Zur Ausgabe eines ASCII - Zeichens aus dem Akkumulator auf de n Bi l dschirm des Bediengerätes ist das Zeichen - Ausga beprogramm CO (eng l. ~onso l
~ut)
des Mo -
Bild 89 Codeumwandlung der Hexadezima lziffern von Tetradencode in ASC II- Code
nitorprogramms (s . Abschn. 3 . 3) aufzurufen , dessen Existenz im Zielsystem vora u sgesetzt wird . CO erwartet das auszugebende ASC I I-Zeichen rechtsbündig im Register C und kehrt erst nac h der Ausgabe des Zeichens in das aufrufende Programm ( HDUMP) zu rück . Zum Übersetzungszeitpunkt muß die Aufrufadresse des Moni tor - Unterprogramms CO dem Assembler bekannt gemacht werden (EQU - Anweisung im Programm-listing Beispiel 28) , damit er sie in den Aufrufbefehl CALL ... einsetzen kann . Den Gesamtablauf des Programms HDUMP veranschaulicht das Fluß diagramm in Bild 90 . Die Programmschleife wird für jedes anzu zeigende Byte einmal durchlaufen , das Konvertier - Unterprogramm CN HASC und das Ausgabe - Unterprogramm CO werde n jeweils zweima l aufgerufen . Beispiel 28 gibt das Programm- listing (Programmliste) für das Programm HDUMP wieder. Es ist der Ausdruck der l ist file (dt . Listendatei) HDUMP.LST , die der Übersetzer ASM80 MOD85 des Mikrocomputer - Entwicklungssystems angelegt und dem Betriebs system ISIS 11 zur Speicherung auf dem Hintergrundspeicher übergeben hat. Nach dem Aufruf des Assemblers (Bsp . 28 , 1 . Zeile) mit Angabe der Que ll datei : Fl:HDUMP.SRC meldet sich der Assemb l er mit
- 186 "1S1S - 11
Der Zusatz
" :Fl: " vor dem Dateinamen gibt die Nummer des floppy disc Speicherbyte Höherwertige rechtsbündig (A) - - fHH1~
holen Tetrade in Akku HEX
Laufwerks an, auf dem die Da tei HDUMP.SRC steht. Das ei gentliche Programm- listing be ginnt mit der Zeilen-Nummer (LINE) 1 und endet mit der Nummer 56. Wie schon beim Beispiel 27 er läutert, enthält das Programmlisting das eingegebene Quell programm und den vom Assembler für jede Programmzeile abge setzten Objekteode im Hexade zimalcode (Spalte OBJ) . Die line - Nr. kennzeichnet die mit dem Editor eingegebenen Zei len
Bleibt in einer Pro -
grammzeile die OBJ - Spalte frei , dann hat der Assembler bei der Übersetzung dieser Zeile kein e n Objekteode er zeugt. Dies ist bei einigen Assembler - Anweisungen (Pseu dobefehl e n) wie ORG, EQU und END und stets bei reinen Kommentarzeilen der Fall. Bei der Übersetzung eines Programms mit absoluten Adressen gibt die ORG-Anweisung vor der ersten codeerzeugenden Pro grammzeile die absolute Adres Bild 90
Flußdiagramm zum Programm HDUMP (Beispiel 28)
- 187 se des ersten belegten Speicherpl atzes an . Im Beispiel 28 wird in Zeile 18 der erste Programm- Speicherplatz
EC~~
(hexadezimal)
mit dem Operationscode 31 (hexadezimal) belegt, der sich bei ~EE~~H '
der Übersetzung des Befehls "L XI SP ,
ergibt. Die Spa l-
te LOC (engl. locati on) gibt die absolute Speicheradresse der für eine Programmzeile abge l egten Objektcodebytes an. Zum Bei spie l ist aus Zeile 26 zu e ntnehmen, daß für den Befeh l
"CALL
CNHASC " die drei Objektcodebytes "CD26EC " erzeugt und in die Speicherplätze
EC~A,
EC~B
und
EC~C
(hexadezimal) abgelegt wur -
den. Das Un terprogramm CNHASC schließt unmittelbar an das übergeordnete Programm HDUMP an und beginnt auf dem absoluten Adreß pege l EC26H (Ze ile 48). Di ese Adresse setzt der Assembler bytevertauscht in den o . g. CALL-Befehl in die Speicherplätze und
EC~CH
EC~BH
ein . An Hand de s Adreßpegels in der LOC - Spa l te und
des Objektcodes in der OBJ- Spalte kann man prüfen , ob der rich tige Ob j ektcode im Speicher steht und gegebenenfalls einze lne Speicherinhal te ändern . Im Interesse ei ner guten Lesbarkeit des Programms e mpfiehlt es sich , an den Anfang des Programms (vor die erste Asse mbl eran weisung) einen Programmkopf (vgl. Abschn. 2.3.5) zu st ellen , der ei ne kurze verbale Beschreibung des Programms enthält . Der Assembler übernimmt den Programmkopf wie a lle Kommentare mit in das l isting . Nach Absc hn itt 1. 4 . 3 legt der Assemb l er während des Übersetzens eine Symboltabelle (user symbols) an, die den im Markenfeld auftretenden symbolischen Namen die ermittelten absolute n Adressen bzw. Werte zuordnet . Di e Symboltabelle wird i n der list fi l e gespeichert und im Anschluß an die Programmzeilen ausgedruckt (Beispiel 28) . Durch den Steuerparameter DEBUG beim Aufruf des Assemblers wird die Symboltabelle als zusätzliche Information in die Objektdatei übernommen , um im in circuit emulator mit symboli schen Namen arbeiten zu können 1331. Mit dem Steuerparamete r XREF (Beispiel 28)
legt der Assembler
zusätzlich eine Symbol - Que rve rwei s liste ( engl . symbol cross refer ence) an , die mit in die list file übernommen wird. Diese
EC00 EC03 EC04 EC0S EC06 EC07 EC08
EC00
000F 0411 0020
LOC
3100EE 7E 0F 0F 0F elF E60F
OBJ
***
HDUMP
***
6.12.83
SOUR CE STATEMENT
MODULE
SC HOLZE
PAGE
***
(Seite 188 - 189)
25
23 24
22
20 21
19
16 V 18 HDUMP:
15
LXI MOV RRC RRC RRC RRC ANI
MASKE ZUM AUSBLENDEN DER LINKEN TETRADE UNTERPROGRAMM AUS IM MONITOR ASCII-CODE FUER LEERZEICHEN
MASf(
(-- (A) UND 0FH, LOESCHEN DER LINKEN ~AKKUMULATORHAELFTE
~(A)
~PROGRAMM-ANFANG AUF ADRESSE EC0e1H B0aS-BEFEHLE SP,0EE00H A,M ~DARZUSTELLENDES BYTE IN AKKU HOLEN ~HOEHERWERTIGE TETRADE RECHTSBUENDIG IN DEN ~AKKUMULATOR STELLEN
0EC00H
0FH 0411H 20H
~A U SFUEHRBARE
ORG
EOU
EQU
EOU
~AUSGANGSPARAMETER:
~EINGANGSPARAMETER:
12 MASf( 13 AUS 14 SPACE
11
3 4 5 6 7 8 9
ANFANGSADRESSE IM REG.-PAAR HL BEREICHSLAENGE IN BYTES IM REG E KEINE ~WIRKUNG: HDUMP STELLT DEN ANGEGEBENEN BEREICH DES HAUPTSPEICHERS AUF DEM BILDSCHIRM DES f(ONSOLGERAETS HEXADEZIMAL DAR. ZWISCHEN DIE BYTES SIND LEERZEICHEN EINGEFUEGT. ~RUFT AUF: UNTERPROGRAMM AUS DES MONITORS (AUSGABE EINES ZEICHENS) 10 ~PROGRAMM HDUMP LAEUFT AUF SMP-SYSTEM MIT MONITOR SMP-MON2
2
1
LINE
ISIS-II 8080/B08S MACRO ASSEMBLER, V4.1
ASMS0 :F1:HDUMP.SRC MODSS DEBUG XREF
Bei sp i e l 28: Pr o gramm HDUMP i n Assemblersprache (listing).
co
co
I-'
DA32EC DEeJ9 F64eJ C334EC F63eJ C9
NO ERRORS
CNHASC A EC26
ASSEMBLY COMPLETE,
USER SYMBOLS AUS A 13411
EC28 EC2B EC2D EC2F EC32 EC34
(,7
ENDE MASf(
A EC25 A 0eJeJF
4eJH UPEND 3eJH
9
HEXeJ9
10
A ECeJeJ A 0020
HEX09 UPEND
A EC32 A EC34
FUER ZIFFERN 13,1,2 •. 9 EINFUEGEN
HDUMP SPACE
~ZONE
ZUR UNTERSCHEIDUNG VON DEZIMALZIFFERN0 •• 9 UND PSEUDOTETRADEN A•• F SPRUNG, WENN (A) = 13,1,2, .•• 9 ASCII-CODE FUER ZIFFERN A•• F ERZEUGEN
48 CNHASC: CPI 49 50 JC 51 SBI 52 ORI 53 JMP 54 HEXeJ9: OR I 55 UPEND: RET 56 END
eJE2eJ CD11eJ4 23 1D C2eJeJEC CF
EC1B EC1D EC2eJ EC21 EC22 EC25
EC26 FEeJA
7E E6eJF CD26EC 4F CD11eJ'l
EC11 EC12 EC14 EC17 EC18
CALL CNHASC ~KONVERTIER-UNTERPROGRAMM AUFRUFEN 26 C,A MOV 27 CALL AUS ASCII-CODIERTE HEXADE ZIMALZIFFER AUF BILD28 SCHIRM AUSGEBEN: HOEHERWERTIGE TETRADE 29 A,M 313 MOV DARZUSTELLENDES BYTE ERNEUT HOLEN MASf( LOESCHEN DER LINKEN AKKUHAELFTE 31 ANI CALL CNHASC KONVERTIER-UNTERPROGRAMM AUFRUFEN 32 C,A 33 MOV 34 CALL AUS ASCII-CODIERTE HEXADEZIMALZIFFER AUF BILDSCHIRM AUSGEB EN : NIEDERWERTIGE TETRADE 35 MVI C,SPACE CODE FUER LEERZEICHEN IM AKKU ERZEUGEN 36 LEER ZE ICHEN AUF BILDSCHIRM AUSGEBEN CALL AUS 37 IN X H WEITERSCHALTEN AUF NAECHSTES SPEICHERBYTE 38 DCR BYTEZAEHLER DEKREMENTIEREN E 39 413 JNZ HDUMP SPRUNG IN DUMP-SCHLEIFE, WENN E = / 0 SPRUNG IN DEN MONITOR 41 ENDE : RST 1 42 43 * UNTERPROGRAMM CNHASC * 44 ~EINGANGSPARAMETER: (A) 4-BIT-HEXADEZIMALZIFFER (RECHTSBUENDIGl 45 ~AUSGANGSPARAMETER: (A) = 7-BIT ASCII-CODIERTE HEXADEZIMALZIFFER 46 ~ZERSTOERT FLAGS
EC0A CD26EC ECeJD 4F ECeJE CD11eJ4
'"
00
,....
- 190 enthält - nach Symbolen geordnet - Verweise auf alle Programm zeilen , in denen die Symbole im Operanden - /Adressentei l auf trete n (Bild 91) . In der mit
~
gekennzeichneten Zeilen - Nummer
ist der Name definiert.
ISIS-II ASSEMBLER SYMBOL CROSS REFERENCE, V2 .1 AUS CNHASC ENDE HDUMP HEX09 MASK SPACE UPEND
13U 26 41U 18U 50 12U 14U 53
28 32
34 4BU
40 54U 24 36 55U
31
37
CROSS REFERENCE COMPLETE Bild 91
Symbol-Querverweis liste zu Beispiel 28
Der gesamte Leistungsumfang des Assemb l ers im Entwicklungssy stem MDS/SME i st aus 133 1 zu entnehme n. Aus Pl atzgr ünden ka nn hier nicht auf die Fehlermeldungen des Assemblers eingega ngen wer den.
3.3
Monitor - Betriebsprogramm
Erzeugt man lauffähige Objektprogramme auf ei nern host computer (vgl . Bi l d 85) mit Hilfe von cross software , so werden Zi e l systeme benötigt, die das Laden , Starten und Austesten von Pro grammen im stand a l o n e - Betrieb ermög lich en . Zie l systeme mit diesen Eige n schaften sind Mikrocomputer - kits (z.B. SDK 85 von INTEL) , Experimentiercompu ter (z.B . ECB 85 vo n SIEMENS) auf eine r Leiterplatte oder ausbaufähigere Prototypsysteme auf mehreren Leiterplatten ( z . B. SMP - und AM S-Sys teme von SIEMENS , SBC - System von INTEL), die über einen Mik rocomp u terbus mit ei n ander verbunden sind ; auch die Personal Computer si nd hier zu nennen.
Diese Zielsysteme verfügen über Betriebsprogramme - auch Moni torprograrnme oder kurz Monitoren genannt -, die automatisch
- 191 nach dem Erzeugen eines Rücksetzimpulses auf Speicheradresse
0000
gestartet werden (vgl. Abschn. 1.2.5.1) und den Dialog
des Mikrocomputersystems mit dem Bediener herstellen. Das Monitorprogramm steht jederzeit aufrufbereit im Festwertspeicher des Mikrocomputers. Der Monitor ermöglicht dem Benutzer : die Steuerung des Mikrocomputers mit Kommandos über ein Konsolgerät (Daten - Sichtgerät) oder über eine auf der Mikro computerplatine integrierte Hexadezimaltastatur mit opto elektronischer Anzeige .
*
die hexadezimale Ein - jAusgabe von Programmen und Daten über das Konsolgerät mit Kommandos und durch den Aufruf von Unterprogrammen des Monitors. die Fehlersuche in Programmen mit Testhilfen wie Haltepunkt und Einzelbefehlssteuerung .
Zum Betrieb eines Monitors muß das Mikrocomputersystem folgende Hardware - Komponenten besitzen:
*
Einen Festwertspeicher (ROM, BPROM) zur Aufnahme des Monitorprogramms (ca.l KB bis 4 KB Umfanq) .
*
Lese - jSchreibspeicher zur Kellerung von Registerinha lten, als Hilfs-Speicherplätze für den Monitor und zur Aufnahme vo n Anwenderprogrammen im Teststadium .
*
Einen seriellen Datenkanal zum An sch luß eines Bediengeräts oder eine einfache Bedieneinrichtung auf der Leiterplatte .
*
Evtl. erfor derlich e Schaltungsvorkehrungen am Mikroprozes sor für die Ausführung der Einzelbefehlssteuerung und LEDAnzeigen. Eine Rücksetztaste oder ein Einschalt-Reset ist in jedem Fall notwendig .
3.3 .1
Monitor - Kommandos
Die grundlegenden Monitor-Kommandos sind in Anlehnung an den Monitor ei nes industriellen Mikrocomputer - Prototypensystems
134 1 in Tafel 18 zusammengestellt und erläutert . Kommandos
- 192 setzen sich aus einem Kommandosymbol , das die Fun ktion angibt - hier ein Großbuchstabe - , und angefügten Parametern mit Trennzeiche n ( e ngl . delimiter) zusammen. Nach Tafel 18 können Par ameter sein: Registernamen (reg), Speicheradr esse n ( adr) und Dat en (dat). Mehrere Parameter sind durc h Trennzeichen zu tre nnen; a l s Trennzeichen akzeptiert der zugrunde ge l egte Mo ni tor wahlweise Leerzeichen (blank), Komma oder l-vagenrücklauf . J edes Kommando wird durch e inen Wagenrücklauf (CR) abgeschlossen bzw . z ur Ausf üh rung gebracht . Tafel 18
Monitor - Kommandos 1341
(~nsert)
I
I CR adr
(Seiten 1 92 - 194)
Eingeben in den Speicher h~'Mo' I'~ dat . . CR . . Eingabe von Programmen u nd Daten in .he= ·xadezimaler Form i n den RAM ab Adresse adr. Die Bytes dat werden in aufeinan derfo l ge nde Speicherzellen geschrieben. CR am Zeilenende, Beendigung der Dat e n~ ei ngabe durch Trenn zeiche n .
D (9.isplay)
Anzeigen von Speicherinhalten
D adrl adr2 CR v
Anzeigen der Speich erinha lte in hexa dezimal er Darstellung auf dem Bildsc hi r m von Adresse adrl bis einschließ lich adr2. Jede Ausgabezeile beginnt mit einer Adresse , gefolgt von maximal 16 Bytes , die durch Leerzeichen vone inander ge trennt sind . Oq, ,·,1 c' &j~_~ c:l02.0JC~'''~C ~f;SC/l-(c,rJt:.1
S
(~ubstitute)
s~a dr
M
dat - (dat) ..
(~ov e )
F"",
Nach der Ei ngabe eines Leerzeichens gibt der Monitor den Inhalt des Speic h er platzes adr hexadezimal mit nachfolgen dem Bi ndestrich auf dem Bi ldschirm aus. Fa ll s gewünscht , kann der Inha l t durch Eingabe zweier Hexadezimalziffern über schrieben werden , sonst mit Leerzeichen zum nächsten Speicherplatz weiterscha l ten. Beende n des Kommandos mit CR. Verschieben vo n Speic h er b ereic h en
M adrl adr2 adr3 CR 'i~,,"1
An zeigen und Ändern von Speicherinhal ten
;>,~(
Die Inha l te der Speicherplätze des Ur spr ungsbe reichs von adrl bis adr2 we r den i n de r gleichen Reihenfolge byteweise in den Zie lbereich ab adr3 über tragen.
- 193 -
F (fill)
Speicherbereich mit Konstanten füllen
F adrl adr2 dat '-'s~",t E\cl ß't1"
Die Speicherplätze von adrl bis adr2 werden mit einer Folge von max. 16 8- Bit - Konstanten (dat) gefüllt. Bei Be darf wird die Folge sooft wiederho l t , bis die Endadresse erre i c ht ist. Been den des Kommandos mit CR.
x (e!!.amine)
Anzeigen und Ändern von Registerinhalten
X CR
a) Anzeigen a ller Registerinha l te
I
.. in einer Zeile ohne Änderungsmöglichkeit . Angezeigte Register : A, B, C , 0, E, H, L, M (=HL) , P (=PC) , S (=SP) , F, I (vgl . Bild 45) . Form der Anzeige: A=5F B=~2 C=~~ D=4A E=43 H=EC L=l~ M=EC1~ ... x
reg CR
b) Anzeigen eines Registers mit Än dern ,
reg = dat (dat) CR
falls gewünscht . Nach der Eingabe des Registernamens reg (s . o.) gibt der Moni tor aus : reg=dat bzw. reg=adr . Auf Wunsch kann der Registerinhalt mit einem neuen ~Iert überschrieben werden. Beenden des Kommandos mi t CR. Soll der alte Wert erhalten bleiben , nur mit CR beenden . Für beide Varia nt en des X- Komma ndos gilt , daß nicht die augenblicklichen Inhalte der Register angezeigt bz~ ge ändert werden , sondern die in einem SChattenspeicher (im RAM) zu l etzt abgelegten Registerinhalte (z.B. nach Verlassen des Anwenderprogramms) .
G ( 9.0) G adrl adr2 adr 3 CR ~1a.,t
.sj~pl
S;.~1.
Starten eines Programms Das Programm im Hauptspe ich er wird ab Adresse adrl gestartet. Wahlweise können ein oder zwei Haltepunktadressen adr2 und adr3 im Kommando angegeben wer den , die auf das erste Byte von Befeh len zeigen müssen. Der Mikroprozessor verzweigt dann vor der Ausführung des adressierten Befeh l s in den Monitor auf Adresse ~~~8H . Die Registerinhalte im Haltepunkt wer den in den Schattenspeicher abge l egt und könn e n z .8. mit dem X- Kommando a ng ezeigt werden. Programmfortsetzung im Ha lt epunkt mit : G CR . Der Haltepunkt wird nach einmaligem Anha l ten gelöscht .
I
- 194 -
Während im Monitor gearbeitet wird, sin d Interrupts gesperrt . Endet ein Programm mit dem RST1-Befehl , werden die Regi,... sterinhalte ebenfalls in den Schattenspeicher abgelegt . Mit G CR wird der Befehlszähler PC aus dem Schattenspeicher heraus ge l aden. E (exe·cute T (-jvo.ce ) J:ns-t,-PtlC ';'on) E (adr) CR
xP.J P
x)(}(
-1 0 °.::--1
T
T.,
U.. ~nput
Einsabe von Datenkanal
)
PI port CR
--PO (!2.0rt
Das Programm ab Adresse adr wird im Ein ze lb efeh lsmodu s (single i nstruction) abgearbeitet . Nach jedem ausgeführten Befehl werden alle Registerinhalte auf dem Bildschirm angezeigt . Es können wei te re Kommandos zur Programmanalyse ver wendet werden. Danach Fortsetzung im Einzelbefehlsmodus mit : E CR bzw . Fortsetzu ng im Normalbetrieb mit:G CR . Die Registerinhalte einschließlich Be fehlszählerstand (PC) werde n hierbei aus de m SChattenspeicher aufgenommen, in den sie der Monitor nach jedem Befehls schritt ab l egt.
V.,-t.c..ce
PI (!2.0rt
Programmablauf im Einzelbefehlsmodus
~utput)
PO port dat CR
---------
Vom Eingabekan dlliiIt der Adresse port wi rd der-anstehende Bytewert eingelesen und hexadezimal auf dem Bildschirm an gezeigt . Aussabe an Datenkana-l- -
-
Das im Kommando hexadezimal definierte Byte dat wird über den Ausgabekanal mit der Adresse port ausgegeben.
Erklärungen zu Tafel 1 8: adr adrl adr2 port dat reg (
CR
Speicheradressen als 4stellige Hexadezimalzahlen Ein - /Ausgabeadresse (2stellige Hexadezimalzahl) Datenbyte als 2stellige Hex - Zahl Registername wahlweiser Parameter im Kommando in Klammern Steuerzeichen CR (carriage return) im ASCII Code
Zusätzlich zu den Monitorkommandos in Tafel 18 sind in den Mo nitorprogrammen verschiedener Her ste ll er vereinzelt weitere Kommandos verfügbar zur:
- 195 -
*
* * *
Bedienung einfacher Hintergr u ndspeicher (z.B. Audio-Kas sette) elektrischen Programmierung von EPROM-Festwertspeichern Lochstreifen - Ein - /Ausgabe Disassemblierung von Objektprogrammen im Speicher ( Test hilfe) Behandlung von Unterbrechungen 1341.
Ein Disassembler bewirkt die Rückübersetzung des im Speicher befindlichen Maschinencodes in die mnemotechnischen Abkürzun gen der symbolischen Assemblersprache ; Adressen und Daten blei ben in hexadezimaler Darstellung. Während des Programmtests er leichtert die Disassemb l ierung die Kontrolle der Objektprogramme im Speicher. Bei dem Monitor nach 1341 wird jedes Kommando während der Kom mandoeingabe durch ein unzulässiges Zeichen z . B . RUBOUT (ent spricht DEL= 7FH in Tafel 3) abgebrochen und ein neues Komman do angefordert. Ein bereits in Ausführung befindliches Konwan do l äßt sich während der Ein-/Ausgabe über das Bedien- Sichtge räte durch Eingabe des Zeichens ESC (vgl. Tafel 3) abbrechen. Eine laufende Ausgabe auf den Bildschirm kann durch gleichzei tiges Drücken der Tasten CTRL und S vorübergehend angehalten und mit den Tasten CTRL und Q wieder fortgesetzt werden . 3. 3. 2
Aufbau des Monitor - Programms
Der Aufbau von Monitorprogrammen entspricht im Prinzip dem Fluß diagramm in Bild 92 135 1. Die oberste Programmebene stel l t die Kommando - Entschlüsselungsroutine dar, die in die dem Kommando symbol entsprechende Ausführungsroutine verzweigt . Ist das ein gegebene Zeichen nicht a l s Kommandosymbo l definiert , wird ein Irrungszeichen (z . B. ? oder
# ) ausgegeben und mit dem Zeichen
> ein neues Kommando angefordert . Die Ausführungsroutine steu ert den Ab l auf des Komman dos - einschließlich dem Einholen der Parameter von der Tastatur -, wobei sie Arbeitsroutinen (engl . utilities) aufruft, die oft wiederkehrende Grundfunktionen wie Ein - /Ausgaben über das Bediengerät und Zahlenko n vertierun gen erledigen. Eine solche Arbeitsroutine ist z.B . das Unterprogramm CO (AUS) , das wie in Beispiel 28 mit CALL - Befeh l en auch vom Anwenderprogramm aus aufger u fe n werden kann.
- 196 Warmstar t 0008 :
Ka l t-
Bildschirm , pointer und Speicher zellen initialisiere
Retten der Register inhalte in den Schattenspeicher
Me l d un g auf Bildschirm : SMP-MON2 vx . y
> .0-____--1
display - Ro u tine
> "'-_ _ _ _--1 Befehl ausführen ,
Register anzeigen
> " - - - - - - - 1 f i ll- Rou t ine
> - - - - - - 1 insert - Routine
>~------1 move - Routine
> _ _ _ _ _--1 port input/ port output - Routine
~--------~ substitute - Routine
> "--____--1 Register - Anzeige Änder - Routine
> 0------1 go - Rou t i ne
oh n e/ mit Haltepunkten
'v'''--------~ error - Routine :
?
und
- 197 Das Rücksetzen d es Mikrocomputersystems
(entspr . Befehl
RST~ )
fü hrt gemäß Bild 92 in ein Ka l tstartprogramm (Initialisie rungsprogramm), das die serielle Konsol - Ein - /Ausgabe und ande re , evt l. vorha n dene Ein-/Ausgabebausteine i n einen arbe i ts fähigen Zustand versetzt (initialisiert) , einen Stack für den ~lonitor
definiert und bestimmte Speicherzellen im RMl vorbe -
l egt. An sch l ieße n d wird in die Melderoutine verzwe i gt, die nach
134 1 auf den Bildschirm der Konsole ausgibt: SMP - MON2 Vx.y .
Der daraufhin folgende Kommandoentsch l üssler gibt dem Bediener mi t
dem Zeichen> bekannt , daß er auf definierte Kommandos von
der Konsoltastatur wartet . Beendet man ein Anwenderprogramm mit dem Befehl RST 1, so wird i n die Warmstartroutine (Wiederanlaufroutine) des Monitors ver zweigt, die u.a. die Registerinhalte des Anwenderprogramms i n den Schattenspeicher ablegt . Sie können danach z.B . mit d em X- Kommando angeschaut werden. Si nd im G- Kommando Haltepunktadressen angegeben , dann ersetzt der
~l oni tor
vor dem Start des Programms den Or igina lb efehl ,
auf den die Haltadresse zeigt , durch einen " RST l "- Befehl , der in die Warmstartroutine des Monitors führt . Dieser setzt da rauf h in den Originalbefehl wie d er ein u n d stel l t
den Befe hl s -
zähler um 1 zurück. Es können dann nach Bedarf die Registe rund Speicherinhalte mit Hilfe der Kommandos analysiert werden . Setzt man das angehaltene Programm durch Eingabe von G CR fort , werden die Registerinhalte einschließlich des Befeh l szählers
Beispie l
29 :
Zur Anwendung der Monitor-Kommandos .
> G ECß'ß' ECß'7 # ECß'7 SMP - t10N2 Vx.y > X CR A=xx B=xx C=xx D=xx E=xx H=xx L=xx 11=xxxx S=EEß'ß' P=ECß'7 F=xx I= xx > G CR
35
;Ab START sind 2~ Befehle schrittweise ; auszuführen , jedoch Abbruch , wenn Be; dingung (PC) = ABCDH oder Bedingung ;(CTR»35 erfüllt. e) Kommandos zur Programmanalyse (Anzeigen und Ändern) *RA *RBC =
; zeigt den Inhalt des Akkumulators an EC~IilH
*PORT EDH *PRINT
- l~
; lädt Registerpaar BC mit
EC~~H
; zeigt das Byte am EA - Kanal EDH an zeigt die Systembusdaten der 10 zuletzt ausgeführten Befehle aus dem Trace speic her an.
- 213 abbrechen.
*
Bei der Echtzeit- Emulation wird das Anwenderprogramm gestar tet und mit der echten Ablaufgeschwindigkeit des Zielsystems bis zum Erreichen einer Haltebedingung ausgeführt (Tafel 22 . c). Die Haltebedingung oder eine Kombination von Bedingungen kann im GO- Kommando angegeben werden . Der Emulator hält nach der Ausführung des Befehls , in dem die Haltebedin gung erfüllt ist, und meldet sich mit EMULATION TERMINATED,
pe
=
nnnnH. Durch die Spezifikation FOREVER werden vorher
gesetzte Haltebedingungen unwirksam . Fehlt das Schlüsselwort FROM einsch lie ßlich Startadresse, wird das Programm ab dem letzten Haltepunkt fortgesetzt . Eine Echtzeit- Emulation ist nur dann wirklich gegeben, wenn die Hardware des Zielsystems (Speicher und Ein - /Ausgabe) vollständig vorhanden ist und bei der Emulation benutzt wird . Von Echtzeit-Emulation spricht man, wenn die Laufzeit (Ausf Ühr ungszeit) des Programms im Emulator unter Testbedingungen nicht größer ist, als die Laufzeit des ausgetesteten Programms ohne Emulator - Kontrolle . Muß der emulierende Pro zessor auf den Hauptspeicher und/oder Ein - /Ausgabekanäle des Entwicklungssystems zugreifen , so ist kein Echtzeittest im genan nt en Sinne gegeben . Während des Emulationslaufs übernimmt der Trace - Modul die Information auf dem Systembus (Adresse , Status, Daten) während jedes Maschinenzyklus für bis zu 1024 abgelaufene Zyk len in den Trace - Speicher , dessen Inhalt nach abgeschlosse ner Emulation angezeigt werden kann.
* Bei der Einzelschritt-Emulation (single step emu l ation) können nach jedem ausgeführten Befehl die Systembus - Zustände und Registerinhalte auf den Bildschirm ausgegeben werden . Im STEP-Kommando (Tafel 22.d) sind verschiedenartige Haltebedingungen zugelassen . Die Einzelschritt- Emulation ist natür lich keine Echtzeit-Emulation.
* Nach dem Abbruch einer Emulation können zur Analyse des ab gelaufenen Programms dessen hinterlassene Speicher - , Regi ster- und Port- Inhalte angezeigt und wahlweise über die
- 214 Konsoltastatur geändert werden (Tafel 22.e). Ein sehr wirkungs volles Hilfsmittel ist die Anzeige des Trace - Speicherinhalts mit dem PRINT-Kommando in 3 wählbaren Anzeigemodi. Da die Sy stembus-Zustände während der letzten 1024, vor dem Haltepunkt abgelaufenen Maschinenzyklen angezeigt werden können , läßt sich der (Echtzeit-) Programmablauf gut rückwärts verfolgen. Die Eingabe eines Kommandos in ICE85 wird stets mit Wagenrücklauf (CR) abgeschlossen; CR ist in Tafel 22 weggelassen. Es soll nun das Programmbeispiel HDUMP (Beispiel 28) mit dem Testemulator ICE85 unt ersuc ht werden . Beispiel 31 gibt das Druck erprotokoll des Testdia l ogs wieder, das durch das ICE85 Kommando LIST : LP:
(:LP : ist die " Datei"
~ine
Erinter) erzeugt
werden kann. In dem Testprotokoll ist die Reaktion des Emula tors auf die eingegebenen Kommandos enthalten . Im folgenden sind die Wirkungen der Kommandos in Beispiel 31 an Hand der Bezugsnummern kurz erläutert : ~
Die drei MAP -Kommandos legen die Speicher- und EA- Adres -
sen - Zuordnung für den Emulationslauf fest (s . Bild 97) . Die ab soluten Adressen im Programm HDUMP werden im Emulator auf die Programm-Anfangsadresse
7~~~H
(Offset) im Entwicklungssystem
umgerechnet . Im freigegebenen Ein-/Ausgabeadressen-Block E8 bis EF liegen die Konsolgeräte - Adressen EC und ED, die im Monitor des Zielsystems verwendet werden . ~ Laden d'e s ablauffähigen Anwenderprogramms HDUMP in den
Haupts peicher des Entwicklungssystems . ~
se
Starten des Monitors im Zielsystem (SMP -S ystem) ab Adres -
~~~~
bis zur Ausführung des a n Adresse
~~BAH
beginnenden Be-
fehls . Das Durchlaufen der Kaltstart - Routine des Monitors im Anwendersystem bereitet das Konsol-Sichtgerät auf die folgende Datenausgabe vor. ~
Laden der Anfangsadresse
(~~~~)
und der Länge (FF hex . )
des in Beispiel 29 darzustellenden Speicherbereichs in die Re gister HL und E mit ICE85-Kommandos . ~
Einzelschritt-Emulation von 3 Befehlen (COUNT 3) ab der
Anfangsmarke HDUMP. Das Vorab-Kommando ENABLE DUMP bewirkt , daß nach jedem ausgeführten Befehl die Systembus -Zus tände währe nd
- 215 -
Beispie l 31: Untersuchung des Programms HDUMP (Bsp. 28) mit dem Testemulator ICE85
(Testprotokoll) .
*M~P MEM 0000H TO 07FFH = USER *MAP MEM E800H TO EFFFH = INTELLEC 28K WARN C1:MAPPING OUER SYSTEM *MAP 10 E8H TO EFH ~ USER *LOAD :F1: HDUMP.OBJ *GO FROM 0 TILL 00BAH EXECUTED EMUL..ATlON BEGUN EMUL..ATION TERMINATED. PC=00BDH *RH 00 *RL.. = 00 *RE = FF ·)fENABLE DUI1P *STEP FR DM .HDUMP CO UNT 3 EMULATION 8EGUN EC00-E-31 EC01-R-00 EC02-R - EE P~EC03H S=EE00H A=0CH F=10H B=00H C=20 H D=FFH E=00H H=0 2H L=FF H I=87H 5) EC03-E-7E 02FF-R-CD P=EC04 H S=EE00H A=CDH F=10 H 8=00H C~20H D=FFH E=00H H=02H L. =FF H I=87H EC~1'!-·E -~)F
P=EC0SH S=EE00H A=E6H F=11H B=00H C=20H D=FFH E=00H H=02H L=FFH I=87H EMULATIDN TERMINATED. PC=EC06H *GO FROM .HDUMP TILL EC21H 6) EMl.ILATION BEGUN EMUL.ATION TERMINATED. PC=EC22H *R P=EC22 H S=EE00H A=20H F=B0H 8=00H C=20H D=FFH E=FEH H=00H l...o.'01H I =87 H 7) *BYTE 0 TD 5 0000H=C3H 40H 00H FFH FFH FFH *PORT EDH 45H *GO TILI... .ENDE } EMULATION BEGUN 8) EMULATION TERMINATED. PC=0008H *PRINT ADDR -S INSTRUCTION ADDR-S-DA ADDR-S-DA ADDR-S-DA } 1003: 0418 RET EDFE-R-20 EDFF-R-EC 1009: EC20 INX H 9) 1011: EC21 OCR E 1013: EC22 JNZ 1~17: EC25 RST EDFF- W- EC EDFE-W-26 *EXIT Anm . : Zu den Nummern 1) bis 9) siehe Erläuterungen im Text!
- 216 der Maschinenzyk l en und die Registerinhalte nach dem abgesc hl ossenen Befehl auf dem Bi ldschirm des Entwicklungssystems ange SP,~EE~~ H
zeigt werden. Der erste Befehl LXI EC~~ H
bis
EC~2H
auf den Adresse n
(des Anwendersystems) wird folgendermaßen pro -
toko l liert : (ADR) EC~~
(STAT) - E
(DAT)
(ADR) EC~l
- 31
(Zyklus MI)
(STAT) -
R
(DAT)
(ADR)
~~
-
(Zyklus M2)
EC~2
(STAT) -
R
(DAT) - EE
(Zyklus M3)
Erklärungen sind in Klammern hinzugefügt . Der Status E (exe cute) kenn zei chnet einen Befehlhol-Zyklus , der Status R
(~ead)
e inen Lesezyklus und We i nen Schreibzyklus . ~
Echtzeit - Emulation vom Programmanfan g bis z ur Haltepunkt -
Adresse EC 21H, sodaß der Befehl DCR E in Beispiel 28 als letz ter ausgeführt wird . ~
Mit den Kommandos R , BYTE und PORT werden die Inh alte
der Register , von Speicher ze llen und EA- Kanälen angezeigt, wie man s i e im Haltepunkt (hi er EC21H, nach Ausf üh ru n g des Befehls DCR E) vorfindet . Das Interruptregister I enthält dabei die Interruptmaske , wie sie der Befehl RIM liefert (vgl . Absc hn. 2 . 3.6). Das Byte - Kommando gibt die Inhalte der Speicherplätze ~~~~H
bis
~
Fortsetzung der Echt zeit - Emulation nach dem Haltepunkt
~~~5H
auf den Bildschirm aus.
mit (PC) = EC22H bis zur Marke ENDE im Programm HDUMP (Bsp . 28) . Der let z t e ausgeführte Befehl RSTI führt auf die Haltadresse ~~~ 8H
im Monitor des Zielsystems .
~
Mit dem Kommando PRINT - 5 werden die Trace - Speicherinha l-
te für die letzten fünf ausgeführten Befehle auf dem Bildschirm angezeigt. Im instruction mode
(=
voreingeste llter PRINT- Anzei -
gemodus) wird in einer Zeile (frame) die Befehlsadresse un d der disassembl ierte Befehl ausgegeben . Laufen außer dem Befeh l hol zyklus weitere Buszyklen (Speicher - oder Ein - /Ausgabezyk l en) ab, dann werden die Systembus - Zustände (ADDR-S-DA) für diese Zykl en in derselben Zeile protokolliert. Im Programm HDUMP (Bsp. 28) bewirkt der Befehl JNZ HDUMP an der Adresse EC22H beim l etzten Schleifendurchlauf keinen Sprung an den Programmanfang , weil die Sprungbedingung nicht erfüllt ist . Die Sprung -
- 217 Zielsystem (SMP)
Entwicklungssystem (hex) Hauptspeicher FFFF SME - Monitor
c::::::=J
(hex) Hauptspeicher FFFF
ge schützt
ICE-Variable
-,- - - -Symboltabelle - -------
791!1! 78F'F
progra~ HDUMP //,
'/'
ICE85 (16 KB)
3i!1!1! 2FFF
Bild 97
ISIS II (12 KB) resident
u ngeschützt
ungeschützt
./ 28 K ,
TO'
Ein-/Ausgabeadressen FF EF } unge E8 ~KOnsol-Gerät schützt
---
~
I!I!~
Speicher- und Ein-/Ausgabeadressen-Zuordnung für einen Emulat10nslauf gemäß MAP-Anweisungen in Beispiel 31
adresse des Befehls wird daher nicht aus dem Speicher ausgelesen, wie aus dem Trace-Protokoll zu ersehen ist. Der Befehl RSTI im frame 1017 legt die Folgeadresse in zwei Schreibzyklen (W) in den Stack ab. Neben dem beschriebenen Mikrocomputer-Entwicklungssystem der Serie 11 gibt es die leistungsfähigeren Geräte der Serie 111 und der Serie IV 1601, die in erster Linie für die Entwicklung mit 16-Bit-Mikroprozessoren (8086 bis 80286) vorgesehen sind. Den Platz der Zentraleinheit im Serie-lV-System nimmt inzwischen ein Personal Computer (mit Winchester Laufwerk) ein, an den der Echtzeit-Testemulator I'ICE 1691 angeschlossen wird. Verschiedene INTEL - Entwicklungs systeme können als Entwick lungsstationen über ETHTERNET zu einern Systemverbund zusammengeschaltet werden.
- 218 4
Aufbau von Mikrocomputersystemen
Um ein arbeitsfähiges Mikrocomputersystem zu erhalten , ist der Mikroprozessor über den Systembus mit Speicher- und Ein-/Aus gabeeinheiten zu beschalten. Allen busorientierten Mikrocomputerkonfigurationen unterschiedlichen Umfangs liegt die Struktur nach Bild 11 zugrunde . Neben den Funktionseinheiten, deren Wirkungsweise in den Abschnitten 1 . 2 . 3, 1 . 2.6 und 1 . 2.7 be schrieben wird, benötigt man Hilfsbausteine für die Verstär kung von Signalen (Puffer - bzw. Treiberbausteine) , für die Zwischenspeicherung von Bussignalen (engl . latche s) , für die Dekodierung von Adressen , für Taktst e u erung , Rücksetz-Einrich tung und Einzelschritt - Steuerung. 4.1
Mikrocomputer - Konfiguration
Der Umfang eines Mikrocomputersystems richtet sich nach der geplanten Anwendung. Lange Programme und große Datenmengen be dingen einen umfangreichen Ausbau des Hauptspeichers (max . 64 KB beim MP 8085) , viele Ein-/Ausgabeeinrichtungen bzw. Hinter grundspeicher erfordern entsprechende Ein-/Ausgabebausteine. Ergänzungsbausteine wie OMA-Controller , Interrupt Controller , Arithmetikprozessor oder programmierbarer Zeitgeberbaustein steigern die Verarbeitungsleistung eines Mikrocomputersystems erheblich und reduzieren in der Regel den Aufwand an Software. Zu den meisten Mikroprozessortypen gibt es systemkompatible Speicher- , Ein-/Ausgabe- und Ergänzungsbausteine , die aufgrund ihrer Anschlüsse und ihrer Signalpegel, sowie ihrem zeit lichen Verhalten direkt an den Systembus des Mikroprozessors (vgl . Abschn. 2.1.3 und 2 .1.4 ) angeschaltet werden können. Da die Anzahl der Bausteine eines Mikrocomputersystems unmit telbar in dessen Herst ellkosten eingeht , wird man - insbeson dere bei großen Stückzahlen - ein Mikrocomputer - Anwendungs system mit der geringstmöglichen Anzahl von Bausteinen zu rea lisieren suchen. Dies hat zudem den Vorteil einer geringen Fehlerhäufigkeit, denn die Fehlerwahrscheinlichkeit wächst mit
- 219 der Anzahl der ver schalteten Bausteine. 4.1 . 1
Blockschaltbi l d für 8085 - Mikrocomputersysteme
Den verschiedenen Systemkonfigurationen mit dem Mikroprozessor 8085 liegt im Prinzip das Blockschaltbild nach Bild 98 zugrunde . Im Verg l eich zu der allgemeinen Struktur eines busorien tierten Mikrocomputersystems (Bild 11) werden hierbei die Systembus - Schnittstelle und die Standard-Peripheriebausteine des 8085 berücksichtigt . Es gibt für den Mikroprozessor 8085 einige Speicher - und Ein - j Ausgabebausteine (8155,8156, 8355 , 8755, 87C64) , die direkt an de n ge mu ltiplexten 8085-Systembus angeschlossen werden können . Diese 8085 - Spezialbausteine (Multifunktionsbausteine , siehe Abschn . 4.2.4 ') erlauben den Aufbau von 8085 - Kleinstsystemen mit minimal 3 Bausteinen . Sie sind auch an den Mikroprozessor 8088 (s . Abschn. 7) anschaltbar . - Im Blockschaltbi l d (Bild 98) werden jedoch die allgemein eingesetzten Speicherbausteine (vgl . TafelS) und die weitverbreiteten Standard- Ein - jAusgabe bausteine (8251,8253, 8255, 8259) der 80'er Mikrocomputerreihe dargeste l lt. Diese Bausteine benötigen einen 8-Bit - Datenbus und gleichzeitig den vol l ständigen Adressenbus durch Zwischenspeicherung der Adressensignale
A15 - ~ , A7 - ~
was man
in einem
externen 8- Bit- latch erreicht (vgl . Bild 50) . Die in Bi l d 98 gestrichelt eingezeichneten Pufferbausteine (Treiberbausteine) haben die Aufgabe , die Leistung der 8085Ausgänge zu verstärken , wenn eine größere Anzahl von Speicher und Ein-jAusgabeeinheiten am Systembus zu betreiben ist. Ein 8085 - Signalausgang liefert z.B. im low-Zustand einen Gleich strom von 2 mA bzw . von - 400
~A
im high - Zustand 1121 . Er kann
somit gleichstrommäßig einen TTL - Eingang und bis zu 36 MOS-Ein gänge treiben , solange dabei die gesamte kapazitive Belastung durch Baustein-Eingänge und Leitungen ca . 150 pF nicht über steigt . Ein Eingang des EA-Bausteins 8255 1161 stellt am Systembus z.B. eine kapazitive Last von CL ; 10 pF (max.) dar . Die Signal - Zeitdiagramme des 8085 und die angegebenen Buszeiten
für DMA
externe Ereignisse
Bild 98
R
T
GRD
' : :i :1 I Ii
AD7 - ~
8 08 5
PA
V::11
CTRL
PB
INTR ,-
I.
PC
RAM/ROMDekodierer
11
11
CLK GATE OUT
"
11
IR 0 1 2
11 11 li 1I
7
::
CTRLBus
Abk.: CTRL (control) ... Steuerung CSi ... chip select-Signale (i = ~ .. n) IR~-7.~ interrupt request-Signale weitere Abk . .. s. Tafel 7 und Abschn. 5 . 3-5.5
Blockschaltbild für 8085-Mikrocomputersystem mit Standard-Bausteinen
EADekodierer
::
Al5 -8 ALE
MIKROPROZESSOR
XlX2 HOLD HLDA TRAP RST5.5 6.5 7.5
Quarz
'"'" o
- 221 in den Datenbüchern 1121,
1131 gelten bei einer kapazitiven
Belastung der Ausgänge mit 150 pF. Größere Kapazitäten bewir ken eine Verlangsamung der Signal flanken und damit Impulsver zögeru ngen, die ein System " außer Tritt" bringen können . Werden in einern System die für den 8085 vorgegebenen Belastungs grenzen gleichstrornrnäßig oder kapazitiv überschritten, so ist der Einsatz von Pufferbausteinen unumgänglich . Verbindet ein Bussystem mehrere Leiterplatten miteinander, dann steigen die Leitung skapazitäten , sodaß sich hier immer eine Pufferung der Bus - Ausgänge auf den Platinen empfieh lt. Während eines Buszyklus liegt auf dem Adressenbus
A 1 5 -~
die
Adresse des auszuwählenden Bus-Teilnehmers, deren Dekodierung die Auswahlsignale
~hip ~elect
CSi oder
~hip ~nable
CEi für
die peripheren Bausteine liefert. Üblicherweise hat man auf einer Mikrocomputerplatine eine getrennte Speicheradressen und EA- Adressendekodierung (Bild 98). Mehr zu Adressierungs und Dekodierungsfragen folgt im Abschnitt 4.2. Ein-/Au sgabebausteine können in einern System nach Bedarf einzeln oder mehrfach eingesetzt werden. Die Funktionsweise einiger Standard-Peripheriebausteine wird in Abschnitt 5 gebracht. 4 . 1.2
Realisierungsformen von Mikroco~putern
Das Spektrum der Mikrocomputersysteme reicht vorn Ein-Chip-Mi krocomputer üb er Ein-Platinen-Mikrocomputer und modulare Mehr Platinensysteme (Baugruppensysteme) bis zum Persona l Computer und zum Mehrbenutzersystem. Für Kleinanwendungen besonders geeignet ist der Ein - Chip - Mikrocomputer (engl. single chip computer), der neben dem Mikropro zessor einen RAM- und ROM-lEPROM-Bereich begrenzten Umfangs, Ein - /Ausgabekanäle und verschiedene Ergänzungsschaltungen in einern Baustein vereint . Der Ein-Chip - Mikrocomputer 805 1 (Bild 99) beinhaltet die dargestellten Funktionen einsch li eß lich zweier 16-Bit- Zähler in einern 40poligen dual in line - Gehäuse 1421. Unter der Typenbezeichnung 8051 enthält der Baustein ei nen maskenprogrammierten 4 - KB-Fe stwertspeicher (ROM), der a ls Prototyp verwendete Typ 8751 enthält stattdessen einen 4-KB -
- 222 Quarz
TESTj!'
TESTl
r------------------------,
I I I I
Takt
4096x8 B~t Festwer t speicher
128 x8 B~t
2x 16 B~t Zähler / Zeitgeber
Lese / Schre~b
speicher
I I
I
8- Bit
I ~;~~~~sor I E/ASteuer ung
I
Paral l el Ein- / Ausgabe _
~--
Unterbrechungen Bild 99
_
E/A - und SpeicherErwe iterungssteuerung
I I I Serielle I Ein - /Aus- I gabe L...:..-y-_--..---' J EIN
AUS
Ein-Chip - Mikrocomputer (Beispiel 8051)
EPROM-Speicher, dessen Inhalt der Anwender nach Bedarf ändern kann . Da neben gibt es - vorwiegend für Experimentiersysteme die Version 8031 des Mikrocomputers ohne integrierten Festwer t speicher. Der extern zu realisierende Programmspeicher - wie eventuell weitere periphere Bausteine - werde n dabei über die Ein-/Ausgabekanäle angeschlossen , die dann zu einem Sy stembus umfunkt ioni ert werden . Beim Ein-Pl atinen - Mikrocomputer sind sämt liche Hardware - Kompo nenten auf ei ner Leiterplatte aufgeb aut . Übliche Leiterplatten größ e n si nd das (Einfach-) Europaformat (100 mm x 160 mm), das Doppel - Europaformat (233 ,4 mm x 160 mm) und verschiedene in USA genormte Kartentypen . Die Firma INTEL bevorzugt für ihre Single Board Computer- Rei he (SBC) ein Kartenformat mit den Ab messungen 304 , 8 mm x 171 , 5 mm , auf denen Mikrocomputer mit ei nem umfangreichen Speicher- und Ein - /Ausgabespektrum realisiert sind 143 1. Den Ein - Platinen- Mikrocomputern lie gt im Prinzip das Blockschaltbild nach Bild 98 zugrunde . Eine gewisse Anp assung an den jeweiligen Umfang der zu lösenden Aufgabe kann hierbei
- 223 durch das Vorsehen von Bausteinsockeln auf der Leiterplatte erreicht werden , die bei Bedarf bestückt werden . Typische EinPlatinen- Computer sind die system design kits mit SichtgeräteAnschluß und Monitor - Programm (vgl . Abschn. 3 . 3) . Für mittlere bis größere Anwendungen im Bereich der Meß-, Steuer - und Regeltechnik setzt man bevorzugt Mehr - Platinensysteme (Baugruppensysteme) ein . Hierbei s ind verschiedene Funktions einheiten auf einzelnen Leiterplatten (Baugruppen) aufgebaut , die über ein festgelegtes Bussystem miteinander Information austa u schen . Oas Bussystem ist im allgemeinen als gedruckte Rückwandverdrahtung (eng l. motherboard) realisiert (Bild 100). Baugruppen am Systembus können sein :
o o
o o
Prozessorplatinen mit verschiedenen Mikroprozessortype n Prozessorplatinen mit/ohne Arithmetikprozessor, Prozessor platinen mit/ohne OMA- Steuerung RAM -, ROM- und EPROM - Platinen Ein - /Ausgabeeinheiten mit serieller/paralleler EA , mit di gitaler/analoger EA, Int errupt - Steuerungs - und Zeitgeber einheiten .
Stecker -
Rückwand - Busverdrahtung
~ rls=J 11
reihen - - -
96 - polige Steckerleiste (OIN 41612) 1 11 pro - . . , . . 11 Baugruppe J..l 11
.
Elnbau-
11
11
1
11 2 11 .,./ J..--Ir 11
11
1
?--' 1
11
11
\
3 11 4 1
11 11
1 1
cba
I::l
1
1
1 1 121 1 1
1
1
1
~==~==~==~==~========================~~~
platz - Nr .
L-J L-...J L...J L...J
---'1 A15 -ß'
L I ,_ _ _ _ _ _ _ _
SMP Systembu s
C:::::::::::::::==========================:JI OB7-ß' {
I CTRL
1 I
*)
*) Versorgungsleitungen ,
Bild 100
32
L-.J
CTRL d . h . Steuerbus
Mikrocomputer - Mehrplatinensystem (Beispie l SMP)
- 224 Tafel 23
Bus-Steckerbelegung (Beisp. SMP - Bus 1441)
Anschluß-Nr . Reihe a 1 2 3 4 5 6 7 8 9 10
-
-
15 V 5 V
- --
CLK
---
RES ET ALE MEMR RESIN MEMW
11
---
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
RDYI N BUSEN OB ~ HLDA OB 1 HOLD OB 2 INT OB 3
- --
Reihe c
-
12 V GND + 5 V MMIO A 12 A (0 A 13 A 1 A 14 A 2 A 15 A 3
---
A 4
In Bi ld 1 00 ist das SMP-Baugruppensystem 1441 zugrunde gelegt. Es ist ein verhältnismä ßig ei nf ac h es Bussystem mit ei n e m 8-Bit Datenbus DB7 - (O und ei ne m 16-Bit Adressenbus A1 5-(O für Europa - Format - Platine n mit max. 21 Einbauplätzen im Baugr uppe nträger. Prozes sorbaugruppen gibt es mi t den Mikroprozessore n 8080, 8085, 8088 oder dem Mikrocomputer
---
8031 . Es kann stets nur eine
A 5
Prozessorplatine als aktiver
- --
A 6
---
A 7
---
bus master arbe iten ; Multi prozessorbetrieb ist nicht möglic h .
OB 4 INTA OB 5
---
Di e Definition der Busleitun-
A 9
gen einsc hl ieß lich des Ste u-
OB 6
A 1(0
-- -
- --
OB 7 EOP 101'1
+ 15 V + 5 V
A 8
---
erbus b er uh t
im Prinzip auf
---
der 8080-Standard-System-
-- -
A 11
sc hni ttstel l e
IOR GND + 12 V
4.2.5). Di e zeitlichen Abläu-
(s. Abschn.
fe (timing) auf dem SMP-Bu s werden durc h den als Zentral -
prozessor eingesetzten Mikroprozessortyp und dessen Grundtakt bestimmt. Di e Anforderu ng von Warte zyklen durch
pass~ve
Bus-
teilnehmer (Signal RDYIN in Tafel 23) ist möglich. Zu dem dr e iteiligen Systembus kommen die Versorgungsleitungen (GND und
+/ - 5 V, +/- 1 2 V, +/- 15 V) hinzu. In Tafel 23 ist die Standard-Belegung des SMP-Bussteckers angegeben. Die Steckerrei h e b i st für Erweiterungen f ü r 16-Bit Mi k roprozessoren vorgesehen. Die mit einem Signalnamen versehenen Stecker ansch lü sse sind an jedem Einbauplatz dur ch die Rückwandverdrahtung miteinande r verbunden. Zusätzlich können für einzelne Platinen Sonder-Si gnale auf die freigebliebenen Ansch lü sse gelegt werden. Di e
- 225 Steckerreihe b des 3reihigen DIN-Steckers für Erweiter ungen ist in Tafel 23 nicht enthalten. 4.2
Anschaltung von Funktionseinheiten an den 8085 -S ystembus
4.2.1 Isolierte und speicherbezogene Ein - /Ausgabe Über die Adressenleitungen des Systembus werden Speicher- und Ein-/Au sgabe -Funktionseinheiten adressiert. Die Lese- und Schreibzyklen auf dem 8085 -S ystembus (vgl. Abschn. 2.1.3) sind für Speicher- und Ein - /Ausgabeeinheiten gleich. Allein das
101M
Ste uersignal
ermöglicht die Unterscheidung zwischen
Ein - I
Ausgabe- und Speicherzyklus. Führt der Mikroprozessor einen Ein-/Ausgabebefehl (IN porti OUT port) aus, dann aktiviert er das RD - oder WR - Signal un d setzt zusätz lich das Unterscheidungssignal Taf e l 7) . Auf dem Adressenbus
A7 - ~
101M
auf hi g h (vgl.
(bzw. auf A1 5 - 8) liegt dann
eine 8- Bit - lange Ein-/Ausgabeadresse , die einen von 256 8 - BitKanälen auswählt . Führt der 8085 Befehle mit Speicherbezug (z . 8. "MOV r ,M", " STA adr" , " ADD M" ) aus , geht das Unterschei dungssignal
101M
auf low, was bedeutet, daß auf dem Adressen -
bus ei ne 16-Bit-lange Speicheradresse liegt. Bezieht man die Steuerleitung
101M
h ardwaremäßig mit in die Auswah l der Funk -
tionseinheiten am Systembus ein , dann wendet man das übliche Verfah ren der isolierten Ein - /Ausgabe (engl . isolated 10)
11 2 1
1131 an . Gemäß Bild 101 stehen dann nebeneinander ein 256 Ka näle umfassender Ein - /Ausgabeadressenraum und ein 64 KByte umfassender Speicheradressenraum zur Verfügung. Verwendet man für Ein - /Ausgabevorgänge nicht die hierfür vor gesehenen IN-IOUT-Befehle, sondern Befehle mit Speicheradressen (Speicher-Referenz-Befehle), dann liegt das seltener ange wendete speicherbezogene Ein - /Ausgabeverfahren (engl. memory mapped 10) vor . Das Steuer signal
101M
ist dann bei Speicher -
und Ein-/Ausgabezugriffen stets im low-Zustand und damit ohne F~nktion.
Da die Ansprache von Speicher- und Ein - /Ausgabeein -
heite n dann ausschließlich mit der 16-Bit- langen Speicheradres se geschieht , muß der 64 KByte Adressenraum in einen Speicher und Ein-/Ausgabebereich unterteilt werden , wie dies in Bild 102
- 226 lO/M = l ow
\ IO/M = high EA- Adreßraum
EA-Adr esse
A7
fJ
Sp e icher adresse A1 5 fJ
7
I
L
fJ 1
2 1-------1
~----~.~
Speicher Adreßraum 7 fJ
port
255'--_ _.........
Bild 101 Adressenräume bei isolierter Ei n- /Ausgabe
64K-l
Byte
D
mit Hilfe des Adreßbits A1 5 gezeigt wird . Die Auf teilung l äßt sich zugunsten des stark reduzierten Speicher- Adressenbereichs verschieben , wenn mehrere Adreßbits zur Unterscheidung heran gezogen werden . Das memory mapped lO - Verfahren hat den Vo r tei l, daß Daten von Kanä l en (wie Speicherdaten) direkt mi t arithmetischen und l o gischen Befeh l en verarbeitet werden können . Der Befehl " ADDM" hat z . B. die Wirk u ng:
(A)~(A)
+ (por t) , wenn die 16 - Bit-
Adresse des ports im HL-Registerpaar steht . Andererseits d a uSpeicher adresse
64 KB Raum
A15 A14
7
I ~_
fJ
}
___ ___ f--::--
By te
----l
Sp e icher (-Adressen) bereich (A15) = fJ
32K -l 32K - - - - - }
~~~~~~~:~~~e ' - - - - - __
port
b erei ch (A15) = 1
64 K-1 '--_ _--' Bild 10 2
Auf teilung des 64 KB Adressenraums b e i speic her b ezoge n er Ein - /Ausgabe (Bei spie l)
-
227 -
ern die Befehle "LDA adr " und " STA adr" länger als die IN/OUT Befehle beim isolated IO-Verfahren. Ein Nachteil des memory mapped IO - Verfahrens ist bei größeren Mikrocomputer - Anwendungen , daß der Speicher nicht mehr bis zu 64 KB ausgebaut werden kann . 4. 2 . 2
Auswahl der Funktionseinheiten
Für die üblichen Speicherbausteine und Standard- Ein - /Ausgabe bausteine (vgl . Bild 98) läßt sich eine einheitliche Schnittstelle zum Systembus hin angeben . Jede Einheit benötigt neben den Steuersignalen (RD, WR) den vollen Dat enbus
D7 - ~
und eine
unterschiedliche Anzahl von Adressenleitungen A des Systemnm bus (Bild 10 3) . Bei Speicherbausteinen dient dieser intern de kodierte Teil des Adressenbus (A
) zur Auswahl der Speichernm plätze (Bytes) innerhalb des Bausteins . Die Adreßsignale AIO - 0 adressieren z .B. in einem Speicherbaustein einen von 2048 Spei-
cherp l ätzen (Bild 104.a). Bei den Interface-Bau steine n (Ein - / Ausgabebausteinen) wählen die niederwertigen Adreßbits A ein mn Register bzw . einen Kanal innerhalb des Bausteins aus . Ein - /Ausgabebausteine können vom/zum Systembus
2 bis 16 interne Adressen haben. In Bild 104.b sind zur Unterscheidung von 4 internen Adressen die 2 Adreß -
RESET es
leitungen Al-0 vorgesehen.
RD
WR
D7 - ~
Anm
Ein - /Ausgabekanäle / Register oder Speichermatrix
Das RESET - Signal bringt den Interface - Baustein in einen normierten Zustand ; es ist nicht bei allen Bausteinen vorhanden .
Bild 103 Einheitliche Schnitt stelle von Standard-Bausteinen
Di e Auswahlsignale eSi für Speicher - und Ein - /Ausgabebausteine werden aus den höherwerti gen Adreßleitungen des Systembus ' gewonnen (Bild 104). Ist die Bausteinadresse verschlüsselt, dann muß dieser Tei l des Adres senbus extern dekodiert werden . Allgemein gilt, daß die Auswahlsignale (Selektionssignale) für
- 228 a ) Sp e i cheradresse 101M; l ow
die Einheiten am Systembus aus dem Teil der
AlS
Adresse gebi l det werden , '-------~vr------~
Alfj - fj zu den Speic h erbaustei n en CS k
2 1 fj
der nicht von den Ein heiten se l bst benötigt bzw. dekodiert wird . Die höherwertigen Adreßste llen Al S-l I
Ba u stein - Auswahl
(Bild 104 . a)
bestimmen , in we l chem b ) Ein- lAu sgab eadresse 101M; h ig h A lS
1 fj
8 7
Teil des 64 K Adressen raums d i e 2 K Speicher p l ätze des Speicherbauste ins liegen . Entspre chend l egen die Bitste I-
Signa l b e l eg u ng i d entisch mit A7 - fj
len A7 - 2 der Ein - /Ausga beadresse (Bi l d 104 . b) fest, wo die vier EACS k
21
~
steinen
Baustein - Auswah l
Adressen des Bausteins im 2S6 - Byte - großen EA-
Bil d 10 4 Adressierung von Spe ic h e r- und Ein - /Ausgabebausteinen be i i ßo l ierter Ein - /Ausgabe (dekodierte Baustein - Auswahl)
Adressenraum liegen (iso lierte Ein - /Ausgabe vor ausgesetzt) . Ein Baustein nach Bild
1 03 ist am Systembus ausgewählt und reagiert mit einer Lese oder SChreiboperation, wenn - sein Auswahl - Eingang CS (oder CE ) " enab l ed " wird , d . h. auf l ow- Potential liegt und - sein Lese - oder Schreib-Steuereingang RD (auch OE , ~nab l e)
oder WR (auch WE ,
~rite
~nable)
~utput
aktiv, d . h . auf low -
Potential geschaltet wird . Die Ausgänge nicht selektierter Bausteine auf den Systembus sind hochohmig. Beim Ein - Platinen-Computer gern. Abschn . 4.1.2 werden die Bau ste i n - Auswahlsignale auf einer Platine (ggfls . durch Dekodie rung) gebildet und auch auf dieser Platine benötigt . Beim Mehr p l atinen - Mikrocomputer sind die Speicher- und I nterface - Bau-
- 229 steine auf verschiedenen Platinen verteilt. Die Adresse muß hier die Baugruppe (Platine) , den Baustein auf der Baugruppe und schließlich das Byte (Speicherplatz oder Register) im Baustein auswählen. Entsprechend ist die Adresse in eine Baugruppenadresse , eine Bausteinadresse (bei mehreren Bausteinen auf einer Baugruppe) und eine Byteadresse aufzuteilen, wie dies in Bild 105 am Beispiel der Ein - /Ausgabeadresse gezeigt wird. Die Auswahl der Baugruppe geschieht im al l gemeinen durch ei -
Ein-/Au sgabeadresse (IO/M = 1) A76543210
nen Vergleich der Baugruppenadresse auf dem Systembus mit einer festen oder (durch Scha l ter) einstel l baren Adreßkombination auf der Baugruppe (Bild 106). Bei Gleichheit der
Baugruppenadresse (im System)
austein~ ,y,:~
~
adresse
(auf Baugr uppe )
adresse
(im Bau steln)
Bild 105 Auf teilung der Adresse bei Bussystemen (Beispiel)
Binärkombinationen wird ein Baugruppen- Selektionssignal erzeugt, das die übrigen Funk tionen auf der Platine , u . a . die Bausteinauswahl auf der Bau -
Rückwand - S t e c k e r l e i s t e
IO/M
A7 A6 A5 A4
A3 A2
Al AO
Adressen vergleich Adressenschalter
z u de n Auswahlsigna l e für E/A- Bausteine
Anm .: BGSEL d.h. Bi l d 106
E/A-Bau stei nen
~au~ruppen - Selektionssignal
Auswahlschaltung auf Ein - /Ausgabebaugruppe in eine m Bussystem (dezentral)
- 230 gruppe freigibt. Hierdurch vermeidet man Stichleitungen, die bei einer zentralen Baugruppenauswahl unumgänglich wären. 4.2 . 3
Dekodierung der Speicher- und Ein-!Ausgabeadresse
Die Bildung der Auswahlsignale eSi für die Funktionseinheiten am Systembus kann auf unterschiedliche Weise erfolgen: Bei kleineren Systemen mit wenigen Speicher- und Ein - !Ausgabe einheiten wird die lineare Bausteinauswahl bevorzugt . Dabei verbindet man einzelne höherwertige Adreßleitungen direkt mit dem eS-Anschluß des Bausteins . Bei einer Auf teilung des Adres senbus gemäß Bild 104 sind damit 5 Speicherbausteine und 6 Ein - !Ausgabebausteine linear adressierbar. Bild 107 zeigt ein Beispiel für die lineare Auswahl von 3 Standard- Speicherbau steinen zu je 2 KBytes und von 3 Standard-Ein-!Ausgabe - Bausteinen bei isolierter Ein - !Ausgabeadressierung. Jeweils ein Adreß bit wählt mit (Ai) = 1 einen Baustein aus. Die übrigen Adressenbits müssen im Zustand
~
sein, soweit sie zur Bausteinaus -
wahl dienen. Um die gleichzeitige Auswahl eines Speicher - und eines EA-Bausteins bei bestimmten Adressen auf dem Bus zu vermeiden, müssen die Adreßbits Ai zur Bildung der chip selectSignale mit dem Unterscheidungssignal IO!M bzw . dem negierten Signal IO!M UND-verknüpft werden (Bild 107) .
Eine andere und
häufigere Realisierung der isolierten Ein - !Ausgabe findet man bei der BOBO-Standard- Schnittstelle (siehe Bild 116). Durch das auswählende Adreßbit ist der Adressenbereich jedes Bausteins im jeweiligen Adressenraum festgelegt. In Bild 107 sind die Speicher - und Ein-!Ausgabeadressen angegeben, die der Verschaltung entsprechen . Bei den Standard-Ein- !Ausgabe-Baustei nen wurden die Adreßbits Al und AO für die bausteininterne Adressierung reserviert. Die Darstellung der linearen Bausteinauswahl nach Bild 107 hat mehr grundsätzliche als praktische Bedeutung , da man für den Aufbau von Kompaktsystemen meist die BOB5-Spezial - Bausteine (s.Abschn. 4.2.4) verwendet und bei größeren Systemen eine De kodierung der höherwertigen Adreßbits vornimmt . Die Verschlüsselung des höherwertigen (Baustein - ) Adressenteils hat im Spei cherbereich überdies den Vorteil, daß die Speicherbausteine zu -
- 231 -
Speicher adresse Adressen bereich
A
15
11
0
A 15
10 0 0 0 1 Y iY I
11
0
100010ylyl
AlS
11
o
1 00 1 00y\~yl
2K - (4K - l)D 4K - (6K-l )D 8K - (lOK - l)D ,0'8,0',0'H - ,0'FFFH l,0',0',0'H - 17FFH 2,0',0',0'H - 27F FH
StandardSpeicherBausteine
RAM 6116
IO/M
es RD WR A~ StandardEin - /Ausgabe 825Z Bausteine (Z= 1. .. 9) Adressenl,0'H - 13H bereich EA- Adresse
825Z
2,0' H
yl
! 0 0 0 1 0 O:y A7 4 10
- 23H
!OOlOOO:yyl A7 5 1 0
825Z
4,0'H - 43 H 1010000:yyl A7 6 1 0
Abk. : Y d.h. relevante Bitstelle , kann Werte 0 und 1 annehmen. Bild 107
Lineare Bausteinauswahl bei Standard- Bausteinen Beispiel für isolierte Ein-/Ausgabe (ohne Datenbus)
sarnrnenhängende Adressenbereiche belegen, was bei linearer Aus wahl nicht der Fall ist . Ferner ist zu beachten, daß im vorlie genden Beispiel der Speicherbereich ,0',0',0',0'H bis ,0'7FFH nicht adres sierbar ist. Da der 8085 beim Rücksetzen auf die Startadresse ,0' verzweigt , muß die Adreßkombination A15-11 = ,0',0',0',0',0' für die Aus wahl eines Speicherbausteins zusätzlich dekodiert werden . Bei verzweigteren Mikrocomputersystemen ist die vollständige
- 232 -
oder teilweise Verschlüsselung der Baustein-Auswahladresse un umgänglich, weil nur hierbei der volle Adressenbereich nutzbar wird. Zur Entschlüsselung der höherwertigen Adreßbits verwen det man zweckmäßigerweise Dekodierbausteine mit mehreren Frei gabe-Eingängen (Enable - Eingängen) , z.B. den l - aus-8-DekodierBaustein 74138 (8205) mit den Enable - Eingängen GI, G2A und G2B (Bild 108) . Ein Dekodier - Baustein ist "eing esc haltet " , wenn die 3 Enable - Eingänge gleichzeitig erfüllt sind . Bei iso lierter Ein- /Ausgabe aktiviert das rO/M-Signal wahlweise den AIS
Speicher adresse
11
15
0
11
0
I
0 0 0 0 Y •• Y 10 0 0 0 1 Y • • Yl 2K-(4K-l) 0 - (2K - l) 0800 - OFFFH 0000 - 07FFH
10
Adressen bereich
15
11
0
100010y .. yl 4K - (6K - l) 1000 - 17FFH
74138
~--- ro/M ---------------- IH ------------~-----------
A3 A4 A5 A6 A7 74138 A7
loooooxx
EA-Adresse Abk . : Y d.h. X d.h . Bild 108
0
7
0
yllOOOOlXYld
7
10
0
0 0 10 X Y Y
I
rel evante BitsteIle, kann Werte 0 und 1 annehmen. nicht benutzte BitsteIle (beliebiger Wert)
Verschlüsselte Bausteinauswahl bei Standard- Bausteinen , Beispiel für isolierte Ein-/Ausgabe
- 233 A
1514
C B A
Speicherraum
C BA
Ein - /Ausgaberaum
[Ql]J
16
@1J] [[[Q]
24
!O/M; 0
13 1211
@]]-~-OK 2716
[Q]:}]
2K
[QIQ]
4K
[Q]}]
2716 6116
6K
~ 8K
.j.J
tOt» O
~lO K
rr::1}J 12K [III] 14K
mit einem l-aus-8 Dekodierer er r eich bar
mit einem
.j.J
32
tOt»
o
(j)
rl rl
(j)
rlrl (j)
'Ö.Q rl ·rl.j.J
al.c
u
C·rl
[[DJ
40
~
48
[DJ] 56 @JJ- - - -64
.e< C
[ITI- - - -lGK
(j)
'Ö.Q rl ·rl.j.J
al.c
u
C·rl ·rl C
*)
*)
*)
*)
*)
*) 64K (dezimal)
l-aus - 8 Deko dierer er reich bar
256 (dezim a l)
*) je ei n weiterer Dekodierer (in Bild 108 nicht vorhanden)
C BA .. Selektionseingänge des Dekodierers Bild 109
Zuordnung der Adressen zu Bausteinen durch die Deko dierung ge mäß Bild 108 (isolierte Ein-/Ausgabe)
Speicheradressen- oder den EA-Adressendekodierer (Bild 108). Legt man die Adressenbits A15 und A14 der Speicheradresse bzw . A7 und A6 der Ein-/Ausgabeadresse a u f die übrigen Freigabeeingänge, so ist damit derjenige Teil des gesamten Adressenraums festgelegt, der mit dem Dekodierer erreichbar ist. Bei 2 - KB Speicherbausteinen ist mit einem l - aus - 8 Speicheradresse n-D e kodierer ein 16 K- Bereich ansprechbar . In Bi l d 108 sind die Adressenbereiche für die Speicherbausteine angegeben . Da jedes Adreßbit dekodiert wird , kann die Speicheradresse vo ll ver schlüs selt werden. Mit vier l- a u s -8-D ekodiere rn ist der gesamte Speicheradressenraum von 64 K zugängl ich (Bild 109), 2KB-Speicherbausteine vorausgesetzt .
-
2) 4 -
Das Unterscheidungssignal 10/M wählt z usammen mit den höchst wertigen Bits A7 und A6 der Ein-/Ausgabeadresse in Bild 108 den EA-Adressendekodierer aus. Dieser liefert ein Selektionssignal für einen der drei Ein-/Ausgabe - bzw. Ergänzungsbausteine 8251A, 8253 oder 8255, wenn eine der angegebenen Adres sen in einem EA-Befehl auftritt . Auf Grund der Beschaltung seiner Enable - Eingänge wählt der Dekodierbaustein in Bild 108 die EA-Adressen 0 bis 63 aus . Um den gesamten EA- Adressenraum 0 bis 255 zu erreichen, benötigt man insgesamt vier l - aus-8-Dekodie rer für die Ein - /Ausgabeadressen - Dekodierung (Bild 109) . Da das Adressenbit A2 der Ein-/Ausgabeadresse in der Schaltung nach Bild 108 weder im externen Dekodierer noch in den EA-Bausteinen entschlüsselt wird, kann das Bit A2 den Wert X = 10 oder 1 annehmen. Beispielsweise können die Register des Bausteins 8253 sowohl durch die Adressen 0000 1000 B - 0000 101l B = 08H - OBH als auch durch die Adressen 00001100 B - 0000 l l l l B = OCH - OFH angesprochen wer den. Somit belegt der Baustein 8253 mit vier internen Adressen - bedingt durch die Art der Dekodierung - acht Ein-/Ausgabeadressen (8 - 15 dezimal) . Der Baustein 8255 belegt ebenfal ls acht EA- Adressen (16 - 23 dezimal) . Da der EA- Baustein 8251 nur zwei interne Register adressiert, werden bei seiner Auswahl die
X/Y AU A14 AIS
A B C
high low 10/M
GI G2A G2B
74138 Adressenbereiche:
Bild 110
0 - (8K - l)
8K - (16K -l )
56K- (64K- l)
Dekodi erung der Speicheradresse für 8 - KB - Speicherbausteine (isolierte Ein - /Ausgabe)
- 235 zwei Adreßbits A2 und Al nicht entschlüsselt ; er belegt a uch acht EA - Adressen . In Bild 109 sind die Adressen der Ein - /A u s gabebausteine und der durch die Dekodierung bedingte Adressen verschnitt (schraffiert) dargestellt. Im Interesse einer ein fachen Dekodierschaltung wird ein gewisser Adressenverschnitt im Ein - /Ausgabebereich im allgemeinen hingenommen. Eine sehr übersichtliche Dekodierung der Speicheradresse er gibt sich, wenn man (in größeren Systemen) die hÖherintegrier ten 8K x 8 Bit-Speicherbausteine 2764 (EPROM), 2364 (ROM) oder 6264 (RAM) einsetzt . Ein Dekodierer genügt hier für die Se lek tierung der maximal möglichen 8 Speicherbausteine (Bild 110). Der Dekodierer wird mit 101M =
0 aktiviert .
Weitere Einzelheiten zur Dekodierung findet man in 11 2 1 und 1131. 4.2.4
Anschluß von 8085-Spezialbausteinen
Neben den Standard- speicher- und Ein-/Ausgabebausteinen (vgl. Bild 98 und Abschn. 4.2.3) gibt es kombinierte speicher - und Ein - /Ausgabebausteine - Multifunktionsbausteine -, die ver schiedene Funktionen wie Speichern , Ein - /Ausgabe und Zeitzählung in einem chip vereinigen 1121
1131 . Sie werden als 8085 -
Spezialbausteine bezeichnet, wei l ihr e Prozessor-Schnittstelle b eso nders auf den 8085 - Systembus (vgl . Abschn . 2.1.3) abge stimmt bytes
ist : Die Zwischenspeicherung der niederwertigen Adr eß A7 - ~
findet innerhalb der Spezialbausteine
(Bild 111)
statt, die das Steuersignal ALE des 8085 direkt auswerten. Zur UnterSCheidung von Speicher - und Ein-/Ausgabeoperationen gibt es einen IO/M-Steuereingang , der bei isolierter Ein - /Ausgabe mit dem Steuer signal 101M des 8085 oder bei speicherbezogener Ein - /Ausgabe z . B . mit dem Adreßbit AI S beschaltet werden kann. Mit diesen Multifunktionsbausteinen lassen sich kompakte 8085 Mikrocomputersysteme mit wenigen Bausteinen realisieren ; mit drei Bau steinen (einschließlich des 8085) ist eine arbe i tsfähige Einheit realisierbar . Dieselben Bausteine werden auch ein gesetzt , um die Ein-Chip-Computer 8048 oder 8051 zu erweitern und Kompaktkonfigurationen mit dem 16-Bit Mikroprozessor 8088
- 236 herzustellen. Die Gruppe der Spezialbausteine, bestehend aus den Bausteintypen 8155, 8156, 8355 und 8755, soll hi er in ihren Funktionen (Bild 111) und ihrer Anschlußtec hnik kurz erläutert werden, ohne im einze ln en auf die Programmierung dieser Bausteine mit Steuerwörtern einzugehen. Der Zeitgeber (timer) und die Kanäle der Multifunktionsbaustei ne werden bei isolierter Ein-/Ausgabe mit IN/OUT - Befehlen an gesprochen, die RAM-, ROM- und EPROM - Bereiche mit den üblichen
Erläuterun'2 en ;
8155(56) AD7 - f,f ALE RD WR CE**) RE SET lO/M
Kanal
n G B tJ B
A
256x8
B
C ·6
TIMER OUT TIMER IN CLK
ALE RD
row IOR CE l CE 2 READY RESET Bild 111
Bausteine 8355 und 8755 sind pin - kompatibel
CLK lO/M
8 3 5 5
AD7-f,f Alf,f-8
**) Beim 8155 ist dieser Auswahleingang low activei beim 8156 ist dieser Aus wahleingang high active CE. ***) ist ein 14-Bit - Zähler
ITIMER 1***)
1O/M
* ) Der Auswahleingang CEl dient während des EPROM Programmierens als Programmiereingang
~8ß ROM
Kanal A
B Kanal
8 7 5 5A
AD7 - 11 A10-8 ALE RD 10W lOR CE *) 1 CE 2 READY RESET
f,:1 B
Kanal A
EPROM
U G
8085-Spezial - Bausteine (Multifunktionsbausteine)
B Kanal
112 1
- 237 -
Speicher-Referenzbefehlen. In Bild 111 fällt auf , daß neben den RD - und WR - Anschlüssen auch IOR- und IOW-Steuereingänge vorhanden sind . Bei den Bausteinen 8355 und 8755A kann ein Eingabekanal wahlweise durch Aktiviere n des IOR-Eingangs oder mit IO/M
= high
und RD
= low
gelesen werden. Entsprechendes gilt
für die Ausgabekanäle . Zusätzlich zu dem dargestellten Baustein 8155 , dessen EnableEingang (CE) low active ist , gibt es den nahezu identischen 8156 mit bejahendem Auswahleingang CE . Die Typen 8355 und 8755A verfügen über jeweils 2 Auswahleingä nge CE (high active) und CE (low active), die gleichzeitig aktiviert sein müssen, was ei n e teilweise Dekodierung der Adresse ermöglicht. Der Einsatz eigener Dekodierbausteine wird bei Minimalkonfigura tionen möglichst vermieden . - Benötigt man einen größeren Pro grammspeicher, so können anstatt des 8755A die reinen EPROM Bausteine 87C64 (8Kx8 Bit) oder 87C256 (32Kx8 Bit) mit in ternem Adreß - latch eingesetzt werden 1631. Beim An schluß der Multifunktionsbausteine ist zu beachten , daß Speic h er und Ein - /Au sgabe in einern Baustein durch dasselbe Auswa hlsignal aktiviert werden , sodaß Speicher- und EA- Adresse miteinander verquickt sind . Bei der linearen Selek tierung des Bausteins nach Bild 112 muß das Adreßbit All der Speicheradres se u nd das Bit A3 der Ein - /Ausgabeadresse 0 sein. Die mit X gekennzeichneten Adreßstellen (X bedeutet "don't care")
A15 8355/ 8755 All
Speicheradresse : (IO/M = low)
CE
IO/M
IO/M
7
Ixx xxlol
I
0
I
4~
CE
high
11 10
Ein-/Ausgabe- A 7 adresse: (IO/M = high)
3
0
Ixxxxlolxl
Anm .: *) zur Adressierung im Baustein Bi l d 11 2 Adressierung von Multifunktionsbausteinen (isolierte EA)
- 238 sind für die Adressierung des einen Bausteins ohne Bedeutung , bei der linearen Adressierung mehrerer Bausteine dürfen sie jedoch nicht beliebig stehen , da man die gleichzeitige Auswahl mehrerer Bausteine am Systembus vermeiden muß . Dies sei am Beispiel eines 3- Baustein- Mikrocomputers , dem typischen 8085 Minimalsyste m (B il d 113) vera n schaulicht . Es verf ü gt üb er 2 KB EPROM ( wahlwe i se ROM) , über 256 Bytes RAM , über einen Zeitge ber , 5 Paral l e l- Ei n - /Ausgabekanä l e , 4 Interr upt - Eingänge und eine seriel l e Ein - /Ausgabe und reicht damit f ü r eine Vi e l zah l k l einerer Anwendungen aus . Das System ist mit weiteren Spe zia l bau steinen aufrüstbar.
-
Anm. :
*) Verbindung ist notwendig , wenn 8755A einen Wartetakt benöt i gt
-
---'~"'"'"'"~
*)
~
i":
8755A 11 1 " CE 2 f-o CE l >-A10-8 ~
e
READY PA RD 7- 0 IOW
~
PB 7- 0
Bi l d 113
"
8:: ~ ~ ~
ALE CLK RESET
:'\. \..\.. \..\..\..
-
r--
101M ALE RESET IN CLK RESETOUT
I~
~
101M
AD7-0
~
0 .-~
r---
AlS A1 4 8 0 8 5 Al3 A12 All RST AlO - 8 7 . 5 6. 5 ~ AD7 -0 5 . 5 I-TRAP I-READY RD SID I-SOD WR
'"
'"'"'""""""~,,"~
CE
8 1 5 6
-
RD WR
PA 7 -0
101M
PC 5-0
AL E
PB RESET 7- 0 IN AD7 - 0 OUT TIMER
8085 - Mi n ima l systpm mit Multifunktionsbausteinen
§ ~
f--
- 239 Bei der Beschaltung der Auswahleingänge der peripheren Baustei ne in Bild 113 ist zu beachten, daß der Rücksetzvorgang (lowSignal am 8085 - Eingang RESET IN) die Startadresse
~~~~
er-
zeugt (vgl. Bild 20) . Deshalb muß der EPROM-Baustein 8755A , der das Startprogramm enthält, mit All = lJ " enabled " werden , während die übrigen Bausteine - um Mehrfach - Aktivierungen in der Rücksetzphase zu vermeiden - mit auf 1 gesetzten Adreßbits , z.B . A12 = 1 auszuwählen sind. Die Adressen und die Adressen bereiche der Multifunktionsbausteine , die sich aus der Beschal tung nach Bild 113 ergeben, sind in Bild 114 zusammengestellt . Ein weiterer Mu l tifunktionsbaustein mit paralleler und seriel ler Schnittstel l e, Timer und Interruptlogik ist der 8256A 159 1.
a) Speicher - und Ein - /Ausgabeadressen (iso l ierte Ein - /Ausgabe) 8 755 A- Speicheradresse A 15
121110
o
7
Ixxxlolol
t
*)
43
*)
8156 - Ein - /Au sgabeadresse
1 0
A7
Ixxxlol olxl ,
0
I xxxl * lxxx~1 =-=v==='
8755A- Ein - /Ausgabeadresse A 7
8156 - Speic heradresse A 15 121110 7
432
0
Ixxxl* 1'-.--'
t
~
Anm. : *) Byteadresse im Baustein ;
*)
X d.h . "don-t care "- Bits
b) Adressenbereiche für per i phere Bausteine ,
(X) = 0 angenommen
8755A- Speic her : 0000 - 07FFH
81 56 - Speicher: 180 0H - 18FFH
8755A- Kanäle:
8156 - EA/TIMER:
Bild 114
4 . 2.5
00 -
03
1 8H -
lFH
Adressen und Adressenbereiche der Multifunktions Bausteine des 8085 - Minimalsystems nach Bild 1 1 3
Die 8080 - Standard- Schnittstelle
Die Systembus - Definition des MP 8085 (vgl. Abschn. 2. 1. 3) er gibt sich aus der Forderung , die gegenüber dem Vorgänger 8080 erweiterten Funktionen (RST - Eingänge, SID/SOD - Leitungen) in einem Gehäuse mit 40 Anschlüssen unterzubringen . Setzt man
- 240 zusätzlich zum Demultiplexen des Adreß - /Datenbus
AD7 - ~
die
8085-Lese-/Schreib-Steuersignale (RD, WR, IO/M) um, so er häl t man die Standard-System-Schnittstelle des 8080 (Bild 115)
11 21
1131, die auf die Anschaltung der üblichen Speicherbausteine und der mit dem MP 8080 entstandenen Standard- Ein - /Ausgabe bausteine zugeschnitten ist . Bei dem weniger hochintegrierten 8080 - System besteht der zen trale Prozessor aus drei Bausteinen , dem Mikroprozessor 8080 , dem Taktgenerator 8224 und dem Systemsteuerbaustein 8228 (Bild 115). Auf den Datenleitungen D7 - 0 des 8080 erscheint zu Beginn jedes Maschinenzyklus kurzzeitig der Prozessorstatus, der für die Dauer des Maschinenzyklus im Systemsteuerbaustein 8228 zwischengespeichert wird . Dieser bildet daraus die typischen Signale MEMR, MEMW,
IOR , IOW und INTA des 8080 - Systembus zur
Steuerung der peripheren Bausteine . Darüber hinaus enthält der Baustein 8228 bidirektionale Treiber für den Datenbus . Die Steuer signale MEMR oder MEMW (memory Eead oder memory
~rite)
erzeugt die zentra l e Baugruppe während eines Buszyklus mit Speicherzugriff. Zur Ausführung der Ein-/Ausgabebefehle "IN port " und "OUT port " werden die Steuersignale IOR oder IOW
8080-StandardSchn it tstelle A15 -0 OSC 4>2/TTL
4>1 4>2
8 0 8 0 D7 - 0 D7 - 0
SYNC RDYIN RESIN
Bild 115
READY WAIT RE SET
WR DBIN HLDA
8 2 2 8
8080 - Zentralprozessor mit 8080-StandardSystem-Schnittstelle
MEMR MEMW IOR IOW INTA
- 241 (~nput/~utput ~ead
oder
~nput/~utput ~rite)
generiert . Bei der
Anschaltung von Standard-Peripherie - Bausteinen nach dem iso lierten Ein - /Ausgabeverfa h ren verbindet man die Signale MEMR und MEMW mit den Lese - /Schreibei n gängen (RD und WR) der Spei cherbausteine und die Signal leitungen lOR und lOW mit den e ntsprec henden Eingängen der Ein - /Ausgab eba u stei n e . So werden Speicher - und EA-Adressenraum unterschieden .
8080 - StandardSchnittstelle
8085 - BuSSchni ttst elle A15-8 ~~
________________-,
A15 - 0
8282 ALE f---------1 80 8 5
07 - 0
AD7 - 1J
lNTA
lNTA
x/y RD WR
A(l) B(2)
lO/M
C( 4)
Vcc
I> MEMW
MEMR
lOW lOR 74138
Bild 1 1 6
Um setzung der 8085 -Bu s - Schnittstelle in die 8080 - Standard-Schnittstelle
Di e Schnittstelle n - Um setzung (Bild 11 6) beinhalt et n e ben de r bereit s bekannten externen Zwischenspeicherung der Adresse n A7 - g einen l-aus - 8 - Dekodierbaustein (Typ 74138 oder 8205), der die 8080 - Steuersignale erzeugt . Die Signale MEMR , MEMW, lOR und lOW können nach Bil d 11 7 a uch durch ei n e Demul tip l exer -
- 242 Schaltung aus den 8085 - Signalen + 5 V
IO!M low hig h RD RD hig h high WR WR hi gh
RD , WR und I O!M gebildet werden . Die 8080 - System- Schnittstelle
lA IB 2A 2B 3A 3B 4A 4B
wurde bei vielen industriellen
lY
IOR
2Y
MEMR
z . B . bei dem herste llerspezifi -
3Y
IOW
sc he n SMP -B augruppensyste m 144 1
4Y
MEMW
Bus - Systeme n zugrunde ge l egt ,
74 257
un d de m universe ll en multicomputerfähige n MULTI BUS 1451 . Die SMP - Bus - Schn ittstelle ist in Tafel 23 angegeben . Di e Schnitt -
Bi ld 1 17 Erzeugung der Steuersignale MEMR , MEMW , IOR und IOW aus den 8085 - Signalen RD , WR und I O!M
stellenumsetz u ng nach Bild 116 ist unbedingt erforderlich , wenn eine 8085 - Prozessorp l atine in ein Baugruppe n system mit 8080-
Standard- Bus - Schnittstelle eingesetzt werden soll .
4. 3
Gesamtschaltung eines 8085 - Mikrocomputersystems
Struktur und Umfang der Mikrocomputer - Hardware werden auf Gru n d einer Analyse des zu lösenden Problems festgelegt . Bei handelsüblichen Mikrocomputersystemen - vorn Single Board Computer bis zum Arbeitsplatz - Computer mit Mehr - Benutzer- Zugriff - versucht man durch " Einbau " einer größtmög l ichen F l exibilität j eweils größere Aufgabenbereiche mit ei n e rn System abzu dec k en . Das in den Bildern 118 . a u n d 1 1 8 . b angegeb ene Schaltungsbeispiel 146 1 stellt im Prinzip ei ne n Si ngl e Board Mikro computer dar , der zwei Speicherbaustei ne zu j e 8 KBytes u n d zwei Ein - !Ausgabebausteine enthält . Er ist j edo ch für eine Er weiterung auf insgesamt 8 Speicherbausteine (64 KBytes) und insgesamt 8 Ein - !Ausgabe - bzw . Ergänzungsbausteine ausgelegt . Die zusätzlichen Komponenten können auf mehrere Leiterplatten verteilt werden , ohne daß hier ein Baugruppensystem mit Busstruktur im Sinne des Abschnitts 4.1.2 vorliegt . Da im Beispiel preiswerte Standard- Speicher- und Ein - !Ausgabe ba u steine eingesetzt werden sollen , ist der n i ederwertige
- 243 Adressenbus
A7 - ~
extern zwischenzuspeichern . Um die o . g . Aus -
baufähigkeit zu gewährleisten , wird der gesamte Adressenbus A15 - ~ D7 - ~
extern zwischengespeichert (2 x 8282) und der Datenbus mit einem bidirektionalen Treiberbaustein (1 x 8286) ge -
puffert . Die am häufigsten benötigten Steuersignale lOW , lOR , MEMW und MEMR der Standard- Schnittstelle (vgl . Abschn. 4 . 2.5) werden in dem Multiplexer-Baustein 74257 gebildet . Die Zwische n speicher - und Treiberbausteine sin d i m Nor malfa l l eingeschaltet (OE = low), sie können durch das Signal BUSEN (bus enable, highactive) oder durch das Signal HLDA während des DMA-Zyklus (in Bild 118
nicht enthalten) abgeschaltet
werden , sodaß dann ein anderer Bus-Teilnehmer die Zustände auf der Standard- System- Schnittstelle bestimmt. Die Transferrichtung des bidirektionalen Datentreibers 8286 wird durch die Si gnale RD oder lNTA des Mikroprozessors umgeschaltet . Bei einem Maschinenzyklus " Schreiben " (RD
=
high und lNTA
=
high ) über -
trägt der Baustein von A nach B, bei einem lesenden Maschi n enzyklus (RD
=
low oder lNTA
=
low) ist der Treiber von B nach A
geschaltet . Zu den Maschinenzyklen des 8085 siehe Abschn . 2.1.3. In Bild 118 . b ist die Dekodierung der Speicher - und Ein-/Aus gabeadressen zentral in zwei l-aus - 8-Dekodierbausteinen 74138 realisiert. Der Speicher-Adressendekodierer liefert 8 Frei schalt signale für 8 Speicherbausteine von jeweils 8 KBytes (max . ), der Ein - /Ausgabedekodierer kann bis zu 8 Ein-/Ausgabe bausteine auswählen . Da das Verfahren der isolierten Ein - /Aus gabe zugrundeliegt , wird das Signal
101M zur Auswahl jeweils
eines Dekodierbausteins auf ei nen der drei Freigabeeingänge geführt . Da die Unterscheidun g von Speic her - un d EA- Adressen raum schon durch die Lese-/Schreib- Steuersignale der StandardSchnittstelle erfolgt , ist diese zusätzliche Unterscheidung nicht unbedingt notwendig; man könnte statt des Signals
101M
auch eine weitere Adressenleitung auf den Freigabeeingang schalten , wenn dies erforderlich wäre . Da der 8085 während des Ein - /Ausgabezyklus die 8 - Bit - lange EAAdresse gleichzeitig auf den höherwertigen Adressenbus A15-8 und auf den niederwertigen Adressenbus
A7 - ~
ausgibt , sind im
- 244 +5 V
r- - -,
8282
I T 1 MER I
1
CLK ;....I-
1
51
OUT
L_
k
_ -__- - - - - - + - p-
l>-
ppp-
RAM-/ROMOekodierer
AlS A14 Al3
A12 A8 A7
(8 K -
+5 v CE
8K-(l6K-1)
1)
Y
T
VCC
GND
27 6 4 A1 2- ,0' 07-,0' OE
I
1V~
CE
VCC GNO 6 26 4 A12-,0' 07-,0' WR Re
J
;;
Aß' 07 I-- fI-- fI-- fI-- fI-- f-
0,0' MEMR MEMW 10R
10W
rr-!-
CLK RES OUT
f- I--
74138 X/Y Y,0'
101M
Yl Y2 D-Y3 D-Y4 D-A(l) Y5 pr-- B(2) Y6 ~ ' - - - C( 4) Y7 ~ EA-Oekodierer Gl '-< G2A L....c G2B
I I
L-
CSCLK C!D07- ,0'wRRD RESEl'
8251A
RxC TxC GND RxD TxD
r
1 I 1~
I
les
---=--
A,0'07- ,0'WR RD 8255
!RESEl'
IPA7- ,0'~
~
uu
Bild l1 8 . b Oekodierung und Anschluß von Speicher- und Ein - /Aus gabeeinheiten an die Standard- Systembus-Schnittstelle
- 246 Interesse einer g l eic hmäßigen Busbelastung die Leitungen A15 - 11 statt A7 - 3 zum EA - Dekodierer geführt . Auf Grund der Beschaltung des EA - Adressendekodierers si nd im System die EAAdressen nach Bild 119 verfügbar . Der serielle
Ein-/Ausgabe -
baustein 8251A (s. Abschn . 5 .4), der mit der Selekt i onslei tung YO =
es
ausgewählt wird , hat intern 2 Kanäle , die mit der
eiD) unterschieden werden . Der Baustein be -
Adreßleitung A~ (=
legt die EA- Adressen
~0H
~lH ,
und
~2H
die Portadressen
bis
07H b l eiben ungenutzt . Der Parallel - Ein - /Ausgabebaustein 8255 (s . Abschn. 5.3) , mit der Selektions leitung Yl =
es
(8255)
ausgewählt , benötigt 4 Port - Adressen (Eingänge Al und AO), so daß 4 Kanaladressen ungenutzt bleiben ; der Baustein 8255 kann wahlweise mit den Adressen
~8
-
~BH
bzw .
~e
-
~FH
angesprochen
werden . Benötigt man in ei n em System mehr als 8 EA-Bausteine , so kann man entweder bis z u drei EA-Adressendekodierer hinzufügen und/ oder den vorhandenen Dekodierbaustein statt mit 10/M mit der Adreßleitung A2 beschalten .
A15 A14 A13 A12 All AIO A9 A8 A7
A6
A5
A4
A3
A2
Al AO
o
0
0/
0/
0/
0/
0/
0/
~~~ Adreßbereich des Dekodierers : 0
Bild 119
- 63
Baustein adressen :
Port - Adressen im Baustein :
0, 8 , 16 , 24 , 32, 40, 48 , 56
0, 1 , 2, 3, 4, 5 , 6 , 7
Festlegung der EA-Adressen durch den EA-Dekodierer
Bei der Festlegung der Adressenbereiche für die Speicherbausteine in Bild 118 ist ab Adresse
~~~~
ein Festwertspeicher
(hier EPROM - Baustein 2764) vorzusehen , damit der Prozessor nach dem Rücksetzvorgang ein Startprogramm vorfindet . Für das Rücksetzen des Systems ist in Bild 118 . a die übli che Rücksetz schaltung angegeben . Zur Einleitung eines definierten Rück -
- 247 setzablaufs muß der Eingang RESIN für mindestens drei Taktpe rioden auf Low - Potential gezogen werden 1131. Der 8085 liefert daraufhin etwas verzögert das Signal RESOUT (high active) , an dessen Ende ein Maschinenzyklus MI (Op - Code - Fetch) mit gelösch tem Befehlszähler-Register beginnt . Unterbrechungen sind nach dem Rücksetzen gesperrt . Da während des Rücksetzab l aufs - eben so wie im HALT- und HOLD - Zu stand - die Adressen , Daten und Steuersignale hochohmig sind, sol l e n die wichtigsten Steuersignale - vor allem das WR - Signal - mit Zugwiderstände n auf High - Potential gelegt werden (Bild 118.a). Der Mikrocomputer unterstützt den Einzelbefehlsmodus des Moni tor - Betriebsprogramms (vgl . Abschn. 3.3) hardwaremäßig mit ei nem zählerbaustein nach Bild 118.a . Dieser Baustein kann ein programmi erbarer Zähler (z.B. 8253, s.Abschn. 5 . 5) sein , der an den Systembus des Mikro computers angeschlos sen ist un d mi t Steuer wörtern
programmiert
wird . Die Zählfunktion wird dabei durch Über tragen der Zählgröße
nein
an den Baustein ge startet . Der Zähler kann wahlweis e a uc h durch einen nichtpro -
Zähler mit Zählgröß e laden und st arten
grammierbaren Stan dard-Zäh lbaustein (z.B. 74193) realisier t werden , der durch einen
Re gisterinhalte des An wenderprogramm s regenerieren mit Sprung au f nächsten Anwenderbefehl
Impul s - z . B . über den SOD - Ausgang des 8085 zu l aden und z u star-
Ausführung eines Befe hls im Anwenderprogramm
;>'TRAP
ten ist . Der ALE - Impuls auf dem
Bild 1 20
Zum Einzelbefehlsmodus
- 248 Takteingang dekrementiert den Zähler zu Beginn jedes Maschinenzyklus um 1. Im Falle des programmierbaren Zählers wählt das single step-Steuerprogramm des Monitors die Zählgröße so , daß der Nulldurchgang des Zählers nach dem Sprung in das zu testende Anwenderprogramm und während des ersten Befehls im Anwenderprogramm stattfindet. Der Nulldurchgang erzeugt über das Signal OUT ein TRAP-Signal am 8085 (vgl. Bild 1 l8 . a), das nach Ausführung dieses Befehls den Prozessor unterbricht und erneut in die single step - Routine zurückkehrt . Eine Übersicht über das Zusammenwirken des single step - Steuerprogramms mit der erzeugten Unterbrechung (TRAP) gibt das Diagramm in Bild 1 20 . Nach jeder Verzweigung in das Monitorprogramm werden z.B. alle Registerinhalte des Anwenderprogramms auf dem Bildschirm angezeigt . Mit einer Tastatureingabe wird die Ausführung des nächsten Anwenderbefehls veranlaßt .
- 249 5
Mikrocomputer - Ein - /Ausgabeorganisation
Der Datenaustausch zwischen dem Mikroprozessor und seinen peri pheren Einheiten erfo l gt über den Systembus . Für den Anschl u ß der peripheren Einheiten an den Mikroprozessor 8085 wird oft die 8080 - Standard- Busschnittstelle nach Abschnitt 4.2.5 zu grundege l egt , deren Zeitverhalten von dem des 8085 - Systembus geringfügig abweicht. Die peripheren Einheiten eines Mikrocomputers haben nac h Ab schnitt 1 .2 . 6 teilweise recht unterschiedliche Aufgaben der externen Datenspeicherung , der Mensch - Maschine - Kommunikation (eigentliche
~in-/Ausgabe)
und der Prozeßsteuerung und - rege -
lung . Durc h diese unterschied l ichen Funktionen bedingt erge ben sich verschiedenartige gerätespezifische Schnittstellen (Bi l d 1 21) mit entsprechendem Zeitverhalten. Neben der 8 - Bit breiten Parallelübertragung eines Bytes gibt es die bitseriel l e Ein - /Ausgabe von Zeichen . Teilweise benötigen periphere Ge räte Steuersignale , über die der einheitliche Systembus nicht verfügt . Besondere Beachtung verdient das Zeitverhalten der verschiedenen Geräteschnittstellen. Während der Mikroprozessor
~}
Adressen
~~~~~~~~~~~
_,~~,~~~~~~~~~~~~~
Daten Ste uerung
==F===$$=$==$==;===;;===i= 07 - 0 Al Aif
Mlkroprozessor . Systembus
<J
e inhe i t li che Systembus Schnittste ll e
x
es EIN - /AUS - RES GABE - BAUSTEIN
0 i
Bi l d 124
Elektronis c he Entpre ll un g einer Taste mit Umscha l tkontakt
- 254 oft verwendete elektronische Entprellschaltung für eine Taste mit Umschaltkontakt ist in Bild 124 gegeben . Das RS - Flipflop liefert an seinem Ausgang Qi einen entprellten Impuls , wenn die Taste i gedrückt wird . Der Mikroprozessor kann das Signal über eine Digital - Eingabe nach Bild 123 einlesen. Di e Hardware - Entprellung kann wahlweise durch eine Software - Entprel lung (Abfrage im Programm nach der Prellzeit) ersetzt werden. 5.1 . 2
Parallele Handshake - Schnittstelle
Bei dem passiven Datenaustausch nach Abschnitt 5 . 1 . 1 gibt es keine Synchronisationssignale zwischen den Teilnehmern, sodaß hiermit nur sehr einfache "Geräte " betreibbar sind. will man einen definierten
Da~enaustausch
zwischen zwei autonomen Ein-
heite n X und Y (nach Bild 121) organisieren , von denen jede ein eigenes , unabhängiges Taktsystem besitzt , so muß zwischen den zwei Einheiten eine Handshake - Schnittstelle eingerichtet werden . Hierzu benötigt man neben den 8 , 16 oder mehr parallelen Datenleitungen mindestens zwei Handshake - Signale (timing Signale) , von denen eines die Daten als gültig kennzeichnet und das andere Signal den Empfang der Daten quittiert (Quittungsbetrieb). Die Signalnamen TX (vom zentralen Gerät X kommend) und TY (von der peripheren Einheit Y kommend) sind in Anlehnung an DIN 66202
1481 für die allgemeine Darstellung im
Signal - Zeitdiagramm (Bild 125) gewählt. Obwohl in DIN 66202 eine Kanal - Bus - Schnittstelle im engeren Sinne definiert wird , ist das Handshake-Verfahren ein allge meines , vielfältig eingesetztes Schnittstellenprinzip zur Syn chronisation des Datenaustauschs zwischen voneinander unabhängigen Geräten. Durch das Qu i ttungsverfahren paßt sich die Übertragungsrate den unterschiedlichen Verarbeitungs - und Re aktionszeiten beider beteiligter Partner an. Die zeitlichen Abläufe (Bild 125) sind für Eingabe und Ausgabe unterschiedlich. Für die Daten - Eingabe (Bild 125.a) gilt :
(2)
Die X-Einh e it (EA- Baustein) fordert mit dem I - Setzen von TX die periphere Y- Einheit auf, ein gültiges Datenwort einzugeben.
- 255 -
~ Das Gerät (Tastatur, Analog - Eingabe , Floppy Disc) setzt nach der ihm eigenen Reaktionszeit t tig , die es bereits (Vorhaltezeit t
v
mit TY die Daten gül l ) auf die Datenleitun -
gen geschaltet hat.
(2)
Nach der Zeit t
(3)
Die Y-Einheit schaltet nun die Datenausgänge ab und meldet
zeigt die X- Einheit durch das 0 - Setzen 2 des Signals TX an, daß sie die Daten in ein Datenregister
übernommen hat. dies durch Nullsetzen von TY : Ende des Eingabezyklus. a) Dateneingabe
_ _---=:=....J1 (X)
TY
0)
01. .--, . ,----~. . .1-,
TX __
"2"
'
\
\.f:.)./
/
' " I
I _ _ \~_.... _ ____ _-J,
"
'-10 _____ ~,~
,
(Y)
I
DATEN - - ~w..!":":''''''w..!..:..:.,~-=D:.:a:..:t:..:e:..:n.:....g,,-u::. ·· ::.l.:;;t.:; i ... g_J '1:.":"':":":"":":":'''-'-'-'-'I I I I I Daten I t-tv-l I I ungült ig f- tl --t- t2 t3--1
-+-
b) Datenausgabe TX'"
CDI~--,-------~ -_~I-~ '\ "2"
-----~I
I
,
(X)
TY
Bild 125
L,. . . . . : . . " , - - - - - - -
I
I
,
- - _ _ _ _.;.-:_ _ _ '-.....11-"'"
DATEN ... Signalrichtung
\!;.)
t:\
'-1~\V_4_ __
I
I
I
I
(Y)
IOX~__~D~a~te~n~g~Ü~lt~i~q__~~Xr.I~II~II~II~I~II~II~I I
~
I
t4 t n ~
.,..
I
I
t
-1
3
Handshake-Signaldialog für Eingabe - und Ausgabezyklus
Für die Dat enausgabe (Bild 125 . b) gilt:
CI)
Mit TX = 1 zeigt die X-Einheit (EA-Baustein) an, kurz zuvor (Dat en -Vorlaufzeit t
v
daß sie
) gültige Daten auf die
Datenl e itungen gelegt hat .
~
Die Ausgabeeinheit Y (z . B. Bildschirm , Drucker , Floppy Disc) setzt nach der Übernahme der Daten in ein Register
- 256 nach der Zeit t das Antwortsignal TY auf 1. l Nach einer bausteinabhängigen Reaktionszeit t 2 signalisiert die X-Einheit durch Rücksetzen von TX, daß sie die Daten unmittelbar oder nach einer Nachhaltezeit t n ungül tig schaltet.
~ Mit de m Rücksetzen von TY beendet die Y-Einheit die Datenausgabe; es kann eine weitere Ausgabe stattfi nden . Diesen prinzipiellen Handshake - Ablauf findet man bei verschie denen Geräten in unterschiedlichen Modifikationen vor ; in Ab schnitt 5 . 3 wird z .B. die Handshake -Schnittstelle d es ParallelEin-jAusgabebausteins 8255 beschrieben. Programmierbare Ein - jAusgabebausteine haben nach Abschn . 1.2.6 neben Datenregistern auch Steuerungs- und Statusregister . Im Statusregister wird z . B. vermerkt , ob das Datenregister mit gültiger Information geladen ist oder ob es ge l aden werden kann, ob der Interface-Baustein noch arbeitet (busy) oder fertig (ready) ist. Di e Information im Statusregister wird durch den Mikropro zessor ausgewertet (Bild 29) . 5 .1. 3
Serielle Ein - jAusgabeschnittstelle
Neben der 8 - Bit - breiten Parallelschnittstelle hat die serie ll e, genauer bitserie lle Ein- jAusgabe in der Mikroprozessortechn i k eine große Bedeutung erlangt. Auf einer bitseriellen Schnittstelle sendet der Daten sender die Informationsbits eines Wortes oder eines Zeichens zeitlich n acheinander in einem bestimmten Takt über eine Übertragungsleitung zu einem Daten - Empfänger (Bi l d 12 6). Hierbei sind Simplexbetrieb (Daten nur in einer Richtung vom Sender zum Empfänger) , Vollduplexbetrieb (gleichzeitige Datenübertragung in beide Richtungen) und Halbduplex betrieb (Datenübertragung in beide Richtungen , aber nur abwechselnd) zu unterscheiden . In der prinzipiellen Darste llung von Bild 126 sitzt im Sender ein Schieberegister, das das übernommene Datenbyte mit dem Sen detakt Bit für Bit über einen (nicht dargestellten) Leitungstreiber auf die Übertragungsleitung schaltet . Im Empfänger sam-
- 257 melt ein Schieberegister die ankommenden Bits mit dem Empfangs takt auf , bis das Datenbyte vOllständig ist und zur Weiterver arbeitung para l lel ausgelesen wird. Parallel
Parallel Schreiben D76543210 I
TxDI
1 I
I
Sende takt
Datensender 'D E E
I Serielle I EmpfangsDatenempfänger IÜbertragungs - : takt :einrichtung I (DEE)
Abk. : DEE d.h. Daten - End-Einrichtung (Mikrocomputer oder periphere Einheit, Terminal) TxD d.h . Sendedaten, Bild 126
RxD d.h. Empfangsdaten
Serielle Übertragung eines Bytes
In der Datenfernübertragung (DFÜ)
1491 benötigt man zur Über -
brückung größerer Entfernungen zusätzlich z'u den
!2aten~nd~in
richtungen (Computer, Terminals, Schnittstellenmultiplexer) Datenübertragungseinrichtungen DÜE (MODEM d . h. Modulator - Demo dulator) nach Bild 127, die die digitalen seriellen Schnittstellensignale der DEE in modulierte Analogsignale umwandeln. Diese werden über größere Entfernungen über Telefonleitungen , Standleitungen oder andere Übertragungssysteme übertragen. Die digitale Schnittstelle zwischen DEE und DÜE wurde frühzeitig von internationalen und nationalen Normungsgremien als V.24/ (V.28) - Schnittstelle (CCITT)
1501, als RS 232C- Schnittstelle
(EIA, d.h . Electronic Industries Association)
1511 und in DIN
66020 (FNI, d.h. Fachnormenausschuß Informatik)
152 1 genormt ,
um die Geräte verschiedener Hersteller miteinander betreiben zu können . In der Computer- und Mikrocomputertechnik hat die bit serielle Schnittstelle der Datenendeinrichtung als V. 24 - Schnittstelle für periphere Geräte wie Bildschirm- Terminals , Tastaturen und Drucker sowie für di e Kopplung von Mik r ocompu t ern v e rbr e i t ung
- 258 erlangt . Da diese Peripheriegeräte meist in unmittelbare r Nähe des Mikrocomputers oder zumindest in demse l ben Gebäude stehen, benötigt man hier keine Datenübertragungseinrichtungen, son dern man verbindet die Datenendeinrichtungen gemäß Bild 127 direkt über die digitale V.24 - Schnittste lle miteinander . V. 24/28 RS 232C DIN 66020
Datenübertragungs ,ichtung
V.24/28 RS 232C DIN 66020
t
DEE
~ D Ü E I-------------;D Ü E
DEE
Datenübertragungsstrecke _ _ , MODEM ~
MODEM ,
_ _ _ _ _ _, - ,_ _ __ __ _ _ _- J
Weglassen der DÜE'en bei kurzen Entfernungen Bi l d 127
Datenübertragungssystem mit/ohne MODEMs
Die V.24-Norm definiert ca. 50 SChnittstellenleitungen zur Übertragung von binären Daten , Steuer- und Schrittaktinforma tion zwischen DEE und DÜE . Die V. 28-Norm l egt dazu die e l ektri schen Eigenschaften (u.a. Signalpegel) der definierten Leitungen fest. Die Normen DIN 6602 0 und RS 232C umfassen die Leitun gen , deren Funktion und Pegel . Viele Signale der V.24 - Schnittstelle beziehen sich auf den Betrieb und die Steue rung der Datenübertragungseinrichtungen DÜE. In Tafel 24 ist eine Auswahl derjenigen V. 24 - Schnit tstel lensignal e z usammengeste llt , die vor allem beim Anschluß von peripher e n Geräten ohne DÜE be nutzt werden . Die Ansch l ußnummern bezi e h e n sich auf den 25-poligen D-Subminiatur - Steckverbinder nach Bild 128 . Auch die in Taf e l 24 angegebenen Leitunge n werde n bei realisierten Geräteanschlü ssen nur soweit benötigt verwendet und da zu noch teilweise in unterschiedlichen Funktionen. Eine minimal e , oft angewendete V. 24-Geräte-Schnittstelle besteht aus den drei Leitungen Betriebserde (E2 , GRD) , Sendedaten (Dl , TxD) und
Empfangsdaten (D2 , RxD)
(Bild 128) , über die z.B. ein
- 259 Tafel 24 OEE
-
V. 24 - Schnittstellenleitungen für den direkten An schluß von peripheren Geräten 150 I 1511 1521 (Auswahl)
I
IOIN
' Bezeichnung dt .
* ) I V. 24 : 66020 : I
1 7 2 3 4 5 6 20 15 17
'---
I 101 I El 1 1 02 I E2
Schu tzerde
I Dl 1, 1 0 4 1, D2
Sendedaten
I 103
:
i
S2 1 1 05 I 1 06 I M2
,
I 107
I Ml
IRS 1 Bezeichnung eng1. 1232 C : AA Protect i ve Grou n d
: AB
Betriebserde
Received Data RxD
Empfangsdaten
BB CA
Req uest to Send RTS
Sendebereit
CB
Clear to Se n d CTS
Betriebsbereit
CC
Data Set Ready DSR 1 Data Terminal Ready I DTR ,I Transmit Cl ock TXC
!
1 11 5 1 T4 1 I
Trans,m i tte d Data TxD
Sendeteil ein
!108 . 2 ! S1. 2 Endgerät ' betrlebSberelt ! 1 Sendeschrittakt T2 114
!
Signa l Gro u nd GRD
BA
Empfangsschritt taKt
CD DB DD
i
1 Receive Cl ock RxC I
*) Ansch l ußnummer am 25poligen Subminiatur D- Steckverbinder
Terminal ( Tastatur mit Bildschirm) an einen seriel l en E/A - Bau stein des Mikrocomputers angeschlossen ist . Über die Schnitt stelle werden ASCII - Zeichen (7 Bit und wahlweise ein Paritäts bit) übertragen. Befinden sich beide Daten-End- Einrichtungen im DTE - Modus (data terminal equipment , 1491) , dann müssen die Date n leitungen TxD und RxD im Verbindu ngskabel ge k reuzt werde n, damit ein Datensender mit einem Datenempfänger verbunden ist.
-- - - - 14"
1 DTE - Mode
I
DTE-Mode
2 TxD
TxD RxD
3 RxD 7
25
GRD
V . 28 Spannungspegel
Bild 1 28 Minimale V.24 - Verbindung (Term i nal am Mikrocomputer)
7
25
t
Systembus
I 1 3 '_ Mikrocomouter _ _ _ _' _ _ _ _ _
- 260 Als Beispiel für die Anwendung weiterer V.24 -S teuerleitungen bei Verbindungen ohne MODEMs sei der Anschluß eines Matrixdruckers an einen Mikrocomputer genannt. Fügt man zu dem Minimal system (Bild 128) die Leitung
r-
RTS (pin 4) Drucker
Mikrocomputer V.24 (Pin 5) CTS----.J hinzu, dann kann die Druckersteuerung die Übertragung von Zei chen im Mikrocomputer stoppen , wenn der Zeilenpuffer im Drukker voll ist. Hierzu muß das Druckprogramm vor dem Absenden eines Zeichens an den Drucker das Eingangssignal CTS auf wahr abfragen . Die elektrischen Eigenschaften der "V.24"-Leitungen sind in der V. 28-Empfehlung, in DIN 66020 und in der RS 232C - Norm festgelegt. Danch müssen die Sender- und Empfängerschaltungen so ausgelegt sei n, daß auf der Schnittstelle bzgl . der Betriebserde die Spannungspegel Tafel 25
gemäß
Tafel 25 eingeha lt en werden.
V. 24-Spannungspegel (V.28 - Norm)
Spannungspegel - 25 V < U < - 3 V
-
3V < U < + 3V
+
3V ktl>l
----~~r_-_-_-__-~------------------
I
"
I
"
I
I