Embedded Systems
Klausurvorbeireitung, Informatik, 3. Semester
Klausurvorbeireitung, Informatik, 3. Semester
Set of flashcards Details
Flashcards | 25 |
---|---|
Language | Deutsch |
Category | Computer Science |
Level | University |
Created / Updated | 10.11.2016 / 16.06.2017 |
Weblink |
https://card2brain.ch/box/embedded_systems1
|
Embed |
<iframe src="https://card2brain.ch/box/embedded_systems1/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Was sind Embedded Systems?
- Datenverarbeitungssysteme, die in ein technisches Umfeld eingebettet sind; steuern und überwachen dieses Umfeld
- haben, verglichen mit einem allgemeinen Computer, einen (mehr oder weniger) genau definierten Zweck
- sind (normalerweise) Teil größerer Systeme, sie erweitern deren Eigenschaften
- sind Computer, die nicht als Computer angesehen werden
- sind hauptsächliches Anwendungsfeld von Microcontrollern und Microprozessoren
Welche 5 weiteren Anforderungen haben ES gegebüber reinen Rechensystemen?
- Schnittstellenanforderungen: mehr und vielfältigere Schnittstellen (insbesondere analoge) als bei reinen PC-Systemen
- Mechanische Anforderungen: robuster Aufbau, raue Umgebung, mechanische Belastung, begrenzter Raum, vorgegebene geometrische Form (Formfaktor)
- Elektrische Anforderungen: vorgegebene Versorgungsspannung, limitierter Energieverbrauch, geringe Abwärme
- Zuverlässigkeitsanforderungen: Ausfallsicherheit, Notbetrieb, z.B. bei Bremsen, der Steuerung eines Kernreaktors, einem Flugzeug, ...
- Zeitanforderungen: oftmals verteilte Systeme mit hoher Dynamik, Ausführung von Tätigkeiten zu oder innerhalb einer vorgegebenen Zeit => Echtzeitsysteme
Wozu dient der Taktgeber?
- erzeugt die Systemtaktfrequenz
- sorgt für einen geordneten Anlauf des Systems nach Reset
Wozu dient die Operationssteuerung?
- wird durch den Taktgeber mit dem Systemtakt versorgt
- steuert alle Abläufe in der CPU
- lädt Befehle und Daten
- empfängt Anweisungen vom Befehlsdecoder, setzt diese in Steuersignale zum Schreiben - und Lesen von internen Registern und/oder externer Speicherzellen um
- steuert den Transfer von Daten zwischen internen Registern und externem Speicher
- startet die ALU
- inkrementiert den Befehlszähler bzw. setzt ihn mit neuer Adresse (bei Sprüngen)
- aktualisiert das Statusregister nach Beendigung einer Operation
Wozu dient das Befehlsregister?
- enthält den aktuellen, gerade in Bearbeitung befindlichen Befehl
- Teil des Befehlsregisters: das Adressregister, enthält die dem gerade in Bearbeitung befindlichen Befehl zugehörige bzw. vom Befehl generierte (prozessorinterne oder externe) Adresse
Wozu dient der Befehlszähler?
- enthält die Adresse des nächsten abzuarbeitenden Befehls
- wird durch die Operationssteuerung nach dem Ende der Abarbeitung eines Befehls inkrementiert bzw. neu geladen (zur Ausführung von Programmsprüngen)
Wozu dient der Befehlsdecoder=?
- dekodiert (analysiert) den aktuellen, im Befehlsregister zwischengespeicherten Bearbeitungsbefehl
- wirkt eng mit der Operationssteuerung zusammen
Wozu dient das Statusregister?
- gibt bestimmte Zustände nach Ausführung eines Befehls an (z.B. Zero-Flag, Vorzeichen-Flag, Overflow-Flag etc.)
Wozu dient die Arithmetic Logic Unit?
- führt auf Befehl der Operationssteuerung mathematische und logische Operationen aus
- Operanden werden i.d.R. aus den internen Registern, oft aus dem Akkumulator entnommen, Ergebnisse stehen nach der Operation im Akkumulator oder anderen internen Registern
- Integer-Arithmetik, Logik, Shift, Flags, GK-Arithmetik
Wozu dient der Akkumulator?
- Universalregister, wird für die meisten Rechenoperationen und Datentransferoperationen als interner Zwischenspeicher genutzt
Wozu dienen die CPU internen Register?
- dienen der Zwischenspeicherung von Operanden und Ergebnissen im Zusammenhang mit der Durchführung von mathematischen Operationen in der ALU und / oder als Speicher für relative Adressen (Index-Adressierung)
- Register sind (je nach Rechnerarchitektur) für spezielle Funktionen eingerichtet: Akkumulator, Stack Pointer Register, Segment Register, Count Register, Index Register
Welche beiden generellen Bussysteme gibt es? Welches ist heutzutage gebräuchlicher und warum?
- parallel und seriell
- serielles Bussystem ist heutzutage gebräuchlicher, denn es hat im Gegensatz zum parallelen Bussystem:
- keine Probleme mit Timing Skew
- kein oder wenig Cross Talk
- viel weniger Platzbedarf
- Punkt zu Punkt Verbindung --> volle Ressourcen für jeden Teilnehmer
Was sind I/O-Ports?
- digitale Ein- und Ausgabe-Anschlüsse eines Microcontrollers
- als Input / Output oder bidirektional konfigurierbar
- einschaltbare PullUp-Widerstände
- Pins werden zu Ports (meist in Datenbusbreite) zusammengefasst und angesteuert
- mehrfach belegte Funktionalität
Erkläre Timer / Counter / PWM.
- Zeitgeber, Zähler, Pulsweitenmodulator
- läuft unabhängig und parallel zur Software
- kann beim Eintreten bestimmter Ereignisse (Nulldurchgang, Periodenende, Capture/Compare Hint) Programmunter-brechung (Interrupt) auslösen
- Auto-Reload-Funktion
- umfangreiche konfigurierbare Taktversorgung/ Vorverarbeitung
Was sind typische PWM-Anwendungen?
- Direkte Ansteuerung analoger Komponenten mit digitalen Signalen (Heizungen, Motoren, Lüftersteuerung)
- Dimmen von Beleuchtungskörpern (Lampen, LEDs, Hintergrundbeleuchtungen)
- Leistungselektronik (Gleichstromsteller, Frequenz-umrichter, Schaltnetzteile)
- Elektronische Musikinstrumente (Synthesizer)
- Nachrichtentechnik (energiesparende Amplitudenmodulation, Telemetrie)
- Class-D Audioverstärker
Was ist ein Analog Digital Converter? Nenne seine Kenngrößen, Fehler und Funktionsprinzipien.
- verbindet analoges Umfeld mit digitaler Welt,
- quantisiert ein kontinuierliches Eingangssignal, z. B. elektrische Spannung, sowohl in der Zeit als auch in der Signalhöhe
- Kenngrößen: Digitale Auflösung (Genauigkeitsgrenze für die Umsetzung), Umsetzungsdauer (maximal mögliche Umsetzungsrate)
- Fehler: Nullpunktfehler, Verstärkungsfehler, Linearitätsfehler, Quantisierungsfehler
- Funktionsprinzipien: (Zeit-) Paralleles Verfahren, (Zeit-) Serielles Verfahren
Was ist ein Digital Analog Converter? Nenne seine Kenngrößen, Fehler und Funktionsprinzipien.
- verbindet digitale Welt mit analogem Umfeld
- erzeugt aus einem digitalen zeitdiskreten und wertdiskreten (quantisierten) Signal ein zeitkontinuierliches (jedoch weiterhin) wertdiskretes Signal
- Kenngrößen: Digitale Auflösung, Umsetzungsdauer (Zeitraum zwischen dem Anlegen eines digitalen Signals an die DAC-Eingänge und der Ausgabe des zugehörigen analogen Werts am DAC-Ausgang)
- Fehler: Nullpunkt (Offset)-, Verstärkungs-, Linearitäts-, Stufungsfehler
- Funktionsprinzipien: direktes Verfahren, Parallelverfahren, Zählverfahren / 1-Bit-Umsetzer
Was ist das Serial Periphal Interface (SPI)?
- Master-Slave-Prinzip, serielle Transferraten bis ca. 1-70 MHz
- vollduplex-fähig (Übertragung von Informationen gleichzeitig in beide Richtungen)
- vielfältige Einsatzmöglichkeiten in Audio- und Messanwendungen, oft zur Datenübertragung zwischen Microcontrollern, gern genutztes Interface für serielle EEPROMs, ISP-Interface bei Atmel-μC
- entwickelt von Motorola, ähnliches (kompatibles) System von National Semiconductor unter dem Namen Microwire auf dem Markt
Wie ist die Architektur vom SPI?
- drei gemeinsame Leitungen, an denen jeder Teilnehmer angeschlossen ist:
- MOSI (Master out, Slave in), Datentransfer in Richtung Slave
- MISO (Master in, Slave out), Datentransfer in Richtung Master
- SCK bzw. SCLK (Serial Clock), wird vom Master ausgegeben
- separate Slave-Select-Leitungen (/SSx) für jeden einzelnen Slave
Was ist der Inter Integrated Circuit Bus (I2C)?
- serielles asynchrones Bussystem
- Master-Slave-Prinzip, serielle Transferraten bis 3,4 MHz
- Multimaster-Betrieb möglich
- halbduplex-fähig (Übertragung von Informationen in beide Richtungen, aber zeitlich nacheinander)
- entwickelt von Philips als platz- und pin-sparender Kommunikationsbus zwischen ICs in Fernsehgeräten (arbeitet mit nur zwei Leitungen)
Wie ist die Architektur von I2C?
- zwei gemeinsame Leitungen, an denen jeder Teilnehmer angeschlossen ist:
- SDA (Serial Data Line), Datenleitung
- SCL (Serial Clock Line), Taktleitung
Wie funktioniert das Busprotokoll beim I2C?
Der Bustakt wird immer vom Master ausgegeben. Für die verschiedenen Modi ist jeweils ein maximal erlaubter Bustakt vorgegeben. In der Regel können aber auch beliebig langsamere Taktraten verwendet werden, falls diese vom Master-Interface unterstützt werden.
Daten sind nur gültig, wenn sich ihr logischer Pegel während einer Clock-High-Phase nicht ändert. Ausnahmen davon sind das Start-, Stop- und Repeated Start-Signal. Das Start-Signal ist eine fallende Flanke auf SDA, während SCL high ist.
Das Stop-Signal (oder Pause-Signal) ist durch eine steigende Flanke auf SDA gekennzeichnet, während SCL high ist. Repeated Start sieht genauso aus wie das Start-Signal.
Eine Dateneinheit besteht aus 8 Datenbits und einem ACK-Bit. Dieses Bestätigungsbit (Acknowledge) wird während der neunten Takt-Low-Phase eines Datenbytes vom Slave durch einen Low-Pegel auf der Datenleitung erzeugt.
Gibt der Slave in der neunten Takt-Low-Phase dagegen High-Pegel auf die SDA-Leitung, wird das vom Maser als NACK (not acknowledge) interpretiert. Die Sendung ist zu wiederholen.
Der Slave muss das Acknowledge-Bit an die Daten-leitung SDA anlegen BEVOR SCL auf High geht, andernfalls würden weitere eventuelle Teilnehmer im Falle einer positiven Empfangsbestätigung durch den Slave (Ack= low) ein „Stop-Signal“ lesen.
Wozu dient Volatile?
- Anweisung an Compiler, spez. Maschinencode zu erzeugen, der die Variable jedes mal neu aus dem Speicher liest und sie nicht in Registern oder im Cache zu halten
- nötig für Variablen, deren Wert sich außerhalb des eigenen Kontextes ändern kann (durch andere Prozesse, Interrupts oder andere Hardware)
Wozu dient Assembler?
- Pflege alter Assembler-Projekte
- einzelne Code-Sequenzen in Hochsprachen-Projekten, z.B.
- Interrupt sperren u. freigeben
- Reset auslösen
- Interrupt-Handler anmelden
- Software-Interrupts auslösen
- bei rechenintensiven Anwendungen
- bei der Fehlersuche
- bei Cross-Assemblierung (auf Host Client-Code bauen)
- beim Disassemblieren (reverse engineering)