46
1 Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten Wichtig für Echtzeitanwendungen Basis für viele Mikrocontroller-Komponenten 4.3.1 Zähler und Zeitgeber (Counter and Timer) Grundaufgaben: Zählen von Ereignissen Messen von Zeiten Wecken Erzeugung von Impulsfolgen

Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

Embed Size (px)

Citation preview

Page 1: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

1Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

4.3 Zeitgeberbasierte Einheiten

Wichtig für Echtzeitanwendungen

Basis für viele Mikrocontroller-Komponenten

4.3.1 Zähler und Zeitgeber (Counter and Timer)

Grundaufgaben:

Zählen von Ereignissen

Messen von Zeiten

Wecken

Erzeugung von Impulsfolgen

Page 2: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

2Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Prinzipieller Aufbau:

Unterbrechung

Zähler(+/-)

Zählerstandsregister

Startwertregister

SteuerungTakt undAusgang

1:n

internerTakt

externer Takt/EreignisseFreigabe

Ausgang

Datenbus

Page 3: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

3Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Funktionsweisen

Zählen von Ereignissen

Externer Takt =zu zählendeEreignisse

. . .

Freigabe . . .

Zählerstand 0 1 2 3 . . . Z

Page 4: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

4Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Messen von Zeiten

Interner oderexterner Takt,z.B. 1MHz

. . .

Freigabe = zeit-lich zu vermes-sendes Signal

. . .

Zählerstand 0 1 2 . . . Z-1 Z

T

Verschnitt Verschnitt

T = Zählerstand Taktzykluszeit

Page 5: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

5Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Erzeugen einmaliger Impulse, einmaliges Wecken

Interner oderexterner Takt,z.B. 1MHz

. . .

Freigabe . . .

Zählerstand Z Z-1 . . . 2 1 0

Ausgabe (a)

. . .

Ausgabe (b). . .

Unter-brechung (c)

TWecken

. . .

. . .

T = (Startwert + 1) Taktzykluszeit.

Page 6: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

6Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Erzeugen mehrmaliger Impulse, mehrmaliges Wecken

Interner oderexterner Takt,z.B. 1MHz

. . .

Freigabe . . .

Zählerstand Z Z-1 . . . 2 1 0 Z Z-1 . . . 2 1 0 Z

Ausgabe (a) . . .

Ausgabe (b). . .

Unter-brechung (c)

T

. . .

. . .

. . .

. . .

. . .

T

. . .

Page 7: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

7Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Enthält ein Mikrocontroller mehr als einen Zähler und Zeitgeber, so spricht man von Zähler- und Zeitgeberkanälen

Eine Reihe von Anwendungen erfordern mehr als einen solchen Kanal

Beispiel: Quadratur-Decodierung

Page 8: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

8Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Quadratur-Decodierung: Drehrichtungs-Erkennung mit Codierscheibe

L1L2

L1

L2

Rechtsdrehung Linksdrehung

Drehrichtung rechts:L2 wird immer kurz vor L1 aktiv

Drehrichtung links:L1 wird immer kurz vor L2 aktiv

Page 9: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

9Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

4.3.2 Capture- und Compare-Einheit

Einfangen und Vergleichen von ZählerständenDatenbus

Zähler-Werteinfangen(externesoder internesSignal)

eingefangener Wert

Zähler

Capture-Register Compare-RegisterZähler hatVergleichs-wert erreicht(Unterbrechung,externes Signal)

Vergleichswert

Page 10: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

10Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Einfache Hardware, vielfältige Anwendungen, z.B.:

Periodisches Wecken

Zähler arbeitet mit Takt konstanter Frequenz FTakt

Bei Erreichen des im Compare-Register gespeicherten Wert

=> Wecksignal

Zeitmessung

Zähler arbeitet mit Takt konstanter Frequenz FTakt

Das zu vermessende Signal fängt den Zählerstand ein

Zwei aufeinanderfolgende Zählerstände kennzeichnen die Zeit

TSignal = |Zn – Zn-1| / FTakt

Page 11: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

11Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Frequenzmessung

Das zu vermessende Signal bildet den Zählertakt

Zählerstand wird durch einen Takt konstanter Frequenz FTakt

eingefangen

