+ All Categories
Home > Documents > Vorlesung Prinzipen und Komponenten Eingebetteter Systeme...

Vorlesung Prinzipen und Komponenten Eingebetteter Systeme...

Date post: 17-Aug-2019
Category:
Upload: tranxuyen
View: 214 times
Download: 0 times
Share this document with a friend
38
1 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme Arbeitsgruppe EOS Dr. Sebastian Zug Vorlesung Prinzipen und Komponenten Eingebetteter Systeme (PKES) (8) Mikrocontroller III Sebastian Zug Arbeitsgruppe Eingebettete Systeme und Betriebssysteme
Transcript
Page 1: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

1 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

Vorlesung Prinzipen und Komponenten Eingebetteter Systeme (PKES) (8) Mikrocontroller III

Sebastian Zug Arbeitsgruppe Eingebettete Systeme und Betriebssysteme

Page 2: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

2 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

„Veranstaltungslandkarte“

Sensoren

Mikrocontroller

Anwendungen

Architekturen

Aktoren

Kommunikation Energieversorgung

Scheduling

Arithmetik

Fehlertoleranz, Softwareentwicklung

Page 3: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

3 05.12.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

Page 4: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

4 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

M. Mitescu I. Susnea Microcontrollers in Practice Springer, 2012 Atmel Corporation ATmega640/1280/1281/2560/2561 - Datasheet 2012

Literaturhinweise

Page 5: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

5 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

• Welche Schritte werden bei der Abarbeitung von Interrupts durchlaufen?

• Welche Folgen können verpasste Interrupts haben? Beziehen Sie sich dabei insbesondere auf verschiedene Sensortypen, mit denen Sie in der Übung gearbeitet haben.

• Woraus ergibt sich die Prioritätenfolge der Interrupts beim AVR? • Was unterscheidet die periodische Abarbeitung von der Ereignis

getriebenen Abarbeitung? • Nennen Sie Interruptquellen beim AVR? • Wie viele Interrupts können sich bei Atmega 2560 stauen, ohne

dass einer verloren geht? • Bewerten Sie folgende Aussage: „Die Gleitkommaeinheit des Atmega

2560 erlaubt Operationen für double und float Werte.“ • Welchen Vorteil hat die Gleitkommaarithmetik gegenüber einer

Festkommaarithmetik?

Fragen an die Veranstaltung

Page 6: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

6 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

Abfragen der Sensoren

Lies Messwert

Lies Messwert

Transformation,

Filterung,

Detektor,

Abstraktion

1 Takt- periode Berechnung

Reglerverhalten

Busy Waiting bis

zum Ende der Periode Idle

Timerinterrupt

Schreibe Ausgabe

Lies Messwert

Schreibe Ausgabe

Idle

Timerinterrupt

Schreibe Ausgabe

Messwert

verfügbar

Idle

Page 7: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

7 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

Interruptbasierte Programmierung normale

Programmabarbeitung Zeitpunkt des

Interrupts

normalen Programmabarbeitung

RTI: Rückkehr vom Interrupt

Wiederherstellung des Prozessorzustands Holen der Register vom Stack

• Beenden der aktuelle Instruktion • Interrupts deaktiviert • Registersatz auf den Stack

indirekter Sprung über die Interrupt-Einsprungtabelle zur Interrupt-Behandlungs-

Routine

Ausführung der Interrupt- Einsprung-

Routine Ausführung der

Interrupt- Behandlungs-

Routine

Page 8: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

8 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

IACK

IRQ

CPU

IVT

IBR

Hauptspeicher

IRQ IACK

Peripheres Gerät

Peripheres Gerät Vektor Vektor

BUS

IRQ IRQ IACK IACK

Vektor-Basis-Reg.

Programmzähler

Page 9: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

9 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

• 8 Interruptvektoren für externe Interrupts an Port INT 0...7 • 25 Interruptvektoren für interne Ereignisse (Timer, ADC, Comm,

Memories) • 1 Reset Interruptvektor

• Die Priorität der Interrupts ist durch die Position in der Interrupt-

Vektor-Map (000016 – 004416) festgelegt. Diese wird im Programmspeicher (Flash) angelegt. Es kann gewählt werden, ob sie am Anfang (000016) stehen soll oder vor der “Boot-Loader” Sektion.

• Prioritäten:

Interrupts beim AVR

Reset

ext.Interrupts 0-7

Timer (hohe Prio)

