1 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Vorlesung Prinzipen und Komponenten Eingebetteter Systeme (PKES) (3) Mikrocontroller II
Sebastian Zug Arbeitsgruppe Eingebettete Systeme und Betriebssysteme
2 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Ziel: Teilnahme am Carolo-Cup in Braunschweig (7.02.2014) Offene Herausforderung: Paralleles Einparken
Mitarbeiter im oTToCAR – Projekt gesucht
3 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
„Veranstaltungslandkarte“
Sensoren
Mikrocontroller
Anwendungen
Architekturen
Aktoren
Kommunikation Energieversorgung
Scheduling
Arithmetik
Fehlertoleranz, Softwareentwicklung
4 07.11.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
5 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
M. Mitescu I. Susnea Microcontrollers in Practice Springer, 2012 U. Bringschulte, T. Ungerer Mikrocontroller und Mikroprozessoren Springer, 2010 Wikipedia Analog Digital Wandler Atmel Corporation ATmega640/1280/1281/2560/2561 - Datasheet 2012
Literaturhinweise
6 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
• Welche Herausforderung liegt in der Erfassung analoger Signale? • Welche Fehler können dabei auftreten? • Wodurch unterscheiden sich die ADC-Wandler? • Beschreiben Sie den Aufbau eines Flash-Wandlers! • Warum ist, bei der sequentiellen Wandlung, ein DAC Voraussetzung
für einen ADC? • Beschreiben Sie die Aufgabe der Sample-and-Hold Komponenten! • Wonach richtet sich die Taktrate, mit der ein analoger Wert erfasst
werden sollte? • Für welche Aufgaben werden die Timerfunktionen des
Mikrocontrollers herangezogen? • Wie sind ein Timer grundlegend aufgebaut (Capture&Compare)? • Was ist PWM? Welche Arten der PWM Generierung gibt es?
Fragen an die Veranstaltung
7 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Beschaltung digitaler Schnittstellen
Taster bei Benutzung
des interen Pullup
Standard Taster
Anschluss
8 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Analoge Schnittstelle
Zeit (t)
Wert
(v)
00100110
00101101
00101110
...............
...............
...............
zeitliche Diskretisierung
wertbezogene
Diskretisierung
9 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Wandlungskette im Mikrocontroller
Senso r
Verstärker
(Sample and Hold)
A/D-Wandler E/A - Kontrolle
CPU
Analog Digital
Senso r
Senso r
Analog Multiplexer
• • •
. .
10 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
• Vorteil Hohe Geschwindigkeit
• Nachteil Energieverbrauch großer Hardwareaufwand für höhere Auflösungen
Parallele Wandlung - Flash Wandler
2n zu n Dekoder
Latch
R
R
R
R
R
Komparatoren Vin
Vref
cntrl.
11 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Prinzip eines sequentiellen Analog/Digital-Wandlers
Clock
12 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Voraussetzung: DA Wandler
D
C
Q
D
C
Q
D
C
Q
Digitale
Eingabe
Latch
Analoger Ausgang
Schalter
Schalter
Schalter
V 0
V 1
V n-1
d 0
d 1
d n-1
Analog Addierer
V= d n-1
• V n-1
+ d n-2
• V n-2
+ . . . . + d 1 • V 1 + d 0
• V 0
V
Clock
13 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Varianten sequentieller Wandler – Zählverfahren
• Vorteil sehr hohe Auflösungen möglich schaltung einfach umsetzbar – kritisches Element DAC/Komperator
• Nachteil Variierende Wandlungsdauer langsam
+
-
n-Bit- DAC
Analog
IN
Spannungs-
Komparator
n-Bit- Zähler
Latch
Takt Reset
Clock
Start
n-Bit
Digitalwert
S R
Q Q
14 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Varianten sequentieller Wandler – sukzessive Approximation/Wägeverfahren
7 111
6 110
5 101
4 100
3 011
2 010
1 001
0 000
Eingangs-
spannung
Spannungsbereich
100
010
001
110
111
101
011
1 2 3 Wandlungsschritte
• Vorteil Gleiche Wandlungs- dauer
• Nachteil
15 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Transferfunktion eines idealen 3-Bit ADC
Binärcode
Spannung (V)
111
110
101
100
011
010
001
000 0,0 0,5 1,0 1,5 2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5 6,0 6,5 7,0 7,5 8,0 8,5 9,0
ADC analoger
Eingang d0
d1 d2
Q
16 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Fehler bei der Wandlung
Binärcode
Spannung (V)
111
110
101
100
011
010
001
000 0,0 0,5 1,0 1,5 2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5 6,0 6,5 7,0 7,5 8,0 8,5 9,0
Offset- und Verstärkungsfehler
Offset
Fehler
Verst. Fehler
resultierender
Gesamtfehler
17 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
• Quantisierungsfehler sind bedingt durch die Auflösung des Wandlers
• Offsetfehler ergeben sich aus einer Abweichung der Referenzspannung und führen zu einem konstanten Fehler.
• Verstärkungsfehler im Analog-Digitalwandler wirken einen wertabhängigen Fehler.
• Der Linearitätsfehler ist die Abweichung von der Geraden. Linearitätsfehler lassen sich nicht abgleichen.
• Missing Codes kommen als Kombination nie vor, weil zum Beispiel ein Flashwandler wegen einer Temperaturabhängigkeit vor dem anderen schaltet.
Fehlertypen
18 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
• Auflösung • Messdauer • Leistungsaufnahme, Schwankungen bei der Versorgungsspannung
(interne Referenz vorhanden) • Unipolare/Bipolare Messungen, Zahl der Eingänge • Ausgangsinterface • Rauschverhalten
Parameter eines Analog-Digitalwandlers
19 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Wie schnell soll ich messen?
Anforderungen: AD-Conv./sek Conv.-Zeit [ms] Temperaturmessung im Heizkessel 1 1000000 Abstandsmessung bei mobilem Roboter 100 10.000 Audio in CD Qualität 40000 100 Webcam (1024 x 768x30) 23592960 0,01
Erkenntnis: Maßgeblich ist die Dynamik des beobachteten Systems
20 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Sample & Hold
Sample
VIN VOUT
t
VOUT
ta ts ts ts : „Sample“
ta :„Hold“
VIN VOUT
Hold
21 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Wie häufig sollte ich denn messen?
Wenn ein kontinuierliches Signal, das keine Frequenzkomponenten hat, die über einer Frequenz fc liegen mit einer Häufigkeit von 2fc abgetatstet wird, kann das Originalsignal aus den gewonnenen Punkten unverzerrt rekonstruiert werden.
Diese minimale Abtastrate
wird als Nyquist Rate
bezeichnet
22 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Analog-Digital-Wandlers auf AtMega 2560
• 10-Bit Auflösung
• bis zu 15 KSps
• 16 Kanäle • Eingangsverstärker • Störungensreduzierung mittles Schlafmodus
23 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
• Eine Wandlung dauer 13 Taktzyklen der ADC-Clock. • Die Sample-and-Hold Schaltung „fixiert“ die anliegende Spannung
nach 1.5 Takten. • Zu diesem Zeitpunkt werden Änderungen an den
Konfigurationsregistern übernommen.
Zeitverhalten
24 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Komperator - Funktion
+
-
ACME: Analog Multiplexer Enable ACIS1/0 : AC Interrupt Mode Select
ADEN: ADC Enable ACO: AC Output
ACBG: AC Bandgap Select ACI: AC Interrupt Flag
ACIE: AC Interrupt Enable ACIA: AC Input CapTure Enable
if AIN0 > AIN1
{
=1
}
25 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
• Analoge Werte, die kontinuierlich in der Zeit- und Wertdomäne sind, werden in zeit- und wertdiskrete Repräsentationen gewandelt. Dadurch entstehen entsprechende Wandlungsfehler.
• Eine Wandlung erfolgt durch Vergleich des analogen Wertes mit einem bekannten Referenzwert. Der digitale Referenzwert wird häufig durch ein binäres Suchverfahren erzeugt (successive approximation) und durch einen Digital-Analog-Wandler entsprechend umgesetzt.
• Gesteuert wird die Wandlung durch Kontrollregister, in denen die entsprechende Konfiguration, der Anstoß zur Wandlung und die Fertigstellung reflektiert werden.
Zusammenfassung ADC
26 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
#include <avr/io.h> #define F_CPU 1000000UL #include <util/delay.h>
… void loop() { sensorValue = analogRead(sensPin); result=Process(sensor); if (result>100) digitalWrite(ledPin, HIGH); else digitalWrite(ledPin, LOW); _delay_ms (1000); }
Timer - Motivation Busy-Waiting Nachteil der Implementierung: • Die Verzögerung der
Verarbeitung wird nicht berücksichtigt.
• Der Prozessor läuft permanent mit voller Leistung.
Timerfunktionen sollten soweit wie Möglich in Hardware umgesetzt werden.
27 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
• Zählen von Ereignissen • Messen von Zeiten, Frequenzen, Phasen, Perioden • Erzeugen von Intervallen, Pulsfolgen, Interupts • Überwachen von Ereignissen und definition von Zeitstempeln
Aufgaben der Timer
28 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Capture-and-Compare Einheit
Counter
Capture-Register
system
clock ÷ 2 n
Port
Counter Controller
timer
select
MUX
internal
timers
external
timing
sources
Capture – Funktionalität: Generation von Zeitstempeln
edge
select
interrupt
request
Port
activate
Min / Max
interrupt
request
29 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Capture-and-Compare Einheit
Counter
Digital Comparator
Compare-Register
match
system
clock ÷ 2 n
Port
timer
select
MUX
internal
timers
external
timing
sources interrupt
request
Compare – Funktionalität: Generation von Zeitintervallen, PWM
activate
Min / Max
Counter Controller
30 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Anwendung: Timerinterrupts
p p
Periode p=16
Timerinterrupt: pw=12
Zählerpw match/clear
Zähler<pw Zählerpw match/clear
Zähler<pw
match/clear
Zähler<pw
0 .....16
Digital Comparator
Compare-Register
0/ 16
12
Counter Controller
Clock
interrupt
request
Overflow
Interupt
Compare
Interupt
31 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Anwendung: Pulsweitenmodulation
Signalverlauf:
a b b a
p p
Periode p=16
Pulsweite: pw=12 Tastverhältnis: a:b = 12:4
Zählerpw match/clear
Zähler<pw Zählerpw match/clear
Zähler<pw
match/clear
Zähler<pw
0 .....16
Digital Comparator
Compare-Register
match Port
interrupt
request
0/ 16
12
Counter Controller
Clock
32 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Wo brauche ich denn PWM?
+ -
+ -
M
max
Spannung am
Motor
50%
90%
10%
Periode
33 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Umsetzung im AVR
• Two 8-bit Timer/Counters with Separate Prescaler and Compare Mode
• Four 16-bit Timer/Counter with Separate Prescaler, Compare- and Capture Mode
• Four 8-bit PWM Channels • Twelve PWM Channels with
Programmable Resolution from 2 to 16 Bits
34 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
• Clear on Compare Match (CTC)
• Fast PWM
Modi des 8-Bit Timers I
)1(2
/_
OCRnxS
ff
OIclk
Variable Periode!
256
/_
N
ff
OIclk
35 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
• Phase Correct PWM
Timer Modi des 8-Bit Timers II
510
/_
N
ff
OIclk