Upload
alina-arnold
View
112
Download
0
Embed Size (px)
Citation preview
Vorlesung Mikrocontroller
Dipl.-Inf. Swen HabenbergerWS 09/10
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
2
Inhalt Vorstellung Dozent Vorstellung Kursinhalt Prüfungsmodalitäten Organisatorisches Vorstellung NGW100
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
3
Vorstellung Dozent Diplom-Informatiker Swen Habenberger Studium Universität Mannheim Hauptberuf: Softwareingenieur bei Fa.
Ramitek
Kontakt: [email protected]
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
4
Firma Ramitek Sitz in Grünstadt/Weinstraße Ausgründung Universität Kaiserslautern Fachgebiete
Planung und Konstruktion Sensorik und Messtechnik Technische Software
Praktikumsplätze, Plätze für Seminar- und/oder Abschlussarbeiten
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
5
Technische Software Programmierung in
C# Labview C++ mit MFC C Assembler
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
6
PumpExpert (Software)
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
7
Elektronik-Entwicklung
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
8
Anlagensteuerung und -überwachung
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
9
Vorstellung Kursinhalt Programmierung eines 32-Bit
Mikrocontrollers Programmiersprache C Entwicklungsumgebung: Linux Mikrocontrollerhersteller:
Atmel Chip: 32AP7000
Entwicklungsboard: NGW100
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
10
2 teiliger Aufbau Vorlesung Theorie
Was unterscheidet einen 32-Bit von einem 16-Bit oder 8-Bit Prozessor?
Wie liest man Datenblätter? Entscheidungskriterien µC Betriebssystem vs. Native-Programmierung Wahl des richtigen Programmierwerkzeugs Atmel-spezifische Eigenheiten Hacking vs. Programmierung
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
11
2 teiliger Aufbau Vorlesung Praxis
Programmierung in C Linuxprogrammierung
Anwendungen Kernel-Erweiterungen Kernel-Modifikationen
Socketprogrammierung Steuerung eines µC via Web-Interface Aufbau von Schaltungen
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
12
Webseite http://www.habenberger-soft.de Oder SRH E-Learning-Plattform
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
13
Prüfungsmodalitäten Klausur: 100 Minuten
Oder Seminararbeit inklusiver Präsentation
Beides Anfang/Mitte März
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
14
Organisatorisches Jeder Teilnehmer soll die gleichen Chancen
haben, die selben Resultate zu erzielen. Festlegung Entwicklungsumgebung
VMWARE-Image Atmel
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
15
Fragen?
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
16
NGW100
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
17
Atmel NGW100 Two ethernet connectors 32MB SDRAM 16MB on-board flash Expandable memory through SD or MMC memory cards USB connector JTAG connector for debugging or programming of flash Expansion connectors with 63 general purpose IO or
peripheal modules from AP7000 Power system and status LEDs Two user controllable LEDs Footprint for mictor-38 connector for NEXUS emulator
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
18
Atmel NGW100 Informationen http://www.atmel.com/dyn/products/
tools_card.asp?tool_id=4102 http://www.avrfreaks.net/wiki/index.php/
Documentation:AVR32_General/ http://www.mikrocontroller.net/ http://www.roboternetz.de/ http://www.elektronik-projekt.de/ http://www.avr-praxis.de/ http:// test.avr32linux.org
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
19
Projekte mit NGW100 http://mikrocontroller.jacob-pirna.de/
avr_webserver_projekte.html http://www.hoschid.ch/ngw100.html http://www.tec-project.de/ http://blog.muetze1.de/?p=370 http://ngw100.tiddlyspot.com/ http://www.youtube.com/watch?
v=7kV7XFPO_es
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
20
Fragen?
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
21
Benchmark Standardisierter Leistungsvergleich von
Prozessoren MIP - Meaningless Indicator of Performance Werbetechnischer Blödsinn
Meist Vergleich mit einer Referenzmaschine
Die relevante Leistung hängt von der tatsächlichen Anwendung ab
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
22
Dhrystone Test Anfang der 80er Jahre entwickelt Referenzmaschine ist VAX11/780
1 VAXMIP = 0,5 MIPS Dhrystone Leistung: 1757 pro Sekunde
Wieviel MIPS sind 210 DMIPS? 210 * 0,5 = 105 MIPS 210 * 1757 * 0,5 = 184485 Dhrystones
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
23
Dhrystone Test Test wurde zunächst in Fortran und Cobol
entwickelt Später dann nach Ada portiert Heute ist C der Standard Bestandteile:
Einfache Integer Operationen Stringoperationen Logische Entscheidungen Speicherzugriffe
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
24
Whetstone Test Hauptsächlich Gleitkomma-Arithmetik Zusätzlich Zugriffe auf Arrays Einfache Integer-Arithmetik
Zunächst in Algol, später C und Fortran
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
25
Linpack TOP500.org listet die schnellsten
bekannten Rechner der Welt Vergleich anhand von MFLOPs
MFLOP: Million Floating Point Operations per Second
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
26
Benchmark Optimierte Compiler für das jeweilige
System verbessern die Performance Fast jeder Hersteller bietet optimierte
Varianten für seinen Prozessor an Schlechte Programmierung verlangsamt
die Performance Da ist Programmiererfahrung und Kenntnisse
des Systems gefragt Funktioniert nur wenn das System auch
läuft.
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
27
Performance Prozessor besitzt keine Gleitkommaeinheit
bzw. numerischen CoProzessor Jede Gleitkommaoperation muss von der CPU
ausgeführt werden Mathematische Berechnung mit
Gleitkommazahlen führen zu einem dramatischen Geschwindigkeitseinbruch
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
28
32bit RISC Was bedeutet die Werbeaussage
32-bit load/store RISC architecture RISC: Reduced Instruction Set Computing 32-Bit: ALU kann 4 Bytes gleichzeitig
verarbeiten
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
29
RISC vs. CISC Complex Instruction Set Computer
Die meisten moderen Desktop CPUs sind CISC Prozessoren mit RISC-Coprozessoren und Zerlegung von CISC-Befehlen in RISC-Befehle (Pentium)
Reduced Instruction Set Computer Die meisten embedded-Systeme sind RISC-Prozessoren
Problemstellung zum Architekturdesign: Welche Maschinenbefehle sollen implementiert sein? Wie viele Register stehen zur Verfügung
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
30
Überlegungen Maschinencode Jeder Befehl braucht einen eindeutigen
Operationcode (Opcode) Einfache Prozessoren besitzen meist schon 50-
60 Befehle (6 Bit) 15 Register entsprechen 4 Bits
Zugrunde liegende Architektur 1, 2 oder 3 Adressmaschinen
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
31
Adressierungsart 1 –Adressmaschine
Der Akkumulator wird immer verwendet Mov R1 (Lädt Register 1 in den Akku) Add R2 (Addiert Register 2 zum Wert des Akku) Sto R1 (Speichert das Ergebnis in Register 1)
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
32
Adressierungsart 2 –Adressmaschine
Mov R1, Akku (Lädt Register 1 in den Akku) Add R2, Akku (Addiert Register 2 zum Wert des
Akku) Sto R1, Akku (Speichert das Ergebnis in
Register 1) Add R2, R1 (R1=R1+R2) oder R2 = R1 + R2
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
33
Adressierungsart 3 –Adressmaschine
Add R0, R1, R2 R0 = R1 + R2 oder R0 + R1 = R2
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
34
32 Bit Byte = 8 Bit Upper Halfword = 16 Bit (2 höchtwertigen Bytes) Lower Halfword = 16 Bit (2 niederwertigsten
Bytes) Word = 32 Bit
Unterscheidung Big-Endian und Little-Endian
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
35
Operationsmodus Direkt / Unmittelbar Register Indirekt Indiziert
Die Anzahl der Bits und der Operationsmodus erfordern weitere bits
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
36
Befehlssatz Opcode Operationsmodus Operanden
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
37
CISC Unterschiedliche Opcodelänge
Wichtige Befehle haben Länge von 2 Byte Unwichtige Befehle haben Länge 3 Byte
Extrabefehl zum erkennen von Befehl mit 3 Byte notwendig
Dekodierprozess langwierig Keine 3-Register Architekturen
Register sind teuer
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
38
Microcode Hardwareinterpreter zwischen Dekoder
und Ausführeinheit Ein Befehl wird ggf. in kleine Einzelbefehle
zerlegt Dekrementiere Register und Springe falls
Ergbnis 0 ist Erfordert 1-10 Takte je nach komplexität des
Befehls
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
39
Nutzung von Registern Manche Befehle ermöglichen die implizite
Nutzung von Registern Einsparung von Bits beim Befehlssatz in dem
bspw. Bei manchen Befehlen mit dem Akku gerechnet wird
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
40
RISC Nur einfache Befehle Gleichlange Opcode für alle Befehle
Ermöglicht den Einsatz von Pipelines, da Bytes 2-4 immer mit Operanden versehen sind
Mehr Register Kein Hardwareinterpreter erforderlich
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
41
Architektur AP7 Vom Ansatz RISC-Architektur Hat aber auch CISC-Befehle
SIMD-Befehle Befehle für CoProzessor
Je mehr Funktionalität auf dem Chip integriert ist, desto eher sind auch Ansätze von CISC zu erkennen
9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller
42
Fragen?