04.11.2013 Aufrufe

Mikrocontroller, Sensor - Professur für Mikrorechner

Mikrocontroller, Sensor - Professur für Mikrorechner

Mikrocontroller, Sensor - Professur für Mikrorechner

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!