Suchen und Finden
Mehr zum Inhalt
Automotive Software Engineering - Grundlagen, Prozesse, Methoden und Werkzeuge effizient einsetzen
Zur Bedeutung von Software im Automobil
5
Standardisierung von Software und Entwicklungsmethoden
5
Vom Kostentreiber zum Wettbewerbsvorteil
5
Ausbildung als Chance und Herausforderung
5
Vorwort zur 4. Auflage
6
Beispiele aus der Praxis
7
Leserkreis
7
Danksagungen
7
Inhaltsverzeichnis
9
1 Einführung und Überblick
14
1.1 Das System Fahrer-Fahrzeug-Umwelt
15
1.1.1 Aufbau und Wirkungsweise elektronischer Systeme
15
1.1 .2 Elektronische Systeme des Fah rzeugs und der Umwelt
18
1.2 Überblick über die elektronischen Systeme des Fahrzeugs
19
1.2.1 Elektronische Systeme des Antriebsstrangs
21
1.2.1.1 Benutzerschnittstellen und Sollwertgeber
21
1.2.1.2 Sensoren und Aktuatoren
21
1.2.1.3 Software-Funktionen
21
1.2.1.4 Bauraum
22
1.2.1.5 Varianten und Skatierbarkeit
22
1.2.2 Elektronische Systeme des Fahrwerks
22
1.2.2.1 Benutzerschnittstellen und Sollwertgeber
23
1.2.2.2 Sensoren und Aktuatoren
23
1.2.2.3 Software-Funktionen
24
1.2.2.4 Bauraum
24
1.2.2.j Varianten und Skalierbarkeit
24
1.2.3Elektronische Systeme der Karo sserie
24
1.2.3.1 Benutzerschnittstellen und Sollwertgeber
25
1.2.3.2 Sensoren und Aktuatoren
25
1.2.3.3 Software-Funktionen
25
1.2.3.4 Bauraum
26
1.2.3.5 Varianten und Skalierbarkeit
26
1.2.4 Multi-Media-Systeme
26
1.2.5 Verteilte und ver netzte elekt ro nische Systeme
27
1.2.6 Zusammenfassung und Ausblick
28
1.3 Überblick über die logische Systemarchitekt ur
29
1.3.1 Funktions- und Steuergerätenetzwerk des Fahrzeugs
29
1.3.2 Logische Systemarchitektur für Steuerungs-Regelungs- und Überwachungssysteme
30
1.4 Prozesse in der Fahrzeugentwicklung
31
1.4.1 Überblick über die Fahrzeugentwicklung
31
1.4.2 Überblick über die Entwicklung von elektronischen Systemen
32
1.4.2.1 Trend von der Hardware zur Software
32
1.4.2.2 Kosten
33
1.4.2.3 Lange Produktlebenszyklen
33
1.4.2.4 Hohe und steigende Anforderungen an die Steherneit
34
1.4.3 Kernprozess zur Entwicklung von elektronischen Systemen und Software
35
1.4.4 Unterstützungsprozesse zur Entwicklung von elektronischen Systemen und Software
37
1.4.4.1 Kunden-Liejeranten-BezieJllIngen
38
1.4.4.2 Simultaneaus Engineering und verschiedene Entwicklungsumgehungen
38
1.4.5 Produktion und Service von elektronischen Systemen und Software
40
1.5 Methoden und Werkzeuge für die Entwicklung von Software für elektronische Systeme
40
1.5.1 Modellbasierte Entwicklung
41
1.5.2 Integrierte Qualitätssicherung
41
1.5.2.1 Richtlinien zur Qualitätssicherung
42
1.5.2.2 Maßnahmen zur Quatitatsprafung. Vatidienmg und Verifikation
42
1.5.3 Reduzierung des Entwicklungsrisikos
44
1.5.3.1 Frühzeitige Validierung von Software-Funktionen
44
1.5.3.2 Wiederverwendung von Software-Funktionen
45
1.5.4 Standardisierung und Automatisierung
45
1.5.4.1 Standardisierung
45
1.5.4.2 Automatisierung
46
1.5.5 Entwick lungsschritte im Fahrzeug
48
2 Grundlagen
49
2.1 Steuerungs- und regelungstechnische Systeme
49
2.1.1 Modellbildung
49
2.1.2 Blockschattbüder
50
2.2 Diskrete Systeme
54
2.2.1 Zeltdiskrete Systeme und Signale
55
2.2.2 Wertdiskrete Systeme und Signale
56
2.2.3 Zeit- und wertdiskrete Systeme und Signale
57
2.2.4 Zustandsautomaten
57
2.3 Eingebettete Systeme
59
2.3.1 Aufbau von Mikrocontrollern
60
2.3.2 Speichertechnologien
62
2.3.2.1 Schreib-lese-Speicher
63
2.3.2.2 Nicht läschbare Festwertspeicher
63
2.3.2.3 Wiederbeschreibbare Festwertspeicher
64
2.3.3 Programmierung von Mikrocontrollern
65
2.3.3.1 Programm- und Datenstand
65
2.3.3.2 Arbeitsweise von Mikrocontrollern
65
2.3.3.3 Hauptoperationen von Mikroconrrollern
66
2.3.3.4 Architektur und Bef ehlssalz von Mikroprozessoren
67
2.3.3.5 Architektur von Ein- und Ausgabeeinheuen
70
2.4 Echtzeitsysteme
72
2.4.1 Festlegung von Tasks
72
2.4.2 Festlegung von Echtzeitanforderungen
74
2.4.2.1 Aktivierungs- und Deadline-Zeitpunkt einer Taste
74
2.4.2.2 Harte und weiche Echtzeitariforderungen
75
2.4.2.3 Festlegung von Prozessen
76
2.4.3 Zustände von Tasks
76
2.4.3.1 Basis-Zustandsmodell für Tasks nach AUTOSAR-OS und OSEK-OS
76
2.4.3.2 Erweitertes Zustandsmodell für Tasks nach AUTOSAR-OS und OSEK-OS
77
2.4.4 Strategien für die Zuteilung des Prozessors
78
2.4.4.1 Zuteilung nach der Reihenfolge
79
2.4.4.2 Zuteilung nach einer Priorität
79
2.4.4.3 Zuteilung nach einer kombinierten Reihenfolge-Prioritäts-Strategie
79
2.4.4.4 Präemptive Zuteilung
80
2.4.4.5 Nichtpräempttve Zuteilung
80
2.4.4.6 Ereignis- und zeitgesteuerte Zuteilungsstrategien
81
2.4.5 Aufbau von Echtzeitbetriebssystemen
83
2.4.6 Interaktion zwischen Tasks
83
2.4.6.1 Synchronisation
84
2.4.6.2 Kooperation
85
2.4.6.3 Kommunikation
87
2.4.6.4. Interaktion zwischen Tasks in der logischen Systemarchitektur
89
2.5 Verteilte und vernetzte Systeme
89
2.5.1 Logische und technische Systemarchitektur
92
2.5.2 Festlegung der logischen Kommunikationsbeziehungen
93
2.5.2.1 Client-Server-Modell
93
2.5.2.2 Sender-Receiver-Modell
93
2.5.3 Fesrlegung der technischen Netzwerktopologie
95
2.5.3.1 Stermopologie
95
2.5.3.2 Ringtopologie
96
2.5.3.3 Linientopologie
96
2.5.4 Festlegung von Nachrichten
96
2.5.4.1 Adressierung
97
2.5.4.2 Kommunikationsmatrix
97
2.5.5 Aufbau der Kommunikation und des Netzwerkmanagements
97
2.5.5.1 Kommunikation nach AUTOSAR und OSEK
99
2.5.5.2 Netzwerkmanagement nach AUTOSAR und OSEK
100
2.5.6 Strategien für die Zuteilung des Busses
101
2.5.6.1 Zentral oder dezentral realisierte Strategie für den Buszugriff
102
2.5.6.2 Gesteuerte oder ungesteuerte Strategie für den Buszugriff
102
2.5.6.3 Ereignis- lind zeitgesteuerte Zugriffsstrategien
103
2.6 Zuverlässigkeit, Sicherheit, Überwac hung und Diagnose von Systemen
103
2.6.1 Grundbegriffe
104
2.6.2 Zuverlässigkeit und Verfügbarkeit von Systemen
105
2.6.2.1 Definition der Zuverlässigkeitsfunktion R(t) und der Ausfallrate .(t)
105
2.6.2.2 Definition der mittleren ausfallfreien Arbeitszeit MTTF
108
2.6.2.3 Definition der mittleren Ausfallzeit MTTR
108
2.6.2.4 Definition der mittleren Verfügbarkeit
109
2.6.3 Sicherheit von Systemen
109
2.6.3.1 Definition von Begriffen der Sicherheitstechnik
109
2.6.3.2 Ermittlung des Risikos
111
2.6.4 Überwach und und Diagnose von Systemen
112
2.6.4.1 Überwachung
112
2.6.4.2 Fehlererkennung
113
2.6.4.3 Fehlerbehandlung
114
2.6.4.4 Sicherheitslogik
115
2.6.4.5 Funktionale Sicherheit bei Software
116
2.6.5 Aufbau des Überwachungssystems elektronischer Steuergeräte
116
2.6.5.1 Funktionen zur Überwachung des Mikrocontrollers
117
2.6.5.2 Funktionen zur Überwachung der Sollwertgeber. Sensoren, Aktuatoren und der Steuerungs- und Regelungsfunktionen
118
2.6.6 Aufbau des Diagnosesystems elektronischer Steuergeräte
119
2.6.6.1 Offboard-Diagnosefunktionen
119
2.6.6.2 Onboard-Diagnosefunktionen
119
2.6.6.3 Sottwengeber- und Sensordiagnosefunktionen
120
2.6.6.4 Aktuatordiagnosefunktionen
121
2.6.6.5 Fehlerspeichermanager
122
2.6.6.6 Offboard-Diagnosekommunikation
123
2.6.6.7 Modellbasierte Fehlererkennung
123
2.7 Steuergerätenetzwerke
124
3 Unterstützungsprozesse zur Entwicklung von elektronischen Systemen und Software
126
3.1 Grundbegriffe der Systemtheorie
126
3.2 Vorgehensmodelle und Standards
129
3.3 Konfigurationsmanagement
131
3.3.1 Produkt und Lebenszyklus
131
3.3.2 Varianten und Skalierbarkeit
132
3.3.3 Versionen und Konfigurationen
133
3.4 Projektmanagement
136
3.4.1 Projektplanung
136
3.4.1.1 Qualitätsplanung
137
3.4.1.2 Kostenplanung
137
3.4.1.3 Terminplanung
138
3.4.1.4 Rollen und Aufgabengebiete in der Entwicklung
140
3.4.2 Projektverfolgung und Risikomanagement
141
3.5 Lieferantenman agement
142
3.5.1 System- und Komponentenverantwortung
142
3.5.2 Schnittstellen für die Spezifikation und Integration
143
3.5.3 Festlegung des firmenübergreifenden Entwicklungsprozesses
143
3.6 Anforderungsmanagement
145
3.6.1 Erfassen der Benutzeranforderungen
145
3.6.2 Verfolgen von Anforderungen
149
3.7 Qualitätssicherung
149
3.7.1 Integrations- und Testschritte
150
3.7.2 Maßnahmen zur Qualltätsstcherung von Software
151
4 Kernprozess zur Entwicklung von elektronischen Systemen und Software
152
4.1 Anforderungen und Randbedingungen
153
4.1.1 System- und Komponentenverantwortung
153
4.1.2 Abstimmung zwischen System- und Software-Entwicklung
154
4.1.3 Modellbasierte Software-Entwicklung
156
4.2 Grundbegriffe
156
4.2.1 Prozesse
156
·1.2.2 Methoden und Werkzeuge
157
4.3 Analyse der Benutzeranforderungen und Spezifikation derlogischen Systemarchitektur
158
4.4 Analyse der logischen Systemarchitektur und Spezifikation der technischen Systemarchitektur
161
4.4.1 Analyse und Spezifikation steuerungs- und regelungstechnischer Systeme
165
4.4.2 Analyse und Spezifikation von Echtzeitsystemen
166
4.4.3 Analyse und Spezifikation verteilter und vernetzrer Systeme
167
4.4.4 Analyse und Spezifikation zuvertässtger und sicherer Systeme
168
4.5 Analyse der Software-Anforderungen und Spezifikation der Software-Architektur
169
4.5.1 Spezifikation der Software-Komponenten und ihrer Schnittstellen
169
4.5.1.1 Spezifikation der Onboard-Schnittstellen
170
4.5.1.2 Spezifikation der Offboard-Schnittstellen
170
4.5.2 Spezifikation der Software-Schichten
171
4.5.3 Spezifikation der Betriebszustände
173
4.6 Spezifikation der Software-Komponenten
174
4.6.1 Spezifikation des Datenmodells
175
4.6.2 Spezifikation des Verhaltensmodells
176
4.6.2.1 Spezifikation des Datenflusses
176
4.6.2.2 Spezifikation des Kontrollflusses
177
4.6.3 Spezifikation des Echtzeitmodells
178
4.6.3.1 Zustandsabhängiges. reaktives Ausfühmngsmodell
178
4.6.3.2 Zustandsunabhängiges, reaktives Ausführungsmodell
179
4.7 Design und Implementierung der Software-Komponenten
180
4.7.1 Berücksichtigung der geforderten nichtfunktionalen Produkteigenschaften
181
4.7.1.1 Unterscheidung zwischen Programm- und Datenstand
181
4.7.1.2 Beschränkung der Hardware-Ressourcen
181
4.7.2 Design und Implementierung des Datenmodells
183
4.7.3 Design und Implementierung des Verhaltensmodells
184
4.7.4 Design und Implementierung des Echtzeitmodells
185
4.8 Test der Software-Komponenten
185
4.9 Integration der Software-Komponenten
186
4.9.1 Erzeugung des Programm- und Datenstands
187
4.9.2 Erzeugung der Bcschretbungsdatelen
188
4.9.3 Erzeugung der Dokumentation
189
4.10 Integrationstest der Software
190
4.11 Integration der Systemkomponenten
191
4.11.1 Integration von Software und Hardware
191
4.11.1.1 Download
191
4.11.1.2 Flash-Programmierung
192
4.11.2 Integration von Steuergeräten, Sollwertgebern, Sensoren und Aktuatoren
192
4.12 Integrationstest des Systems
194
4.13 Kalibrierung
197
4.14 System- und Akzeptanztest
198
5 Methoden und Werkzeuge in der Entwicklung
200
5.1 Offboard-Schnittstelle zwischen Steuergerät und Werkzeug
201
5.2 Analyse der logischen Systemarchitektur und Spezifikation der technischen Systemarchitektur
203
5.2.1 Analyse und Spezifikation steuerungs- und regelungstechnischer Systeme
203
5.2.2 Analyse und Spezifikation von Echtzeitsystemen
207
5.2.2.1 Zuteilbarkeitsanalyse
209
5.2.2.2 Verifikation der Zuteilbarkeit durch Messungen
212
5.2.2.3 Überwachung und Behandlung von Deadline-Verletzungen im Betriebssystem
212
5.2.3 Analyse und Spezifikation verteilter und vernetzter Systeme
213
5.2.4 Analyse und Spezifikation zuverlässiger und sicherer Systeme
218
5.2.4.1 Ausfallratenanalyse und Berechnung der Zuverlässigkeitsfunktion
218
5.2.4.2 Sicherheits- und Zuverlässigkeitsanalyse für das System
221
5.3 Spezifikation von Software-Funktionen und Validierung der Spezifikation
225
5.3.1 Spezifikation der Software-Architektur und der Software-Komponenten
227
5.3.1.1 Objektbasierte Modellierung der Software-Architektur
227
5.3.1.2 Spezifikation der Schnittste llen zum Echtzeitbetriebssystem mit Modulen
229
5.3.1.3 Spezifikation von wiederverwendbaren Software-Komponenten mit Klassen
230
5.3.2 Spezifikatio n des Datenmodells
231
5.3.3 Spezifikation des Verhaltensmodells mit Blockdiagrammen
231
5.3.3.1 Spezifikation arithmetischer Funktionen
231
5.3.3.2 Spezifikation Bootescher Funkttonen
234
5.3.4 Spezifikation des Verhaltensmodells mit Entscheidungstabellen
234
5.3.5 Spezifikation des Verhaltensmodells mit Zustandsautomaten
237
5.3.5.1 Spezifikation flacher Zustandsautomaten
237
5.3.5.2 Spezifikation von Übergängen mit Verzweigungen
240
5.3.5.3 Spezifikation hierarchischer Zustandsautomaten
241
5.3.6 Spezifikation des Verhaltensmodells mit Programmiersprachen
242
5.3.7 Spezifikation des Echtzeitmodells
242
5.3.8 Validierung der Spezifikation durch Simulation und Rapid-Prototyping
242
5.3.8.1 Simulation
244
5.3.8.2 Rapid-Prototyping
245
5.3.8.3 Horizontale und vertikale Prototypen
246
5.3.8.4 Zielsystemidentische Prototypen
250
5.3.8.5 Wegwerf- und evolutionäre Prototypen
251
5.3.8.6 Verifikation des Steuergeräts mit Referenzprototyp
252
5.4 Design und Implementierung von Software-Funktionen
254
5.4.1 Berücksichtigung der geforderten nichtfunktionalen Produkteigenschaften
254
5.4.1.1 Laufzeitoptimierung durch Berücksichtigung unterschiedlicher Zugriffszeiten auf verschidene Speichersegmente
254
5.4.1.2 Laufzeitopumierung durch Aufteilung einer Software-Funktionauf verschiedene Tasks
255
5.4.1.3 Ressourcenoptimierung durch Alljieilung in Online- und Offline-Berechnungen
256
5.4.1.4 Ressourcenoptimierung durch Aufteilung in Onboard- und Offboard- Berechnungen
257
5.4.1.5 Ressourcenoptimierung bei Kennlinien und Kennfeldern
259
5.4.2 Design und Implementierung von Algorithmen in Festpunkt- und Gleitpunktarithmetik
262
5.4.2.1 Darstellung von Zahlen in digitalen Prozessoren
262
5.4.2.2 Rundungsfehler bei der Ganzzahldivision
265
5.4.2.3 Über- und Unterlaufbei der Addition, Subtraktion und Multiplikation
266
5.4.2.4 Schiebeoperationen
267
5.4.2.5 Behandlung von Überläufen und Unterläufen
267
5.4.2.6 Fehlerfortpflanzung bei Algorithmen in Festpunktarithmetik
269
5.4.2.7 Physikalischer Zusammenhang und Festpunktarithmetik
271
5.4.2.8 Physikalische Modellebene und Implementierungsebene
273
5.4.2.9 Einige Hinweise zur Implementierung in Festpunktarithmetik
274
5.4.2.10 Einige Hinweise zur Implementierung in Gleitpunktarithmetik
276
5.4.2.11 Modellierungs- und Implementierungsrichtlinien
277
5.4.3 Design und Implementierung der Software-Architektur
277
5.4.3.1 Basis- und Anwendungs-Software
277
5.4.3.2 Standardisierung von Software-Komponenten der Basis-Software
278
5.4.3.3 Konfiguration von standardisierten Software-Komponenten
279
5.4.4 Design und Implementierung des Datenmodells
281
5.4.4.1 Festlegung des Speichersegments
281
5.4.4.2 Einstellung von Datenvarianten durch Flash-Programmierung
282
5.4.4.3 Einstellung von Datenvarianten durch Korftgurationsparameter
282
5.4.4.4 Generierung von Datenstrukturen und Beschreibungsdateien
283
5.4.5 Design und Implementierung des Verhaltensmodells
284
5.5 Integration und Test von Software-Funktionen
287
5.5.1 Software-in-the-Loop-Simulationen
288
5.5.2 Laborfahrzeuge und Prüfstände
290
5.5.2.1 Prüfumgebung für ein Steuergerät
290
5.5.2.2 Inbetriebnahme und Prüfumgebung für Steuergerät, Sollwertgeber, Sensoren und Aktuatoren
292
5.5.2.3 Inbetriebnahme und Prüfulmgebumg für ein Steuergeratenetzwerk
293
5.5.2.4 Prüfstand
294
5.5.3 Experimental-. Prototypen- und Serienfahrzeuge
296
5.5.4 Design und Automatisierung von Experimenten
297
5.6 Kalibrierung von Software-Funktionen
298
5.6.1 Arbeitsweisen bei der Offline- und Online-Kalibrierung
299
5.6.2 Software-Update durch Flash-Programmierung
301
5.6.3 Synchrones Messen von Signalen des Mikrocontrollers und der Instrumentierung
302
5.6.4 Auslesen und Auswerten von Onboard-Diagnosedaten
302
5.6.5 Offline-verstellen von Parametern
303
5.6.6 Online-Verstellen von Parametern
304
5.6.7 Klassifizierung der Offboa rd-Schnittstellen für das Online-Verstellen
305
5.6.7.1 Serielle. seriennahe Schnittstelle mit internem CAL-RAM (Methode 1)
306
5.6.7.2 Serielle Entwicklungsschnittsteile mit internem CAL-RAM (Methode 2)
307
5.6.7.3 Parallele Entwicklungsschnittstelle mit internem CAL-RAM (Methode 3)
308
5.6.7.4 Serielle. seriennahe Sehntustelle mitzusätzlichem CAL-RAM (Methode 4)
308
5.6.7.5 Serielle Entwicklungssctmiustette mit zusätzlichem CAL-RAM (Methode 5)
309
5.6.7.6 Parallele Entwicklungsschnittstelle mit zusätzlichem CAL-RAM (Methode 6)
309
5.6.7.7 Protokolle für die Kanunnnikatian zwischen Kalibrierwerkzeugen und Mikrocontrollern
310
5.6.8 Management des C AL-RAM
310
5.6.8.1 CAL-RAM-Management bei ausreichenden Speicherressourcen
311
5.6.8.2 CAL-RAM-Management bei eingeschränkten Speicherressourcen
311
5.6.9 Management der Parameter und Datenstände
313
5.6.9.1 Parametrierung der binären Programm-/Datenstandsdatei
314
5.6.9.2 Parametrierung des Modells oder des Quelleodes und Optimierung
314
5.6.10 Design und Automatisierung von Experimenten
314
6 Methoden und Werkzeuge in Produktion und Service
315
6.1 Offboard-Diagnose
316
6.2 Parametrierung von Software-Funktionen
317
6.3 Software-Update durch Flash-Programmierung
318
6.3.1 Löschen und Programmieren von Flash-Speichern
319
6.3.2 Flash-Programmierung über die Oftboard-Diagnoseschnittstelle
319
6.3.3 Slcherheltsanforderungen
320
6.3.4 Verfügbarkeltsanforderungen
322
6.3.5 Auslagerung und Flash-Programmierung des Boot-Blocks
323
6.4 Inbetriebnahme und Prüfung elektronischer Systeme
325
7 Zusammenfassung und Ausblick
326
Literaturverzeichnis
328
Abkürzungsverzeichnis
333
Sachwortverzeichnis
335
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.