Eingebettete Systeme, 3rd Edition

Book description

Dieses Buch ist eine Einführung in die wichtigsten Themen und Fragestellungen beim Entwurf von Eingebetteten und Cyber-Physischen Systemen. Ausgehend von den zugrundeliegenden Technologien, Prozessor- und Netzwerkarchitekturen werden Modellierungssprachen und moderne Ansätze zur Analyse und Synthese von eingebetteten Hardware/Software-Systemen vorgestellt. Einen breiten Raum nimmt das Gebiet Entwicklungsmethodik ein, das für Studierende sowie Informatiker und Ingenieure gedacht ist, die als Entwickler tätig werden wollen oder es bereits sind.
Der Stoff wird anschaulich anhand vieler Bilder und Beispiele dargestellt. Dabei verzichten wir bewusst auf mathematische Beweise und Formalismen und setzen den Fokus auf die Darstellung aktueller Methoden und Ansätze aus Wissenschaft und Industrie mit hoher Praxisrelevanz. Somit kann der Text auch als Ergänzung für eine formalere Behandlung des Themas verwendet werden. Das Werk orientiert sich didaktisch an einer zweisemestrigen Vorlesung im Masterstudiengang der Universität Tübingen.
Einzelne Kapitel können als getrennte Vorlesungseinheiten verwendet werden.

