33
Hochschule Karlsruhe Fakultät Elektro- und Informationstechnik Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann Skriptum zur Vorlesung Mikrocontroller-Systeme

Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

  • Upload
    vokhanh

  • View
    230

  • Download
    5

Embed Size (px)

Citation preview

Page 1: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Hochschule Karlsruhe Fakultät Elektro- und Informationstechnik Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

Skriptum zur

Vorlesung

Mikrocontroller-Systeme

Page 2: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

Inhalt:

Literatur zur Vorlesung Vorwort 1 Einführung

1.1 Ziele der Vorlesung 1.2 Blick in die Historie und Begriffsdefinitionen 1.3 Gegenüberstellung: 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 für Mikroprozessoren

Page 3: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 1.1 Ziele der Vorlesung Seite 3 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

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: Einführung 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, Jürgen: Mikrocomputertechnik mit der 8051-Controller-Familie, Springer 1994 Bermbach, Rainer: Embedded Controller, Hanser-Verlag, 2001 SIEMENS C500 User's Manual (im Intranet der FH verfügbar) 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

Page 4: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 1.1 Ziele der Vorlesung Seite 4 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

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 Semesterhälfte. 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 können (Kapitel 5). Ab dem siebten Kapitel wird der Betrachtungskreis dann wieder erweitert.

Page 5: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 1.1 Ziele der Vorlesung Seite 5 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

1 Einführung

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 selbständig lösen können durch: Auswahl eines geeigneten Prozessortyps Auswahl der zugehörigen 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 Anfängen der Rechner bis zu einem heutigen Mikroprozessor

Abbildung 1-1: Historische Entwicklung der Digitalrechner

Page 6: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 1.2 Blick in die Historie und Begriffsdefinitionen Seite 6 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

Zentraleinheit (CPU)

Rechenwerk

Steuerwerk

Register

BUS-Steuerung

Speicher für 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 für Befehl abgearbeitet. Zur Umsetzung der einzelnen Befehle verfügt die CPU über ein Steuerwerk, das jeden einzelnen Befehl in zeitlich aufeinanderfolgende, interne Bearbeitungsschritte umsetzt. Handelt es sich dabei um Befehle für arithmetische oder logische Verknüpfungen von Operanden, wird zur Befehlsbearbeitung das Rechenwerk benützt. Die Operanden, die im Rahmen der Befehlsbearbeitung benötigt werden, stammen entweder aus internen Speicherplätzen, den Registern, oder aus externen Speicherplätzen. Diese externen Speicherplätze sind über ein BUS-System an die CPU angeschlossen; für die Datenübertragung ü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 können 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). Darüber hinaus gibt es oft auch die Möglichkeit, dass externe Komponenten selbst - ohne Teilnahme der CPU - gegenseitig Daten austauschen. Die Koordinierung von Übertragungsrichtung

Page 7: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 1.2 Blick in die Historie und Begriffsdefinitionen Seite 7 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

(wer ist Sender - wer ist Empfänger) und der zeitliche Ablauf wird über Steuersignale geregelt.

o Speicher: Enthält die Programme für 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-Signalzustände in der CPU ausgewertet und zu Ausgangs-Signalzuständen führen (Steuerungs-Rechner), bis hin zu kompletten, vorverarbeitenden Komponenten wie z.B. Modems, Tastaturen, Displays usw.

Begriffsdefinitionen:

• Großrechner: Anwendung für Wissenschaft (Genomanalyse, Wettersimulation) Banken, Versicherungen und Militär; 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 für sich alleine allerdings noch nicht arbeitsfähig ist; er benötigt 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 selbständig durchführen; sie sind nicht programmierbar, ihre Arbeitsweise ist aber oft in vielfältiger Weise veränderbar 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 Gerät ist; damit tritt dieses Gerät äußerlich nicht mehr als Rechner in Erscheinung.

