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