O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Eingebettete Systeme, 2nd Edition

Book Description

dieses Buch bietet eine Einführung in die wichtigsten Themen rund um Eingebettete Systeme wie zum Beispiel Technologien, Kommunikation, Mikroprozessoren, Systembeschreibungssprachen, Sensornetzwerke und High-Level-Synthese. Einen breiten Raum nimmt dabei auch das Gebiet der Entwicklungsmethodik ein. Dieser Teil ist besonders für Studenten und Informatiker gedacht, die als Entwickler tätig werden wollen oder es bereits sind. Als eines der ersten deutschsprachigen Lehrbücher schafft es dieses Buch, grundlegendes praktisches Wissen über Eingebettete Systeme zu vermitteln. Der Stoff wird anschaulich mit vielen Bildern und Beispielen dargestellt. Auf mathematische Beweise und Formalismen wird dabei bewusst verzichtet. Somit kann der Text auch als Ergänzung für eine formalere Behandlung des Themas dienen. Das Werk ist didaktisch entsprechend den Vorlesungen an Hochschulen aufgebaut. Einzelne Kapitel können als getrennte Vorlesungseinheiten verwendet werden.

Table of Contents

  1. Cover
  2. Weitere empfehlenswerte Titel
  3. Title
  4. Copyright
  5. Vorwort zur ersten Auflage
  6. Inhaltsverzeichnis
  7. 1 Einführung, Bauformen und Technologien
    1. 1.1 Begriffsbestimmung und Beispiele
    2. 1.2 Systemkategorien
    3. 1.3 Typischer Aufbau
    4. 1.4 Bauformen von Eingebetteten Systemen
    5. 1.5 Technologien von Eingebetteten Systemen
      1. 1.5.1 Kunden- bzw. anwendungsspezifische Hardware
      2. 1.5.2 Feldprogrammierbare Bausteine
    6. 1.6 Verteilte Systeme
    7. 1.7 Zusammenfassung
  8. 2 Mikroprozessor-Grundlagen
    1. 2.1 Evolution der Mikroprozessoren
    2. 2.2 Mikroprozessoren in Eingebetteten Systemen
    3. 2.3 Mikroprozessor-Grundlagen
      1. 2.3.1 Mikroprozessor-Architekturen
      2. 2.3.2 Ein- und Ausgabe durch Befehle und Interrupts
      3. 2.3.3 Speicher-Systeme
      4. 2.3.4 Wozu brauchen wir Caches?
      5. 2.3.5 Hauptspeicher
      6. 2.3.6 Festwertspeicher (ROM)
      7. 2.3.7 Befehls-Verarbeitungsmethoden und Pipelining
      8. 2.3.8 Performanz und Energieverbrauch
      9. 2.3.9 Leistungsverbrauchs-Steuerung (Power Management)
      10. 2.3.10 Ein-Ausgabe-Geräte und Schnittstellen
    4. 2.4 Mikrokontroller
      1. 2.4.1 Niedrigpreis-Mikrokontroller
      2. 2.4.2 Mikrokontroller höherer Leistung
    5. 2.5 Multi-Core- und Mehrprozessorsysteme
    6. 2.6 Mikroprozessor-Familien
    7. 2.7 Betriebssysteme
      1. 2.7.1 Wann kann auf ein Betriebssystem verzichtet werden?
      2. 2.7.2 Konzepte von Betriebssystemen
      3. 2.7.3 Prozesse
      4. 2.7.4 Aufgaben und Schichtenmodell eines Betriebssystems
      5. 2.7.5 Arten von Betriebssystemen
      6. 2.7.6 Strukturen von Betriebssystemen
      7. 2.7.7 Echtzeitbetriebssysteme und Echtzeitsysteme
      8. 2.7.8 Zeitablaufplanung in Echtzeitbetriebssystemen
      9. 2.7.9 Prioritätsumkehr und Prioritätsvererbeung
      10. 2.7.10 Betriebssystem-Beispiele für Eingebettete Systeme
    8. 2.8 Zusammenfassung
  9. 3 Kommunikation, Busse und Netzwerke
    1. 3.1 Das ISO-OSI-Referenzmodell
    2. 3.2 Der parallele Bus
      1. 3.2.1 Schema eines Bustreibers
      2. 3.2.2 Bus-Kommunikation
      3. 3.2.3 Bus-Zeitablaufpläne
      4. 3.2.4 Optimierte Übertragungsmodi: Burst und Pipelining
      5. 3.2.5 Direkter Speicherzugriff (DMA) über einen Bus
      6. 3.2.6 Multiprozessor- und Multibus-Systeme
      7. 3.2.7 Der Arbiter
      8. 3.2.8 Bekannte Bus-Protokolle
    3. 3.3 Netzwerke
      1. 3.3.1 Kommunikationsmodi
      2. 3.3.2 Netzwerk-Topologien
      3. 3.3.3 Datenformatierung
    4. 3.4 Busähnliche Netzwerke oder serielle Busse
      1. 3.4.1 Der I2C-Bus
      2. 3.4.2 Der CAN-Bus
      3. 3.4.3 FlexRay, LIN und MOST
      4. 3.4.4 Profibus (Process Field Bus)
      5. 3.4.5 Weitere Verbindungsnetzwerke für verteilte Systeme
    5. 3.5 Synchronisierung
      1. 3.5.1 Kommunikationsprimitive
      2. 3.5.2 Synchronisierung von Prozessorelementen
    6. 3.6 Zusammenfassung
  10. 4 Entwicklungsmethodik
    1. 4.1 Die Produktivitätslücke
    2. 4.2 Anforderungen
      1. 4.2.1 Nichtfunktionale Anforderungen
      2. 4.2.2 Lastenheft
    3. 4.3 Der Beginn einer Entwicklung
      1. 4.3.1 Der Architekturbegriff
      2. 4.3.2 Pflichtenheft
      3. 4.3.3 Spezifikation
    4. 4.4 Entwurfsmethoden von Software-Systemen
      1. 4.4.1 Das Wasserfallmodell
      2. 4.4.2 Das Spiralmodell
      3. 4.4.3 Agile Software-Entwicklungsmethoden
      4. 4.4.4 Die Projekt-Entwicklungsmethode Scrum
    5. 4.5 Software-Entwicklung für Eingebettete Systeme
      1. 4.5.1 Programmentwicklung
      2. 4.5.2 Entwickeln von Klassendiagrammen mit CRC-Karten
      3. 4.5.3 Entwurfsmuster
      4. 4.5.4 Programm-Modelle
      5. 4.5.5 Compiler
      6. 4.5.6 Programm-Optimierungen
    6. 4.6 Hardware-Entwicklungsmethodik
      1. 4.6.1 Die Abstraktionsebenen
      2. 4.6.2 Evolution der Entwicklungsmethoden
    7. 4.7 Modellieren von Systemen
      1. 4.7.1 Was sind Modelle?
      2. 4.7.2 Modelle auf System- und algorithmischer Ebene: Berechnungsmodelle
      3. 4.7.3 Unified Modeling Language (UML)
      4. 4.7.4 Transaction Level-Modellierung (TLM)
      5. 4.7.5 Modellieren auf RT-Ebene
      6. 4.7.6 Modelle auf Logik-Ebene
    8. 4.8 Plattformbasierter Entwurf
    9. 4.9 Die Modellbasierte Entwicklungsmethode
      1. 4.9.1 Synthese
      2. 4.9.2 Synthese auf Systemebene
    10. 4.10 Zeitverhalten und Performanzabschätzungen
      1. 4.10.1 TLM-basierte Performanz-Abschätzung
      2. 4.10.2 Performanz-Abschätzung aus Compiler-optimiertem Maschinencode
    11. 4.11 Verifikation, Simulation und Validierung
      1. 4.11.1 Simulation
      2. 4.11.2 Formale Verifikation
      3. 4.11.3 Werkzeuge für Modellierung und Simulation
    12. 4.12 Test
      1. 4.12.1 Begriffsbestimmungen, Black-Box- und White-Box-Test
      2. 4.12.2 Ein klassisches Fehlermodell
      3. 4.12.3 Testmuster
      4. 4.12.4 JTAG Boundary-Scan
    13. 4.13 Zusammenfassungxs
  11. 5 Beschreibungssprachen für den Systementwurf
    1. 5.1 VHDL – Eine Hardware-Beschreibungssprache
      1. 5.1.1 Grundlegender Aufbau
      2. 5.1.2 Das Sprachkonzept
      3. 5.1.3 Die Schaltungsbeschreibung
      4. 5.1.4 Signale und Datentypen
      5. 5.1.5 Zuweisungen und die neunwertige Standard Logik
      6. 5.1.6 Operationen
      7. 5.1.7 Die eventgesteuerte VHDL-Simulation und der Delta-Zyklus
      8. 5.1.8 Der VHDL-Prozess
      9. 5.1.9 Beispiele einfacher Prozessbeschreibungen
      10. 5.1.10 Komponenten mit größeren Datenbreiten und generische Komponenten
      11. 5.1.11 Konfigurationsanweisungen
      12. 5.1.12 Der VHDL-Prozess als Beschreibung für Schaltwerke
      13. 5.1.13 Beispiel eines Simulationstreibers in VHDL
      14. 5.1.14 VHDL-Attribute
      15. 5.1.15 Unterprogramme und Packages
      16. 5.1.16 Typ-Konvertierungen
      17. 5.1.17 Die Assert-Anweisung
      18. 5.1.18 Simulationsbeispiel für ein einfaches Zweiprozessorsystem
      19. 5.1.19 Zusammenfassung
    2. 5.2 Die System-Beschreibungssprache SystemC
      1. 5.2.1 Grundlagen von SystemC
      2. 5.2.2 Beispiel eines SystemC-Moduls
      3. 5.2.3 Simulationssemantik
      4. 5.2.4 Transaction-Level-Modellierung mit SystemC
      5. 5.2.5 RTL-Modellierung mit SystemC
      6. 5.2.6 Zusammenfassung
  12. 6 Sensornetzwerke
    1. 6.1 Drahtlose Sensornetzwerke
    2. 6.2 Kommunikation im Sensornetzwerk
      1. 6.2.1 Der Protokoll-Stapel (Protocol Stack) von drahtlosen Sensornetzwerken
      2. 6.2.2 Medium Access Control (MAC)
      3. 6.2.3 Physikalische Schicht von drahtlosen Sensornetzwerken
    3. 6.3 Der Sensorknoten
    4. 6.4 Kommunikationsstandards für drahtlose Netzwerke
    5. 6.5 Zusammenfassung
  13. 7 Software-Synthese und High-Level-Synthese
    1. 7.1 Herausforderungen der Software-Entwicklung
    2. 7.2 Software-Synthese von Eingebetteten Systemen
    3. 7.3 High-Level-Synthese
      1. 7.3.1 Einführung in die High-Level-Synthese
      2. 7.3.2 Eingabe und Ausgabe eines High-Level-Synthese-Werkzeugs
      3. 7.3.3 Bewertung von elektronischen Schaltkreisen
    4. 7.4 Die wesentlichen Schritte der High-Level-Synthese
      1. 7.4.1 Allokierung
      2. 7.4.2 Die Komponentenbibliothek
    5. 7.5 Zeitablaufplanung (Scheduling)
      1. 7.5.1 Einführung in die Zeitablaufplanung: Der Sequenzgraph
      2. 7.5.2 Zeitablaufplanung ohne Ressource-Schranken
      3. 7.5.3 Zeitablaufplanung unter Ressourceschranken
      4. 7.5.4 Einige besondere Verfahren der Zeitablaufplanung
      5. 7.5.5 Zusammenfassung des Abschnitts Zeitablaufplanung
    6. 7.6 Ressourcen-Bindung
      1. 7.6.1 Kompatibilitäts- und Konfliktgraph
      2. 7.6.2 Bindung von Speicher-Ressourcen (Registern)
      3. 7.6.3 Die Graphen-Partitionierungs-Methode
      4. 7.6.4 Zuweisung von Verbindungselementen und Erstellung der Netzliste
    7. 7.7 Steuerwerksynthese
      1. 7.7.1 Das mikrocodebasierte Steuerwerk
      2. 7.7.2 Das hartverdrahtete Steuerwerk
      3. 7.8 Zusammenfassung
  14. Literaturverzeichnis
  15. Index