Der im Gerät verborgene Mikrocontroller ermöglicht jedoch eine enorme Vielfalt an Funktionen, sodass man heute von einer "2. Industriellen Revolution" spricht, ausglöst durch den Einsatz dezentraler Intelligenz in Form von Mikrocontrollern.

• Thema der Vorlesung: Mikrocomputer und (Schwerpunkt:) Mikrocontroller

Mikro-prozessor Mikro-controller Embedded Control

Page 8: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 1.2 Blick in die Historie und Begriffsdefinitionen Seite 8 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

Anwendungsbeispiele werden in der Vorlesung vorgestellt: Personal Computer PC Speicherprogrammierbare Steuerung (SPS) Mikrocomputersystem für Embedded Control ABS, ESP usw. Smart card usw.

• Die Stückzahl-Verteilung zwischen der Welt der PC-Prozessoren (dominiert durch INTEL) und der Prozessoren für Embedded Control-Anwendungen zeigt für 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: Stückzahlenvergleich Embedded Control / PC

(32-Bit-Prozessoren im Jahr 1997, Quelle: Elektronik 25/1998)

• Wie schnell sich die Verteilung der Stückzahlen zwischen den PC- und Embedded Control-Prozessoren seit 1997 verändert hat, zeigt die folgende Abbildung.

200

400

600

Proz

esso

ren

in M

illio

nen

Stüc

k

Jahr

1996 1998 2000 2002

Embedded-Anwendungen

PC

Abbildung 1-4: Stückzahlentwicklung Embedded Control / PC

(Quelle: Elektronik 1/2000)

Page 9: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 1.2 Blick in die Historie und Begriffsdefinitionen Seite 9 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

• Auch die Verteilung der Stückzahlen innerhalb der Mikrocontroller selbst ist sehr ungleich:

Verarbeitungsbreite Stückzahl (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 vergrößern sich schnell; sogar der 32-Bit-Sektor zeigt bereits ein Jahr später (1998) folgende Gesamtstückzahl:

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)

Page 10: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 1.3 Gegenüberstellung: Programmierbares Seite 10 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

1.3 Gegenüberstellung: 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 unveränderlich (typisch: Embedded Control).

Schaltung

("Hardware")Eingangs-

daten Ausgangs-daten

Programm ("Software")

Abbildung 1-6: Programmierbares Logiksystem

• Ein Logiksystem, das bezüglich 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").

Page 11: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 1.3 Gegenüberstellung: Programmierbares Seite 11 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

Beispiel 1: Das binäre Ausgangssignal c soll über eine UND-Funktion aus den beiden binären 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 binäre 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 Zustände "geöffnet" / "geschlossen":

a b c

Abbildung 1-8: UND-Funktion "hardwired" realisiert

In Abb. 1-8 ist bezüglich der Ein- und Ausgangsgrößen dieselbe Logikfunktion in Hardware realisiert, wie im C-Programm. Diese Gatter bzw. daraus aufgebaute, als integrierte Schaltkreise in Hardware realisierte, logische Grundfunktionen ermöglichen 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:

Page 12: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 1.3 Gegenüberstellung: Programmierbares Seite 12 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

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

gelöst werden kann.

Merkmal Festverdrahtete Lösung Programmierte Lösung Arbeitsweise Parallele Arbeitsweise

("für jedes Signal eine eigenes Teil der Hardware"): verschiedene Funktionen können gleichzeitig ablaufen

Serielle, eine Hardware (die CPU) für die Verarbeitung aller Signale

Laufzeiten extrem kurz (Schaltzeiten der Gatter)

relativ langsamer

Komplexität der Aufgabe

Komplexität schlägt sich in der Chipfläche nieder

Komplexität der Aufgabe wirkt sich in der Länge des Programms aus

sonstiges idealer Know-How-Schutz

Vergleich: "hard wired"-Lösung gegenüber programmierter Lösung

Page 13: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 1.3 Gegenüberstellung: Programmierbares Seite 13 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

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 Möglichkeit, nachträglich Fehler zu beseitigen: Einsatz nur bei hohen Stückzahlen 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

