Author
vokhanh
View
221
Download
5
Embed Size (px)
Hochschule Karlsruhe Fakultt Elektro- und Informationstechnik Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
Skriptum zur
Vorlesung
Mikrocontroller-Systeme
Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Inhalt:
Literatur zur Vorlesung Vorwort 1 Einfhrung
1.1 Ziele der Vorlesung 1.2 Blick in die Historie und Begriffsdefinitionen 1.3 Gegenberstellung: Programmierbares Logiksystem / festverdrahtetes
Logiksystem 2 Darstellung und Speicherung von Information
2.1 Informationseinheiten und ihre Interpretation 2.2 Dualzahlensystem 2.3 BCD-Zahlensystem 2.4 Halbleiterspeicher und BUS-System
3 Architektur eines Mikrocomputersystems, Beispiel: 80x86 3.1 Funktionselemente und Arbeitsweise 3.2 Befehlsbearbeitungsphasen 3.3 Intelligente Peripheriebausteine, Beispiel: Portbaustein
4 Architektur eines Mikrocontrollers, Beispiel: C517 4.1 Funktionselemente eines Mikrocontrollers 4.2 Aufbau eines Mikrocomputersystems mit dem C517 4.3 Programmiermodell des C517
5 Hilfsmittel zur Erstellung und Test von Assemblerprogrammen 6 Befehlssatz des Mikrocontrollers C517
6.1 Befehlstypen, Maschinencode, Laufzeiten 6.2 Die Befehlsgruppen im Einzelnen 7 Programmiertechnik in Assembler
7.1 Assembler-Symbolik, Segmente 7.2 Lineare Programme, Interationen 7.3 Unterprogrammtechnik 7.4 Interrupts
8 Mikrocomputer-Systemarchitekturen 8.1 Adressierung von Systemkomponenten 8.2 Multi-Master-Systeme 8.3 Timer / Counter 8.4 Schnittstellen und Schnittstellen-Bausteine
9 Optimierungsstrategien 9.1 CISC-/RISC-Architektur 9.2 Queue, Cache, Pipelining und Harvard-Architektur
10 Auswahlkriterien fr Mikroprozessoren
Mikrocontroller 1.1 Ziele der Vorlesung Seite 3 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Literatur zur Vorlesung
Allgemeine Literatur: Flik, Thomas, Liebig, Hans: Mikroprozessortechnik, 7. Auflage, Springer 2005 Beierlein, Hagenbruch: Taschenbuch Mikroprozessortechnik, Fachbuchberlag Leipzig 1999 / 3. erw. Auflage: 2004 Schweizer, Wunsch, Fadini: Mikrorechner, Architektur und Programmierung, Viehweg 1987 Osborne, Adam: Einfhrung in die Mikrocomputertechnik, te-wi 1982 Speziell zu Mikrocontrollern: Schaaf, Bernd-Dieter, Mikrocomputertechnik, Hanser-Verlag, 1999 Schmitt, v. Wendorff, Westerholz: Embedded-Control-Architekturen, Hanser-Verlag 1999 R. Johannis / N. Papadopoulos: MC-Tools 5: Handbuch des 80C517, Feger+Co, Hardware+Software Verlags OHG, Traunreut, 1995 V. Keim, G. Schnell: 8051 Mikrocontroller-Praktikum, Franzis-Verlag 1996 Walter, Jrgen: Mikrocomputertechnik mit der 8051-Controller-Familie, Springer 1994 Bermbach, Rainer: Embedded Controller, Hanser-Verlag, 2001 SIEMENS C500 User's Manual (im Intranet der FH verfgbar) Speziell zum 8086/88: Rector, Russel und Alexy, George: Das 8086/8088-Buch, te-wi 1983 Wohak, Bertram: 8086 Assembler-Programmierung, iwt 1987 Thies, K.-D.: Der 8086/80286-Assembler, te-wi 1985
Mikrocontroller 1.1 Ziele der Vorlesung Seite 4 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Vorwort
Dies ist das Skriptum der Vorlesung "Mikrocontroller" (E2B231) im Studiengang Energie- und Automatisierungstechnik. Es soll nicht den Besuch der Vorlesung ersetzen und erfordert bei der praktischen Arbeit im Labor die Verwendung von weitergehenden technischen Unterlagen, wie Befehlsbeschreibungen, Adressraum-Aufteilungen, Registerstrukturen usw.
Das Labor "Mikrocontroller" wird parallel zur Vorlesung angeboten; es beginnt in der zweiten Semesterhlfte. Da die Arbeit im Labor Grundkenntnisse bereits voraussetzt, ist die Vorlesung - und auch das Skriptum - so aufgebaut, dass relativ schnell Umfeld, Programmiermodell und Programmier-Hilfsmittel speziell des im Labor verwendeten Prozessors behandelt werden knnen (Kapitel 5). Ab dem siebten Kapitel wird der Betrachtungskreis dann wieder erweitert.
Mikrocontroller 1.1 Ziele der Vorlesung Seite 5 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
1 Einfhrung
1.1 Ziele der Vorlesung
o Arbeitsweise und Art der Programmierung von Mikrorechnersystemen verstehen
o Vor- und Nachteile verschiedener Mikrorechnerarchitekturen kennen lernen
o Praktisches Arbeiten mit einem speziellen Prozessor (SIEMENS C517,
entsprechend einer 8051-Architektur)
o Problemstellungen selbstndig lsen knnen durch: Auswahl eines geeigneten Prozessortyps Auswahl der zugehrigen Komponenten Entwurf geeigneter Programmstrukturen Programmieren und Testen in der jeweiligen Hardware-Umgebung
1.2 Blick in die Historie und Begriffsdefinitionen
Die folgende Abbildung zeigt einige, wichtige Entwicklungsschritte von den Anfngen der Rechner bis zu einem heutigen Mikroprozessor
Abbildung 1-1: Historische Entwicklung der Digitalrechner
Mikrocontroller 1.2 Blick in die Historie und Begriffsdefinitionen Seite 6 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Zentraleinheit (CPU)
Rechenwerk
Steuerwerk
Register
BUS-Steuerung
Speicher fr Programm
und Daten
Ein- /
Ausgabekomponenten
BUS-System
Abbildung 1-2: Prinzipieller Aufbau eines Rechners
In Abbildung 1-2 ist der prinzipielle Aufbau eines digitalen Rechners dargestellt mit seinen wesentlichen Kompomenten:
o CPU (central processing unit), die zentrale Verarbeitungseinheit; sie
wird gelegentlich auch einfach als "Prozessor" bezeichnet. Hier wird ein Programm Befehl fr Befehl abgearbeitet. Zur Umsetzung der einzelnen Befehle verfgt die CPU ber ein Steuerwerk, das jeden einzelnen Befehl in zeitlich aufeinanderfolgende, interne Bearbeitungsschritte umsetzt. Handelt es sich dabei um Befehle fr arithmetische oder logische Verknpfungen von Operanden, wird zur Befehlsbearbeitung das Rechenwerk bentzt. Die Operanden, die im Rahmen der Befehlsbearbeitung bentigt werden, stammen entweder aus internen Speicherpltzen, den Registern, oder aus externen Speicherpltzen. Diese externen Speicherpltze sind ber ein BUS-System an die CPU angeschlossen; fr die Datenbertragung ber diesen - oft auch von anderen Komponenten gemeinsam genutzten - Datenpfad besitzt die CPU eine eigene BUS-Steuerung.
o BUS-System: verbindet die CPU mit allen anderen Komponenten des Rechners. ber das BUS-System knnen sowohl Daten von den angeschlossenen Komponenten zur CPU transportiert werden (Beispiel: die einzelnen Befehle sowie externe Operanden), als auch umgekehrt Daten von der CPU zu den externen Komponenten bertragen werden (Beispiel: ein Rechenergebnis in den externen Speicher). Darber hinaus gibt es oft auch die Mglichkeit, dass externe Komponenten selbst - ohne Teilnahme der CPU - gegenseitig Daten austauschen. Die Koordinierung von bertragungsrichtung
Mikrocontroller 1.2 Blick in die Historie und Begriffsdefinitionen Seite 7 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
(wer ist Sender - wer ist Empfnger) und der zeitliche Ablauf wird ber Steuersignale geregelt.
o Speicher: Enthlt die Programme fr die CPU sowie die Daten
(Variable und Konstante), sofern sie nicht von den Ein-/Ausgaben stammen.
o Ein-/Ausgabekomponenten (I/O-Devices): Stellt die Schnittstelle
des Rechners zur Aussenwelt dar. Das Spektrum dieser Komponenten ist breit gestreut und charakterisiert letztlich die Anwendungsfunktion des Rechners: vom einfachen IC "Portbaustein" (siehe Kapitel 3.3), an dem lediglich wenige, digitale Signale angeschlossen werden, deren Eingangs-Signalzustnde in der CPU ausgewertet und zu Ausgangs-Signalzustnden fhren (Steuerungs-Rechner), bis hin zu kompletten, vorverarbeitenden Komponenten wie z.B. Modems, Tastaturen, Displays usw.
Begriffsdefinitionen: Grorechner: Anwendung fr Wissenschaft (Genomanalyse, Wettersimulation)
Banken, Versicherungen und Militr; Hersteller z.B. Intel, HP, NEC. An an der Spitze der TOP TEN weltweit steht z.Zt. der "Earth Simulator" (NEC) mit ca. 35 TFlops.
Minicomputer, heute: Mainframe, Server-Anwendungen (Beispiel:IBM z990-Serie, Prozessor: Eigenentwicklung 9x9x2 cm, 3,2 Milliarden Transistoren, 9000 MIPS).
Mikrocomputer(-system): z.B. Personal Computer (PC); die zentrale Recheneinheit (CPU) eines Mikrocomputers ist der Mikroprozessor.
Mikroprozessor: Ein Chip, der fr sich alleine allerdings noch nicht arbeitsfhig ist; er bentigt mindestens Speicher- und Ein-/Ausgabe-Bausteine als weitere ICs.
Mikrocontroller: Ein komplettes Mikrocomputersystem auf einem IC (SOC: system on a chip)
Controller allgemein: (BUS-Controller, Interrupt-Controller, E/A-Controller, DMA-Controller): Funktionseinheiten, die Teilaufgaben in einem Rechnersystem selbstndig durchfhren; sie sind nicht programmierbar, ihre Arbeitsweise ist aber oft in vielfltiger Weise vernderbar dadurch, dass man Steuer-Parameter in Steuerwort-Register einschreibt.
Embedded Control: berbegriff ber alle Anwendungen, bei denen ein Mikrocontroller (oder auch ein ganzes Mikrocomputersystem) "eingebettet" in ein Gert ist; damit tritt dieses Gert uerlich nicht mehr als Rechner in Erscheinung.
Der im Gert verborgene Mikrocontroller ermglicht jedoch eine enorme Vielfalt an Funktionen, sodass man heute von einer "2. Industriellen Revolution" spricht, ausglst durch den Einsatz dezentraler Intelligenz in Form von Mikrocontrollern.
Thema der Vorlesung: Mikrocomputer und (Schwerpunkt:) Mikrocontroller
Mikro-prozessor Mikro-controller Embedded Control
Mikrocontroller 1.2 Blick in die Historie und Begriffsdefinitionen Seite 8 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Anwendungsbeispiele werden in der Vorlesung vorgestellt: Personal Computer PC Speicherprogrammierbare Steuerung (SPS) Mikrocomputersystem fr Embedded Control ABS, ESP usw. Smart card usw.
Die Stckzahl-Verteilung zwischen der Welt der PC-Prozessoren (dominiert durch INTEL) und der Prozessoren fr Embedded Control-Anwendungen zeigt fr das Jahr 1998 die Abb. 1-3. Deutlich sichtbar: im Embedded Control-Bereich spielen die PC-Prozessoren ("x86-Architektur", siehe Kapitel 3) keine Rolle.
Abbildung 1-3: Stckzahlenvergleich Embedded Control / PC
(32-Bit-Prozessoren im Jahr 1997, Quelle: Elektronik 25/1998)
Wie schnell sich die Verteilung der Stckzahlen zwischen den PC- und Embedded Control-Prozessoren seit 1997 verndert hat, zeigt die folgende Abbildung.
200
400
600
Proz
esso
ren
in M
illio
nen
Stc
k
Jahr
1996 1998 2000 2002
Embedded-Anwendungen
PC
Abbildung 1-4: Stckzahlentwicklung Embedded Control / PC
(Quelle: Elektronik 1/2000)
Mikrocontroller 1.2 Blick in die Historie und Begriffsdefinitionen Seite 9 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Auch die Verteilung der Stckzahlen innerhalb der Mikrocontroller selbst ist sehr ungleich:
Verarbeitungsbreite Stckzahl (1997) 4 Bit 1250 Millionen 8 Bit 1500 " 16 Bit 400 " 32 Bit 185 "
Dabei wird lediglich der 4-Bit-Sektor kleiner, alle anderen Sektoren vergrern sich schnell; sogar der 32-Bit-Sektor zeigt bereits ein Jahr spter (1998) folgende Gesamtstckzahl:
Gesamtwachstum: um 25 % auf 236 Mio Einheiten ARM-Prozessor: +400% ARM: Advanced RISC Machines (England), ARM-Lizenznehmer: Seiko, Epson, Hewlett-Packard, Toshiba
Abbildung 1-5: 32-Bit-Embedded Mikrocontroller 1998 (Quelle: Microprozessor-Report 1/99)
Mikrocontroller 1.3 Gegenberstellung: Programmierbares Seite 10 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
1.3 Gegenberstellung: Programmierbares Logiksystem / festverdrahtetes Logiksystem
In Abb. 1-2 wurde bereits der prinzipielle Aufbau eines Rechners dargestellt. Dieser stellt - allgemein formuliert - ein "programmierbares Logiksystem" dar, dessen Funktion durch ein Programm festgelegt wird. Dabei kann dieses Programm entweder jederzeit nderbar / nachladbar sein (typisch: PC); damit ist dann auch die Funktion dieses Systems nderbar, oder das Programm ist unvernderlich (typisch: Embedded Control).
Schaltung
("Hardware")Eingangs-
daten Ausgangs-daten
Programm ("Software")
Abbildung 1-6: Programmierbares Logiksystem
Ein Logiksystem, das bezglich der Ein- und Ausgangsdaten dieselbe Funktion hat, kann aber auch wie folgt aussehen:
Schaltung
("Hardware")Eingangs-
daten Ausgangs-daten
Schaltplan
Abbildung 1-7: Festverdrahtetes Logiksystem
Die Funktion dieses Logiksystems wird nicht durch ein Programm, sondern durch die Verschaltung von einzelnen Logikbausteinen festgelegt - also durch einen Schaltplan ("hard wired").
Mikrocontroller 1.3 Gegenberstellung: Programmierbares Seite 11 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Beispiel 1: Das binre Ausgangssignal c soll ber eine UND-Funktion aus den beiden binren Eingangssignalen a, b erzeugt werden Realisierung mit einem programmierbaren Logiksystem: Signale a, b werden im Logiksystem (Rechner) auf Variable abgebildet z.B. in einem C-Programm: int a, b; // Annahme: als binre Variable nehmen sie //nur die Werte 0 oder 1 an c = a && b; // Programmzeile zur Bildung der // Ausgangsvariablen c Realisierung mit einem festverdrahteten Logiksystem: Signale a, b steuern je nach ihrem Zustand zwei elektronische Schalter ("Gatter") in die beiden Zustnde "geffnet" / "geschlossen":
a b c
Abbildung 1-8: UND-Funktion "hardwired" realisiert
In Abb. 1-8 ist bezglich der Ein- und Ausgangsgren dieselbe Logikfunktion in Hardware realisiert, wie im C-Programm. Diese Gatter bzw. daraus aufgebaute, als integrierte Schaltkreise in Hardware realisierte, logische Grundfunktionen ermglichen es, beliebig komplexe Funktionen zu realisieren.
& a
b c
a
b c =1
a
b c >=1
UND-Funktion
ODER-Funktion
Antivalenz-Funktion (Exklusiv-ODER)
Abbildung 1-9: Logikfunktionen (Auswahl)
Beispiel 2:
Mikrocontroller 1.3 Gegenberstellung: Programmierbares Seite 12 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Zwei INT-Zahlen a, b sollen addiert werde; Summe soll in S abgelegt werden. Realisierung mit einem programmierbaren Logiksystem: S = a + b; // C-Programm Realisierung mit einem festverdrahteten Logiksystem: (hier reduziert auf zwei Ein-Bit-Zahlen unter Verwendung der Logikfunktionen aus Abb. 1-9)
Abbildung 1-10: Volladdierer, hard wired
Hier ist bereits sichtbar, dass letztlich jede beliebige Funktion entweder programmiert oder festberdrahtet
gelst werden kann.
Merkmal Festverdrahtete Lsung Programmierte Lsung Arbeitsweise Parallele Arbeitsweise
("fr jedes Signal eine eigenes Teil der Hardware"): verschiedene Funktionen knnen gleichzeitig ablaufen
Serielle, eine Hardware (die CPU) fr die Verarbeitung aller Signale
Laufzeiten extrem kurz (Schaltzeiten der Gatter)
relativ langsamer
Komplexitt der Aufgabe
Komplexitt schlgt sich in der Chipflche nieder
Komplexitt der Aufgabe wirkt sich in der Lnge des Programms aus
sonstiges idealer Know-How-Schutz
Vergleich: "hard wired"-Lsung gegenber programmierter Lsung
Mikrocontroller 1.3 Gegenberstellung: Programmierbares Seite 13 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Praktische Realisierungen: o ASIC (Application Specific IC): Entwurf durch den Kunden
mittels CAD-System, Herstellung durch spezialisierte Halbleiterhersteller: Funktion durch die Herstellung festgelegt. Hohe Entwicklungskosten / lange Entwicklungszeiten / keine Mglichkeit, nachtrglich Fehler zu beseitigen: Einsatz nur bei hohen Stckzahlen sinnvoll.
o FPGA (Field Programmable Gate Array) und PLD
(Programmable Logic Device): ICs mit vorgefertigten logischen Elementen, die vom Kunden "verschaltet" werden.
ASIC FPGA, PLD
Mikrocontroller 2.1 Informationseinheiten und ihre Interpretation Seite 14 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
2 Darstellung und Speicherung von Information
2.1 Informationseinheiten und ihre Interpretation Definitionen: Bit, engl.: binary digit, Binres Signal, trgt nur zwei verschiedene Informationen Mehrere Informationen mittels einzelner Bits darzustellen erfordert Codierung
(=Zuordnung von Informationen zu Code-Wrtern); damit lassen sich digitale Signale darstellen.
Ein Code besteht im allgemeinen Fall aus: m Elementen ("Stellen"), jedes Element kann u verschiedene Zustnde annehmen
Anzahl N der Informationen, die mit einem Code von m Stellen dargestellt werden knnen:
In der Mikrocontrollertechnik bliche Stellen-Anzahlen bei u = 2:
Anzahl der Stellen m
Anzahl der darstellbaren Informationen
Bezeichnung
4 16 Nibble 8 256 Byte 16 65 636 Word *) 32 4,295 109 Double Word *)
10 1024 1 K 20 1.048.576 1 M 30 1.073.741.824 1 G
*) Hinweis: Die Bezeichnung "Double Word" wird nicht einheitlich verwendet; herrhrend von Grorechnern werden auch 32 Bit als "Word" bezeichnet.
Bit
Code
N = u m
Nibble, Byte, Wort, Double Word
Mikrocontroller 2.1 Informationseinheiten und ihre Interpretation Seite 15 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Abbildung 2-1: Codierung von Textzeichen mit 7-Bit-ASCII
Beispiel fr ein Codiersystem: Fr die Darstellung von druckbaren Zeichen (A....Z, a...z, 0...9) wird hufig eine Codierung mit 7 Bit verwendet Diese nennt sich "ASCII-Tabelle" (nach American Standard Code for Information Interchange) und ist nachfolgend dargestellt:
Mikrocontroller 2.1 Informationseinheiten und ihre Interpretation Seite 16 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Codes werden im Folgenden als "Kstchengrafik" dargestellt: a3 a2 a1 a0
Beispiel: 8-Bit-Code, Inhalt stellt z.B. das ASCII-Zeichen 'A' dar.
Zur verkrzten Darstellung von Bit-Codes auf Papier oder am Bildschirm verwendet man meist das hexadezimale Zahlensystem; dabei entsprechen jeweils 4 Bit eines Codes einer hexadezimalen Stelle:
MSB und LSB MSB: most significant bit LSB: least significant bit
a7 a6
0 1
a5 a4
0 0
a3 a2
0 0
a1 a0
0 1
Mikrocontroller 2.2 Dualzahlensystem Seite 17 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Abbildung 2-2: Hexadezimales Zahlensystem
Beispiel: Das oben dargestellte Bitmuster (Code) des ASCII-Zeichens 'A' hat den hexadezimalen Wert: 41 hex. Allerdings kann dasselbe Bitmuster auch positive, ganze Dezimalzahl mit dem Wert: 65 dez. aufgefasst werden; Bitmuster haben von sich aus also keine festgelegte Bedeutung! Es ist immer notwendig, das zugrundeliegende Codiersystem zu kennen. Als hufig verwendete Codiersysteme werden im Folgenden Codiersysteme fr Zahlen nher beleuchtet.
2.2 Dualzahlensystem
Die Darstellung von Zahlen wird im Folgenden als Codierung aufgefasst. Dabei wird jeder Zahlenwert einem Binrcode (u=2) zugeordnet.
Wegen der Ablage/Verarbeitung in einem Rechner muss grundstzlich von einem Code mit einer bekannten, konstanten Anzahl von Elementen ausgegangen werden, also einer festen "Codelnge".
Bildungsgesetz fr reelle Zahlen:
Hexadez. Zahlensystem
Z = ....a3 u3 + a2 u2 + a1 u1 + a0 u0 + a-1 u-1 + a-2 u-2 ....
a: Stellen u: Basis Z: Wert der Zahl
Mikrocontroller 2.2 Dualzahlensystem Seite 18 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Zur Codierung von Zahlen bentigt man also neben der Basis u die Angabe, welches "Stellensystem" im Code verwendet wird
Beispiel aus einem Dezimal-Zahlensystem mit m=4 Stellen:
Anzahl der mglichen Zahlen:
N = um = 104 = 10 000
Stellensystem sei:
Z = a3 u3 + a2u2 + a1u1 + a0u0
Beispiel: 7.103 + 3.102 + 5.101 + 1.100
Code: 7 3 5 1
Zahlenwert Z ist also 7351 dezimal.
Mikrocontroller 2.2 Dualzahlensystem Seite 19 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Die bekannten Codierungen des Dezimalsystems (u=10) sowie die Rechenregeln knnen analog in ein Dualzahlsystem (u=2) ber tragen werden.
Die Codes von Dualzahlen werden im Folgenden wieder als "Kstchengrafik" dargestellt
Alle Codes eines 4-Bit-Dualzahlsystems am Beispiel des obigen Stellensystems:
a3 a2 a1 a0 Wert als Dezimalzahl 0 0 0 0 0 0 0 0 1 1 0 0 1 0 2 0 0 1 1 3 0 1 0 0 4 0 1 0 1 5 0 1 1 0 6 0 1 1 1 7 1 0 0 0 8 1 0 0 1 9 1 0 1 0 10 1 0 1 1 11 1 1 0 0 12 1 1 0 1 13 1 1 1 0 14 1 1 1 1 15
Beispiel aus einem Dual-Zahlensystem mit m=4 Stellen:
Anzahl der mglichen Zahlen:
N = um = 24 = 16
Stellensystem sei:
Z = a3 u3 + a2u2 + a1u1 + a0u0
Beispiel: 1.23 + 0.22 + 1.21 + 1.20
Code: 1 0 1 1
Zahlenwert Z ist also 11 dezimal.
Mikrocontroller 2.2 Dualzahlensystem Seite 20 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Beispiel aus einem Dual-Zahlensystem mit m=4 Stellen: Stellensystem fr reelle Zahlen:
Z = a1u1 + a0u0 + a-1u-1 + a-2u-2
Code: Zahlenwert Z ist also 2,75 dezimal
Zur Erinnerung: einige Beispiele zu den Rechenregeln fr Dualzahlen:
Beispiel zur Addition:
a3 a2 a1 a0 1 1 0 1 1. Operand (Wert 13 dez.) 1 0 0 1 2. Operand (Wert 9 dez) 1 0 0 1 - bertragszeile 0 1 1 0 Ergebnis
Hinweis: Hier tritt ein bertrag in die Stelle 24 auf; falls diese nicht vorhanden ist (feste Codelnge!), muss das Ergebnis in diesem Zahlensystem als falsch betrachtet werden.
Beispiel zur Subtraktion:
a3 a2 a1 a0 1 1 0 1 1. Operand 1 0 1 1 2. Operand 0 0 1 0 - "Borgen"-zeile 0 0 1 0 Ergebnis
Beispiel zur Multiplikation mit 2n ( =Linksschieben um n Stellen):
Gebrochene Zahlen
a1 a0 a-1 a-2 1 0 1 1
Beispiele zu den Rechen-regeln
a3 a2 a1 a0 0 0 1 0 * 22 =
a3 a2 a1 a0 1 0 0 0
Mikrocontroller 2.2 Dualzahlensystem Seite 21 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Beispiel zur Division durch 2n (=Rechtsschieben um n Stellen):
Hinweis: Bitte beachten Sie das Stellensystem! Das Ergebnis ist dezimal: 0.75. Was wre bei einer Division durch 24 das Ergebnis?
Beispiel zur Umrechnung dezimal .--> dual ("Horner-Schema"): Die Dezimalzahl hat den Wert 11 11 / 2 = 5 Rest 1----> a0 = 1 5 / 2 = 2 Rest 1 ----> a1 = 1 2 / 2 = 1 Rest 0 ----> a2 = 0 1 / 2 = 0 Rest 1 ----> a3 = 1
Das Ergebnis ist also:
Bisher wurden nur positive Zahlen als Codes dargestellt. Zur Codierung von Vorzeichen-behafteten Zahlen gibt es mehrere Mglichkeiten:
a) Codierung mit einem Vorzeichenbit und einer Betragszahl, Definition
Vorzeichenbit = 0: Zahl ist positiv,
Vorzeichenbit = 1: Zahl ist negativ
Beispiel Codelnge 4 Bit:
Vorzeichenbit a2 a1 a0 Wert dezimal: 1 0 1 1 - 3 0 0 1 1 + 3 0 0 0 0 + 0 1 0 0 0 - 0
Vorteil dieses Systems: Codes fr Betrge von pos. und neg. Zahlen sind gleich Nachteil dieses Systems: Zwei Codes fr Betrag 0 --> Sonderbehandlung beim
Rechnen !
a1 a0 a-1 a-2 1 1 0 0 / 22 =
a1 a0 a-1 a-2 0 0 1 1
a3 a2 a1 a0 1 0 1 1
Codierung von pos. und neg. Zahlen
Vorzeichen und Betrag
Mikrocontroller 2.2 Dualzahlensystem Seite 22 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
b) Codierung negativer Zahlen als Zweierkomplement
Definition des Zweierkomplements: Das Zweierkomplement einer Zahl (aus einem dualen Stellensystem mit n Stellen) ist die Ergnzung zur Hchstzahl 2n
Regel zur Bildung des Zweierkomplements: Aus dem Code der Zahl das Einerkomplement bilden (aus 0 wird 1 und umgekehrt) und eine 1 dazuaddieren.
Einfache Regel zur Bildung des Zweierkomplements: Den Code der Zahl von rechts beginnend abschreiben bis inklusive der ersten "1", alle anderen Bits invertieren.
In diesem System ist das fhrende Bit ("MSB, most significant bit") zwar als Vorzeichen zu werten, es ist jedoch Bestandteil der Zahl; d.h. um aus einer negativen Dualzahl die positive Zahl zu ermitteln, kann man nicht einfach das Vorzeichenbit weglassen und nur die niederwertigen Bits betrachten (siehe im folgenden Beispiel die letzte Zeile).
Beispiele zur Zweierkomplementbildung:
VZ a2 a1 a0 Wert dez. --> ZK --> VZ a2 a1 a0 Wert dez. 0 0 0 0 0 --> ZK --> 0 0 0 0 0 0 0 0 1 +1 --> ZK --> 1 1 1 1 -1 0 0 1 0 +2 --> ZK --> 1 1 1 0 -2 0 1 1 1 +7 --> ZK --> 1 0 0 1 -7 1 1 1 1 -1 --> ZK --> 0 0 0 1 +1
Vorteil dieses Systems: Die Regeln der Dualzahlrechnung lassen sich ohne Sonderbehandlung der "0" anwenden.
Beispiel: Addition von zwei Dualzahlen
VZ a2 a1 a0 0 1 1 0 1. Operand, Wert: +6 dez. 1 0 0 1 2. Operand, Wert: -7 dez. 0 0 0 0 - bertragszeile 1 1 1 1 Ergebnis, Wert -1 dez.
Die Codierung von Zahlen kann grafisch an einem Zahlenstrahl dargestellt werden. Dabei werden die Grenzen des Zahlenstrahls immer durch das zu Grunde gelegte Stellensystem, also die Codelnge, vorgegeben. Bei allen Rechenoperationen muss diese Grenze bercksichtigt bzw. berwacht werden.
Zweier-komplement (ZK)
ZK-Bildungs-regeln
Mikrocontroller 2.2 Dualzahlensystem Seite 23 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Wird beim Rechnen die Grenze des Zahlenstrahls berschritten, ist das Ergebnis der Rechenoperation falsch - zumindest bei den in der Mikrocontrollerwelt verwendeten Rechnern.
Beispiele fr Zahlenstrahl-Darstellung in verschiedenen Codiersystemen: Codelnge 8 Bit, negative Zahlen im Zweierkomplement
Codelnge 8 Bit, nur positive Zahlen
Codelnge 8 Bit, 7 Betragszahl, 1 Bit Vorzeichen
0000 0000
1111 1111 1000 0000 0111 1111 0000 0001
-128 d +127 d 0 d
Overflow = 1 Overflow = 1
1000 0000
0111 1111 0000 0000 1111 1111 1000 0001
+ 0 d - 127 d - 0 d
1000 0000
0111 1111 0000 0000 1111 1111 1000 0001
0 d 255 d 128 d
Carry = 1 Carry = 1
Mikrocontroller 2.3 BCD-Zahlensystem Seite 24 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
2.3 BCD-Zahlensystem
"Binr codiertes Dezimalsystem": Beibehaltung des dezimalen Stellensystems, lediglich die einzelnen Ziffern werden als Dualzahlen codiert.
Beispiel fr Bildung einer BCD-Zahl aus einer Dezimalzahl:
Achtung: nur Codes von 0000 bis 1001 (entsprechend Ziffer 0 bis 9) sind zulssig, alle Codes von 1010 bis 1111 sind unzulssig!
"Gepackte" BCD-Codes: hier werden 2 BCD-Ziffern in einem Byte codiert "Ungepackte" BCD-Codes: hier wird fr die Codierung einer BCD-Ziffer ein Byte
verwendet
Vorteil der BCD-Codierung: einfache Umcodierung dezimal--> BCD (z.B. durch einen mechanischer Zifferneinsteller per Verdrahtung)
Nachteil der BCD-Codierung: Rechnen ist - sofern nicht von einem Rechner mit BCD-Arithmetik untersttzt - schwieriger, da nach jeder Operation die Codierung korrigiert werden muss
BCD-Codierung
Unzulssige BCD-Codes Gepackte BCD Ungepackte BCD
Dezimalzahl
102 101 100
9 3 8
* 1021 0 0 1
* 1001 0 0 0
* 1010 0 1 1
Mikrocontroller 2.4 Halbleiterspeicher und BUS-System Seite 25 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
2.4 Halbleiterspeicher und BUS-System Nach der Betrachtung von Bitmustern, in denen - je nach Codiersystem -
unterschiedliche Informationen dargestellt werden, soll im Folgenden die Speicherung solcher Informationen in einem Gedankenexperiment entwickelt werden. Allerdings wird hier nur die prinzipielle Funktion dargestellt, eine genauere technische Beschreibung findet sich in /Bermbach Seite 29 ff/.
Ausgangspunkt: einfachste Form eines Halbleiterspeichers fr 1 Bit:
Zustand:logische
"0"
Zustand:logische
"1" Abbildung 2-3: Ein-Bit-Speicher als Festwertspeicher (Read Only Memory,
ROM)
Dieser Ein-Bit-Speicher wird mit einem Ansteuersignal verbunden, sodass der jeweilige logische Zustand des Speichers ber eine zweite Signalleitung als Leseleitung ausgelesen werden kann:
1-Bit-Speicher
a0
Ansteuerung
Leseleitung
Abbildung 2-4: Ein-Bit-Speicherzelle mit Ansteuer- und Lesesignal
Fgt man weitere Bitspeicher dazu, bentigt man fr jeden Speicher eine eigene Leseleitung; das Ansteuersignal ist fr alle gemeinsam:
1-Bit-Speicher
a0
Leseleitung
a1
Abbildung 2-5: Zwei-Bit-Speicher
Read Only Memory ROM
Mikrocontroller 2.4 Halbleiterspeicher und BUS-System Seite 26 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Ergnzt man die Speicherzeile z.B. auf 8 Bit, so kann man diese Zeile parallel auslesen ber die 8 Leseleitungen: diese werden als Datenbus (DB) bezeichnet
Ergnzt man eine zweite Speicherzeile, bentigt diese ein eigenes Ansteuersignal. Wird dieses aktiviert, sorgen (hier nicht weiter betrachtete) sogenannte Decoder dafr, dass dann nur die Bitspeicher der zweiten Speicherzeile mit den Datenbus-Leitungen verbunden werden
a7 a6 a5 a4 a3 a2
1-Bit-Speicher
a0
Datenbus
a1
a7 a6 a5 a4 a3 a2 a0a1
Abbildung 2-6: Speicher mit zwei Byte
Wird die Anzahl der Speicherzeilen z.B. auf 8 erhht, bentigt man zur Auswahl der einzelnen Zeile zwar 8 Ansteuersignale, diese knnen aber aus drei Signalen (A0, A1, A2) ganz einfach dekodiert werden: sind alle drei Signale Null, ist die Zeile Nr. 0 anzusteuern; ist A1=A2=0 aber A0=1, so ist die Zeile Nr. 1 anzusteuern usw. Mit 3 Signalen (A0, A1, A2) knnen 23 = 8 Zeilen ausgewhlt d.h. adressiert werden - die Signalzustnde kodieren also als Dualzahl betrachtet die Zeilen-Nummer. Die Signale werden zusammengefasst als "Adrebus" bezeichnet.
a7 a6 a5 a4 a3 a2 a0
Datenbus
a1a7 a6 a5 a4 a3 a2 a0a1a7 a6 a5 a4 a3 a2 a0a1a7 a6 a5 a4 a3 a2 a0a1
Adressbus
Adress-Decoder Speichermatrix
A0 A1
a7 a6 a5 a4 a3 a2 a0a1a7 a6 a5 a4 a3 a2 a0a1a7 a6 a5 a4 a3 a2 a0a1a7 a6 a5 a4 a3 a2 a0a1
A2
Abbildung 2-7: Schematischer Aufbau eines Speichers
Die "Breite" (=Anzahl Signalleitungen) des Datenbus' bestimmt also, wieviele Bits parallel gelesen (oder geschrieben, siehe RAM) werden knnen.
Die "Breite" des Adressbus' bestimmt, wieviele Speicherzeilen (unabhngig von deren Breite!) adressiert werden knnen. Dies wird im Folgenden, da nicht nur Speicher als Teilnehmer am DB-/ADB auftreten knnen, allgemein als "Adressraum" bezeichnet.
Datenbus (DB)
Adrebus (ADB)
Adressraum: Anzahl der adressier-baren Teilnehmer
Mikrocontroller 2.4 Halbleiterspeicher und BUS-System Seite 27 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Reale Speicherchips stellen also eine Matrix aus einzelnen Bit-Speichern zur Verfgung. Die Gre solcher Chips ist aus dem Aufdruck abzulesen, angegeben wird der Inhalt z.B. in KBit bzw. MBit; oft wird dabei auch die Organisationsform mitangegeben, z.B. 128K x 8 Bit fr einen byteweise organisierten Speicher mit 128 K Bits.
Der Adressbus eines Mikrocomputersystems spannt als Systemgre einen Adressraum auf, der jedoch - wie das nachfolgende Beispiel zeigt - nicht vollstndig "gefllt" sein muss (mit Speicher, E-/A-Bausteinen usw.), und an dem auch nicht nur Teilnehmer mit der gleichen "Breite" (z.B. 16-Bit-Breite, gemischt mit 8-Bit-Breite) angeschlossen sein mssen.
Adressen (Hexadez.)
nicht belegt
0715 0000 H
1FFF H
AFFF H
B0FF H
byteweise organisiert
FFFF H
Adressraumdes Systems
Abbildung 2-8: Adressraum eines Mikrocomputersystems (Beispiel)
Im Folgenden wird - wie oben gezeigt - das bereits eingefhrte "Kstchenschema" auf die Darstellung von Adressrumen und Speicher erweitert: auen werden die Adressen in hexadezimaler Darstellung angegeben, oben die jeweilige Breite des Teilnehmers in der Bit-Wertigkeit.
Informationen - bisher als Bitmuster ebenfalls in Kstchenform dargestellt - knnen 4-Bit-Gre / 8-Bit-Gre / 16-Bit-Gre usw. besitzen und mssen natrlich im Speicher eines Rechners abgelegt werden knnen. Ist die Speicherbreite des Rechners genauso gro, wie die Breite der zu speichernden Information, kann auf jedem Speicherplatz genau eine Information abgelegt werde.
Ist allerdings die Breite der zu speichernden Information grer als die Breite des Speichers, muss die Information verteilt auf mehrere Adressen abgelegt werden.
Fr diese Ablage existieren in der Praxis zwei verschiedene Verfahren (siehe Abbildung auf der folgenden Seite):
1. "Little Endian": der niederwertige Teil der Information wird auf der niederen Speicheradresse abgelegt, der hherwertige Teil auf der hheren Speicheradresse
2. "Big Endian": der hherwertige Teil der Information wird auf der niederen Speicheradresse abgelegt, der niederwertige Teil auf der hheren Speicheradresse.
Adressraum und Teilnehmer
Little Endian Big Endian
Mikrocontroller 2.4 Halbleiterspeicher und BUS-System Seite 28 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Die Ablage von Informationen verschiedener Gren (Byte, Wort, Doppelwort, linke Seite von Abb. 2-9) ist fr ein System, das nach "Little Endian" arbeitet, ist in der rechten oberen Seite dargestellt; die Ablage von Byte/Wort/Doppelwort in einem "Big Endian"-System ist in der rechten unteren Seite dargestellt
Little Endian wird u.a. von INTEL bevorzugt, Big Endian von Motorola, Siemens, Sun.
Adressen 7 0
7A
0 715 31
7A 00 H
C1 D2
C1D2
A0 B1 C2 D3
A0B1C2D3
ADB und DB
01 H 02 H 03 H04 H05 H06 H
Adressen 7 07A 00 H D2C1D3C2B1A0
01 H 02 H 03 H04 H05 H06 H
ADB und DB
Little Endian
Big Endian
Abbildung 2-9: Datenablage im Speicher nach Little/Big Endian
Die Information, ob das einzelne Speicherbit eine "0" oder "1" beinhaltet, kann bereits bei der Herstellung der Integrierten Schaltkreise durch entsprechende Gestaltung der Belichtungsmasken festgelegt werden: "Maskenprogrammierte Read Only Memory". Problem: keine nachtrgliche nderung mglich; wegen Grundaufwand in der Herstellung nur bei groen Stckzahlen sinnvoll.
In der Praxis werden hufiger "Programmable Read Only Memory" (PROM) eingesetzt: diese besitzen "fusible links" (siehe Abb. 2-3), die mit einer speziellen Programmierspannung "durchgebrannt" werden knnen; in der Regel allerdings nur einmal, daher die Bezeichnung "One Time Programmable" (OTP).
Fr die Testphase eines Programms sinnvoll: immer wieder lschbare, Nur-Lese-Speicher, die "Erasable Programmable Read Only Memory" (EPROM). Hier wird fr die Speicherung eines Bit eine Ladung verwendet, die auf ein isoliertes Gate eines speziellen Feldeffekt-Transistors (FET) aufgebracht wird. Zum Lschen besitzen EPROM-Chips ein Quarzfenster. Bestrahlt man den Chip mit UV-Licht, wird durch erhhte Ladungstrgerzahl die gespeicherte Ladung nach ca. 20 Minuten abgebaut, die gespeichert Information ist gelscht
Little Endian Big Endian
ROM: maskenprogr. PROM, OTP EPROM
Mikrocontroller 2.4 Halbleiterspeicher und BUS-System Seite 29 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Wegen des Quarzfensters, das ein Keramikgehuse bedingt (teuer) und die weitere Miniaturisierung des Gehuses verhindert, sowie wegen der umstndlichen Handhabung beim Lschen werden EPROMs heute weitgehend ersetzt durch "Electrical Erasable Read Only Memory" (EEPROM): hnliche Technologie wie EPROM, jedoch kann das "Floating Gate" des FET elektrisch entladen werden. Damit knnen also - ohne die Speicherchips auszubauen - einzelne Speicherzeilen umprogrammiert werden. Allerdings ist der Schaltungsaufwand zur Ansteuerung der einzelnen Speicherbits hoch: die Kapazitt der EEPROMs ist grundstzlich kleiner als bei ROM und EPROM. Das im laufenden Betrieb mgliche Einschreiben neuer Informationen in das EEPROM ist wegen der erforderlichen Umprogrammierzeit (z.B. 0,2 bis 1 ms pro Byte) beschrnkt. Moderne EEPROMs erzeugen die Programmierspannung, die wie bei dem EPROM gegenber den normalen Betriebsspannungen erhht ist, intern.
Das "Flash EPROM" ist eine Weiterentwicklung des EEPROMs, es erlaubt ein blockweises oder sogar chipweises Lschen der Inhalte in < 1 Sekunde. Damit ist dieses Speicherprinzip in die Nhe eines echten "Schreib-/Lesespeichers" gerckt. Allerdings muss dann - wegen der maximal zulssigen Anzahl von Umprogrammiervorgngen (derzeit: ca. 100 000) - sichergestellt werden, dass der Speicher sozusagen gleichmig abgenutzt wird.
Speicher, die jederzeit und mit der maximalen Geschwindigkeit, die die jeweilige Halbleiter-Technologie ermglicht, neu beschrieben werden knnen, sind die "Random Access Memory" (RAM, Speicher mit wahlfreiem Zugriff).
Die Informationsspeicherung beruht beim statischen RAM auf zwei gegengekoppelten FET-Transistoren ("Flip-Flop"): ein Transistor ist durchgesteuert und hlt dadurch den anderen im gesperrten Zustand. Soll die damit gespeicherte Information umgekehrt werden, muss man den gesperrten Transistor in den durchgeschalteten Zustand bringen - dadurch wird der bisher durchgeschaltetet Transistor dann gesperrt ("Bistabile Kippstufe"). Zur Speicherung eines Bits werden also zwei Transistoren bentigt. Das Prinzipschaltbild eines solchen Bitspeichers ist in der nachfolgenden Abbildung dargestellt.
Flash-EPROM RAM statisches RAM, SRAM
EEPROM
Mikrocontroller 2.4 Halbleiterspeicher und BUS-System Seite 30 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Zeilen-Anwahlleitung
Abbildung 2-10: Prinzipieller Aufbau einer statischen RAM-Zelle
T1, T2 bilden das Flipflop; zum Auslesen des Zustandes mssen T3, T4 ber die Zeilen-Anwahlleitung durchgeschaltet werden, worauf der Zustand an der Datenleitung Di erscheint (invertiert nochmal an /Di ) Das Schreiben erfolgt ebenfalls mit T3, T4 und einem entsprechenden Potential an Di .
SRAM zeichnen sich durch hchste Schreib-/Lesegeschwindigkeit und minimalen Stromverbrauch aus.
Der Platzbedarf einer RAM-Zelle kann von 6 Schaltelementen auf 2 verkleinert werden, wenn man die Information ber das einfache Aufladen eines Kondensators speichert: Dynamisches RAM (DRAM).
Abbildung 2-11: Prinzipieller Aufbau einer dynamischen RAM-Zelle
Problem: die RCSP-Zeitkonstante ist sehr klein, der Inhalt der Speicherzelle muss stndig durch Auslesen+Wiedereinschreiben aufgefrischt ("Refresh") werden. Dazu besitzen diese Chips eine interne Refresh-Logik (Zeitabstnde: 1 -20 ms).
SRAM DRAM
Mikrocontroller 2.4 Halbleiterspeicher und BUS-System Seite 31 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
In Abb. 2-12 sind RAM- und ROM-Speicher abschlieend als Blockschaltbilder dargestellt.
Zur Interpretation von Blockschaltbildern in der Mikrorechnerwelt: Dnne Pfeile in Blockschaltbildern stellen Einzelsignale dar, Blockpfeile stellen BUS-Signale, also eine Vielzahl von Einzelsignalen, dar.
Abbildung 2-12: Speicher als Blockschaltbild
Jeder Speicherbaustein besitzt als Einzelsignal ein Chipselect (CS). Mit diesem Signal wird der Baustein aktiviert; ist das Signal nicht aktiv, "hrt" der interne Dekoder des Bausteins nicht am Adressbus mit. Das CS-Signal (gelegentlich auch als Chip enable CE bezeichnet) ermglicht damit, mehrere, kleine Speicher an einen Adressbus mit einem wesentlich greren Adressraum anzuschlieen.
Im Blockschaltbild des RAM-Bausteins ist gegenber dem ROM zustzlich ein Lese-/Schreibsignal sichtbar: dies schaltet die Richtung des Informationstransports ber den Datenbus um.
Der RAM-Baustein wird ber interne Verstrker an die einzelnen Leitungen des Datenbus' angeschlossen; diese mssen in beide Richtungen (lesen/schreiben) arbeiten knnen; man nennt sie deshalb"bidirektionale BUS-Treiber". Zur Entkopplung von den BUS-Leitungen werden meist "Tristate"-BUS-Treiber verwendet: diese haben gegenber dem BUS-Signal nicht nur die Zustnde "low" / "high", sondern auch den Zustand "hochohmig". Damit werden auch die Signal-Anstiegsgeschwindigkeiten verbessert (gegenber dem "Open Collector"-Busanschlussverfahren). Mit einem Signale "Output enable" (OE, oben nicht dargestellt) knnen die Ausgangstreiber deaktiviert werden.
Blockschalt-bilder
Steuersignale: Chipselect, CS Chip enable CE Read/Write BUS-Treiber Tristate Output enable OE
Mikrocontroller 2.4 Halbleiterspeicher und BUS-System Seite 32 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Neben den eigentlichen DB-/ADB-Leitungen gehren zu einem vollstndigen BUS-System also noch eine Reihe von Steuersignalen; diese fasst man unter dem Begriff "Steuerbus" (Control BUS) zusammen
Das BUS-System verbindet die Teilnehmer eines Mikrocomputersystems, die Daten parallel miteinander austauschen. Diese Teilnehmer knnen am BUS aktiv sein (also lesen und schreiben): "BUS-Master". Oder sie nehmen passiv am BUS teil, knnen also nur ausgelesen oder beschrieben werden: "BUS-Slave".
Im einfachsten Fall gibt es im Mikrocomputersystem einen Master, den Mikroprozessor, und mehrere Slaves, z.B. Speicherbausteine.
Der Informationsaustausch ber ein BUS-System muss grundstzlich immer ber ein genau festgelegtes Verfahren, ein BUS-Protokoll, auch BUS-handshake genannt, erfolgen. Mglichkeiten:
1. Synchrones BUS-Protokoll 2. Semi-Synchrones BUS-Protokoll 3. Asynchrones BUS-Protokoll (wird nicht weiter betrachtet)
Genauso wie alle Mikroprozessoren von einem Takt gesteuert arbeiten, wird auch die zeitliche Abfolge des Informationsaustausches ber den BUS von einem Takt gesteuert (muss nicht derjenige des Prozessors sein!).
Zu 1.: Synchron, d.h. alle Teilnehmer haben gleiches Zeitverhalten
Takt
ADB
DB
/RD
/WR
T1 T2
Abbildung 2-13: BUS-Zugriff (lesend) fr synchrones Protokoll
Erklrungen: T1, T2: BUS-Takte (pro 1 Takt oft mehrere Oszillator-Takte) Dnne Striche: Einzelsignale, Doppelstriche: BUS-Leitungen kreuzende BUS-Striche: Einschwingzeit der Signale Schrgstrich: vor einem Einzelsignal (z.B. /RD) bedeutet es, dass das Signal "low aktiv" ist, d.h. es ist dann aktiv, wenn sein Zustand "low" ist.
Steuerbus BUS-System BUS-Master BUS-Slave BUS- Protokolle Synchrones BUS-Protokoll
Mikrocontroller 2.4 Halbleiterspeicher und BUS-System Seite 33 von 33
HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hlsemann
V 1.00
Zeitlicher Verlauf der Signale: 1. Der Prozessor (Master) legt die Adresse als Signalzustnde auf die
einzelnen ADB-Leitungen, dort bleiben sie fr T1 und T2 dauerhaft. Gleichzeitig teilt der Prozessor den Lesewunsch mit, indem er das Read-Signal /RD auf "low" stellt. Der Datenbus ist in T1 noch in seinem Tristate-Zustand
2. Der angesprochene (adressierte) Speicher muss in T2 den Speicherinhalt, also das adressierte Datum, auf die DB-Leitungen aufschalten. Der Speicher arbeitet also synchron zum Takt.
3. An der positiven Flanke von /RD (am Ende von T2) bernimmt der Prozessor die Signalzustnde vom DB in einen internen Puffer (Register). Das Write-Signal /WR ist die ganze Zeit inaktiv.
Zu 2. Semi-synchron, d.h. es gibt langsamere Teilnehmer
Takt
ADB
DB
/RD
/WR
/READY
T1 T2 TW
Abbildung 2-14: BUS-Zugriff (schreibend) fr semi-synchrones Protokoll
Zeitlicher Verlauf der Signale: 1. Beginn ist wie im synchronen Beispiel. Der Prozessor teilt seinen
Schreibwunsch durch ein aktives WRITE-Signal /WR mit und legt das zu schreibende Datum in T1 auf den DB. Allerdings liegt z.B. die adressierte RAM-Speicherstelle in einem langsamen Speicher. Dieses Verhalten erfordert ein zustzliches Steuersignal /Ready, das in T1 und T2 noch nicht aktiviert ist.
2. Der Prozessor wartet auf das Ready, indem er einen "Waitstate" einlegt (hier knnen im Prinzip unendlich viele Waitstates eingelegt werden). Der Speicher arbeitet also nicht synchron zum Takt.
3. In TW ist der Speicher bereit und signalisiert dies durch die Aktivierung von /READY
4. Am Ende von TW schreibt der Prozessor mit der positiven Flanke des /WR-Signals
Timing mit einem Waitstate
BUS-Timing
Literatur zur VorlesungVorwort1 Einfhrung1.1 Ziele der Vorlesung1.2 Blick in die Historie und Begriffsdefinitionen1.3 Gegenberstellung: Programmierbares Logiksystem / festverdrahtetes Logiksystem
2 Darstellung und Speicherung von Information2.1 Informationseinheiten und ihre Interpretation2.2 Dualzahlensystem2.3 BCD-Zahlensystem2.4 Halbleiterspeicher und BUS-System