36
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

Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/11/04_MikrocontrollerII.pdf · Prinzipien und Komponenten eingebetteter Systeme

Embed Size (px)

Citation preview

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

36 07.11.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

Bis zur nächsten Woche …