Author
arnaud
View
43
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
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
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
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
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
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.
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
. . .
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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)
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
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
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
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
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
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
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)
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
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 “
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)
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
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
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
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
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
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
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