Zur Bedeutung von Software im Automobil | 6 |
Vorwort | 7 |
Inhaltsverzeichnis | 10 |
1 Einführung und Uberblick | 15 |
1.1 Das System Fahrer-Fahrzeug-Umweit | 16 |
1.1.1 Aufbau und Wirkungsweise elektronischer Systeme | 16 |
1.1.2 Elektronische Systeme des Fahrzeugs und der Umwelt | 19 |
1.2 Überblick über die elektronischen Systeme des Fahrzeugs | 20 |
1.2.1 Elektronische Systeme des Antriebsstrangs | 22 |
1.2.2 Elektronische Systeme des Fahrwerks | 23 |
1.2.3 Elektronische Systeme der Karosserie | 25 |
1.2.4 Multi-Media-Systeme | 27 |
1.2.5 Verteilte und vernetzte elektronische Systeme | 28 |
1.2.6 Zusammenfassung und Ausblick | 29 |
1.3 Überblick über die logische Systemarchitektur | 30 |
1.3.1 Funktions- und Steuergeratenetzwerk des Fahrzeugs | 30 |
1.3.2 Logische Systemarchitektur fiir Steuerungs-ZRegelungs- und Uberwachungssysteme | 31 |
1.4 Prozesse in der Fahrzeugentwicklung | 32 |
1.4.1 Uberblick iiber die Fahrzeugentwicklung | 32 |
1.4,2 Uberblick iiber die Entwicklung von elektronischen Systemen | 33 |
1.4.3 Kernprozess zur Entwicklung von elektronischen Systemen und Software | 36 |
1.4.4 Unterstiitzungsprozesse zur Entwicklung von elektronischen Systemen und Software | 38 |
1.4.5 Produktion und Service von elektronischen Systemen und Software | 41 |
1.5 Methoden und Werkzeuge fiir die Entwicklung von Software für elektronische Systeme | 41 |
1.5.1 Modellbasierte Entwicklung | 42 |
1.5.2 Integrierte Qualitatssicherung | 42 |
1.5.3 Reduzierung des Entwicklungsrisikos | 45 |
1.5.4 Standardisierung und Automatisierung | 46 |
1.5.5 Entwicklungsschritte im Fahrzeug | 48 |
2 Grundlagen | 51 |
2.1 Steuerungs- und regelungstechnische Systeme | 51 |
2.1.1 Modellbildung | 51 |
2.1.2 Blockschaltbilder | 52 |
2.2 Diskrete Systeme | 56 |
2.2.1 Zeitdiskrete Systeme und Signale | 57 |
2.2.2 Wertdiskrete Systeme und Signale | 58 |
2.2.3 Zeit- und wertdiskrete Systeme und Signale | 59 |
2.2.4 Zustandsautomaten | 59 |
2.3 Eingebettete Systeme | 61 |
2.3.1 Aufbau von Mikrocontrollem | 62 |
2.3.2 Speichertechnologien | 64 |
2.3.3 Programmierung von MikrocontroUern | 67 |
2.4 Echtzeitsysteme | 74 |
2.4.1 Festlegung von Tasks | 74 |
2.4.2 Festlegung von Echtzeitanforderungen | 76 |
2.4.3 Zustande von Tasks | 78 |
2.4.4 Strategien fiir die Zuteilung des Prozessors | 80 |
2.4.5 Aufbau von Echtzeitbetriebssystemen | 85 |
2.4.6 Interaktion zwischen Tasks | 86 |
2.5 Verteilte und vernetzte Systeme | 92 |
2.5.1 Logische und technische Systemarchitektur | 95 |
2.5.2 Festlegung der logischen Kommunikationsbeziehungen | 96 |
2.5.3 Festlegung der technischen Netzwerktopologie | 98 |
2.5.4 Festlegung von Nachrichten | 99 |
2.5.5 Aufbau der Kommunikation und des Netzwerkmanagements | 100 |
2.5.6 Strategien fiir die Zuteilung des Busses | 104 |
2.6 Zuverlassigkeit, Sicherheit, Uberwachung und Diagnose von Systemen | 106 |
2.6.1 Grundbegriffe | 107 |
2.6.2 Zuverlassigkeit und Verfiigbarkeit von Systemen | 108 |
2.6.3 Sicherheit von Systemen | 112 |
2.6.4 Uberwachung und Diagnose von Systemen | 115 |
2.6.5 Aufbau des Uberwachungssystems elektronischer Steuergerate | 119 |
2.7 Zusammenfassung | 127 |
3 Unterstutzungsprozesse zur Entwicklung von elektronischen Systemen und Software | 131 |
3.1 Grundbegriffe der Systemtheorie | 131 |
3.2 Vorgehensmodelle und Standards | 134 |
3.3 Konflgurationsmanagement | 136 |
3.3.1 Produkt und Lebenszyklus | 136 |
3.3.2 Varianten und Skalierbarkeit | 137 |
3.3.3 Versionen und Konfigurationen | 138 |
3.4 Projektmanagement | 141 |
3.4.1 Projektplanung | 141 |
3.4.2 Projektverfolgung und Risikomanagement | 146 |
3.5 Lieferantenmanagement | 147 |
3.5.1 System- und Komponentenverantwortung | 147 |
3.5.2 Schnittstellen fiir die Spezifikation und Integration | 148 |
3.5.3 Festlegung des firmenubergreifenden Entwicklungsprozesses | 148 |
3.6 Anforderungsmanagement | 150 |
3.6.1 Erfassen der Benutzeranforderungen | 150 |
3.6.2 Verfolgen von Anforderungen | 154 |
3.7 Qualitatssicherung | 155 |
3.7.1 Integrations- und Testschritte | 155 |
3.7.2 MaBnahmen zur Qualitatssicherung von Software | 156 |
4 Kernprozess zur Entwicklung von elektronischen Systemen und Software | 159 |
4.1 Anforderungen und Randbedingungen | 160 |
4.1.1 System- und Komponentenverantwortung | 160 |
4.1.2 Abstimmung zwischen System- und Software-Entwicklung | 161 |
4.1.3 Modellbasierte Software-Entwicklung | 163 |
4.2 Grundbegriffe | 163 |
4.2.1 Prozesse | 163 |
4.2.2 Methoden und Werkzeuge | 164 |
4.3 Analyse der Benutzeranforderungen und Spezifikation der logischen Systemarchitektur | 165 |
4.4 Analyse der logischen Systemarchitektur und Spezifikation der technischen Systemarchitektur | 168 |
4.4.1 Analyse und Spezifikation steuerungs- und regelungstechnischer Systeme | 172 |
4.4.2 Analyse und Spezifikation von Echtzeitsystemen | 173 |
4.4.3 Analyse und Speziflkation verteilter und vernetzter Systeme | 174 |
4.4.4 Analyse und Spezifikation zuverlassiger und sicherer Systeme | 175 |
4.5 Analyse der Software-Anforderungen und Spezifikation der Software-Architektur | 176 |
4.5.1 Spezifikation der Software-Komponenten und ihrer Schnittstellen | 176 |
4.5.2 Spezifikation der Software-Schichten | 179 |
4.5.3 Spezifikation der Betriebszustande | 180 |
4.6 Spezifikation der Software-Komponenten | 181 |
4.6.1 Spezifikation des Datenmodells | 182 |
4.6.2 Spezifikation des Verhaltensmodells | 183 |
4.6.3 Spezifikation des Echtzeitmodells | 185 |
4.7 Design und Implementierung der Software-Komponenten | 187 |
4.7.1 Berucksichtigung der geforderten nichtfunktionalen Produkteigenschaften | 188 |
4.7.2 Design und Implementierung des Datenmodells | 190 |
4.7.3 Design und Implementierung des Verhaltensmodells | 191 |
4.7.4 Design und Implementierung des Echtzeitmodells | 192 |
4.8 Test der Software-Komponenten | 192 |
4.9 Integration der Software-Komponenten | 193 |
4.9.1 Erzeugung des Programm- und Datenstands | 194 |
4.9.2 Erzeugung der Beschreibungsdateien | 195 |
4.9.3 Erzeugung der Dokumentation | 196 |
4.10 Integrationstest der Software | 197 |
4.11 Integration der Systemkomponenten | 198 |
4.11.1 Integration von Software und Hardware | 198 |
4.11.2 Integration von Steuergeraten, SoUwertgebern, Sensoren und Aktuatoren | 199 |
4,12 Integrationstest des Systems | 201 |
4.13 Kalibrierung | 204 |
4.14 System- und Akzeptanztest | 204 |
5 Methoden und Werkzeuge in der Entwicklung | 207 |
5.1 Offboard-Schnittstelle zwischen Steuergerat und Werkzeug | 208 |
5.2 Analyse der logischen Systemarchitektur und Spezifikation der technischen Systemarchitektur | 210 |
5.2.1 Analyse und Speziflkation steuerungs- und regelungstechnischer Systeme | 210 |
5.2.2 Analyse und Speziflkation von Echtzeitsystemen | 214 |
5.2.3 Analyse und Speziflkation verteilter und vernetzter Systeme | 220 |
5.2.4 Analyse und Spezifikation zuverlassiger und sicherer Systeme | 225 |
5.3 Speziflkation von Software-Funktionen und Validation der Speziflkation | 232 |
5.3.1 SpeziHkation der Software-Architektur und der Software-Komponenten | 234 |
5.3.3 Spezifikation des Verhaltensmodells mit Blockdiagrammen | 238 |
5.3.4 Spezifikation des Verhaltensmodells mit Entscheidungstabellen | 241 |
5.3.5 Spezifikation des Verhaltensmodells mit Zustandsautomaten | 244 |
5.3.6 Spezifikation des Verhaltensmodells mit Programmiersprachen | 249 |
5.3.7 Spezifikation des Echtzeitmodells | 249 |
5.3.8 Validation der Spezifikation durch Simulation und Rapid-Prototyping | 249 |
5.4 Design und Implementierung von Software-Funktionen | 261 |
5.4.1 Beriicksichtigung der geforderten nichtfunktionalen Produkteigenschaften | 261 |
5.4.2 Design und Implementierung von Algorithmen in Festpunkt- und Gleitpunktarithmetik | 269 |
5.4.3 Design und Implementierung der Software-Architektur | 284 |
5.4.4 Design und Implementierung des Datenmodells | 288 |
5.4.5 Design und Implementierung des Verhaltensmodells | 291 |
5.5 Integration und Test von Software-Funktionen | 294 |
5.5.1 Software-in-the-Loop-Simulationen | 295 |
5.5.2 Laborfahrzeuge und Priifstande | 297 |
5.5.3 Experimental-, Prototypen- und Serienfahrzeuge | 303 |
5.5.4 Design und Automatisierung von Experimenten | 304 |
5.6 Kalibrierung von Software-Funktionen | 305 |
5.6.1 Arbeitsweisen bei der Offline- und Online-Kalibrierung | 306 |
5.6.2 Software-Update durch Flash-Programmierung | 308 |
5.6.3 Synchrones Messen von Signalen des MikrocontroUers und der Instrumentierung | 309 |
5.6.4 Auslesen und Auswerten von Onboard-Diagnosedaten | 309 |
5.6.5 Offline-Verstellen von Parametern | 310 |
5.6.6 Online-Verstellen von Parametern | 311 |
5.6.7 Klassifizierung der Offboard-Schnittstellen fiir das Online-Verstellen | 312 |
5.6.8 IManagement des CAL-RAIM | 317 |
5.6.9 Management der Parameter und Datenstande | 320 |
5.6.10 Design und Automatisierung von Experimenten | 321 |
6 Methoden und Werkzeuge in Produktion und Service | 323 |
6.1 Offboard-Diagnose | 324 |
6.2 Parametrierung von Software-Funktionen | 325 |
6.3 Software-Update durch Flash-Programmierung | 326 |
6.3.1 Loschen und Programmieren von Flash-Speichern | 327 |
6.3.2 Flash-Programmierung iiber die Offboard-Diagnoseschnittstelle | 327 |
6.3.3 Sicherheitsanforderungen | 328 |
6.3.4 Verfiigbarkeitsanforderungen | 330 |
6.3.5 Auslagerung und Flash-Programmierung des Boot-Blocks | 331 |
6.4 Inbetriebnahme und Prufung elektronischer Systeme | 333 |
7 Zusammenfassung und Ausblick | 335 |
Literaturverzeichnis | 337 |
Abkurzungsverzeichnis | 343 |
Sachwortverzeichnis | 345 |