| 1 Einführung | 15 |
---|
| 1.1 Begriffsbestimmung und Beispiele | 15 |
| 1.2 Systemkategorien | 17 |
| 1.3 Typischer Aufbau | 19 |
| 1.4 Zusammenfassung | 21 |
| 2 Bauformen und Implementierungsarten | 23 |
---|
| 2.1 Bauformen | 23 |
| 2.2 Implementierungsarten | 25 |
| 2.3 übersicht über Technologien für Eingebettete Systeme | 26 |
| 2.3.1 Anwendungsspezifische Hardware | 26 |
| 2.3.2 Feldprogrammierbare Bausteine (FPGAs) | 29 |
| 2.4 Evolution der Siliziumtechnologie | 34 |
| 2.5 Zusammenfassung | 35 |
| 3 Mikroprozessor-Grundlagen | 37 |
---|
| 3.1 Evolution der Mikroprozessoren | 37 |
| 3.2 Mikroprozessoren in Eingebetteten Systemen | 38 |
| 3.3 Mikroprozessor-Grundlagen | 40 |
| 3.3.1 Mikroprozessor-Architekturen | 40 |
| 3.3.2 Eingabe und Ausgabe durch Befehle, Register und Interrupts | 43 |
| 3.3.3 Speicher-Systeme | 45 |
| 3.3.4 Hauptspeicher | 51 |
| 3.3.5 Festwertspeicher (ROM) | 54 |
| 3.3.6 Befehls-Verarbeitungsmethoden | 54 |
| 3.3.7 Performanz und Energieverbrauch | 60 |
| 3.3.8 Ein-Ausgabe-Geräte und Schnittstellen | 64 |
| 3.4 Mikrokontroller und Mikroprozessoren | 65 |
| 3.4.1 Niedrigpreis-Mikrokontroller | 66 |
| 3.4.2 Mikroprozessoren höherer Leistung | 67 |
| 3.4.3 Mikroprozessor-Familien | 67 |
| 3.5 Mehrprozessorsysteme | 75 |
| 3.5.1 Beispiel für ein Mehrprozessor-System: Der Cell-Prozessor | 77 |
| 3.6 Prozesse und Betriebssysteme | 78 |
| 3.6.1 Prozesse | 78 |
| 3.6.2 Wozu Betriebssysteme? | 80 |
| 3.6.3 Aufgaben und Schichtenmodell eines Betriebssystems | 82 |
| 3.6.4 Echtzeitbetriebssysteme | 84 |
| 3.6.5 Zeitablaufplanung in Echtzeitbetriebssystemen | 84 |
| 3.6.6 Prioritätsumkehr und Prioritätsvererbung | 91 |
| 3.7 Zusammenfassung | 93 |
| 4 Kommunikation, Busse, Netzwerke und verteilte Systeme | 95 |
---|
| 4.1 Das ISO-OSI-Referenzmodell | 95 |
| 4.2 Modellierung der Kommunikation | 99 |
| 4.2.1 Kommunikationsprimitive | 99 |
| 4.2.2 Der parallele Bus | 102 |
| 4.3 Verteilte Systeme | 111 |
| 4.4 Netzwerke | 113 |
| 4.4.1 Kommunikationsmodi | 114 |
| 4.4.2 Netzwerk-Topologien | 114 |
| 4.5 Busähnliche Netzwerke oder serielle Busse | 117 |
| 4.5.1 Der I2C-Bus | 119 |
| 4.5.2 Der CAN-Bus | 120 |
| 4.5.3 FlexRay, LIN und MOST | 123 |
| 4.5.4 Profibus (Process Field Bus) | 124 |
| 4.5.5 Weitere Verbindungsnetzwerke für verteilte Systeme | 126 |
| 4.6 Zusammenfassung | 128 |
| 5 Entwicklungsmethodik | 129 |
---|
| 5.1 Die Produktivitätslücke | 129 |
| 5.2 Anforderungen | 131 |
| 5.2.1 Nichtfunktionale Anforderungen | 131 |
| 5.2.2 Lastenheft | 135 |
| 5.3 Der Beginn einer Entwicklung | 137 |
| 5.3.1 Der Architekturbegriff | 138 |
| 5.3.2 Pflichtenheft | 139 |
| 5.3.3 Spezifikation | 140 |
| 5.4 Entwurfsmethoden von Software-Systemen | 142 |
| 5.4.1 Das Wasserfallmodell | 142 |
| 5.4.2 Das Spiralmodell | 144 |
| 5.5 Hardware-Entwicklungsmethodik: Die Abstraktionsebenen | 145 |
| 5.6 Entwicklungsmethoden von Eingebetteten Systemen | 149 |
| 5.6.1 Erfassen und Simulieren | 150 |
| 5.6.2 Beschreiben und Synthetisieren | 151 |
| 5.6.3 Spezifizieren, Explorieren und Verfeinern | 152 |
| 5.6.4 Evolution der Chip-Entwicklung: Vom ASIC zum SoC | 154 |
| 5.6.5 Plattformbasierter Entwurf für Ein-Chip-Systeme | 157 |
| 5.6.6 Beispiele von Mehrprozessor-Entwicklungsplattformen | 159 |
| 5.7 Modellieren von Systemen | 164 |
| 5.7.1 Was sind Modelle? | 164 |
| 5.7.2 Modelle auf System- und algorithmischer Ebene: Berechnungsmodelle | 167 |
| 5.7.3 Unified Modeling Language (UML) | 180 |
| 5.7.4 Transaction Level-Modellierung (TLM) | 182 |
| 5.7.5 Modellieren auf RT-Ebene | 188 |
| 5.7.6 Modelle auf Logik-Ebene | 193 |
| 5.8 Modellbasierte Entwicklungsmethode | 193 |
| 5.8.1 Synthese | 195 |
| 5.8.2 System-Synthese | 196 |
| 5.8.3 Software-Synthese von Eingebetteten Systemen | 206 |
| 5.8.4 Das ESE-Werkzeug von Gajski et al | 223 |
| 5.9 Software-Entwicklung für Eingebettete Systeme | 224 |
| 5.9.1 Programmentwicklung | 225 |
| 5.9.2 Entwickeln von Klassendiagrammen mit CRC-Karten | 225 |
| 5.9.3 Entwurfsmuster | 228 |
| 5.9.4 Programm-Modelle | 228 |
| 5.9.5 Compiler für Eingebettete Systeme | 231 |
| 5.9.6 Programm-Optimierungen | 231 |
| 5.10 Verifikation, Simulation und Validierung | 237 |
| 5.10.1 Simulation | 238 |
| 5.10.2 Formale Verifikation | 245 |
| 5.10.3 Werkzeuge für Modellierung und Simulation | 248 |
| 5.11 Test | 250 |
| 5.11.1 Begriffsbestimmungen, Black-Box- und White-Box-Test | 251 |
| 5.11.2 Ein klassisches Fehlermodell | 252 |
| 5.11.3 Testmuster | 252 |
| 5.11.4 JTAG Boundary-Scan | 254 |
| 5.12 Zusammenfassung | 255 |