05.01.2014 Aufrufe

Vorlesung Mikrocontroller

Vorlesung Mikrocontroller

Vorlesung Mikrocontroller

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!