Zwei aufeinanderfolgende Zählerstände kennzeichnen die

Frequenz des Signals

FSignal = |Zn – Zn-1| FTaktBei viele Anwendungen kann der Zähler mit konstanter Frequenz betrieben werden => weitere Vereinfachung der Hardware durch:

freilaufenden Zähler (Free Running Counter)

Page 12: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

12Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

4.3.3 Pulsweitenmodulator

Erzeugung eines Signals konstanter Periode, aber variablem Tastverhältnis

tPWM

tPWM

tges

Page 13: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

13Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Realisierung:

NulldurchgangfCLK

Datenbus

geteilte Frequenz

Abwärtszähler

einstellbarerFrequenzteiler

fCLK/28

fCLK/210

fCLK/212

fCLK/216

Startwert(Tastverhältnis)

PWMS Q FFR

Page 14: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

14Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Funtionsweise:

z.B. mit fCLK / 28:

. . .fCLK

fCLK/28

PWM

Startwert fCLK

28 fCLK

Page 15: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

15Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Anwendungen:

Leistungssteuerung, z.B. für einen Elektromotor

PMotor = ((tges - tPWM) / tges) Pmax

• Mit Zusatzbeschaltung Primitiver DA-Wandler (diese Wandlungsrichtung ist in Mikrocontrollern seltener vorhanden)

R

C näherungsweise konstantes Ausgangssignal,Spannung Tastverhältnis

PWM-Signal

= R C

Page 16: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

16Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

Beispiel:

Drehzahlregelung durch

einen Mikrocontroller

mit Capture und Compare

sowie PWMPWM

Abwärtszähler

einstellbarerFrequenzteiler

Startwert

Wert)S Q FFR

EncoderDC-Motor

Referenztakt fCLK

Drehzahl-ImpulseZähler

Capture-Reg.

Prozessorkern

Speicher(Programm/

Daten)

Drehzahlmessung mit Capture-Einheit

Drehzahlsteuerung mit PWM-Einheit

Regelalgorithmen

Mikrocontroller

Page 17: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

17Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

4.3.4 Watchdog-Einheit

Regelmäßige Lebenszeichen vom Prozessorkern, sonst Reset

Nulldurchgang

Select = Zähler auf Startwert setzen

Startwert

Watchdog-ZählerRücksetzen Referenztakt

RWMIO

AdressdecoderAS

Datenbus

Adressbus

vom/zumProzessorkern

T = Startwert ZykluszeitReferenztakt

Page 18: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

18Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

4.3.5 Echtzeit-Ein-/Ausgabeeinheiten (Real-Time Ports)

Problem: wird der Zeitpunkt einer Ein- oder Ausgabe durch die Software gesteuert

=> Software-Jitter durch Unregelmäßigkeiten im Programmablauf

(z.B. Unterbrechungen, Bedingungen, ...)

D1 D2 D3 D4 D5 D6

Beispiel: Jitter-behaftetes Ausgabesignal

Page 19: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

19Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Abhilfe: Steuerung der Ein-/Ausgabe durch einen Zeitgeber

=> Echtzeit-EA

Datenbus

Adressbus

Ausgaberegister

Pufferregister

Adress-decoder

Zeitgeber

Ausgabedaten

Daten-übernahmedurchRegister-auswahl

Daten-übernahmedurchZeitgeber-impulse

vom/zumProzessorkern

Page 20: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

20Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Funktionsweise:

D1 D2 D3 D4 D5 D6

D1 D2 D3 D4 D5 D6

Zeitgeberimpulse

a) Ausgaberegister, Ausgabesignal mit Jitter

b) Pufferregister, Ausgabesignal ohne Jitter

Software-Jitter < halbe Taktperiode => jitter-freies Ausgangssignal

Page 21: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

21Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

4.4 Speicher

Zur Reduktion der Anzahl externer Komponenten enthalten viele Mikrocontroller eine begrenzte Menge Speicher

Flüchtiger Schreib-/Lesespeicher zur Speicherung von Daten

Nichtflüchtiger Festwertspeicher zur Speicherung von Programmen und Konstanten

Kleinere Anwendungen können dann vollständig mit dem integrierten Speicher realisiert werden

Page 22: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

22Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Anbindung an den Adressraum des Prozessorkerns: Adressdecoder

Prozessor- kern

Datenbus

Adressdecoder

(interprtiert MIO in umgekehrterWeise wie der Adressdekoder für

Ein-/Ausgabeeinheiten)

Schreib-/Lesespeicher

Festwertspeicher

Adressbus

MIO

RWSelect 1 Select 2

AS

Page 23: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

23Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Adressraum des

Mikrocontrollers

Speicher-Adressraum

Festwert-speicher

Schreib-/Lesespeicher

EA (bei gem.Addressierung

0

max.Speicheradresse

Page 24: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

24Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Auswahl der Speicherzellen innerhalb des Speichers

Prozessor- kern

Adressdecoder

(interprtiert MIO in umgekehrterWeise wie der Adressdekoder für

Ein-/Ausgabeeinheiten)

Adressbus0 .. n-1 m .. n-1

MIO

Select 1 Select 2

AS

2m Speicherzellen

interner Adressdecoder

. . .

0 .. m-1

Als lineare Liste sehr leitungsintensiv (2m Auswahlleitungen)

Page 25: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

25Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Daher besser interne Organisation in Form einer Matrix

Minimale Leitungsanzahl bei quadratischer Matrix

2m Speicherzellen

m/2-Bit Spaltenadresse

m/2-BitZeilenadresse

Zeilen-adressdecoder

Spaltenadressdecoder,Spaltenauswahl

quadratischeSpeichermatrix

Daten

m-Bit Adresse

2m/2 Leitungen (Wortleitungen)

2m/2 Leitungen (Bitleitungen)

Select

Page 26: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

26Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Festwertspeicher

Maskenprogrammiert (ROM, Read Only Memory)

Inhalt einer Speicherzelle wird bereits durch die Herstellungs-maske des Chips festgelegt (z.B. durch Verbinden oder Nicht-verbinden eines Kreuzungspunktes der Zeilen- und Spalten-auswahlleitungen durch einen Transistor) => Mikrocontroller in Großserienanwendungen

Benutzerprogrammiert (PROM, Programmable Read Only Memory)

Benutzer kann den Inhalt einer Speichrzelle einmal ändern,

z.B. durch Zerstörung eines Transistors im Kreuzungspunkt

=> Mikrocontroller in Kleinserienanwendungen

Page 27: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

27Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Festwertspeicher

UV-löschbar (EPROM, Erasable Programmable Read Only Memory)

Inhalt einer Speicherzelle kann programmiert und durch UV-Licht

wieder gelöscht werden (z.B. durch Verbinden oder Nicht-verbinden eines Kreuzungspunktes durch FAMOS-Transistor) => Mikrocontroller in Prototypen- und

Kleinserienanwendungen

Variante ohne Quarzglasfenster: OTROM (One Time Programmable ROM)

Billigeres Gehäuse, speziell für Kleinserien

Page 28: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

28Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Festwertspeicher

Elektrisch löschbar (FlashRAM, EEPROM, Electrically Erasable Programmable Read Only Memory)

Inhalt einer Speicherzelle kann programmiert und elekrtisch wieder gelöscht werden (z.B. durch Verbinden oder Nicht-verbinden eines Kreuzungspunktes durch FLOTOX- oder

ETOX-Transistor)

- FlashRAM kann nur blockweise gelöscht werden

- EEPROM kann einzelzellenweise gelöscht werden

=> Mikrocontrolleranwendungen mit der Möglichkeit zum Software-Update, Speichern von Konfigurationsdaten

Page 29: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

29Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Schreiblesespeicher

statischer Speicher

Inhalt der Speicherzelle wird durch ein Flipflop realisiert

(schnelle, aber aufwändige Speicherzelle)

dynamischer Speicher

Inhalt der Speicherzelle wird durch einen Kondensator realisiert

(einfache Speicherzelle, langsamer, periodischer Refresh erforderlich)

Page 30: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

30Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Schreiblesespeicher

In Mikrocontrollern wird ausschließlich statischer Speicher integriert.

Gründe:

kleine Speichergrößen, dynamischer Speicher nicht erforderlich

Refresh-Logik entfällt

statischer Speicher läßt sich einfacher durch eine Batterie

puffern (Quasi-Festwertspeicher)

durch Reduktion der Versorgungsspannung läßt sich bei statischen Speichern ein energiesparender Ruhebetrieb realisieren

Page 31: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

31Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

4.5 Unterbrechungssteuerung

Wichtig für Echtzeitanwendungen, schnelle und flexible Reaktion auf Ereignisse

1. Unterbrechung (Interrupt) des aktuellen Programmablaufs

2. Sichern des Zustandes des Prozessorkerns

3. Unterbrechungsbehandlung (Interrupt Service Routine)

4. Wiederherstellen des Zustandes des Prozessorkerns

5. Fortsetzen des unterbrochenen Programmablaufs

Page 32: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

32Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

laufendes Programm

Unterbrechungs-anforderung

Unterbrechungsbehandlung

Retten des Prozessorkern-status auf den Keller

Wiederherstellendes Prozessorkernstatusvom Keller

Ende der Unter-brechungsbehandlung

Page 33: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

33Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Unterschiede zum Unterprogrammaufruf

eine Unterbrechung wird von einem Ereignis ausgelöst, ein

Unterprogrammaufruf durch das Programm

Unterbrechungen treten völlig asynchron auf => meist umfangreicheres Sichern des Prozessorkernstatus

erforderlich

die Startadresse ist bei Unterprogrammaufrufen im Programm

gegeben, bei Unterbrechungen muß sie aus dem Ereignis heraus

ermittelt werden

Die Unterbrechungssteuerung koordiniert der Ablauf einer Unterbrechung => Bindeglied zwischen Prozessorkern und Ereignis

Page 34: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

34Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Unterbrechungsquellen:

Unterbrechung durch interne Komponente (internal HW Interrupt)

z.B. ausgelöst durch eine der bereits besprochenen Mikrocontroller-Komponenten (EA-Schnittstellen, Zähler, Zeitgeber, ...)

Unterbrechung durch externe Komponente (external HW Interrupt)

sog. Interrupt-Eingänge des Mikrocontrollers ermöglichen auch

externen Komponenten einen Unterbrechungswunsch

Page 35: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

35Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Unterbrechungsquellen:

Ausnahmesituation im Prozessorkern (Exception, Trap)

Behandlung außergewöhnlicher Fehlersituationen, z.B. ungültiger Befehlscode, Division durch 0, Seitenfehler, ...

Unterbrechung durch das laufende Programm (SW Interrupt)

häufig genutzt, um Betriebssystemfunktionen aufzrufen und

auszuführen

Page 36: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

36Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Ermittlung derStartadresse derUnterbrechungs-behandlung: Vektor-Interrupt

externer Vektor(z.B.vonexternerKomponente)

interner Vektor(z.B. von internerKomponente oderAusnahmesituation)

x 4 +

Vektorbasis-Register

Vektor-Adresse

Unterbrechungssteuerungim Prozessorkern

Startadr. Vektor 0Startadr. Vektor 1Startadr. Vektor 2 . . .

Startadr. Vektor 255

Interrupt-Vektortabelle

Interrupt-Service-Routine fürVektor 0

Interrupt-Service-Routine fürVektor n

Arbeitsspeicher

z.B. Vektor = 3

==> 3. Eintrag in Vektortabelle

==> Startadresse der Interrupt-Service-Routine: (Vektor-Basisadresse + 3 x 4)

Page 37: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

37Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Die Zuordnung von Vektor und Komponente kann variabel oder

fest sein.

Bei einfachen Mikrocontrollern findet man meist eine feste

Zuordnung

Zur gleichzeitigen Behandlung mehrere Unterbrechungen:

Vergabe von Prioritäten

Auch hier ist eine variable oder eine feste Zuordnung möglich

Zusätzlich: Unterbrechungen können maskiert werden. In

diesem Fall werden Anforderungen der zugehörigen Quelle

ignoriert

Page 38: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

38Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Beispiel: Interruptvektortabelle mit fester Zuordnung von Quelle, Vektor und Priorität

Unterbrechungsquelle Vektor Priorität TypParallele Ein-/Ausgabe 1 0 nieder interner Hardware-InterruptParallele Ein-/Ausgabe 2 1 “Serielle Ein-/Ausgabe 2 “Analog/Digitalwandler 1 3 “Analog/Digitalwandler 2 4 “Analog/Digitalwandler 3 5 “Zeitgeber 1 6 “Zeitgeber 2 7 “Capture & Compare 8 “Externer Interrupt-Eingang 1 9 externer Hardware-InterruptExterner Interrupt-Eingang 2 10 “Externer Interrupt-Eingang 3 11 “...

Break 200 Software-Interrupt...

Unbekannter Befehlscode 253 ExceptionDivision durch 0 254 “Reset 255 hoch “

Page 39: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

39Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Variable Zuordnung erlaubt eine größere Flexibilität, insbesondere bei einer höheren Anzahl externer Unterbrechungsquellen.

Bei fester Zuordnung benötigt jede externe Quelle einen eigenen

Unterbrechungseingang oder die Unterbrechungsbehandlung

muss durch Abfrage der Komponenten die Quelle herausfinden

Bei variabler Zuordnung können sich mehrere Quellen einen

Eingang teilen, die Identifikation und die Prioritätenvergabe

erfolgt über den Vektor

Aber: größerer Hardwareaufwand wird erforderlich (Interrupt-

Controller)

Page 40: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

40Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Externe Steuerung mit variablem Vektor und zentraler Prioritäten- und Vektorvergabe

P0

P1

Pn

Mikro-controller

ExterneKomponente

1

ExterneKomponente

2

ExterneKomponente

n

externePrioritäten-steuerung

externerInterrupt

InterruptAcknow-ledge

externerDatenbus

Unterbrechungs-anforderungen

Page 41: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

41Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Ablauf:

VektorDatenbus

Externe Unterbrechungs-anforderung höchster Priorität

Externer Interrupteingang amMikrocontroller

Interrupt Acknowledge

Page 42: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

42Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Dezentrale Prioritäten- und Vektorvergabe (Daisy Chain)

IEI

IEI

IEI

IEO

IEO

IEO

Mikro-controller

ExterneKomponente

1

ExterneKomponente

2

ExterneKomponente

n

1

. . .

1. . .

externerInterrupt

InterruptAcknowledge

Datenbus

IEI: Interrupt Enable In

IEO: Interrupt Enable Out

Unterbrechungs-anforderungen

Page 43: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

43Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Die Reaktionszeit auf Unterbrechungen ist eine wichtige Größe bei Echtzeitanwendungen.

Das Sichern des Prozessorkernstatus kann einige Zeit in Anspruch nehmen (wenn viele Register gesichert werden müssen)

Einige Mikrocontroller verfügen daher über mehrfache Registersätze zur Verbesserung dieser Reaktionszeit

Der Status des Prozessorkerns muss dann nicht mehr gesichert werden. Es wird einfach auf einen neuen Registersatz gewechselt.

=> schneller Kontextwechsel

Page 44: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

44Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Mehrfache Registersätze:Registersatz n

Inhalt desProgrammzähler

Inhalt desProgrammstatuswort

Daten-/Adressregister 1

Daten-/Adressregister 2

Daten-/Adressregister m

. . .

Registersatz 3

Registersatz 2

Registersatz 1

. . .

Struktur eines Registersatzes

Page 45: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

45Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Prozessorkerne mit mehrfachen Registersätzen: Vorstufe zu mehrfädigen Prozessorkernen

Mehrfache Registersätze:

jeder Registersatz enthält einen Speicherplatz für PC und PSW

PC und PSW sind aber nur einmal vorhanden

=> mehrere Kontexte können gespeichert werdenMehrfädiger Prozessorkern:

mehrfach vorhandene PCs und PSWs

meist Befehle mehrerer Kontexte gleichzeitig in der Pipeline

=> mit mehreren Kontexten kann gearbeitet werden

Page 46: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 4. Mikrocontroller-Komponenten 4.3 Zeitgeberbasierte Einheiten

46Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

4. Mikrocontroller-Komponenten

Ereignisbehandlungauf mehrfädigenProzessoren durchInterrupt Service Threads

laufender Faden

Ereignis 1

Ereignis 2

Faden zur Behandlungvon Ereignis 1

Faden zur Behandlungvon Ereignis 2