Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
Arbeitsgruppe EOS Dr. Sebastian Zug
Vorlesung Prinzipen und Komponenten Eingebetteter Systeme (PKES) (3) Mikrocontroller II
Sebastian Zug Arbeitsgruppe Eingebettete Systeme und Betriebssysteme
1
Prinzipien und Komponenten eingebetteter Systeme Arbeitsgruppe EOS Dr. Sebastian Zug
Mitarbeiter im oTToCAR – Projekt gesucht Ziel: Teilnahme am Carolo-Cup in Braunschweig (7.02.2014) Offene Herausforderung: Paralleles Einparken
07.11.2013
2
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
Arbeitsgruppe EOS Dr. Sebastian Zug
„Veranstaltungslandkarte“ Fehlertoleranz, Softwareentwicklung Mikrocontroller Architekturen Scheduling
Sensoren
Aktoren
Arithmetik Anwendungen
Kommunikation
Energieversorgung
3
Prinzipien und Komponenten eingebetteter Systeme Arbeitsgruppe EOS Dr. Sebastian Zug
Wie weiter? obligatorisch
fakultativ
Energieversorgung
Interrupts
Takt generator Speicher Resetsystem Digitale I/O
Mikrocontroller
Timer Analoge I/O
07.11.2013
4
Prinzipien und Komponenten eingebetteter Systeme Arbeitsgruppe EOS Dr. Sebastian Zug
Literaturhinweise 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
07.11.2013
5
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
Arbeitsgruppe EOS Dr. Sebastian Zug
Fragen an die Veranstaltung
• • • • • • • • • •
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?
6
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
7
Arbeitsgruppe EOS Dr. Sebastian Zug
Beschaltung digitaler Schnittstellen
Taster bei Benutzung des interen Pullup
Standard Taster Anschluss
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
Arbeitsgruppe EOS Dr. Sebastian Zug
Analoge Schnittstelle 00100110 00101101 00101110 ............... ............... ...............
Wert (v)
wertbezogene Diskretisierung
Zeit (t) zeitliche Diskretisierung
8
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
Arbeitsgruppe EOS Dr. Sebastian Zug
Wandlungskette im Mikrocontroller Digital
Analog
Sensor
Analog Multiplexer Verstärker (Sample and Hold)
Sensor
• • • Sensor
. .
A/D-Wandler
E/AKontrolle
CPU
9
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
Arbeitsgruppe EOS Dr. Sebastian Zug
Parallele Wandlung - Flash Wandler
•
Vorteil Hohe Geschwindigkeit
•
Vin Vref
Nachteil Energieverbrauch großer Hardwareaufwand für höhere Auflösungen
Komparatoren
R R
2n zu n Dekoder
Latch
R R
cntrl.
R
10
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
Arbeitsgruppe EOS Dr. Sebastian Zug
Prinzip eines sequentiellen Analog/Digital-Wandlers
Clock
11
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
Arbeitsgruppe EOS Dr. Sebastian Zug
Voraussetzung: DA Wandler
D
Q
d0
Schalter
C Digitale
D
Q
d1
V0 Schalter
Eingabe
Analog Addierer
C V1
D
Q
V Analoger Ausgang
d n-1
Schalter
C Latch
Vn-1 V= d
Clock
n-1
•V +d •V + . . . . + d1• V1 + d 0 • V0 n-1 n-2 n-2
12
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
13
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 Analog IN
SpannungsKomparator +
Latch n-Bit- DAC n-Bit Digitalwert
n-Bit- Zähler Takt
Reset
S
R
Q
Q
Clock Start
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
14
Arbeitsgruppe EOS Dr. Sebastian Zug
Varianten sequentieller Wandler – sukzessive Approximation/Wägeverfahren
•
Vorteil Gleiche Wandlungsdauer
•
Nachteil
Spannungsbereich
Eingangsspannung
7 111
111 6 110 110 5
101
101
4 100 3
011
2
010
100 011 010
1 001 001
0 000 1
2
3
Wandlungsschritte
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
15
Arbeitsgruppe EOS Dr. Sebastian Zug
Transferfunktion eines idealen 3-Bit ADC
Binärcode 111 110 101 100 011
Q analoger Eingang
ADC
d2 d1 d0
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
Spannung (V)
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
16
Arbeitsgruppe EOS Dr. Sebastian Zug
Fehler bei der Wandlung Binärcode
Offset- und Verstärkungsfehler
111
Verst. Fehler 110
101 100
resultierender Gesamtfehler
011 010 001
Offset Fehler
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
Spannung (V)
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
Arbeitsgruppe EOS Dr. Sebastian Zug
Fehlertypen
• • • • •
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.
17
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
Arbeitsgruppe EOS Dr. Sebastian Zug
Parameter eines Analog-Digitalwandlers
• • • • • •
Auflösung Messdauer Leistungsaufnahme, Schwankungen bei der Versorgungsspannung (interne Referenz vorhanden) Unipolare/Bipolare Messungen, Zahl der Eingänge Ausgangsinterface Rauschverhalten
18
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
19
Arbeitsgruppe EOS Dr. Sebastian Zug
Wie schnell soll ich messen?
Anforderungen:
AD-Conv./sek
Conv.-Zeit [ms]
Temperaturmessung im Heizkessel Abstandsmessung bei mobilem Roboter Audio in CD Qualität Webcam (1024 x 768x30)
1 100 40000 23592960
1000000 10.000 100 0,01
Erkenntnis: Maßgeblich ist die Dynamik des beobachteten Systems
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
20
Arbeitsgruppe EOS Dr. Sebastian Zug
Sample & Hold
Sample VOUT
VIN VOUT Hold
VOUT
VIN
ts
ta
ts
ts : „Sample“ ta :„Hold“
t
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
07.11.2013
21
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
07.11.2013
22
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
Arbeitsgruppe EOS Dr. Sebastian Zug
Zeitverhalten
• •
•
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.
23
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
Arbeitsgruppe EOS Dr. Sebastian Zug
Komperator - Funktion
+ if AIN0 > AIN1 { =1 }
-
ACME: Analog Multiplexer Enable ADEN: ADC Enable ACBG: AC Bandgap Select ACIE: AC Interrupt Enable
ACIS1/0 : AC Interrupt Mode Select ACO: AC Output ACI: AC Interrupt Flag ACIA: AC Input CapTure Enable
24
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
Arbeitsgruppe EOS Dr. Sebastian Zug
Zusammenfassung ADC
•
•
•
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.
25
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
26
Arbeitsgruppe EOS Dr. Sebastian Zug
Timer - Motivation #include #define F_CPU 1000000UL #include
Busy-Waiting
…
•
void loop() { sensorValue = analogRead(sensPin); result=Process(sensor); if (result>100) digitalWrite(ledPin, HIGH); else digitalWrite(ledPin, LOW); _delay_ms (1000); }
•
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.
Prinzipien und Komponenten eingebetteter Systeme Arbeitsgruppe EOS Dr. Sebastian Zug
Aufgaben der Timer
• • • •
Zählen von Ereignissen Messen von Zeiten, Frequenzen, Phasen, Perioden Erzeugen von Intervallen, Pulsfolgen, Interupts Überwachen von Ereignissen und definition von Zeitstempeln
07.11.2013
27
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
Arbeitsgruppe EOS Dr. Sebastian Zug
Capture-and-Compare Einheit interrupt request
Capture-Register system clock
internal timers
edge select
÷ 2n
Port Port timer select MUX
external timing sources
Counter
Counter Controller activate Min / Max
Capture – Funktionalität: Generation von Zeitstempeln
interrupt request
28
Prinzipien und Komponenten eingebetteter Systeme Arbeitsgruppe EOS Dr. Sebastian Zug
Capture-and-Compare Einheit
Compare-Register system clock
÷ 2n
match Digital Comparator
internal timers
timer select MUX
external timing sources
Port
Counter
Counter Controller activate Min / Max
Compare – Funktionalität: Generation von Zeitintervallen, PWM
interrupt request
07.11.2013
29
Prinzipien und Komponenten eingebetteter Systeme
07.11.2013
Arbeitsgruppe EOS Dr. Sebastian Zug
Anwendung: Timerinterrupts Compare-Register
12 Digital Comparator
0 .....16
Clock
Counter Controller
interrupt request
0/ 16
Periode Timerinterrupt:
p=16 pw=12
match/clear Zähler