Page 14: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 2.1 Informationseinheiten und ihre Interpretation Seite 14 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

2 Darstellung und Speicherung von Information

2.1 Informationseinheiten und ihre Interpretation Definitionen: • Bit, engl.: binary digit, Binäres Signal, trägt nur zwei verschiedene Informationen

• Mehrere Informationen mittels einzelner Bits darzustellen erfordert Codierung (=Zuordnung von Informationen zu Code-Wörtern); damit lassen sich digitale Signale darstellen.

• Ein Code besteht im allgemeinen Fall aus:

m Elementen ("Stellen"), jedes Element kann u verschiedene Zustände annehmen

• Anzahl N der Informationen, die mit einem Code von m Stellen dargestellt werden können:

• 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; herrührend von Großrechnern werden auch 32 Bit als "Word" bezeichnet.

Bit

Code

N = u m

Nibble, Byte, Wort, Double Word

Page 15: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 2.1 Informationseinheiten und ihre Interpretation Seite 15 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

Abbildung 2-1: Codierung von Textzeichen mit 7-Bit-ASCII

Beispiel für ein Codiersystem: Für die Darstellung von druckbaren Zeichen (A....Z, a...z, 0...9) wird häufig eine Codierung mit 7 Bit verwendet Diese nennt sich "ASCII-Tabelle" (nach American Standard Code for Information Interchange) und ist nachfolgend dargestellt:

Page 16: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 2.1 Informationseinheiten und ihre Interpretation Seite 16 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

• Codes werden im Folgenden als "Kästchengrafik" dargestellt:

a3 a2 a1 a0

Beispiel: 8-Bit-Code, Inhalt stellt z.B. das ASCII-Zeichen 'A' dar.

• Zur verkürzten 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

Page 17: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 2.2 Dualzahlensystem Seite 17 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

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 häufig verwendete Codiersysteme werden im Folgenden Codiersysteme für Zahlen näher beleuchtet.

2.2 Dualzahlensystem

• Die Darstellung von Zahlen wird im Folgenden als Codierung aufgefasst. Dabei wird jeder Zahlenwert einem Binärcode (u=2) zugeordnet.

• Wegen der Ablage/Verarbeitung in einem Rechner muss grundsätzlich von einem Code mit einer bekannten, konstanten Anzahl von Elementen ausgegangen werden, also einer festen "Codelänge".

Bildungsgesetz für 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

Page 18: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 2.2 Dualzahlensystem Seite 18 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

• Zur Codierung von Zahlen benötigt 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 möglichen 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.

Page 19: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 2.2 Dualzahlensystem Seite 19 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

• Die bekannten Codierungen des Dezimalsystems (u=10) sowie die Rechenregeln können analog in ein Dualzahlsystem (u=2) über tragen werden.

• Die Codes von Dualzahlen werden im Folgenden wieder als "Kästchengrafik" 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 möglichen 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.

Page 20: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 2.2 Dualzahlensystem Seite 20 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

Beispiel aus einem Dual-Zahlensystem mit m=4 Stellen: Stellensystem für 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 für 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 Codelänge!), 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

Page 21: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 2.2 Dualzahlensystem Seite 21 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

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 wäre 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 Möglichkeiten:

a) Codierung mit einem Vorzeichenbit und einer Betragszahl, Definition

Vorzeichenbit = 0: Zahl ist positiv,

Vorzeichenbit = 1: Zahl ist negativ

Beispiel Codelänge 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 für Beträge von pos. und neg. Zahlen sind gleich

• Nachteil dieses Systems: Zwei Codes für 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

Page 22: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 2.2 Dualzahlensystem Seite 22 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

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 Ergänzung zur Höchstzahl 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 führende 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 Codelänge, vorgegeben. Bei allen Rechenoperationen muss diese Grenze berücksichtigt bzw. überwacht werden.

Zweier-komplement (ZK)

ZK-Bildungs-regeln

Page 23: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 2.2 Dualzahlensystem Seite 23 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

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 für Zahlenstrahl-Darstellung in verschiedenen Codiersystemen: Codelänge 8 Bit, negative Zahlen im Zweierkomplement

Codelänge 8 Bit, nur positive Zahlen

Codelänge 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

Page 24: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 2.3 BCD-Zahlensystem Seite 24 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

2.3 BCD-Zahlensystem

• "Binär codiertes Dezimalsystem": Beibehaltung des dezimalen Stellensystems, lediglich die einzelnen Ziffern werden als Dualzahlen codiert.

Beispiel für Bildung einer BCD-Zahl aus einer Dezimalzahl:

• Achtung: nur Codes von 0000 bis 1001 (entsprechend Ziffer 0 bis 9) sind zulässig, alle Codes von 1010 bis 1111 sind unzulässig!

• "Gepackte" BCD-Codes: hier werden 2 BCD-Ziffern in einem Byte codiert

• "Ungepackte" BCD-Codes: hier wird für 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 unterstützt - schwieriger, da nach jeder Operation die Codierung korrigiert werden muss

BCD-Codierung

Unzulässige 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

Page 25: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 2.4 Halbleiterspeicher und BUS-System Seite 25 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

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 für 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

• Fügt man weitere Bitspeicher dazu, benötigt man für jeden Speicher eine eigene Leseleitung; das Ansteuersignal ist für alle gemeinsam:

1-Bit-Speicher

a0

Leseleitung

a1

Abbildung 2-5: Zwei-Bit-Speicher

Read Only Memory ROM

Page 26: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 2.4 Halbleiterspeicher und BUS-System Seite 26 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

• Ergänzt 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

• Ergänzt man eine zweite Speicherzeile, benötigt diese ein eigenes Ansteuersignal. Wird dieses aktiviert, sorgen (hier nicht weiter betrachtete) sogenannte Decoder dafür, 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 erhöht, benötigt man zur Auswahl der einzelnen Zeile zwar 8 Ansteuersignale, diese können 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) können 23 = 8 Zeilen ausgewählt d.h. adressiert werden - die Signalzustände kodieren also als Dualzahl betrachtet die Zeilen-Nummer. Die Signale werden zusammengefasst als "Adreßbus" bezeichnet.

a7 a6 a5 a4 a3 a2 a0

Datenbus

a1

a7 a6 a5 a4 a3 a2 a0a1

a7 a6 a5 a4 a3 a2 a0a1

a7 a6 a5 a4 a3 a2 a0a1

Adressbus

Adress-Decoder Speichermatrix

A0 A1

a7 a6 a5 a4 a3 a2 a0a1

a7 a6 a5 a4 a3 a2 a0a1

a7 a6 a5 a4 a3 a2 a0a1

a7 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 können.

• Die "Breite" des Adressbus' bestimmt, wieviele Speicherzeilen (unabhängig von deren Breite!) adressiert werden können. Dies wird im Folgenden, da nicht nur Speicher als Teilnehmer am DB-/ADB auftreten können, allgemein als "Adressraum" bezeichnet.

Datenbus (DB)

Adreßbus (ADB)

Adressraum: Anzahl der adressier-baren Teilnehmer

Page 27: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 2.4 Halbleiterspeicher und BUS-System Seite 27 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

• Reale Speicherchips stellen also eine Matrix aus einzelnen Bit-Speichern zur Verfügung. Die Größe 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 für einen byteweise organisierten Speicher mit 128 K Bits.

• Der Adressbus eines Mikrocomputersystems spannt als Systemgröße einen Adressraum auf, der jedoch - wie das nachfolgende Beispiel zeigt - nicht vollständig "gefüllt" 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 müssen.

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 eingeführte "Kästchenschema" auf die Darstellung von Adressräumen und Speicher erweitert: außen werden die Adressen in hexadezimaler Darstellung angegeben, oben die jeweilige Breite des Teilnehmers in der Bit-Wertigkeit.

