Laborpraktikum Eingebettete MikrocontrollerSysteme (PEMSY) - Cheatsheet
Architektur von Mikrocontrollern
Definition:
Architektur von Mikrocontrollern umfasst den Aufbau und die internen Strukturen, die die Funktionalität und Effizienz eines Mikrocontrollers bestimmen.
Details:
- CPU: Zentrale Recheneinheit zur Verarbeitung von Befehlen und Steuerung der anderen Komponenten.
- Speicher: ROM (fest gespeichert, z.B. Programme) und RAM (flüchtig, z.B. variable Daten).
- I/O-Ports: Ein- und Ausgabeschnittstellen für die Kommunikation mit externen Geräten.
- Taktgeber: Bestimmt die Geschwindigkeit des Mikrocontrollers.
- Bus-System: Datenpfade, über die Komponenten miteinander kommunizieren (z.B. Adress-, Daten-, Steuerbus).
- Peripheriegeräte: Zusätzliche Module wie Timer, ADCs, UARTs, etc.
Interrupt-Handling und Timer
Definition:
Interrupt-Handling: Technik zur Behandlung von Unterbrechungen im Programmfluss. Timer: Hardware-Komponenten zur Zeitmessung und -steuerung.
Details:
- Unterbrechungen (Interrupts) werden durch externe oder interne Ereignisse ausgelöst.
- ISR (Interrupt Service Routine): Spezielle Funktion zur Bearbeitung von Interrupts.
- Prioritäten: Bestimmen Reihenfolge der Interrupt-Bearbeitung.
- Vektortabelle: Speicherort der Adressen für ISRs.
- Timer können als Zähler oder zur Generierung von Zeitintervallen verwendet werden.
- Typische Timer-Register: TCCR (Control), TCNT (Counter), OCR (Output Compare Register).
- Prescaler: Teilt Eingangs-Taktfrequenz zur Feinanpassung der Timer-Auflösung.
- Overflow-Interrupt: Auslösung wenn Timer überläuft (z.B. bei 8-bit Timer nach 255 Ticks).
Embedded C/C++ Programmierung
Definition:
Embedded C/C++ Programmierung - Programmierung von Mikrocontrollern und eingebetteten Systemen mit C/C++.
Details:
- Direkte Hardwarezugriffe: \texttt{volatile} zur Vermeidung unnötiger Optimierungen
- Bitmanipulation: \texttt{&}, \texttt{|}, \texttt{^}, \texttt{<<}, \texttt{>>}
- Interrupt-Service-Routinen (ISR) zur Echtzeitreaktion
- Speicherlayout und -verwaltung: \texttt{static} und \texttt{heap}
- Compiler-Spezifika: \texttt{\texttt{gcc-arm-none-eabi}}, \texttt{avr-gcc}
- Optimierung: Inline-Assembler, Compiler-Optimierungsflags
- Standardbibliotheken: \texttt{\texttt{stdint.h}, \texttt{stdbool.h}, \texttt{stdlib.h}}
Bootloader-Implementierung
Definition:
Bootloader-Implementierung: Verfahren, um ein eingebettetes System von einem speziellen Programmiercode, dem Bootloader, zu starten.
Details:
- Initialisierung der Hardware
- Laden des Hauptprogramms aus einer definierten Speicherquelle
- Verifikation des geladenen Codes
- Übergabe der Kontrolle an das Hauptprogramm
- Fehlerbehandlung und Recovery-Mechanismen
- Konfigurierbar für unterschiedliche Speicherarten (Flash, EEPROM, etc.)
Task-Management und Scheduling in Echtzeitbetriebssystemen
Definition:
Verwaltung und Einteilung von Aufgaben zur rechtzeitigen Bearbeitung in Echtzeitsystemen.
Details:
- Aufgabenarten: periodisch, aperiodisch
- Scheduling-Strategien: EDF (Earliest Deadline First), RMS (Rate Monotonic Scheduling)
- Prioritäten: Fest (fixed) oder dynamisch (je nach Bedarf)
- \(U = \sum_{i=1}^{n} \frac{C_i}{T_i} \)
- Kontextwechsel: Wechsel zwischen Aufgaben, beeinflusst durch Präemption
- Präemptives Scheduling: höher priorisierte Aufgaben können laufende Aufgaben verdrängen
- \(\text{Response Time} \leq Deadline \)
- Deadlines: Zeitgrenzen, innerhalb derer Aufgaben abgeschlossen sein müssen
Integration von Sensoren und Aktoren in Embedded-Systeme
Definition:
Integration von Sensoren und Aktoren: Verbindung von Ein- und Ausgabegeräten mit eingebetteten Systemen zur Messung und Steuerung.
Details:
- Verbindung: GPIO, I2C, SPI, UART
- Sensoren: Messen physikalische Größen (z.B. Temperatur, Druck)
- Aktoren: Setzen Steuerbefehle um (z.B. Motoren, LEDs)
- Signalverarbeitung: ADC für analoge Signale, PWM für Aktoren
- Datenformate: Analog, digital
- Software-Integration: Treiber, Bibliotheken
- Energieverbrauch beachten
Serielle Kommunikation (UART, SPI, I²C)
Definition:
Datenübertragung zwischen Mikrocontrollern und Peripheriegeräten über serielle Schnittstellen.
Details:
- UART (Universal Asynchronous Receiver/Transmitter): Asynchron, Start- und Stopbits, Baudrate muss übereinstimmen.
- SPI (Serial Peripheral Interface): Synchron, Voll-Duplex, Master-Slave-Konfiguration, benötigt MISO, MOSI, SCLK, und SS Leitungen.
- I²C (Inter-Integrated Circuit): Synchron, Halb-Duplex, Adressierung von Geräten, Zwei-Leitungen: SDA und SCL.
- Serielle Kommunikation: Bit-weise Übertragung, Takt- und Steuersignale, Fehlererkennung (z.B. Parity-Bits).
Drahtlose Kommunikation (Bluetooth, ZigBee)
Definition:
Drahtlose Kommunikationstechnologien für Kurzstreckenverbindungen.
Details:
- Bluetooth: Standard zur kabellosen Datenübertragung über kurze Distanzen (bis zu 100 m). Geeignet für Ad-hoc-Netzwerke und Punkt-zu-Punkt-Verbindungen.
- ZigBee: Drahtloses Mesh-Netzwerkprotokoll für IoT-Anwendungen mit geringem Stromverbrauch. Reichweite bis zu 100 m, unterstützt größere Netzwerke als Bluetooth.
- Beide arbeiten im 2,4-GHz-ISM-Band, jedoch mit unterschiedlichen Ansätzen zur Netzwerktopologie und Stromverbrauch.
- Verwendung: Bluetooth in Headsets, Tastaturen, usw.; ZigBee in Heimautomatisierung, Sensornetzen.