1 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme Arbeitsgruppe EOS Dr. Sebastian Zug Vorlesung Prinzipen und Komponenten Eingebetteter Systeme (PKES) (8) Mikrocontroller III Sebastian Zug Arbeitsgruppe Eingebettete Systeme und Betriebssysteme
38
Embed
Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Vorlesung Prinzipen und Komponenten Eingebetteter Systeme (PKES) (8) Mikrocontroller III
Sebastian Zug Arbeitsgruppe Eingebettete Systeme und Betriebssysteme
2 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
„Veranstaltungslandkarte“
Sensoren
Mikrocontroller
Anwendungen
Architekturen
Aktoren
Kommunikation Energieversorgung
Scheduling
Arithmetik
Fehlertoleranz, Softwareentwicklung
3 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
obligatorisch
Wie weiter?
Mikrocontroller
Energie-
versorgung
Takt
generator
Digitale
I/O
Analoge
I/O
Timer
Interrupts
Speicher
Reset-
system
fakultativ
4 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
M. Mitescu I. Susnea Microcontrollers in Practice Springer, 2012 Atmel Corporation ATmega640/1280/1281/2560/2561 - Datasheet 2012
5 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
• Welche Schritte werden bei der Abarbeitung von Interrupts durchlaufen?
• Welche Folgen können verpasste Interrupts haben? Beziehen Sie sich dabei insbesondere auf verschiedene Sensortypen, mit denen Sie in der Übung gearbeitet haben.
• Woraus ergibt sich die Prioritätenfolge der Interrupts beim AVR? • Was unterscheidet die periodische Abarbeitung von der Ereignis
getriebenen Abarbeitung? • Nennen Sie Interruptquellen beim AVR? • Wie viele Interrupts können sich bei Atmega 2560 stauen, ohne
dass einer verloren geht? • Bewerten Sie folgende Aussage: „Die Gleitkommaeinheit des Atmega
2560 erlaubt Operationen für double und float Werte.“ • Welchen Vorteil hat die Gleitkommaarithmetik gegenüber einer
Festkommaarithmetik?
Fragen an die Veranstaltung
6 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Abfragen der Sensoren
Lies Messwert
Lies Messwert
Transformation,
Filterung,
Detektor,
Abstraktion
1 Takt- periode Berechnung
Reglerverhalten
Busy Waiting bis
zum Ende der Periode Idle
Timerinterrupt
Schreibe Ausgabe
Lies Messwert
Schreibe Ausgabe
Idle
Timerinterrupt
Schreibe Ausgabe
Messwert
verfügbar
Idle
7 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Interruptbasierte Programmierung normale
Programmabarbeitung Zeitpunkt des
Interrupts
normalen Programmabarbeitung
RTI: Rückkehr vom Interrupt
Wiederherstellung des Prozessorzustands Holen der Register vom Stack
• Beenden der aktuelle Instruktion • Interrupts deaktiviert • Registersatz auf den Stack
indirekter Sprung über die Interrupt-Einsprungtabelle zur Interrupt-Behandlungs-
Routine
Ausführung der Interrupt- Einsprung-
Routine Ausführung der
Interrupt- Behandlungs-
Routine
8 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
IACK
IRQ
CPU
IVT
IBR
Hauptspeicher
IRQ IACK
Peripheres Gerät
Peripheres Gerät Vektor Vektor
BUS
IRQ IRQ IACK IACK
Vektor-Basis-Reg.
Programmzähler
9 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
• 8 Interruptvektoren für externe Interrupts an Port INT 0...7 • 25 Interruptvektoren für interne Ereignisse (Timer, ADC, Comm,
Memories) • 1 Reset Interruptvektor
• Die Priorität der Interrupts ist durch die Position in der Interrupt-
Vektor-Map (000016 – 004416) festgelegt. Diese wird im Programmspeicher (Flash) angelegt. Es kann gewählt werden, ob sie am Anfang (000016) stehen soll oder vor der “Boot-Loader” Sektion.
• Prioritäten:
Interrupts beim AVR
Reset
ext.Interrupts 0-7
Timer (hohe Prio)
Kommunikation
ADC
Analog-Komparator
Timer (niedrigere Prio)
Kommunikation (niedrigere Prio)
10 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Ausführung eines Interupts wenn: • generelle Aktivierung über Status Bit (I-Bit) • individuelle Aktivierung der externen Interrupts (Maske) • Interrupt Auftritt
Verschachtelte Interrupts sind nicht vorgesehen können aber erzwungen werden – globale Sperrung der Interrupts, keine Verdrängungsmodelle! Stau von Interrupts: 1. Ein Interrupt tritt auf, während Interrupts gesperrt sind. 2. Setzen des individuelle Interruptflags 3. Soweit ein weiterer Interrupt gleichen Typs auftritt, wird der
vorhergehende Interrupt “überschrieben”. 4. Nach dem Verlassen der ausgeführten Interruptroutine werden die
13 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Zeitverhalten des Interrupts
normale
Programmabarbeitung
Zeitpunkt des Interrupts
Fortsetzung der normalen
Programmabarbeitung
RTI: Rückkehr vom Interrupt
Wiederherstellung des Prozessorzustands
• aktuelle Instruktion
wird zu Ende geführt
• Interrupts werden
deaktiviert
indirekter Sprung über die
Interrupt-Einsprungtabelle
zur Interrupt-Behandlungs-
Routine
Ausführung der
Interrupt-
Einsprung-
Routine Ausführung der
Interrupt-
Behandlungs-
Routine
Continue
Mindestens
1 Clock Zyklen Mindestens
5 Clock Zyklen
Mindestens
5 Clock Zyklen
n Clock Zyklen
14 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
INTn • bei INT0 kannst du auf die positive bzw. negative Flanke einen
Interrupt auslösen. • individuelle Interruptroutinen • Teilweise asynchron und damit zum Restart des Prozessors aus
verschiedenen Sleep-modi geeignet PCINTn • Keine Triggerung auf bestimmte Signalzustände – eine allgemeine
Interruptfunktion • Pattern matching über 8 Bit PCINT0:7 und PCINT8:15
(konfigurierbar über PCMSK1:2) Beide Varianten können als Softwareinterrupts benutzt werden !
AVR – zwei Varianten externer Interrupts
Sourc
e: A
tmega 2
56
0 H
and
buch
15 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
“Neue Herausforderungen”
Sensoren
Mikrocontroller
Anwendungen
Architekturen
Aktoren Scheduling
Arithmetik
16 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
• Charakteristik einer Zahlendarstellung im Rechner: • Bereich (Range): darstellbarer Zahlenbereich • Genauigkeit (Precision): Anzahl der darstellbaren Stellen • Fehlerschranke (Accuracy): Abweichung vom tatsächlichen Wert
Herausforderung Zahlendarstellung
Diskrete Zahlenwerte
n n+1 n+2
“realer” rationaler
Wert x
Range
Genauigkeit
17 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
18 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Eine binäre Gleitkommazahl x ist definiert durch 𝑥 = −1𝑠 × 𝑎 × 2𝑒
mit • m-stelliger Mantisse a • p-stelligem Exponent e • und einstelligem Vorzeichenbit s.
Wichtige Definitionen: • Eine binäre Gleitkommazahl x 0 heißt normalisiert oder normiert,
wenn für die Mantisse a gilt: 1 |a| < 2, d.h. die erste Stelle der Mantisse ist immer eine 1!
• Der Exponent wird mit einem Bias verrechnet. Dies ermöglicht die Darstellung positiver und negativer Exponenten. Um große und kleine Exponenten zu erlauben wird die Hälfte des maximalen Exponenten p gewählt
𝑏 = 2𝑝−1 und 𝑒′ = 𝑒 + 𝑏
Fließkommazahl
e -4 -3 -2 -1 0 1 2 3
e’ 0 1 2 3 4 5 6 7
Beispiel: p=3
19 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Früher: Unterschiedliches Gleitkommaformat in jedem Prozessor, Heute: Überwiegend Verwendung des IEEE 754 Standard (1985)
IEEE 754 Standard
allgemeine Definition: x = (–1)s 1.f 2e–b
• S: Vorzeichenbit mit 0 = positive Mantisse,
1= negative Mantisse
• e: Exponent (8 Bit, 0...255)
• b: Bias (28-1 –1 = -127)
• f: gebrochener Anteil der normalisierten Mantisse (23 Bit).
Der ganzzahlige Anteil ist immer „1“ und wird daher
nicht codiert.
S
0 22 23 30 31
Exponent mit Bias positiver, gebrochener Anteil der Mantisse
24 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Zahlendarstellung als gebrochene Zahl im Bereich -1 bis 1 Umgesetzt durch vordefinierte Skalierung Vorteil: bei der Multiplikation kommt es zu keinem Overflow mehr, da 0.99x0.999 < 1 in Hardware hocheffizient umsetzbar Q-Format: • Q … quantity of fractional bits • Der Zahlenwert beschreibt die für die Bruchdarstellung benutzten
Bits • 16 Bit DSP Prozessor - Q15 (Sign + 15 Bit) - Auflösung 2^-15 - Equivalent zu einem Rechtsshift mit 15 Schritten • Rundungsprobleme
Variante 1 – Gebrochene Festkommazahlen
25 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Multiplikation zweier Q Format Zahlen • Das Produkt zweier Q15 ist Q30! • Verbleibende Bits: - Vorzeichen - Extension bit
Variante 1 – Gebrochene Festkommazahlen
Q15 Q15
Multiply
Q30
16 Bit Speicher
Q30 0
Q15 0
26 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Beispiel:
𝐸𝑖𝑛𝑔𝑎𝑛𝑔𝑠𝑝𝑎𝑛𝑛𝑢𝑛𝑔 =𝐴𝐷𝐶𝑣𝑎𝑙𝑢𝑒 ∙ 2.56
𝐴𝐷𝐶𝑟𝑒𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛= 2.45𝑉
Warum nicht das Ganze in mV ausdrücken?
𝐸𝑖𝑛𝑔𝑎𝑛𝑔𝑠𝑝𝑎𝑛𝑛𝑢𝑛𝑔 =𝐴𝐷𝐶𝑣𝑎𝑙𝑢𝑒 ∙ 2560
𝐴𝐷𝐶𝑟𝑒𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛= 2450𝑚𝑉
+ Einsparung von Rechenzeit und Programmspeicher - Individuelle Festlegungen erschweren die Wiederverwendbarkeit Achtung: • Ein beliebter Fehler ist es, die Datentypen zu klein zu wählen! • Erst die Multiplikation ausführen und dann die Division!
Variante 2 – Ganzzahlige Festkommazahl
27 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
int32_t a,b; a = b / 0.5432; // direkte Formel, Division durch Konstante // mit Fließkommaarithmetik a = b * 18409 / 10000; // Umformung in Kehrwert und // Festkommaarthimetik mit Zehnerpotenzen a = b * 15081 / 8192; // Festkommaarithmetik mit Zweierpotenzen. a = (b * 15081) >> 13; // Division explizit ausgeführt als // Schiebeoperation für nicht so schlaue Compiler
Umsetzung auf dem AVR
28 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
General Q-Format (Q m.n)
𝐹 = −1𝑠 𝑎𝑙2𝑙
𝑚−1
𝑙=−𝑛
Rechenregeln: • Addition und Subtraktion – einheitliche Konfiguration erforderlich • Multiplikation - Anzahl der Vorkommastellen des Ergebnisses der
Summe der Anzahlen der Vorkommastellen aller Operanden; ebenso entspricht die Anzahl der Nachkommastellen des Ergebnisses der Summe der Anzahlen der Nachkommastellen aller Operanden.
• Eine Division oder Multiplikation mit einer Potenz 2^n entspricht einer Bit-Schiebe-Operation
Variante 3 – Allgemeine Festkommazahlen
m n N=n+m+1 s
29 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
In Abhängigkeit von den • minimalen und • maximalen Zahlenwerten • einem möglicherweise zu berücksichtigenden Vorzeichen • sowie der notwendigen Auflösung und sind die Parameter [𝑚. 𝑛] festzulegen.
Anwendung auf typische Wordlängen
Darstellung von 6.75 im Speicher [𝒎. 𝒏]
0 0 0 1 1 0 1 1 [6,2]
0 0 0 0 1 1 0 1 [7,1]
1 1 0 1 1 0 0 0 [3,5]
1 0 1 1 0 0 0 0 [2,6]
30 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
• Für vorzeichenlose Integerwerte gilt 0 ≤ 𝛼 ≤ 2𝑚 − 1 damit ergibt sich
𝑚 = ceiling(log2(𝛼 + 1))
• Für vorzeichenbehaftetet Integerwerte gilt (−2Qi−1) ≤ 𝛼 ≤ 2𝑄𝑖−1 − 1 -> asymetrischer Werteraum damit ergeben sich für Qi zwei Gleichungen:
(I) aus (−2Qi−1) ≤ 𝛼 folgt für 𝛼 < 0 Qi ≥ log2(−𝛼) + 1 (II) aus 𝛼 ≤ 2𝑄𝑖−1 − 1 folgt für 𝛼 > 0 Qi ≥ log2 𝛼 + 1 + 1 Beispiel: 𝛼𝑚𝑖𝑛 = −2, 𝛼𝑚𝑎𝑥 = 2
𝑚 𝑚𝑖𝑛
≥ log2 −𝛼 + 1 = log2 2 + 1 = 2
𝑚 𝑚𝑎𝑥
≥ log2 𝛼 + 1 + 1 = log2 3 + 1 = 2.585
m = ceiling(max(𝑚 𝑚𝑖𝑛
, 𝑚 𝑚𝑎𝑥
)) = 3
Min-Max Werte
31 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Die Auflösung in der Q m.n ist definiert als
𝜀 =1
𝑛
Daraus folgt: n = ceiling(log21
𝜀)
Die Definition der Epsilon-Umgebung ist in der Regel schwierig.
Auflösung
32 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme