Upload
doandat
View
215
Download
2
Embed Size (px)
Citation preview
1 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Vorlesung Prinzipen und Komponenten Eingebetteter Systeme (PKES) (3) Mikrocontroller I
Sebastian Zug Arbeitsgruppe Eingebettete Systeme und Betriebssysteme
2 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
„Veranstaltungslandkarte“
Sensoren
Mikrocontroller
Anwendungen
Architekturen
Aktoren
Kommunikation Energieversorgung
Scheduling
Arithmetik
Fehlertoleranz, Softwareentwicklung
3 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
M. Mitescu I. Susnea Microcontrollers in Practice Springer, 2012 H. Bähring Anwendungsorientierte Mikroprozessoren Mikrocontroller und Digitale Signalprozessoren Springer, 2010 Atmel Corporation ATmega640/1280/1281/2560/2561 - Datasheet 2012 http://www.avr-asm-tutorial.net/avr_de/index.html http://www.microcontroller.net
Literaturhinweise
4 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
• Erläutern Sie den Unterschied zwischen Mikroprozessor und
Mikrocontroller! • Welche Speichertypen werden bei Mikrocontrollern eingesetzt? • Welcher Idee steht hinter dem „Memory-Mapped-IO“? • An welchen Merkmalen kann der AVR 2560 als RISC Prozessor
identifiziert werden? • Warum haben unterschiedliche Komponenten des Mikrocontrollers
verschiedene Taktraten? • Welche Aufgabe haben die Pull-Up-Widerstände für Pins? • Welche Grundbestandteile hat ein disassembliertes AVR
Mikrocontrollerprogramm? • Was passiert nachdem der Reset-Pin eines AVR Mikrocontrollers auf
GND gezogen wurde?
Fragen an die Veranstaltung
5 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Begriffsbestimmung
to control = steuern/regeln
Ein Controller wird zur Steuerung/Regelung eines physischen
Prozesses eingesetzt.
Die Aufgabe des Controllers besteht in der Abbildung von Eingangs-
informationen auf eine Ausgabeschnittstelle (Black-Box-Modell).
Die Realisierung eines Controllers kann auf viele verschiedene
Arten erfolgen:
• ein analoger Regelkreis
• Relais-Schaltung
• speziell aufgebaute digitale Logikschaltung
• Mikrocontroller
Controller
Sensor
GUI
Netzwerk
Aktor
GUI
Netzwerk
6 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Vorteile • Flexibilität • Flexibilität • Flexibilität • …
Nachteile • Möglicherweise Geschwindigkeits- / Präzisionseinbußen • Materialkosten häufig höher
Programmierbarer Controller
7 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Komponenten des Mikrocontrollers
Microprozessor
Kern
Timer und
Zähler
serielle und
parallele
Schnittstellen Speicher
Takterzeugung
Analog-Digital
Digital- Analog
Wandler
Interrupt
controller
Coprozessoren
FPU, MAC Debug Interface
JTAG
8 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Architektur
Kontrolle Daten on-chip
“Geräte”
9 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Was charakterisiert einen Mikrocontroller?
Innere Werte:
Bauformen:
DIL, SIL
TQFP, LQFP …
Ball Grid
10 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Familien von Mikrocontrollern
11 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
„Unser Controller“
L
D
G[0,1]
C
J
A
K
F E
H
B
G[3,4]
Architecture • 135 Powerful Instructions • 32 × 8 General Purpose
Working Registers • Fully Static Operation • Up to 16 MIPS Throughput
at 16MHz • On-Chip 2-cycle Multiplier High Endurance Non -volatile Memory Segments – 64K/128K/256KBytes of In-System Self-Programmable Flash – 4Kbytes EEPROM – 8Kbytes Internal SRAM – Write/Erase Cycles:10,000 Flash/100,000 EEPROM …
12 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Blockdiagramm und minimale Beschaltung
Quarz als Taktgeber
Spannungs- versorgung
Timer
ADC
Speicher
Taktgeber
13 24.10.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
14 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Energieversorgung - Konsequenzen
2.7V x 6mA =16,2mW
4.5V x 18mA =81mW
15 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Energieversorgung - Schlafmodi
Nur solche Komponenten aktiviert lassen, die tatsächlich gebraucht werden!
Selektives Abschalten von ADC, Analogkomparator, WTD, Brown-Out, interner
Spannungsreferenz, Port Pins, usw.
Sleep Mode
Control Register
16 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
• Das Spannungsniveau der Versorgungsspannung bestimmt : - die Performance des Controllers (Taktrate) - die Leistungsaufnahme • Für jede Anwendung sollte geprüft werden, welche Komponenten
des Kontrollers überhaupt gebraucht werden! Die Energieaufnahme lässt sich damit erheblich reduzieren.
• In verschiedenen „Sleep“-Modi kann der Kontroller im Hinblick auf: - Aktive Clocks - Ozcilatoren - Wake-Up Geräte abgestimmt werden.
Energieversorgung - Zusammenfassung
17 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Taktgenerator - AVR-Clock System
Watchdog hat separaten on-Chip
Oszillator. Periode kan zwischen
14ms und 1,9 Sek. eingestellt werden.
Quelle für Clock kann programmiert
werden. Änderungen erfordern ein
“Chip Erase” Befehl.
System-Module
Clock Select
CKSEL 0..3
18 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
• Interne Oszillatoren (RC-osciallators) - Schwingkreis aus Widerstand und Kondensator - standardmäßig als Taktquelle vorkonfiguriert - Frequenzabweichung +/- (3-10) % • Schwinquarze (crystal oscillators) - deutliche geringere Maximalabweichung +/- 0.1 % - Einschwingdauer deutlich höher (10.000 Taktzyklen) - mindestens 3 externe Bauteile (2 Lastkondensatoren + Quarz) • Externes Taktsignal
Taktgeneratort - Mögliche Taktgeber
19 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Speicher - Speichertypen
20 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Speicher - Programmspeicher
16 Bit
Word
0x1FFFF Adressen 17 Bit Breite
PC
Breite eines Befehls 16 oder 32 Bit
-> Maximal 128k x 2-Byte Befehl = 131.072 Befehle abzüglich der Größe des Bootsektors Wie groß ist die minimale Zahl von Befehlen in einem Programm das den Speicher vollständig ausnutzt?
21 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Bei isolierter Adressierung (Isolated IO) ist ein getrennter Adressraum für Speicher und Ein-/Ausgabeeinheiten vorgesehen, bei Memory Mapped IO Ansätzen ein gemeinsamer.
Speicher - Memory Mapped IO
• Vorteile des getrennten Adressraums - klaren Trennung von Speicher- und Ein-/Ausgabezugriffen. - der Speicheradressraum wird nicht durch Ein-/Ausgabe- einheiten reduziert. - Ein-/Ausgabeadressen können schmaler gehalten werden als Speicheradressen. • Vorteile eines gemeinsamen Adressraums - Homogene Befehle und Adressierungsarten
22 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Speicher - Datenspeicher
Register R0-R32
PIN, PORT, SREG
Timer, ADC, RS232
8 Bit
Memory Mapped IO = Datenspeicher und IO – Interfaces überlagern sich in einem gemeinsamen Adressraum.
23 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Speicher - Registertabelle
Beachte: Unterschiedliche Adressangaben ! IN, OUT vs. LDS, STS
24 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Speicher - Einbindung des EEPROM
internes
statisches
RAM
flüchtiger Daten-Sp.
EEPROM
EEPROM
Adress-Reg.
Vollständig getrennter Adressraum über I/O-Register verfügbar.
25 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
• Im Mikrocontroller kommen im wesentlichen 3 Speichertypen zum Einsatz:
- Programmspeicher (persistent) – Flashspeicher (NAND) - Arbeitsspeicher (SRAM) - - EEPROM • Beim AVR ist der Programmspeicher und der Arbeitsspeicher streng
getrennt und durch unterschiedliche Busse an die Controller angeschlossen.
• Die IO-Interfaces der Peripherie sind auf den eigentlichen Speicher gemappt.
Speicher - Zusammenfassung
26 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Resetsystem – Implementierung beim AVR
Quellen für Reset:
1.Power-on Reset
2.External Reset
3.Watchdog Reset
4.Brown-out Reset
5.JTAG AVR Reset
27 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
• Einschwingen des Oszilatoren • Initialisieren des Speichers • Konfiguration der Schlafmodi, Clocks entsprechend den FUSE-Bits • Prozessorstart an der Adresse 0000. An dieser Adresse MUSS ein Sprungbefehl an die Adresse des Hauptprogrammes stehen (RJMP, JMP) • Initialisieren des Stacks • Beginn der Programmabarbeitung
Was passiert beim Reset?
28 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Digitale IO – Schnittstelle zur Umgebung
Decoder
A 15
A 14
A 13
A 2
A 1
A 0
CS
RS1
RS0
Dekoder
DDR
D 7
D 6
D 5
D 4
D 3
D 2
D 1
D 0
PD 7
PD 6
PD 5
PD 4
PD 3
PD 2
PD 1
PD 0
I H IN
Input
Handshake
29 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Digitale IO – AVR Controller
Die Konfiguration der Schnittstelle erfolgt über 2 Register DDRx: 0 = Eingang 1 = Ausgang PORTx: - Eingang 1 = Pullup (GND) 0 = schwebend -Ausgang 1 = High Pegel 0 = Low Pegel
30 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
• Das Latch entkoppelt die Eingangsspannung und deren Erfassung, bewirkt aber eine Verzögerung.
Zeitverhalten digitaler Input-Pins
16.000.000 Hz (x Prescaler) -> t =0.0625 Mikrosekunden (x Prescaler) Worst Case 1.5 x t (x Prescaler) Best Case 0.5 x t (x Prescaler)
31 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Unser Mikrocontroller ist mit Strom versorgt, hat einen Taktgeber, ein Resetsystem, einen Programm- und einen Arbeitsspeicher ... Wartet drauf programmiert zu werden Beispielprogramm in C #include <avr/io.h> int main( void ) { // Led - output DDRB |= (1<<DDA7); // switch on led PORTB &= ~(1<<7); // Endlosschleife while(1); return 0; }
Und nun?
32 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
Programmaufbau – Intel Hex Format
:100000000C9472000C947E000C947E000C947E0084 :100010000C947E000C947E000C947E000C947E0068 :100020000C947E000C947E000C947E000C947E0058 … :1000A0000C947E000C947E000C947E000C947E00D8 :1000B0000C947E000C947E000C947E000C947E00C8 :1000C0000C947E000C947E000C947E000C947E00B8 :1000D0000C947E000C947E000C947E000C947E00A8 :1000E0000C947E0011241FBECFEFD1E2DEBFCDBF46 :1000F00000E00CBF0E9480000C9483000C94000070 :0A010000279A2F98FFCFF894FFCF 45 :00000001FF
Byte Count
Adresse
Type (00-Data, 01-EOF, 02- …)
Daten (hier 16 Byte)
Checksumme
33 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
00000000 <__vectors>: 0: 0c 94 72 00 jmp 0xe4 ; 0xe4 <__ctors_end> … e0: 0c 94 7e 00 jmp 0xfc ; 0xfc <__bad_interrupt> 000000e4 <__ctors_end>: e4: 11 24 eor r1, r1 e6: 1f be out 0x3f, r1 ; 63 e8: cf ef ldi r28, 0xFF ; 255 ea: d1 e2 ldi r29, 0x21 ; 33 ec: de bf out 0x3e, r29 ; 62 ee: cd bf out 0x3d, r28 ; 61 f0: 00 e0 ldi r16, 0x00 ; 0 f2: 0c bf out 0x3c, r16 ; 60 f4: 0e 94 80 00 call 0x100 ; 0x100 <main> f8: 0c 94 83 00 jmp 0x106 ; 0x106 <_exit> 000000fc <__bad_interrupt>: fc: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
Beispiel
SREG = 0
Stackpointer am Ende des Speichers
Interrupt-Vektor-Tabelle
Sprung zum Programm
34 24.10.2013 Prinzipien und Komponenten eingebetteter Systeme
Arbeitsgruppe EOS Dr. Sebastian Zug
00000100 <main>: // Led – output DDRB |= (1<<DDA7); 100: 27 9a sbi 0x04, 7 ; 4 // switch on led PORTB &= ~(1<<7); 102: 2f 98 cbi 0x05, 7 ; 5 // Endlosschleife while (1); 104: ff cf rjmp .-2 ; 0x104 <main+0x4> 00000106 <_exit>: 106: f8 94 cli 00000108 <__stop_program>: 108: ff cf rjmp .-2 ; 0x108 <__stop_program>
Beispiel - Fortsetzung
Obligatorische Endlosschleife
cbi – clear bit in register sbi – set bit in register