Kommunikation

ADC

Analog-Komparator

Timer (niedrigere Prio)

Kommunikation (niedrigere Prio)

Page 10: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

10 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

Ausführung eines Interupts wenn: • generelle Aktivierung über Status Bit (I-Bit) • individuelle Aktivierung der externen Interrupts (Maske) • Interrupt Auftritt

Verschachtelte Interrupts sind nicht vorgesehen können aber erzwungen werden – globale Sperrung der Interrupts, keine Verdrängungsmodelle! Stau von Interrupts: 1. Ein Interrupt tritt auf, während Interrupts gesperrt sind. 2. Setzen des individuelle Interruptflags 3. Soweit ein weiterer Interrupt gleichen Typs auftritt, wird der

vorhergehende Interrupt “überschrieben”. 4. Nach dem Verlassen der ausgeführten Interruptroutine werden die

zwischenzeitlich eingetroffenen Interrupts abgearbeitet.

Interrupts beim AVR

Page 11: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

11 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

00000000 <__vectors>: 0: 0c 94 72 00 jmp 0xe4 ; 0xe4 <__ctors_end> 4: 0c 94 93 00 jmp 0x126 ; 0x126 <__bad_interrupt> … 44: 0c 94 95 00 jmp 0x12a ; 0x12a <__vector_17> … 000000e4 <__ctors_end>: e4: 11 24 eor r1, r1 ; Init R1 e6: 1f be out 0x3f, r1 ; Setzen des SREG e8: cf ef ldi r28, 0xFF ; Initialisieren des Stack … 00000126 <__bad_interrupt>: 126: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>

Darstellung im Assembler-Code

Page 12: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

12 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

0000012a <__vector_17>: ISR(TIMER1_COMPA_vect) { 12a: 1f 92 push r1 12c: 0f 92 push r0 12e: 0f b6 in r0, 0x3f ; 63 130: 0f 92 push r0 132: 11 24 eor r1, r1 134: 8f 93 push r24 counter_trigger=1; 136: 81 e0 ldi r24, 0x01 ; 1 138: 80 93 0a 02 sts 0x020A, r24 } 13c: 8f 91 pop r24 13e: 0f 90 pop r0 140: 0f be out 0x3f, r0 ; 63 142: 0f 90 pop r0 144: 1f 90 pop r1 146: 18 95 reti

Darstellung im Assembler-Code

SREG sichern

r0=0

Rücksprung

Counter_trigger =1

r24 sichern

Page 13: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

13 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

Zeitverhalten des Interrupts

normale

Programmabarbeitung

Zeitpunkt des Interrupts

Fortsetzung der normalen

Programmabarbeitung

RTI: Rückkehr vom Interrupt

Wiederherstellung des Prozessorzustands

• aktuelle Instruktion

wird zu Ende geführt

• Interrupts werden

deaktiviert

indirekter Sprung über die

Interrupt-Einsprungtabelle

zur Interrupt-Behandlungs-

Routine

Ausführung der

Interrupt-

Einsprung-

Routine Ausführung der

Interrupt-

Behandlungs-

Routine

Continue

Mindestens

1 Clock Zyklen Mindestens

5 Clock Zyklen

Mindestens

5 Clock Zyklen

n Clock Zyklen

Page 14: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

14 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

INTn • bei INT0 kannst du auf die positive bzw. negative Flanke einen

Interrupt auslösen. • individuelle Interruptroutinen • Teilweise asynchron und damit zum Restart des Prozessors aus

verschiedenen Sleep-modi geeignet PCINTn • Keine Triggerung auf bestimmte Signalzustände – eine allgemeine

Interruptfunktion • Pattern matching über 8 Bit PCINT0:7 und PCINT8:15

(konfigurierbar über PCMSK1:2) Beide Varianten können als Softwareinterrupts benutzt werden !

AVR – zwei Varianten externer Interrupts

Sourc

e: A

tmega 2

56

0 H

and

buch

Page 15: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

15 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

“Neue Herausforderungen”

Sensoren

Mikrocontroller

Anwendungen

Architekturen

Aktoren Scheduling

Arithmetik

Page 16: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

16 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

• Charakteristik einer Zahlendarstellung im Rechner: • Bereich (Range): darstellbarer Zahlenbereich • Genauigkeit (Precision): Anzahl der darstellbaren Stellen • Fehlerschranke (Accuracy): Abweichung vom tatsächlichen Wert

Herausforderung Zahlendarstellung

Diskrete Zahlenwerte

n n+1 n+2

“realer” rationaler

Wert x

Range

Genauigkeit

Page 17: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

17 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

• Abbildungsbereich −2𝑘−1 … 0 … 2𝑘−1 − 1 • Einheitliche

Addition/Subtraktionsoperation • aufwändigere Komplementbestimmung

Zweierkomplement

Unbrauchbar für gebrochene Zahlen!

Bit 3 – V: Two’s Complement Overflow Flag

Source: Atmega 2560 Handbuch, wikipedia

Page 18: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

18 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

Eine binäre Gleitkommazahl x ist definiert durch 𝑥 = −1𝑠 × 𝑎 × 2𝑒

mit • m-stelliger Mantisse a • p-stelligem Exponent e • und einstelligem Vorzeichenbit s.

Wichtige Definitionen: • Eine binäre Gleitkommazahl x 0 heißt normalisiert oder normiert,

wenn für die Mantisse a gilt: 1 |a| < 2, d.h. die erste Stelle der Mantisse ist immer eine 1!

• Der Exponent wird mit einem Bias verrechnet. Dies ermöglicht die Darstellung positiver und negativer Exponenten. Um große und kleine Exponenten zu erlauben wird die Hälfte des maximalen Exponenten p gewählt

𝑏 = 2𝑝−1 und 𝑒′ = 𝑒 + 𝑏

Fließkommazahl

e -4 -3 -2 -1 0 1 2 3

e’ 0 1 2 3 4 5 6 7

Beispiel: p=3

Page 19: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

19 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

Früher: Unterschiedliches Gleitkommaformat in jedem Prozessor, Heute: Überwiegend Verwendung des IEEE 754 Standard (1985)

IEEE 754 Standard

allgemeine Definition: x = (–1)s 1.f 2e–b

• S: Vorzeichenbit mit 0 = positive Mantisse,

1= negative Mantisse

• e: Exponent (8 Bit, 0...255)

• b: Bias (28-1 –1 = -127)

• f: gebrochener Anteil der normalisierten Mantisse (23 Bit).

Der ganzzahlige Anteil ist immer „1“ und wird daher

nicht codiert.

S

0 22 23 30 31

Exponent mit Bias positiver, gebrochener Anteil der Mantisse

IEEE 754 Gleitkommezahl, einfache Genauigkeit (single precision)

Page 20: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

20 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

Definitionen des Standards

single precision double precision quad precision

n 32 64 128

m 23 52 112

s 1 1 1

p 8 11 15

emin 0 0 0

emax 255 2047 32767

b 127 1023 16383

| xmin | 2–126 10–38 2–1022 10–308 2–16382 10–4932

| xmax | (2–2–23)2127 1038 (2–2–52)21023 10308 (2–2–112)216383 104932

Page 21: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

21 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

• Problemstellung: Endlichkeit des Speichers bei der Darstellung gebrochener Zahlen

0.125D = 0,001B

13 = 0,1T = 0,01B

0.1D = = 0.00011B

• Ergebnis #include "stdio.h" int main(){ if(.362*100. != 36.2) printf("verschieden\n"); if(.362*100./100. != .362) printf(“genau so\n"); return 0; } • Definition einer epsilon-Umgebung

𝑥 − 𝑦 ≤ 𝜖 oder 1 −𝑥

𝑦≤ 𝜖

Genauigkeit bei Fließkommaarithmetik

Page 22: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

22 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

Anwendung

Algorithmus zur Addition zweier IEEE-Gleitkommazahlen

x = (–1)s a 2bias und y = (–1)t b 2bias :

1) Sortiere x und y, so dass x die Zahl mit kleinerem Exponenten ist

2) Anpassung der Exponenten: Bestimme x´ = (– 1)s a´ 2bias

durch Rechtsschieben von a um Bitpositionen

3) Addiere Mantissen:

a) Falls nötig, bilde Zweierkomplement von a´ oder b

b) Führe Festkomma-Addition c = a´ + b aus

4) Normalisiere Ergebnis z = (– 1)u c 2–bias

a) Falls c 2, schiebe c nach rechts und inkrementiere

b) Falls c 1, schiebe c nach links und dekrementiere

ggf. wiederhole b), bis 1 c 2

5) Behandlung von Ausnahmesituationen: Überlauf, Unterlauf, c = 0

Page 23: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