• Informationen - bisher als Bitmuster ebenfalls in Kästchenform dargestellt - können 4-Bit-Größe / 8-Bit-Größe / 16-Bit-Größe usw. besitzen und müssen natürlich im Speicher eines Rechners abgelegt werden können. 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 größer als die Breite des Speichers, muss die Information verteilt auf mehrere Adressen abgelegt werden.

• Für 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 höherwertige Teil auf der höheren Speicheradresse

2. "Big Endian": der höherwertige Teil der Information wird auf der niederen Speicheradresse abgelegt, der niederwertige Teil auf der höheren Speicheradresse.

Adressraum und Teilnehmer

Little Endian Big Endian

Page 28: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 2.4 Halbleiterspeicher und BUS-System Seite 28 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

• Die Ablage von Informationen verschiedener Größen (Byte, Wort, Doppelwort, linke Seite von Abb. 2-9) ist für 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 nachträgliche Änderung möglich; wegen Grundaufwand in der Herstellung nur bei großen Stückzahlen sinnvoll.

• In der Praxis werden häufiger "Programmable Read Only Memory" (PROM) eingesetzt: diese besitzen "fusible links" (siehe Abb. 2-3), die mit einer speziellen Programmierspannung "durchgebrannt" werden können; in der Regel allerdings nur einmal, daher die Bezeichnung "One Time Programmable" (OTP).

• Für die Testphase eines Programms sinnvoll: immer wieder löschbare, Nur-Lese-Speicher, die "Erasable Programmable Read Only Memory" (EPROM). Hier wird für die Speicherung eines Bit eine Ladung verwendet, die auf ein isoliertes Gate eines speziellen Feldeffekt-Transistors (FET) aufgebracht wird. Zum Löschen besitzen EPROM-Chips ein Quarzfenster. Bestrahlt man den Chip mit UV-Licht, wird durch erhöhte Ladungsträgerzahl die gespeicherte Ladung nach ca. 20 Minuten abgebaut, die gespeichert Information ist gelöscht

Little Endian Big Endian

ROM: maskenprogr. PROM, OTP EPROM

Page 29: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 2.4 Halbleiterspeicher und BUS-System Seite 29 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

• Wegen des Quarzfensters, das ein Keramikgehäuse bedingt (teuer) und die weitere Miniaturisierung des Gehäuses verhindert, sowie wegen der umständlichen Handhabung beim Löschen 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 können also - ohne die Speicherchips auszubauen - einzelne Speicherzeilen umprogrammiert werden. Allerdings ist der Schaltungsaufwand zur Ansteuerung der einzelnen Speicherbits hoch: die Kapazität der EEPROMs ist grundsätzlich kleiner als bei ROM und EPROM. Das im laufenden Betrieb mögliche Einschreiben neuer Informationen in das EEPROM ist wegen der erforderlichen Umprogrammierzeit (z.B. 0,2 bis 1 ms pro Byte) beschränkt. Moderne EEPROMs erzeugen die Programmierspannung, die wie bei dem EPROM gegenüber den normalen Betriebsspannungen erhöht ist, intern.

• Das "Flash EPROM" ist eine Weiterentwicklung des EEPROMs, es erlaubt ein blockweises oder sogar chipweises Löschen der Inhalte in < 1 Sekunde. Damit ist dieses Speicherprinzip in die Nähe eines echten "Schreib-/Lesespeichers" gerückt. Allerdings muss dann - wegen der maximal zulässigen Anzahl von Umprogrammiervorgängen (derzeit: ca. 100 000) - sichergestellt werden, dass der Speicher sozusagen gleichmäßig abgenutzt wird.

• Speicher, die jederzeit und mit der maximalen Geschwindigkeit, die die jeweilige Halbleiter-Technologie ermöglicht, neu beschrieben werden können, 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 hält 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 benötigt. Das Prinzipschaltbild eines solchen Bitspeichers ist in der nachfolgenden Abbildung dargestellt.

Flash-EPROM RAM statisches RAM, SRAM

EEPROM

Page 30: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 2.4 Halbleiterspeicher und BUS-System Seite 30 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

