46
1 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 2.5. Mikrocontroller-Komponenten 2.5.3 Zeitgeberbasierte Einheiten Wichtig für Echtzeitanwendungen Basis für viele Mikrocontroller-Komponenten 2.5.3.1 Zähler und Zeitgeber (Counter and Timer) Grundaufgaben: Zählen von Ereignissen Messen von Zeiten Wecken Erzeugung von Impulsfolgen

2.5. Mikrocontroller-Komponenten

  • Upload
    arnaud

  • View
    45

  • Download
    1

Embed Size (px)

DESCRIPTION

2.5. Mikrocontroller-Komponenten. 2.5.3 Zeitgeberbasierte Einheiten Wichtig für Echtzeitanwendungen Basis für viele Mikrocontroller-Komponenten. 2.5.3.1 Zähler und Zeitgeber ( Counter and Timer ) Grundaufgaben: Zählen von Ereignissen Messen von Zeiten Wecken Erzeugung von Impulsfolgen. - PowerPoint PPT Presentation

Citation preview

Page 1: 2.5. Mikrocontroller-Komponenten

1Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. Mikrocontroller-Komponenten

2.5.3 Zeitgeberbasierte Einheiten

Wichtig für Echtzeitanwendungen

Basis für viele Mikrocontroller-Komponenten

2.5.3.1 Zähler und Zeitgeber (Counter and Timer)

Grundaufgaben:

Zählen von Ereignissen

Messen von Zeiten

Wecken

Erzeugung von Impulsfolgen

Page 2: 2.5. Mikrocontroller-Komponenten

2Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. Mikrocontroller-Komponenten

Prinzipieller Aufbau:

Unterbrechung

Zähler(+/-)

Zählerstandsregister

Startwertregister

SteuerungTakt undAusgang

1:n

internerTakt

externer Takt/EreignisseFreigabe

Ausgang

Datenbus

Page 3: 2.5. Mikrocontroller-Komponenten

3Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. Mikrocontroller-Komponenten

Funktionsweisen

Zählen von Ereignissen

Externer Takt =zu zählendeEreignisse

. . .

Freigabe . . .

Zählerstand 0 1 2 3 . . . Z

Page 4: 2.5. Mikrocontroller-Komponenten

4Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

5Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

6Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

7Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

8Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

9Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. Mikrocontroller-Komponenten

2.5.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: 2.5. Mikrocontroller-Komponenten

10Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

11Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

12Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. Mikrocontroller-Komponenten

2.5.3.3 Pulsweitenmodulator

Erzeugung eines Signals konstanter Periode, aber variablem Tastverhältnis

tPWM

tPWM

tges

Page 13: 2.5. Mikrocontroller-Komponenten

13Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

14Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. Mikrocontroller-Komponenten

Funtionsweise:

z.B. mit fCLK / 28:

. . .fCLK

fCLK/28

PWM

Startwert fCLK

28 fCLK

Page 15: 2.5. Mikrocontroller-Komponenten

15Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

16Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

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: 2.5. Mikrocontroller-Komponenten

17Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. Mikrocontroller-Komponenten

2.5.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: 2.5. Mikrocontroller-Komponenten

18Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. Mikrocontroller-Komponenten

2.5.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: 2.5. Mikrocontroller-Komponenten

19Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

20Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

21Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. Mikrocontroller-Komponenten

2.5.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: 2.5. Mikrocontroller-Komponenten

22Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

23Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. Mikrocontroller-Komponenten

Adressraum des

Mikrocontrollers

Speicher-Adressraum

Festwert-speicher

Schreib-/Lesespeicher

EA (bei gem.Addressierung

0

max.Speicheradresse

Page 24: 2.5. Mikrocontroller-Komponenten

24Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

25Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

26Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

27Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

28Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

29Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

30Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

31Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. Mikrocontroller-Komponenten

2.5.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: 2.5. Mikrocontroller-Komponenten

32Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. Mikrocontroller-Komponenten

laufendes Programm

Unterbrechungs-anforderung

Unterbrechungsbehandlung

Retten des Prozessorkern-status auf den Keller

Wiederherstellendes Prozessorkernstatusvom Keller

Ende der Unter-brechungsbehandlung

Page 33: 2.5. Mikrocontroller-Komponenten

33Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

34Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

35Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

36Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

37Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

38Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

39Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

40Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

41Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. Mikrocontroller-Komponenten

Ablauf:

VektorDatenbus

Externe Unterbrechungs-anforderung höchster Priorität

Externer Interrupteingang amMikrocontroller

Interrupt Acknowledge

Page 42: 2.5. Mikrocontroller-Komponenten

42Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

43Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

44Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

45Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. 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: 2.5. Mikrocontroller-Komponenten

46Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.5. Mikrocontroller-Komponenten

Ereignisbehandlungauf mehrfädigenProzessoren durchInterrupt Service Threads

laufender Faden

Ereignis 1

Ereignis 2

Faden zur Behandlungvon Ereignis 1

Faden zur Behandlungvon Ereignis 2