System-orientierte Informatik - Mikrocontroller, Sensor ... · System-orientierte Informatik -...
Transcript of System-orientierte Informatik - Mikrocontroller, Sensor ... · System-orientierte Informatik -...
System-orientierte Informatik - Mikrocontroller, Sensor- und Aktoranbindung
Prof. Dr.-Ing. Christian Hochberger
Fakultät Informatik Institut für Technische Informatik, Professur Mikrorechner
©Christian Hochberger Folie 2 von 33
Ausgangslage
• Gesamtsystem, bestehend aus– Prozess– (Steuer-)Rechner– Sensoren– Aktoren
• Fragestellung hier:– Wie werden Rechner,
Sensoren und Aktorenin der Praxis realisiert?
E i n g a b e - P e r ip h e r i e ( z . B . T a s t a t u r )
M e ß - P e r i p h e r i e( z . B . S e n s o r e n )
S t e l l - P e r i p h e r i e( z . B . A k t o r e n )
A u s g a b e - P e r i p h e r i e ( z . B . B i l d s c h i r m )
R e c h n e r
Aö f f n e n
Zs c h l i e ß e n
ME l e k t r o m o t o r
1 0 0 %
0 %
S c h ie b e r -p o s i t i o n
D u r c h f l u ß
S t r ö m u n g s -g e s c h w i n d ig k e i t V S
S e n s o r( F o t o z e l l e )
L a m p e
F l ü g e l -r a d
I n f o r m a t i o n s - V e r a r b e i t u n g
I - E in g a b e I - A u s g a b e
I - N u t z u n g I - G e w in n u n g
©Christian Hochberger Folie 3 von 33
Mikrocontroller
• Wunsch:– Alle Komponenten auf einem Chip– System-on-Chip (SoC)
• Minimalausstattung:– Prozessorkern– (EP)ROM– RAM– I/O (digital, analog, seriell)– Timer (fast immer, oft mit Capture und Compare)
©Christian Hochberger Folie 4 von 33
Mikrocontroller – Speicherausstattung
• Auswirkungen des SoC-Prinzips– Auch Speicher mit auf Chip– Probleme bei der Technologie-Integration– Typischerweise kein DRAM zusammen mit CMOS– RAM nur als SRAM
• Bei großem RAM-Bedarf:– Externe Speicherbausteine (DRAM, SDRAM, DDR, ...)– Intern komplette Ansteuerung (DRAM-Kontroller)
©Christian Hochberger Folie 5 von 33
Mikrocontroller – Programmierung
• Prozessorkern– Oft RISC, meistens einfache Befehlssätze– Bessere Berechenbarkeit der Ausführungszeiten– Verzicht auf “Komfort”-Befehle
(z.B. Multiplikation, Division, Floating-Point)– Einfache Speicherverwaltung (keine MMU, evtl. einfache
Schutzmechanismen)
• Echtzeitbetriebssystem nur– wenn Multitasking gebraucht wird– oder Treiber für Schnittstellen gebraucht werden
(z.B. USB, Ethernet/TCP/IP, ...)
©Christian Hochberger Folie 6 von 33
Mikrocontroller – Beispiele
• MSP 430 Familie von TI– 16-Bit Prozessorkern, RISC– Speziell für energieeffiziente Systeme konzipiert
• 0,5µA im Shutdown-Mode, 1µS Wakeup-Time– Speicherausstattung
• 128B – 18KB SRAM• 1 – 256 KB Flash-EPROM
– Peripherieausstattung• USB, SPI, I2C, UART, LIN• OpAmp, ADC, DAC, • Multiplier, AES, LCD (segmentbasiert)• Timer, WDT, RTC
©Christian Hochberger Folie 7 von 33
Mikrocontroller – Beispiel MSP430F4152
©Christian Hochberger Folie 8 von 33
Mikrocontroller – Beispiel MSP430F1101A
©Christian Hochberger Folie 9 von 33
Mikrocontroller – Beispiele (2)
• LPC 17XX Familie NXP– ARM Cortex M3 Prozessorkern bis 120MHz– Speicherausstattung
• 128 – 512 KB Flash-EPROM• 32 – 64 KB SRAM
– Peripherieausstattung• Ethernet, USB, CAN• I2C, I2S, SPI, UART,• analoge Eingänge, verschiedene Timer, PWM
©Christian Hochberger Folie 10 von 33
Mikrocontroller – Beispiel LPC17XX
©Christian Hochberger Folie 11 von 33
Rückblick – Operationsverstärker
• Wird für Anbindung der Außenwelt oft gebraucht– Synonyme: OPV, OpAmp
• Grundkonzept:– 2 Eingänge (+ und -)– Spannungsdifferenz wird ∞-fach verstärkt
(in der Praxis 10000 – 100000)– Durch Eingänge fließt kein Strom
• Problem:– Braucht gute analoge Transistoren
+-
©Christian Hochberger Folie 12 von 33
OPV – Grundschaltung Spannungsfolger
• Prinzip:– Eingangsspannung ändert sich– Differenz wächst– Ausgangswert wirkt auf Null-
Differenz zurück
• Natürlich nicht verzögerungsfrei
©Christian Hochberger Folie 13 von 33
OPV – Sample & Hold
• Schalter geschlossen:– Kondensator folgt Eingangsspannung– Verzögerung aufgrund der Umladung
• Schalter offen:– Kondensator hält seinen Wert (da kein Strom über OpAmp)– Wert driftet mit der Zeit weg
©Christian Hochberger Folie 14 von 33
D/A Wandlung
• Umwandlung binärer Werte in analoge Ausgangsgrößen– Häufig Strom oder Spannung– Werden oft als Steuergröße für Folgesysteme gebraucht– Viel einfacher als A/D Wandlung
• Hier zwei Verfahren:– Erzeugen einer Spannung mit R2R-Netzwerk– Pulsbreitenmodulation für größere Leistungen
• Andere Verfahren– bei Synchronmaschinen
©Christian Hochberger Folie 15 von 33
D/A Wandlung – Erzeugen von Spannungen
• Typische Realisierung:– R2R-Netzwerk– Nur zwei verschiedene
Widerstandswerte nötig– Schnell
• Aber:– Keine Belastung des
Ausgangs– Daher meist mit OpAmp
©Christian Hochberger Folie 16 von 33
D/A Wandlung – Steuerung großer Lasten
• z.B. Helligkeit einer Lampe– Hängt vom Strom ab– Lässt sich z.B. durch Widerstand regeln
• Probleme:– Schlecht vom Mikrocontroller zu regeln– Strom fließt auch durch Widerstand– Widerstand erhitzt sich– Leistung wird nicht genutzt
• Wann geht eigentlich am meisten Leistung verloren?
VCC
©Christian Hochberger Folie 17 von 33
D/A Wandlung – Steuerung großer Lasten
• Widerstand kann durch MOS-Transistor ersetzt werden– Drain-Source Widerstand proportional zu
Gate-Spannung– Leicht durch Mikrocontroller zu steuern
• Problem:– Strom erhitzt auch den Transistor– Leistung wird “verheizt”
(Verlustleistung)
VCC
©Christian Hochberger Folie 18 von 33
D/A Wandlung – Pulsbreitenmodulation
• Transistor voll gesperrt:– Kein Strom durch Transistor, keine Verlustleistung
• Transistor voll leitend:– Widerstand nahe an Null, Verlustleistung sehr klein
• Idee der Pulsbreitenmodulation– Nutze nur die beiden Zustände des Transistors– Schalte schnell/oft genug um– Schalten nicht mehr zu bemerken
©Christian Hochberger Folie 19 von 33
D/A Wandlung – Pulsbreitenmodulation (2)
• Resultierende Leistung entspricht dem Verhältnis aus Zykluszeit und Einschaltzeit
• Voraussetzung:– Verbraucher muss filternde/integrierende Wirkung haben– Zykluszeit muss hinreichend klein sein
tcyc
ton
©Christian Hochberger Folie 20 von 33
Timer
• Sehr häufig in Mikrocontrollern vorhanden• Anwendung:
– Zum Messen von Zeiten:Externes Event erzeugt IRQ, Kern ließt Zählerstand aus
– Zum Erzeugen vorgegebener ZeitintervalleIRQ nach Ablauf des Timers, Kern kann Aktion ausführen
• Viele Formen möglich– Auf-/Abwärts zählen, programmierbarer Start-/End-Wert– Wahl des Eingangstaktes (Systemtakt, Peripherietakt,
externer Takt)– Einstellbarer Vorteiler
©Christian Hochberger Folie 21 von 33
Timer – Output Compare Unit
• Zusatzeinheit in Kombination mit Timer– Programmierbares Register– Bei Gleichheit mit Zählerstand wird Aktion ausgelöst– Aktion programmierbar (IRQ, Port An/Aus/Invert)
• Mehrere pro Timer möglich• Erlauben autonome Signalerzeugung (ohne Kern-
Beteiligung)• Kann als PWM-Einheit verwendet werden
©Christian Hochberger Folie 22 von 33
Timer – Output Compare Unit: PWM-Erzeugung
Beispiel: MSP430F1101• Mehrere Capture/Compare
Register• Zykluslänge in CCR0• CCR2 auf ton setzen
• Output Mode:– Port ein bei Nulldurchgang– Port aus bei Erreichen von
CCR2
©Christian Hochberger Folie 23 von 33
Timer – Input Capture Unit
• Ziel: Autonomes Festhalten eines Zeitpunktes• Funktionsweise:
– Externes Event löst Takt am Capture-Register aus– Eingang des Capture-Registers hängt am Zählerstand– Optional: IRQ auslösen
• Möglicher Nutzen:– Hochgenaue Messung von Ereigniszeitpunkten– Keine Verfälschung bei hoher IRQ-Last des Kerns– Auf mehreren Kanälen gleichzeitig möglich– Anwendung z.B. bei Slope-Wandlungen
©Christian Hochberger Folie 24 von 33
A/D Wandlung
• Kriterien bei der Auswahl– Geschwindigkeit– Genauigkeit– Technologische Integrierbarkeit
• Betrachtete Verfahren:– Flash A/D Wandlung– Dual-Slope Wandlung– Sukzessive Approximation– (aber es gibt viele weitere!)
©Christian Hochberger Folie 25 von 33
Flash A/D Wandlung
• Prinzip:– Bilde eine Referenzspannung für alle Spannungsstufen– Vergleiche alle Referenzspannungen mit dem Eingang– Eingang größer -> OpAmp liefert 1– Eingang kleiner -> OpAmp liefert 0– Ermittle Binärcodierung des Umschlagpunktes
• Aufwand:– Bei n Bit Auflösung: 2n OpAmps
©Christian Hochberger Folie 26 von 33
Flash A/D Wandlung (2)
Prio
rity
En
code
r
VCC
• Wandlung arbeitet zeitkontinuierlich!
• Schnellstes Wandlungsverfahren
• Wg. hoher Zahl “analoger” Transistoren: Schlecht integrierbar
• Praktisch immer in separaten Chips
©Christian Hochberger Folie 27 von 33
Single Slope Wandlung
• Grundidee:– Vergleiche Eingangsspannung mit Kondensatorspannung
während Entladevorgang– Kondensatorspannung: V0*e(-RC*t)
– t z.B. durch OpAmp und Input Capture ermitteln
• Probleme:– Berechnung von e(-RC*t)
– Toleranzen von V0 und C
©Christian Hochberger Folie 28 von 33
Single Slope Wandlung (2)
©Christian Hochberger Folie 29 von 33
Dual Slope Wandlung
• Verbesserung des Verfahrens:– Vergleichende Messung– C aufladen, über Referenz-Widerstand entladen– C nochmal aufladen, über Mess-Widerstand entladen
• Formeln:
V cmp=V 0∗e−R ref∗C∗t ref
tref=Rref∗C∗lnV cmp
V 0
tmeas=Rmeas∗C∗lnV cmp
V 0
tmeas
t ref
=
−Rmeas∗C∗lnV cmp
V 0
−Rref∗C∗lnV cmp
V 0
tmeas
t ref
=Rmeas
Rref
©Christian Hochberger Folie 30 von 33
Dual Slope Wandlung (2)
Referenz-Messung Sensor-Messung
©Christian Hochberger Folie 31 von 33
Dual Slope Wandlung (3)
• Vorteile:– Negative Einflussgrößen fallen raus (V0, C)
– Berechnung viel einfacher
• Nachteile:– Nur Messung von Widerständen (nicht Spannungen)– Kann in der Praxis oft leicht verschmerzt werden
(Licht, Druck, Temperatur)
©Christian Hochberger Folie 32 von 33
Sukzessive Approximation
• Prinzip:– Wie Balkenwaage– Größten Gewichtsstein auflegen– Gewicht zu schwer: Wieder runternehmen– Ansonsten: Drauf lassen– Mit nächst kleinerem Gewicht fortfahren
• Optimaler Kompromiss:– Nur ein OpAmp (leicht zu integrieren)– Wandlungszeit proportional zur Auflösung
©Christian Hochberger Folie 33 von 33
Sukzessive Approximation (2)
• Sample&Hold damit Wert konstant
• D/A Wandler als R2R-Netzwerk
• Bei höchstwertigem Bit anfangen
D/A
S&HSteuerung
Naeherungswert