Table of contents

  1. Cover
  2. Titelseite
  3. Impressum
  4. Vorwort
  5. Inhaltsverzeichnis
  6. 1 Einführung, Bauformen und Technologien
    1. 1.1 Begriffsbestimmung und Beispiele.
    2. 1.2 Systemkategorien
    3. 1.3 Typischer Aufbau
      1. 1.3.1 Beispiele für Sensoren und Aktoren
    4. 1.4 Cyber-Physische Systeme (Cyber Physical Systems)
    5. 1.5 Verteilte Systeme
    6. 1.6 Bauformen von Eingebetteten Systemen
      1. 1.6.1 Prozessorarten
    7. 1.7 Schaltkreise für Eingebettete Systeme.
      1. 1.7.1 Herstellerkonfigurierte Schaltkreise.
      2. 1.7.2 Anwenderkonfigurierbare Schaltkreise
    8. 1.8 Zusammenfassung
  7. 2 Entwicklungsmethodik
    1. 2.1 Kundenanforderungen und Spezifikation
      1. 2.1.1 Nichtfunktionale Anforderungen
      2. 2.1.2 Lastenheft.
      3. 2.1.3 Pflichtenheft
      4. 2.1.4 Spezifikation
    2. 2.2 Der Beginn einer Entwicklung
      1. 2.2.1 Der Architekturbegriff
    3. 2.3 Hardware/Software-Co-Entwurf
    4. 2.4 Software-Entwicklung.
      1. 2.4.1 Das Wasserfallmodell
      2. 2.4.2 Das Spiralmodell
      3. 2.4.3 Agile Software-Entwicklungsmethoden
      4. 2.4.4 Die Projekt-Entwicklungsmethode Scrum
      5. 2.4.5 Programmentwicklung
      6. 2.4.6 Entwickeln von Klassendiagrammen mit CRC-Karten
      7. 2.4.7 Entwurfsmuster
    5. 2.5 Hardware-Entwicklungsmethodik
      1. 2.5.1 Die Produktivitätslücke
      2. 2.5.2 Die Abstraktionsebenen
      3. 2.5.3 Evolution der Entwicklungsmethoden
    6. 2.6 Plattformbasierter Entwurf
      1. 2.6.1 Beispiele von Entwicklungsplattformen.
    7. 2.7 Transaction-Level-Modellierung (TLM)
    8. 2.8 Die Modellbasierte Entwicklungsmethode
    9. 2.9 Energiebedarf von elektronischen Systemen
    10. 2.10 Zusammenfassung
  8. 3 Modelle
    1. 3.1 Definition eines Modells
    2. 3.2 Programm-Modelle
    3. 3.3 Modellkategorien
    4. 3.4 Modelle auf System- und algorithmischer Ebene: Berechnungsmodelle
      1. 3.4.1 Prozessbasierte Berechnungsmodelle und -Netzwerke
      2. 3.4.2 Kahn-Prozess-Netzwerke (KPN)
      3. 3.4.3 Datenfluss-Netzwerke
      4. 3.4.4 Prozess-Kalkuli (Process Calculi)
    5. 3.5 Zustandsbasierte Modelle
      1. 3.5.1 Petri-Netze
      2. 3.5.2 StateCharts
      3. 3.5.3 Prozess-Zustandsmaschinen
    6. 3.6 Unified Modeling Language (UML)
    7. 3.7 Transaction-Level-Modellierung (TLM)
      1. 3.7.1 Modellieren der Kommunikation mit TLMs
      2. 3.7.2 Das Netzwerk-TLM
      3. 3.7.3 Protokoll-TLM und Bus-zyklusgenaues Modell
    8. 3.8 Modellieren auf RT-Ebene
      1. 3.8.1 Das grundlegende Verhaltensmodell auf RT-Ebene
      2. 3.8.2 Das Strukturmodell auf RT-Ebene (PCAM)
    9. 3.9 Modelle auf Logik-Ebene
    10. 3.10 Zusammenfassung
  9. 4 Beschreibungssprachen für den Systementwurf
    1. 4.1 VHDL – Eine Hardware-Beschreibungssprache
      1. 4.1.1 Grundlegender Aufbau
      2. 4.1.2 Das Sprachkonzept
      3. 4.1.3 Die Schaltungsbeschreibung
      4. 4.1.4 Signale und Datentypen
      5. 4.1.5 Zuweisungen und die neunwertige Standard Logik
      6. 4.1.6 Operationen.
      7. 4.1.7 Die eventgesteuerte VHDL-Simulation und der Delta-Zyklus
      8. 4.1.8 Der VHDL-Prozess
      9. 4.1.9 Beispiele einfacher Prozessbeschreibungen
      10. 4.1.10 Generische Komponenten mit größeren Datenbreiten
      11. 4.1.11 Konfigurationsanweisungen
      12. 4.1.12 Der VHDL-Prozess als Beschreibung für Schaltwerke
      13. 4.1.13 Beispiel eines Simulationstreibers in VHDL
      14. 4.1.14 VHDL-Attribute
      15. 4.1.15 Unterprogramme und Packages
      16. 4.1.16 Typ-Konvertierungen
      17. 4.1.17 Die Assert-Anweisung
      18. 4.1.18 Simulationsbeispiel für ein Zweiprozessorsystem
      19. 4.1.19 Entwurf energiesparender Hardwaresysteme mit VHDL
      20. 4.1.20 Implementierung von Power Gating mit UPF und VHDL
      21. 4.1.21 Zusammenfassung
    2. 4.2 Die System-Beschreibungssprache SystemC
      1. 4.2.1 Grundlagen von SystemC
      2. 4.2.2 Beispiel eines SystemC-Moduls
      3. 4.2.3 Simulationssemantik.
      4. 4.2.4 Transaction-Level-Modellierung mit SystemC
      5. 4.2.5 RTL-Modellierung mit SystemC
      6. 4.2.6 Zusammenfassung
  10. 5 Eingebettete Software
    1. 5.1 Betriebssysteme
      1. 5.1.1 Wann kann auf ein Betriebssystem verzichtet werden?
      2. 5.1.2 Konzepte von Betriebssystemen.
      3. 5.1.3 Prozesse
      4. 5.1.4 Aufgaben und Schichtenmodell eines Betriebssystems
      5. 5.1.5 Arten von Betriebssystemen
      6. 5.1.6 Strukturen von Betriebssystemen
      7. 5.1.7 Echtzeitbetriebssysteme und Echtzeitsysteme
      8. 5.1.8 Zeitablaufplanung in Echtzeitbetriebssystemen
      9. 5.1.9 Prioritätsumkehr
      10. 5.1.10 Prioritätsvererbung
      11. 5.1.11 Betriebssystem-Beispiele für Eingebettete Systeme
    2. 5.2 Compiler
    3. 5.3 Programm-Optimierungen
      1. 5.3.1 Programm-Optimierung auf höherer Ebene
      2. 5.3.2 Minimierung des Energiebedarfs in Programmen
      3. 5.3.3 Optimierung der Programmgröße
    4. 5.4 Performanzabschätzungen und Zeitverhalten (Timing Analyse)
      1. 5.4.1 TLM-basierte Performanz-Abschätzung
      2. 5.4.2 Performanz-Abschätzung aus Compiler-optimiertem Maschinencode
    5. 5.5 Software-Synthese
      1. 5.5.1 Herausforderungen der Software-Entwicklung
      2. 5.5.2 Software-Synthese von Eingebetteten Systemen
      3. 5.5.3 Code-Generierung in der Software-Synthese
    6. 5.6 Zusammenfassung
  11. 6 Hardware-Synthese
    1. 6.1 Synthese auf verschiedenen Abstraktionsebenen
    2. 6.2 Synthese auf Systemebene nach Gajski
    3. 6.3 High-Level-Synthese
      1. 6.3.1 Die wesentlichen Schritte der High-Level-Synthese.
      2. 6.3.2 Allokierung.
      3. 6.3.3 Zeitablaufplanung (Scheduling)
      4. 6.3.4 Ressourcen-Bindung
      5. 6.3.5 Steuerwerksynthese
    4. 6.4 Register-Transfer- und Logiksynthese
      1. 6.4.1 Elaboration
      2. 6.4.2 Optimierung arithmetischer Teilnetze
      3. 6.4.3 Logiksynthese und Technologieabbildung
  12. 7 Verifikation, Simulation und Test
    1. 7.1 Verifikation Simulation und Validierung
    2. 7.2 Simulation
      1. 7.2.1 Eine Simulationsanordnung
      2. 7.2.2 Simulation auf Logik- und Technologieebene
      3. 7.2.3 Software-Simulation
      4. 7.2.4 Debugging in Eingebetteten Systemen
      5. 7.2.5 Software-Debugging
      6. 7.2.6 Hardware-Debugging
    3. 7.3 Formale Verifikation
      1. 7.3.1 Aussagen-Logik
      2. 7.3.2 Prädikatenlogik erster Ordnung: FOL
      3. 7.3.3 Model Checking
      4. 7.3.4 Higher Order Logic
    4. 7.4 Werkzeuge für Modellierung und Simulation
    5. 7.5 Test
      1. 7.5.1 Begriffsbestimmungen, Black-Box- und White-Box-Test
      2. 7.5.2 Ein klassisches Fehlermodell
      3. 7.5.3 Testmuster
      4. 7.5.4 JTAG Boundary-Scan
    6. 7.6 Zusammenfassung
  13. 8 Mikroprozessor-Grundlagen
    1. 8.1 Evolution der Mikroprozessoren
    2. 8.2 Mikroprozessoren in Eingebetteten Systemen.
      1. 8.2.1 Mikroprozessor-Architekturen.
      2. 8.2.2 Ein- und Ausgabe durch Befehle und Interrupts
      3. 8.2.3 Speicher-Systeme
      4. 8.2.4 Wozu brauchen wir Caches?
      5. 8.2.5 Hauptspeicher
      6. 8.2.6 Festwertspeicher (ROM)
      7. 8.2.7 Befehls-Verarbeitungsmethoden und Pipelining
      8. 8.2.8 Performanz.
      9. 8.2.9 Leistungsaufnahme-Steuerung (Power Management)
      10. 8.2.10 Ein-Ausgabe-Geräte und Schnittstellen
    3. 8.3 Mikrocontroller
      1. 8.3.1 Niedrigpreis-Mikrocontroller
      2. 8.3.2 Mikrocontroller höherer Leistung
    4. 8.4 Multi-Core- und Mehrprozessorsysteme
    5. 8.5 Mikroprozessor-Familien
    6. 8.6 Zusammenfassung
  14. 9 Kommunikation und Netzwerke
    1. 9.1 Das ISO-OSI-Referenzmodell
    2. 9.2 Der parallele Bus
      1. 9.2.1 Schema eines Bustreibers
      2. 9.2.2 Bus-Kommunikation.
      3. 9.2.3 Bus-Zeitablaufpläne
      4. 9.2.4 Multiprozessor- und Multibus-Systeme
      5. 9.2.5 Bekannte Bus-Protokolle.
      6. 9.2.6 AMBA-Bus-Systeme.
    3. 9.3 Netzwerke
      1. 9.3.1 Kommunikationsmodi
      2. 9.3.2 Netzwerk-Topologien
      3. 9.3.3 Datenformatierung
    4. 9.4 Busähnliche Netzwerke oder serielle Busse
      1. 9.4.1 Der I2C-Bus
      2. 9.4.2 Der CAN-Bus
      3. 9.4.3 FlexRay, LIN und MOST.
      4. 9.4.4 Profibus (Process Field Bus)
      5. 9.4.5 Weitere Verbindungsnetzwerke für verteilte Systeme.
    5. 9.5 Synchronisierung
      1. 9.5.1 Kommunikationsprimitive
      2. 9.5.2 Synchronisierung von Prozessorelementen
    6. 9.6 Sensornetzwerke
      1. 9.6.1 Drahtlose Sensornetzwerke.
      2. 9.6.2 Einsatz von Sensornetzwerken, Topologie
      3. 9.6.3 Kommunikation im Sensornetzwerk
      4. 9.6.4 Der Sensorknoten
      5. 9.6.5 Beispiele von Sensorknoten
      6. 9.6.6 Kommunikationsstandards für drahtlose Netzwerke.
    7. 9.7 Zusammenfassung
  15. Literaturverzeichnis
  16. Index

Product information

  • Title: Eingebettete Systeme, 3rd Edition
  • Author(s): Oliver Bringmann, Walter Lange, Martin Bogdan
  • Release date: August 2018
  • Publisher(s): De Gruyter Oldenbourg
  • ISBN: 9783110518627