Zeilen-Anwahlleitung

Abbildung 2-10: Prinzipieller Aufbau einer statischen RAM-Zelle

• T1, T2 bilden das Flipflop; zum Auslesen des Zustandes müssen 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 höchste 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 ständig durch Auslesen+Wiedereinschreiben aufgefrischt ("Refresh") werden. Dazu besitzen diese Chips eine interne Refresh-Logik (Zeitabstände: 1 -20 ms).

SRAM DRAM

Page 31: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 2.4 Halbleiterspeicher und BUS-System Seite 31 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

• In Abb. 2-12 sind RAM- und ROM-Speicher abschließend als Blockschaltbilder dargestellt.

• Zur Interpretation von Blockschaltbildern in der Mikrorechnerwelt:

Dünne 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, "hört" der interne Dekoder des Bausteins nicht am Adressbus mit. Das CS-Signal (gelegentlich auch als Chip enable CE bezeichnet) ermöglicht damit, mehrere, kleine Speicher an einen Adressbus mit einem wesentlich größeren Adressraum anzuschließen.

• Im Blockschaltbild des RAM-Bausteins ist gegenüber dem ROM zusätzlich ein Lese-/Schreibsignal sichtbar: dies schaltet die Richtung des Informationstransports über den Datenbus um.

• Der RAM-Baustein wird über interne Verstärker an die einzelnen Leitungen des Datenbus' angeschlossen; diese müssen in beide Richtungen (lesen/schreiben) arbeiten können; man nennt sie deshalb"bidirektionale BUS-Treiber". Zur Entkopplung von den BUS-Leitungen werden meist "Tristate"-BUS-Treiber verwendet: diese haben gegenüber dem BUS-Signal nicht nur die Zustände "low" / "high", sondern auch den Zustand "hochohmig". Damit werden auch die Signal-Anstiegsgeschwindigkeiten verbessert (gegenüber dem "Open Collector"-Busanschlussverfahren). Mit einem Signale "Output enable" (OE, oben nicht dargestellt) können die Ausgangstreiber deaktiviert werden.

Blockschalt-bilder

Steuersignale: Chipselect, CS Chip enable CE Read/Write BUS-Treiber Tristate Output enable OE

Page 32: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 2.4 Halbleiterspeicher und BUS-System Seite 32 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

• Neben den eigentlichen DB-/ADB-Leitungen gehören zu einem vollständigen 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 können am BUS aktiv sein (also lesen und schreiben): "BUS-Master". Oder sie nehmen passiv am BUS teil, können 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 grundsätzlich immer über ein genau festgelegtes Verfahren, ein BUS-Protokoll, auch BUS-handshake genannt, erfolgen. Möglichkeiten:

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) für synchrones Protokoll

Erklärungen: T1, T2: BUS-Takte (pro 1 Takt oft mehrere Oszillator-Takte) Dünne Striche: Einzelsignale, Doppelstriche: BUS-Leitungen kreuzende BUS-Striche: Einschwingzeit der Signale Schrägstrich: 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

Page 33: Skriptum zur Vorlesung Mikrocontroller-Systemegeju0001/Mikrocontroller-Skript/1_2_Einf... · Mikrocontroller 1.1 Ziele der Vorlesung Seite 2 von 33 HS Karlsruhe, Studiengang Energie-

Mikrocontroller 2.4 Halbleiterspeicher und BUS-System Seite 33 von 33

HS Karlsruhe, Studiengang Energie- und Automatisierungstechnik Dr. J. Hülsemann

V 1.00

Zeitlicher Verlauf der Signale: 1. Der Prozessor (Master) legt die Adresse als Signalzustände auf die

einzelnen ADB-Leitungen, dort bleiben sie für 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 Signalzustände 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) für 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 zusätzliches Steuersignal /Ready, das in T1 und T2 noch nicht aktiviert ist.

2. Der Prozessor wartet auf das Ready, indem er einen "Waitstate" einlegt (hier können 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