23 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

volatile int value; void main (){ value=1; while(1){ value=value+1; } }

Beispiel am AVR

volatile float value; void main (){ value=1; while(1){ value=value+1; } } 0000012a <_fpadd_parts>: 000003ce <__addsf3>: 00000426 <__subsf3>: 00000486 <__pack_f>: 00000608 <__unpack_f>: … void main (){ 0e 94 e7 01 call 0x3ce ; 0x3ce <__addsf3>

1956 Byte Codegröße

308 Byte Codegröße

Page 24: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

24 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

Zahlendarstellung als gebrochene Zahl im Bereich -1 bis 1 Umgesetzt durch vordefinierte Skalierung Vorteil: bei der Multiplikation kommt es zu keinem Overflow mehr, da 0.99x0.999 < 1 in Hardware hocheffizient umsetzbar Q-Format: • Q … quantity of fractional bits • Der Zahlenwert beschreibt die für die Bruchdarstellung benutzten

Bits • 16 Bit DSP Prozessor - Q15 (Sign + 15 Bit) - Auflösung 2^-15 - Equivalent zu einem Rechtsshift mit 15 Schritten • Rundungsprobleme

Variante 1 – Gebrochene Festkommazahlen

Page 25: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

25 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

Multiplikation zweier Q Format Zahlen • Das Produkt zweier Q15 ist Q30! • Verbleibende Bits: - Vorzeichen - Extension bit

Variante 1 – Gebrochene Festkommazahlen

Q15 Q15

Multiply

Q30

16 Bit Speicher

Q30 0

Q15 0

Page 26: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

26 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

Beispiel:

𝐸𝑖𝑛𝑔𝑎𝑛𝑔𝑠𝑝𝑎𝑛𝑛𝑢𝑛𝑔 =𝐴𝐷𝐶𝑣𝑎𝑙𝑢𝑒 ∙ 2.56

𝐴𝐷𝐶𝑟𝑒𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛= 2.45𝑉

Warum nicht das Ganze in mV ausdrücken?

𝐸𝑖𝑛𝑔𝑎𝑛𝑔𝑠𝑝𝑎𝑛𝑛𝑢𝑛𝑔 =𝐴𝐷𝐶𝑣𝑎𝑙𝑢𝑒 ∙ 2560

𝐴𝐷𝐶𝑟𝑒𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛= 2450𝑚𝑉

+ Einsparung von Rechenzeit und Programmspeicher - Individuelle Festlegungen erschweren die Wiederverwendbarkeit Achtung: • Ein beliebter Fehler ist es, die Datentypen zu klein zu wählen! • Erst die Multiplikation ausführen und dann die Division!

Variante 2 – Ganzzahlige Festkommazahl

Page 27: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

27 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

int32_t a,b; a = b / 0.5432; // direkte Formel, Division durch Konstante // mit Fließkommaarithmetik a = b * 18409 / 10000; // Umformung in Kehrwert und // Festkommaarthimetik mit Zehnerpotenzen a = b * 15081 / 8192; // Festkommaarithmetik mit Zweierpotenzen. a = (b * 15081) >> 13; // Division explizit ausgeführt als // Schiebeoperation für nicht so schlaue Compiler

Umsetzung auf dem AVR

Page 28: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

28 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

General Q-Format (Q m.n)

𝐹 = −1𝑠 𝑎𝑙2𝑙

𝑚−1

𝑙=−𝑛

Rechenregeln: • Addition und Subtraktion – einheitliche Konfiguration erforderlich • Multiplikation - Anzahl der Vorkommastellen des Ergebnisses der

Summe der Anzahlen der Vorkommastellen aller Operanden; ebenso entspricht die Anzahl der Nachkommastellen des Ergebnisses der Summe der Anzahlen der Nachkommastellen aller Operanden.

• Eine Division oder Multiplikation mit einer Potenz 2^n entspricht einer Bit-Schiebe-Operation

Variante 3 – Allgemeine Festkommazahlen

m n N=n+m+1 s

Page 29: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

29 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

In Abhängigkeit von den • minimalen und • maximalen Zahlenwerten • einem möglicherweise zu berücksichtigenden Vorzeichen • sowie der notwendigen Auflösung und sind die Parameter [𝑚. 𝑛] festzulegen.

Anwendung auf typische Wordlängen

Darstellung von 6.75 im Speicher [𝒎. 𝒏]

0 0 0 1 1 0 1 1 [6,2]

0 0 0 0 1 1 0 1 [7,1]

1 1 0 1 1 0 0 0 [3,5]

1 0 1 1 0 0 0 0 [2,6]

Page 30: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

30 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

• Für vorzeichenlose Integerwerte gilt 0 ≤ 𝛼 ≤ 2𝑚 − 1 damit ergibt sich

𝑚 = ceiling(log2(𝛼 + 1))

• Für vorzeichenbehaftetet Integerwerte gilt (−2Qi−1) ≤ 𝛼 ≤ 2𝑄𝑖−1 − 1 -> asymetrischer Werteraum damit ergeben sich für Qi zwei Gleichungen:

(I) aus (−2Qi−1) ≤ 𝛼 folgt für 𝛼 < 0 Qi ≥ log2(−𝛼) + 1 (II) aus 𝛼 ≤ 2𝑄𝑖−1 − 1 folgt für 𝛼 > 0 Qi ≥ log2 𝛼 + 1 + 1 Beispiel: 𝛼𝑚𝑖𝑛 = −2, 𝛼𝑚𝑎𝑥 = 2

𝑚 𝑚𝑖𝑛

≥ log2 −𝛼 + 1 = log2 2 + 1 = 2

𝑚 𝑚𝑎𝑥

≥ log2 𝛼 + 1 + 1 = log2 3 + 1 = 2.585

m = ceiling(max(𝑚 𝑚𝑖𝑛

, 𝑚 𝑚𝑎𝑥

)) = 3

Min-Max Werte

Page 31: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

31 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

Die Auflösung in der Q m.n ist definiert als

𝜀 =1

𝑛

Daraus folgt: n = ceiling(log21

𝜀)

Die Definition der Epsilon-Umgebung ist in der Regel schwierig.

Auflösung

Page 32: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

32 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

• Implementierte Datentypen: _sAccum (s7.8), _Accum (s15.16), … • Rechendauer einer Multiplikationsoperation

• Gegenüberstellung - Codegröße der floating Point Berechnungen

_lAccum 848 bytes _Accum 758 bytes _sAccum 260 bytes

Vergleich

Source: Elmenreich „Fixed Point Library for Atmel AVR Microcontrollers“

Page 33: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

33 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

Abschließender Vergleich (Zahlenwerte mit 4Bit)

0

1

2

3

4

5

6

7

0 2 4 6 8 10 12

F[e=3,m=1] F=[e=2,m=2] F=[e=1,m=3] Q[1,3] Q[2,2] Q[3,1]

Fließkomma-

Darstellung

(nicht de-

normalisiert)

Fixkomma-

darstellung

Page 34: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

34 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

Vergleich

Festkomma Gleitkomma

Wiederverwendbarkeit des Codes -- ++

Implementierungsaufwand -- ++

Fehlerwahrscheinlichkeit - +

RAM und ROM Verbrauch ++ --

Ausführungszeit + -

Page 35: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

35 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

Abschließender Exkurs - DSP

• arithmetische Operationen in

einem Zyklus

• Multiplizieraddierer

• Shifteinheit

• Spezialisierte, komplexe Befehle

• Mehrere Operationen pro

Instruktion

mac x0,y0,a x:(r0)+,x0 y:(r1)+,y0

• viele math. Operationen dauern

mehr als einen Zyklus

(Multiplikation, Shift)

• “Universelle” Befehle

• Eine Operation pro Befehl ist

typisch

ld r2, X+ ld r3, Y+ mul r2, r3 add r24, r0 addc r25, r1

DSP Multipurpose Controller

a=a+x*y

Page 36: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

36 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

Abschließender Exkurs - DSP

Page 37: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

37 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

Source: Steven W. Smith, Ph.D.: The Scientist and Engineer's Guide to Digital Signal Processing,

http://www.dspguide.com

Circular Buffer Start Address Registers (CBSAR) Circular Buffer Size Registers (CBSR) Associated Pointers

Page 38: Vorlesung Prinzipen und Komponenten Eingebetteter Systeme ...eos.cs.ovgu.de/wp-content/uploads/2013/12/08_MikrocontrollerIII.pdf · Prinzipien und Komponenten eingebetteter Systeme

38 05.12.2013 Prinzipien und Komponenten eingebetteter Systeme

Arbeitsgruppe EOS Dr. Sebastian Zug

Bis zur nächsten Woche …


Recommended