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