In den folgenden Abschnitten werden Methoden für Systems Engineering und die Entwicklung von Systemarchitektur beschrieben.
Haftungsausschluss: Die Dokumentation stammt nicht aus einem realen Projekt, sondern wurde von mir erstellt, um die Methoden für die Entwicklung eines Embedded-Systems zu schulischen Zwecken zu veranschaulichen.
Daher ist diese Dokumentation weder vollständig noch durch die Tests überprüft.
Die Beispiele sind nicht vollständig und können nicht eins zu eins auf eigene Produkte übertragen werden. Sie zeigen aber die prinzipielle Vorgehensweise und können, nach entsprechender Anpassung an die Projekt-Gegebenheiten, im eigenen Projekt angewandt werden.
Inhaltsverzeichnis
Für wen ist dieser Artikel?
Ziel des Artikels: | Einführung in das praxisorientierte Beispiel für Fensterheber-ECU-Systemarchitektur |
Artikelzielgruppe: | Interessenten aus der Automotive-Welt, welche Methoden für System-Engineering und Systemarchitektur näher kennenlernen möchten |
Sprache: | technisch und Automotive mit vielen spezifischen Begriffen |
Empfohlene Vorkenntnisse: | ASPICE [1], ISO 26262 [2], ISO/SAE 21434 [3], UML, Automotive-Umfeld, Englisch |
Hilfsmittel: | Vokabular, Standards und Normen, *1), *2) |
Lesedauer: | ca. 30 Minuten |
*1) Um Grafiken zu vergrößern, benutzen Sie die rechte Maustaste und die Option: “Bild in neuem Tab öffnen”.
*2) Nummern in eckigen Klammern z. B. [5] sind die Quellenangaben.
System-Engineering und Systemarchitektur
In den folgenden Abschnitten werden die Ansätze und Methoden für das System-Engineering und die Entwicklung der Systemarchitektur gezeigt.
Diese Methoden können von den idealerweise optimalen Methoden abweichen, wenn die Umgebungsbedingungen, Möglichkeiten und Ziele des Entwicklungsteams sowie letztlich des zu entwickelnden Produkts zu schnelleren und effizienteren Prozessen führen.
Die Auswertungen und Analysen sind zwar methodologisch korrekt, aber nicht vollständig und, wie das Beispiel der HARA-Auswertung zeigt, absichtlich modifiziert (hier z. B. um das Thema: Funktionale Sicherheit anzusprechen).
Funktionalität des Fensterheber-ECU (vereinfachte Funktion/Anforderungen)
Die Systemarchitektur wird aus Anforderungen abgeleitet. In den folgenden Abschnitten wird die Funktion eines Fensterheber-ECU beschrieben, die theoretisch in einem Fahrzeug implementiert werden kann. Dabei beschreibt die Funktion nicht alle Anforderungen und enthält nur rudimentäre Systemelemente ohne Details wie Diagnoseinformationen, Updates etc.
Das Fensterheber-ECU (Elektronisches Steuergerät) steuert die Bewegung des Fahrzeugfensters, damit Fahrzeuginsassen das Fenster durch Drücken einer Taste heben oder senken können. Das elektronische Steuergerät überwacht die Schalter für Fahrer- oder Beifahrereingaben, treibt den Fensterhebermotor an und stoppt die Bewegung, sobald das Fenster vollständig geöffnet oder geschlossen ist oder ein anderes Kommando vom Bediener erfolgt.
Das Steuergerät muss zudem Hindernisse erkennen, beispielsweise eine Hand oder einen Fremdkörper, den Fenstermotor anhalten und das Fenster um 15 cm nach unten bewegen, um Verletzungen oder Schäden zu verhindern.
Der Abstand zwischen der Unterkante der Fensteröffnung und der Oberkante beträgt 40 cm. Die Fensterbewegungsgeschwindigkeit soll 10 cm/s betragen.
Die Fensterhebersoftware soll mittels CAN Unified Diagnostic Services (UDS) flashbar sein und Diagnosen unterstützen (dieser Aspekt ist nicht im Fokus dieses Artikels).
Außerdem benötigt ein richtiges Steuergerät die Speicherung von Daten in einem nichtflüchtigen Speicher. Solche Daten wie Parameter, interne Variablen, Fehlerzustände etc. können gespeichert werden (dieser Aspekt ist nicht im Fokus dieses Artikels).
Zusammengefasst umfasst die Fensterheber-ECU-Elektronik, den Motortreiber, Sensoren zur Fensterpositionsbestimmung (möglicherweise Hallsensoren oder Strommessungen) und Kommunikationsschnittstellen zu anderen Steuergeräten über CAN oder LIN. Die Software steuert den Fensterlauf, detektiert die Hindernisse und überwacht den Steuergerätebetrieb.
Eine Anleitung, wie die Systemanforderungen formuliert werden, findet sich in diesem Artikel finden: Anforderungsmanagement-Methode nach dem “Strict Decomposition (SDEC)”-Prinzip.
Teilweise sind die Systemanforderungen (SYS.2) bereits vorhanden.
High-Level-Systemarchitektur
Nachdem die Systemanforderungen weitestgehend geklärt sind, kann parallel zur weiteren Verfeinerung der Anforderungen mit der Machbarkeitsstudie gestartet werden. Entsprechend den Vorgaben werden die erforderlichen Systemkomponenten – etwa Mikrocontroller, ICs und weitere Bauteile – untersucht und aus der am Markt verfügbaren Vielfalt ausgesucht.
Um eine allgemeine Vorstellung davon zu erhalten, wie ein solches System aufgebaut sein kann, erstellen wir eine High-Level-Systemarchitektur, in der zunächst eine mögliche Realisierung skizziert wird – ohne dabei ins Detail zu gehen, was die einzelnen Systemkomponenten und Architekturentscheidungen betrifft. Diese High-Level-Systemarchitektur wird im Laufe des Projekts kontinuierlich weiterentwickelt. Im weiteren Verlauf erkläre ich, wie dies in der Praxis umgesetzt wird.
Auf dem vereinfachten Diagramm kann man die zentralen Komponenten eines theoretischen Fensterheber-ECU erkennen. Diese Darstellung ist bewusst vereinfacht und enthält noch keine detaillierte Aufteilung in verschiedene Disziplinen. So besteht der Fenstermotor aus einem Hardware- sowie einem mechanischen Anteil, während der Mikrocontroller sowohl einen Hardware- als auch einen Softwareanteil umfasst.
Des Weiteren zeigt dieses Diagramm nicht sämtliche Verbindungen und Module, sondern bietet lediglich eine vereinfachte Übersicht. Um den Rahmen dieses Artikels nicht zu sprengen, werden im Folgenden lediglich ausgewählte Komponenten und ihre Wechselwirkungen behandelt.
Angenommen, das Bedienfeld für die Fensteransteuerungstasten sowie der Fenstermotor inklusive Getriebe werden von einem anderen Lieferanten entwickelt, so verbleibt für uns die Steuerelektronik.
Aufteilung in Untersysteme
Es erscheint sinnvoll, das gesamte System in zwei Untersysteme aufzuteilen, aus folgenden Gründen:
- Mehr Flexibilität in Abmessungen:
- Mehr Flexibilität hinsichtlich der Abmessungen:
In einer Fahrzeugtür herrscht meist Platzknappheit, weshalb zwei kleinere Gehäuse einfacher unterzubringen sind als ein großes.
- Mehr Flexibilität hinsichtlich der Abmessungen:
- Modularität:
- Das Haupt-PCB (H_PCB) gewährleistet einen reibungslosen Ablauf von Diagnosefunktionen und der Kommunikation mit dem Fahrzeug, während das Fenstermotorsteuerungs-PCB (FMS_PCB) die DC-Motorsteuerung übernimmt.
- Wartbarkeit und Wiederverwendbarkeit:
- Während die DC-Motorsteuerung über einen langen Zeitraum ihre Funktionalität beibehält, können sich die Anforderungen an die Fahrzeugarchitektur häufiger ändern. Das FMS_PCB bleibt jedoch konstant, was Entwicklungs- und Testaufwände reduziert.
Die zwei Untersysteme können folgendermaßen aussehen: ein Haupt-PCB (H_PCB) und ein Fenstermotor-PCB (FMS_PCB).
Im weiteren Verlauf werden wir uns mit dem FMS_PCB auseinandersetzen.

Auswahl der Systemkomponenten
Wir gehen nun zur Auswahl der Systemkomponenten. In diesem Schritt werden gemäß den Anforderungen die Hardware-Komponenten ausgesucht. Hier finden sich Systemkomponenten, welche speziell für FSM_PCB bestimmt sind.
In unserem Beispiel konzentriere ich mich ausschließlich auf die wesentlichen Bauteile (Systemkomponenten).
In einem Industrieprojekt soll verifiziert werden, ob:
- die Bauteile während des gesamten Produktlebenszyklus verfügbar sind,
- notwendige Automotive-Qualifikationen vorhanden sind (AEC-Q100, ASIL etc.).
Es wurde nicht überprüft, ob auf dem Markt besser geeignete Bauteile verfügbar sind. Das Ziel dieses Artikels ist, euch mit der Methodologie vertraut zu machen, anhand deren ein Automotive-System aus der Sicht des System-Engineerings entwickelt werden kann. Das Pinning des Mikrocontrollers wurde nicht hinsichtlich aller erforderlichen Funktionen überprüft. In der Praxis wird dieser Schritt durchgeführt, sobald alle angeschlossenen Peripheriegeräte bekannt sind.
In der folgenden Liste sind die Komponenten aufgeführt, die aus technischer Sicht geeignet wären, um das FMS_PCB sowie den DC-Motor zu realisieren:
Funktion in der Schaltung: | Bezeichnung: | Beschreibung: | Kommentar: |
getrennter Treiber für H-Brücke, ersetzt durch internen Treiber im TLE9879QXA40 (die Mikrocontroller haben integrierten Treiber) | |||
PWM-Motor Treiber | IAUA120N04S5N014 [5] | MOSFET | – Technische Daten: 40V / 120A |
PWM-Motor Treiber | TLI4971 [6] | Stromsensor | – kann bis zu 120 A messen und hat Self-Diag-Modus (Chapter 7: Diagnosis Mode) – 3.3V Spannungsversorgung |
PWM-Motor Treiber | NTHS [7] | Temperatursensor | keine |
Hall-Sensor | TLE4941 [8] | Hall-Sensor | Durch das Motorgetriebe sendet der Hall-Sensor (z. B. 1840) Pulse für eine komplette Fensterbewegung. Somit ergibt sich eine Frequenz bei 40 cm Fensteröffnung und 4 s Laufzeit: 460 Hz. |
DC-Motor | DC-Motor 31×42 [9] | DC-Motor | Wird als Teil vom FMS_PCB in der Dokumentation betrachtet, obwohl der Motor, Getriebe und angehängte Sensoren ein externes zu FMS_PCB-Subsystem sind. |
Mikrocontroller | TLE9879QXA40 [10], [11] | Mikrocontroller mit integriertem H-Brücke-Treiber | – 32-bit-Arm Cortex-M3 Architektur – 128-KB-Flash, 6 kByte RAM – 40 MHz max. Taktung – MOSFET-Treiber inklusive Ladungspumpe, mit PWM-Unterstützung – Single power supply from 5.5 V to 27 V – 2x full-duplex seriale Schnittstellen (UART) mit LIN-Unterstützung (für UART1) – 10 general-purpose I/O Ports (GPIO) – 5 analog inputs, 10-bit A/D Converter (ADC1) – 50 µA Stromverbrauch im Schlafmodus – LIN ist Wake-up-Quelle und kann nicht konfiguriert werden – keine MPU |
W | Ausgefallen, da TLE9879QXA40 einen HW-Watchdog mit einem unabhängigen Clock hat. – 18µA Stromverbrauch – 5V to 40V Eingangsspannung |
Hier ist ersichtlich, dass der PWM-Motor-Treiber TLE7182EM während der Recherche aus der Liste ausgeschlossen wurde, da der Mikrocontroller TLE9879QXA40 bereits über einen integrierten H‑Brücken‑Treiber verfügt.
Außerdem wird kein externer Watchdog mehr benötigt, da der Mikrocontroller über einen Hardware‑Watchdog verfügt, der mit einer separaten Taktung ausgestattet ist (siehe [10], Kapitel 5.4).
System-Schnittstellen – Schnittstellen zur Außenwelt des Systems und zwischen Subsystemen
Die Schnittstellen des ECU bestimmen die Betriebsumgebung und damit den Betriebskontext, in dem das ECU betrieben werden soll. Das Fensterheber-ECU wird über eine 12-V-Batterie mit Strom versorgt. Die auf dem Mikrocontroller laufende Software tauscht die Statusinformationen, Fensterposition, das aktuelle Kommando sowie weitere Signale über das CAN-Netzwerk mit anderen ECUs aus.
Die beiden Subsysteme (H_PCB und FMS_PCB) tauschen Informationen mittels einer LIN-Verbindung aus.
Schnittstellen nach außen:
CAN-Signale:
- CAN_WindState
- Aktueller Status des Fahrzeugfensters an das BCM ECU
- Stromversorgung: 12 V-Batterie
Schnittstellen zwischen PCBs:
LIN-Signale:
- Nachricht: H_PCB_ComReq, Signal: UsrCmd
- Kommando vom Bedienfeld
- Sender: H_PCB; Empfänger: FMS_PCB
- Kommando vom Bedienfeld
- Nachricht: FMS_PCB_Response, Signal: WindState
- Aktueller Status vom Fahrzeugfenster
- Sender: FMS_PCB; Empfänger: H_PCB
- Aktueller Status vom Fahrzeugfenster
Die SICI-Bus-Kommunikation wird für die Kommunikation zwischen dem Mikrocontroller und dem Stromsensor TLI4971 verwendet.
Bei modernen Fahrzeugen könnte das Fensterheber-ECU in einen komplexen Body-Domain-Controller integriert sein, der die Kommunikationsleitungen mit anderen Komfort-Domäne-ECUs (z. B. Sitzverstellung, Spiegelanpassung, Innenbeleuchtung) teilt.
An dieser Stelle werden die IDs für einzelne Signale und Nachrichten (CAN und LIN) nicht zugewiesen. Die Kommunikationsmatrix ist sehr vereinfacht dargestellt.
Funktionale Dekomposition für Systemarchitektur
Ein wichtiger Bestandteil der Systementwicklung und Systemarchitektur ist die funktionale Dekomposition, basiert auf den Systemanforderungen. Nachdem die Anforderungen umfassend analysiert sind, werden die funktionalen Gruppen in Software, Hardware und Mechanik gebildet. In diesem Beispiel wird die Mechanik nicht berücksichtigt, da sie nicht im Fokus dieses Dokumentes steht.
In unserem Beispiel vom Fensterheber-ECU können wir folgende Funktionen auf Systemebene bündeln:
- UserSignCtrl:
- Funktion für die Verarbeitung von Benutzersignalen wie Schalter und Tasten.
- WindowCtrl:
- Funktion für die Steuerung des Fenstermotors.
- AntiPinchCtrl:
- Funktion zum Einklemmschutz.
- DiagCtrl:
- Fehlerbehandlung (aber nicht die Reaktion) und Diagnose.
- CANCntrl:
- Funktion zur CAN-Kommunikation.
- LINCntrl:
- Funktion zur LIN-Kommunikation.
In der funktionalen Dekomposition an der Stelle liegt der Fokus auf prinzipieller Vorgehensweise während der Systementwicklung und nicht auf der vollständigen Erfassung aller Details.
Die untenstehende Tabelle zeigt die Systemfunktionen und dazugehörigen Software- und Hardwarefunktionen mit kurzer Beschreibung.
Systemfunktion: | HW-Funktion: | SW-Funktion: |
UserSignCtrl – Verarbeitung von Benutzersignalen (vom Tastenfeld) | UserSignCtrl_hw – e.g. AD-Wandler Pin Beschaltung | UserSignCtrl_sw – Verarbeitung von Eingangs-/Ausgangssignalen vom Benutzer |
WindowCtrl – Fensterbewegungssteuerung | WindowCtrl_hw – H-Brücke zur Ansteuerung des Fenstermotors – Hall-Sensor für Fensterpositionsbestimmung | WindowCtrl_sw – Steuerung des Motors über PWM-Signal – Regelung der Motorposition – Regelung der Motorgeschwindigkeit |
AntiPinchCtrl – Anti-Pinch Funktion (Hinderniserkennung) | AntiPinchCtrl_hw – Stromsensor für Anti-Pinch Funktion (ergänzend zum Hall-Sensor für Anti-Pinch Funktion) | AntiPinchCtrl_sw – Anti-Pinch Funktion Implementierung anhand der Stromänderung und Hall-Sensor Updatefrequenz am Stromsensor |
DiagCtrl – Fehlerbehandlung und Diagnose | DiagCtrl_hw – Schutzschaltung für Spannung- und Strombegrenzung etc. – Spannungsregler für Steuerlogik und Spannungsversorgung – HW-Watchdog | DiagCtrl_sw – Fehlerspeicher und ECU-Zustandsüberwachung – UDS-Kommunikation – Stromversorgungsüberwachung und Schutz – Triggern vom HW-Watchdog |
BatCtrl – Stromversorgungsschutz und -überwachung | BatCtrl_hw – Stromversorgungsüberwachung und Schutz | N/A (wird in DiagCtrl_sw implementiert) |
CANComCtrl – Kommunikationsfunktion für CAN | CANComCtrl_hw – CAN-Kommunikation (CAN Transceiver, Pull-ups etc.) | CANComCtrl_sw – CAN-Kommunikation Implementierung |
LINComCtrl – Kommunikationsfunktion für LIN | LINComCtrl_hw – LIN-Kommunikation (Transceiver, Pull-ups etc.) | LINComCtrl_sw – LIN-Kommunikation Implementierung |
Funktionale Allokation zu physikalischen Elementen in der Systemarchitektur
Dadurch, dass das Gesamtsystem Fensterheber-ECU in zwei Untersysteme unterteilt ist, müssen die einzelnen Funktionen auch den jeweiligen Teilsystemen zugeordnet werden. Als Beispiel kann man Funktionen: UserSignCtrl und AntiPinchCtrl nehmen. Die Funktion UserSignCtrl wird sowohl auf dem Haupt-PCB (H_PCB) als auch auf dem Fenstermotorsteuerung-PCB (FMS_PCB) (siehe Diagramm: Fensterheber ECU) ausgeführt.
Die Funktion AntiPinchCtrl wird hingegen ausschließlich auf dem FMS_PCB ausgeführt. Somit ergeben sich folgende Funktionen:
Systemfunktion: | HW-Funktion Haupt-PCB: | HW-Funktion Fenstermotor-PCB: | SW-Funktion Haupt-PCB: | SW-Funktion Fenstermotor-PCB: |
UserSignCtrl | H_PCB_UserSignCtrl_hw – HW-Auswertung vom User-Bedienfeld – Steuereinheit (µC-H_PCB) für Auswertung und Signalweiterleitung | N/A | H_PCB_UserSignCtrl_sw – Erfassung der User-Eingaben vom Tastenfeld – Weiterleitung des User-Signals an FMS_PCB über LIN – Einlesen von Rückmeldung vom FMS_PCB (Status) | N/A |
WindowCtrl | N/A | FMS_PCB_WindowCtrl_hw – Steuereinheit (µC-FMS_PCB) für Fensterbewegungssteuerung – H-Bridge Steuerung | N/A | FMS_PCB _WindowCtrl_sw – Erfassen vom Benutzersignal vom µC-H_PCB – Steuerung von PWM-Signalen für H-Bridge – Rückmeldung von aktuellen Zuständen an µC-H_PCB über LIN |
LINComCtrl | H_PCB_LINComCtrl_hw – LIN-Treiber | FMS_PCB_LINComCtrl_hw – LIN-Treiber (Teil vom µC) | H_PCB_LINComCtrl_sw – LIN-Kommunikation | FMS_PCB_LINComCtrl_sw – LIN-Kommunikation |
AntiPinchCtrl | N/A | FMS_PCB_AntiPinchCtrl_hw – Hall-Sensor – Stromsensor – Steuereinheit (µC-FMS_PCB) für Auswertung | N/A | FMS_PCB_AntiPinch_sw – Detektierung von Hindernissen anhand von Strommessung und aktueller Fensterposition |
DiagCtrl | H_PCB_DiagCtrl_hw – HW-Watchdog – Strom- und Spannungsmessschaltungen | FMS_PCB_DiagCtrl_hw – HW-Watchdog – Temperatur, Strom und Spannungsmessschaltungen | H_PCB_DiagCtrl_sw – HW-Watchdog triggern – Auswertung Strom und Spannung | FMS_PCB_DiagCtrl_sw – HW-Watchdog triggern – Auswertung von Temperatur, Strom, Spannung |
Auf dem Blockdiagramm unten sind die Systemkomponenten den entsprechenden Funktionen zugeordnet. Das unterstützt den weiteren Entwicklungsvorlauf, indem sichergestellt wird, dass die Funktionen exakt an den vorgesehenen Stellen umgesetzt werden.
Darüber hinaus erleichtert die Übersicht der Systemarchitektur die präzise Beschreibung der Funktionen.

An dieser Stelle möchte ich betonen, dass die Darstellung im Diagramm stark vereinfacht ist. Im projektorientierten Blockdiagramm als Systemübersicht sind weit mehr Informationen enthalten – beispielsweise Hinweise darauf, ob die Komponenten in Hardware (HW), Software (SW) oder Mechanik (ME) umgesetzt werden – sowie zahlreiche weitere Details, die hier ausgelassen wurden.
Falls Interesse an der Entwicklung eines ECU besteht und Sie professionelle Unterstützung suchen, nehmen Sie bitte mit mir Kontakt auf.
Systemarchitektur – FMS_PCB
Aktuell liegt das FMS_PCB im Fokus der Dokumentation unten. Wir betrachten das FMS_PCB als ein eigenständiges System.
In den folgenden zwei Absätzen werden Beispiele für statische und dynamische Aspekte aus ASPICE: “SYS.3 System Architectural Design” sowie die entsprechenden Anforderungen für ein System gemäß ISO 26262 dargestellt.
Statische Systemarchitektur – FMS_PCB
Im unten stehenden Diagramm ist die statische Ansicht der FMS_PCB-Systemarchitektur dargestellt. Alle Hardware- und Softwaresystemkomponenten sowie ihre Schnittstellen sind hier ersichtlich. Der Softwareanteil (Software-Funktionen) ist dem Mikrocontroller TLE9879QXA40 zugeordnet.
Damit sind zwar die Anforderungen für statische Aspekte aus ASPICE nicht vollständig abgedeckt, lässt sich jedoch relativ leicht aus den oben dargestellten Daten und diesem Diagramm ableiten.
Das Diagramm berücksichtigt jedoch nicht die Aspekte der funktionalen Sicherheit und Cybersecurity; dazu wird später noch mehr erläutert.

Dynamische Systemarchitektur – FMS_PCB
Um das dynamische Verhalten in der FMS_PCB-Systemarchitektur vollständig abzudecken, wird der Umfang dieses Dokumentes definitiv nicht ausreichen. Hier konzentrieren wir uns auf die Funktion zur “Hinderniserkennung”. Obwohl die Hinderniserkennungsfunktion sich hauptsächlich aus Untersuchung der HARA (Hazard and Risk Analysis), siehe unten: ISO 26262 Funktionale Sicherheit – HARA (Hazard and Risk Analysis) [2] ergibt, möchte ich diese Funktion hier beschreiben, weil sie eine der wichtigsten Funktionen im Steuergerät hinsichtlich der Funktionalen Sicherheit ist.
In diesem Diagramm gibt es keine Beschreibung für Power-States des FMS_PCB, daher wird hier angenommen, dass FMS_PCB schon mit Strom versorgt, aktiviert (wach) ist und sich im “normal mode” befindet. Das “normal mode” ist ein Zustand, bei dem:
- eine LIN-Kommunikation möglich ist,
- Kommandos vom Benutzer erkannt und umgesetzt werden,
- keine Fehler am FMS_PCB vorhanden,
- alle sonstigen Funktionen sind voll funktionsfähig.

Die Kommunikation zwischen den Systemelementen verläuft asynchron, während synchrone Vorgänge nur innerhalb einer Komponente stattfinden.
Die Diagnosekopplungen (z. B. aktueller Zustand des H-Bridge) für das Auslesen der Elementenzustände sind hier nicht berücksichtigt.
Im Prinzip gibt es drei unterschiedliche Interaktionsarten im System:
- mittels Software-Signalen (z. B. LIN, HSI-Ansteuerung etc.)
- mittels elektrischer Signale (z. B. PWM-Ansteuerung vom DC-Motor)
- mittels mechanischer Kräfte (z. B. Getriebeübersetzung vom DC-Motor)
Wichtige Ergänzungen zum System-Engineering und Systemarchitektur
Die hier kurz angesprochenen statischen und dynamischen Aspekte des Systems-Engineerings sind zwar nicht vollständig. Auf Basis dieser Informationen kann jedoch relativ leicht jede Funktion umgesetzt werden. Es gibt allerdings noch einige Themen, die hier vollständig ausgelassen wurden, aber für das Systems-Engineering wesentlich sind.
Hier sind einige Punkte, welche zum System-Engineering gehören:
- Performance-Anforderungen (max. RAM, max. ROM, max. CPU-Load)
- Anforderungen für die Umgebungsbedienung während des Produktlebenszyklus, für Produktion, Wartung und Stilllegung
- Anforderungen für die Wiederverwendbarkeit im Produkt
- “proven-in-concept”
- “make-or-buy”
- Vor- und/oder Nachteile von diesen Ansätzen
- Anforderungen für die Laufzeiten von CPU und Bussystemen
- Bewertung von alternativen Ansätzen
- Produktionsdaten (Teilenummer, Firmware-Update, Kalibrierung, Parametrierung, Authentifizierung)
- auch möglich: Fertigungsprozesse wie Bestückungsrichtlinien, Lötverfahren, Prüfpunkte
- Prozessunterstützung für Produktionsanlagen: automatisierter Flashprozess, Testsysteme, Inbetriebnahme, Zusammenbau
Ein wichtiger Punkt sind auch die ausgelassenen Einschränkungen, die aus Umweltbedingungen resultieren. Z. B. sollte experimentell ermittelt werden, welchen Einfluss Temperatur und Alterung auf die Gummidichtung des Fensters haben. Es kann sein, dass die Parametrierung (oder Kalibrierung) des Steuergeräts diese Temperatureinflüsse und Alterungseffekte berücksichtigen muss.
Hardware-Software-Interface (HSI), Hardware-Software-Schnittstellendefinition
Das Hardware-Software-Interface (HSI) dient als Schnittstellendefinition zwischen Software und Hardware. Es stellt ein zentrales Element der Softwarearchitektur dar. Ein Beispiel hierfür wäre ein analog-digitaler Pin am Mikrocontroller und die Softwarefunktion (oder das Signal), welches diesen Pin steuert oder ausliest.
Folgende Attribute können an der Stelle berücksichtigt werden:
- Req-ID: einzigartige Objekt-ID
- Signalname: Name eines Signals
- µC-Pin: Markierung eines Pins am Mikrocontroller
- SW-Sig: Name eines SW-Signals
- Funktion: Name der zugeordneten Funktion
- Port_Typ: Typ des Ports: GPIO, ADC, LIN
- Sig_Richt: Signalrichtung: Input, Output
- Status: draft, in_progress, done, approved
- ASIL: QM, ASIL B
- WB: Wertebereich: z. B. 0..120
- Timing: Update-Zeit
- etc.
Req-ID: | Signalname: | µC-Pin: | SW-Sig: | Funktion: | Port_Typ: | Sig_Richt: | ASIL: | WB: | Timing: |
HSI_REQ_1 | CURR_MON | PX.1 | FMS_MotorCurr_raw_mA_SV | – H-Brücke (DC-Motor) Strom | ADC 10 bit | IN | ASIL B | 0..50000 mA (siehe Handbuch: TLI 4971) | 5 ms |
HSI_REQ_2 | 12V_MON | PX.2 | FMS_BatVolt_raw_V_SV | – Spannung der H-Brücke | ADC 10 bit | IN | ASIL B | 0..30 V Spannungsteiler: 0 V -> 0 V 5 V -> 30 V | 5 ms |
HSI_REQ_3 | TEMP_HBRD | PX.3 | FMS_THbrdg_raw_C_SV | – Temperatur der H-Brücke | ADC 10 bit | IN | ASIL B | -40..125 °C (siehe Handbuch: NTHS | 100 ms |
HSI_REQ_4 | U_MOTOR | PX.4 | FMS_MotorSpann_raw_V_SV | – Spannung am DC-Motor | ADC 10 bit | IN | ASIL B | 0..30 V Spannungsteiler: 0 V -> 0 V 5 V -> 30 V | 5 ms |
HSI_REQ_5 | UCNTR | PX.5 | FMS_MotorHall_raw_Nbr_SV | – Hall-Pulse von DC-Motorgetriebe | GPIO | IN | ASIL B | 1 Pulse / Umdrehung der Getriebe | event_trigg |
HSI_REQ_6 | HBRG_EN | PX.6 | FMS_HBrgEn_State | – Steuerung der H-Brücke | GPIO | OUT | ASIL B | 0 -> OFF 1 -> ON | event_trigg |
… | … | … | … | … | … | … | … | … | … |
Die Tabelle enthält nicht die Beschreibung für die LIN- und SICI-Kommunikationsmatrix. Des Weiteren fehlt die Beschreibung des Start-Up- und Go-to-Sleep-Verhaltens sowie andere Leistungsmodi.
Bezug auf Anforderungen aus ASPICE und ISO 26262
Der Standard ASPICE fordert eine gründliche Dokumentation von Anforderungen, Designelementen, Verifikationsaktivitäten und eine kontinuierliche Prozessverbesserung. Der Standard ISO 26262 verlangt von der Entwicklung, die funktionale Sicherheit systematisch zu durchdenken und umzusetzen. Das Ziel von ISO 26262 ist es, Verletzungen von Personen sowie Sachschäden zu verhindern, indem Mechanismen geschaffen werden, die Situationen vermeiden, in denen Hardware- oder Softwarefehler zu gefährlichen Personenverletzungen oder größeren Sachschäden führen können.
Im Fall des Fensterheber-ECU kann ein Fenster menschliche Körperteile einklemmen und somit zu Verletzungen führen.
Nachdem die Systemanalyse durchgeführt und die Systemgrenzen definiert wurden, erstellen die Safety Engineers zusammen mit dem Entwicklungsteam eine HARA (Hazard Analysis & Risk Assessment)-Dokumentation. Danach wird ein bestimmtes ASIL (Automotive Safety Integrity Level) für das Steuergerät zugeordnet. Es werden die FSRs (Functional Safety Requirements) definiert und abschließend das TSC (Technical Safety Concept)-Dokument erstellt.
ISO 26262 – HARA (Hazard and Risk Analysis)
*1) siehe unten (Tabelle: HARA-Gefährdungsmatrix)
Haftungsausschluss:
- Die Kategorisierung von S, E und C in der HARA-Auswertung unten ist absichtlich fehlerhaft bewertet, da sonst zum Thema: Funktionale Sicherheit in diesem Demo-Projekt nicht viel zu sagen wäre. Ich habe bewusst unzutreffende Annahmen getroffen. Wir orientieren uns aber auch später an dieser Bewertung.
- Eine korrekte Bewertung finden Sie in dem Kapitel: Beispiel: Hazard Analysis and Risk Assessment (HARA). Dort wird das FMS_PCB-System als QM-System kategorisiert, weil richtigerweise die S, E, und C-Attribute niedriger zu bewerten sind.
- Falls die vom schließenden Fenster maximale angewendete Kraft so niedrig ist, dass die Einklemmung der Person nicht schaden kann. Den Studien entsprechend wird einem Fenstersteuergerät QM oder seltener ASIL A zugewiesen.
- Dies ist keine genaue und vollständige HARA-Analyse. Auch die FSC (FSR) und TSC (TSR) sind nicht umfassend dargestellt. Um eine vollständige HARA-Analyse durchzuführen, müssen die Anforderungen aus ISO 26262 Teil: 3 bezüglich HARA umgesetzt werden. Das Gleiche betrifft auch FSC (ISO 26262 Teil: 3) und TSC (ISO 26262 Teil: 4). Diese Abschnitte dienen ausschließlich den schulischen Zwecken, um darauf aufbauend Sicherheitsanforderungen abzuleiten.
An dieser Stelle möchte ich einen Teil der HARA-Analyse erläutern, und zwar das Hazard Identification (Identifikation der Gefährdungen). Das Hazard Identification ist der wichtigste Bestandteil der HARA-Analyse, aus der die Safety Goals sowie die Functional Safety Requirements (FSRs) abgeleitet werden. Die HARA-Analyse spielt eine zentrale Rolle während der Entwicklung der Systemarchitektur.
Auf der Tabelle unten sind die Teilergebnisse der HARA aufgeführt.
Gefährdung | Ursache / Gefährdungssituation | Schweregrad (Sevirity) | Häufigkeit (Exposure) | Kontrollierbarkeit (Controllability) | ASIL Level | Beschreibung |
---|---|---|---|---|---|---|
(G1) Einklemmen von Personen (Körperteile) | Hindernis wird nicht erkannt, z. B. durch fehlerhafte Sensorik (Hall-Sensor, Stromsensor) oder Systemausfall | S3*1 | E3*1 | C2*1 | ASIL B | Kritische Sicherheitsfunktion, da direkte Gefahr für Personen besteht. |
(G2) Fehlerhafte Kommunikation (LIN/CAN) | Verlust oder Verzögerung von Steuerkommandos zwischen H- und FMS_PCB µC | S0 | nicht relevant | nicht relevant | QM | Anti-Pinch-Funktion ist autark (läuft auf FMS_PCB) und unabhängig von der Kommunikation. |
(G3) Leistungsprobleme (Spannungs-/Stromverlust) | Ausfall der Stromversorgung oder Spannungseinbrüche | S0 | nicht relevant | nicht relevant | QM | Bei Stromverlust stoppt der Motor (Spannungsüberwachung), keine Fensterbewegung und somit kein Einklemmen möglich. |
(G4) Fensterbewegung ohne Nutzerinteraktion | Unerwünschte Bewegungen durch Steuerfehler, EMV-Störungen oder Softwarefehler | S0 | nicht relevant | nicht relevant | QM | Anti-Pinch-Funktion bleibt unabhängig aktiv, Einklemmen wird weiterhin verhindert. |
Hier sind die Gefährdungen zusammengefasst, welche potenzielle theoretische Risiken darstellen können. Anhand der aktuellen Systemarchitektur haben wir entschieden, dass die Anti-Pinch-Funktion komplett autark auf dem FMS_PCB-Mikrocontroller implementiert wird. Die Gefährdungen (G2), (G3) und (G4) sind als nicht relevant einzustufen, da das Fehlverhalten dort nicht zu einer Verletzung führen kann.
Sie werden jedoch in der HARA-Auswertung erwähnt, da ISO 26262 die vollständige Analyse der Gefährdungen verlangt und in der Anfangsphase des Konzepts nicht abschließend geklärt ist, ob diese Gefährdungen möglicherweise doch relevant sind. Mit der vollständigen Liste soll außerdem demonstriert werden, dass alle möglichen Gefährdungen analysiert wurden.
Die QM-eingestuften Gefährdungen erhalten keine Einstufung in der Kontrollierbarkeit (C); der Schweregrad (S) wird auf 0 gesetzt, da das Fehlverhalten nicht zu einer Verletzung führen kann. In diesem Fall spielt auch die Exposition (E) logischerweise keine Rolle.
Entsprechend dem Standard ISO 26262 soll aus einer Gefährdung ein Sicherheitsziel (Safety Goal) und die entsprechende funktionale Sicherheitsanforderung ausgearbeitet werden:
Gefährdung: | Safety Goal: | Fault Tolerant Time Interval (FTTI): | FSRs: |
(G1) Einklemmen von Personen (Körperteile) | Safety Goal 1 (SG1): Das System muss Einklemmen von Körperteilen und Gegenständen durch die Fensterbewegung verhindern. | 100 ms | FSR1: siehe unten in Kapitel: FSC |
In der Tabelle: HARA-Gefährdungsmatrix sehen wir, dass kein Sicherheitsziel verletzt wird, wenn ein Fehler in den LIN-Signalen auftritt. Damit jedoch die LIN-Funktion (G2) und (G4) als QM eingestuft werden kann, muss Freedom From Interference (FFI) nachgewiesen werden. Streng genommen kann kein Nachweis für FFI erbracht werden, da dieser Mikrocontroller über keine MPU-Einheit verfügt.
Ein alternativer Einsatz wäre, die Akzeptanz für ASIL B nachzuweisen, wenn die Software-Entwicklung folgende Maßnahmen umsetzt:
- Statische Trennung von Speicherbereichen durch Linker-Skript
- Task-Überwachung, Watchdog-Überwachung
- Datenintegritätsprüfung
Das Gleiche gilt auch für die Überwachung der Stromversorgung (G3).
Die Systementwicklung soll als Basis die HARA-Auswertung heranziehen.
Systemfunktion: | ASIL: | HW-Funktion Haupt-PCB: | ASIL: | HW-Funktion Fenstermotor-PCB: | ASIL: | SW-Funktion Haupt-PCB: | ASIL: | SW-Funktion Fenstermotor-PCB: |
UserSignCtrl | QM | H_PCB_UserSignCtrl_hw | NA | N/A | QM | H_PCB_UserSignCtrl_sw | NA | N/A |
WindowCtrl | NA | N/A | ASIL B | FMS_PCB_WindowCtrl_hw | NA | N/A | ASIL B | FMS_PCB_WindowCtrl_sw |
LINComCtrl | QM | H_PCB_LINComCtrl_hw | QM | FMS_PCB_LINComCtrl_hw | QM | H_PCB_LINComCtrl_sw | QM | FMS_PCB_LINComCtrl_sw |
AntiPinchCtrl | NA | N/A | ASIL B | FMS_PCB_AntiPinchCtrl_hw | NA | N/A | ASIL B | FMS_PCB_AntiPinch_sw |
DiagCtrl | QM | H_PCB_DiagCtrl_hw | ASIL B | FMS_PCB_DiagCtrl_hw | QM | H_PCB_DiagCtrl_sw | ASIL B | FMS_PCB_DiagCtrl_sw |
Auf dem unten dargestellten Diagramm ist das FMS_PCB zusammen mit sämtlichen Kommunikationsverbindungen zwischen den Systemkomponenten ersichtlich.
Sobald die Sicherheitsanforderungen ausgearbeitet wurden, kann man aus systemischer Perspektive die “kritischen Pfade” markieren, die für die Aufrechterhaltung sicherheitskritischer Funktionen verantwortlich sind.

Die Mikrocontroller-Interfaces sind in Hardware-Software-Interface (HSI) definiert. Für die Funktionsschnittstellen werden “interne” Signale definiert. Nachfolgend finden Sie die Liste von internen Signalen:
- HBRG_CURR_STATE: Status von Strommessungen von H-Brücke (bzw. DC-Motor); wird für Hinderniserkennung benötigt
- UCNTR_F: Update-Frequenz vom Hall-Sensor; wird für Hinderniserkennung benötigt
- OBST_DET: Hinderniserkennungssignal, welches für Fenstersteuerung benötigt wird
- DIAG_ERR: Signal für Safe-State, es signalisiert, dass für die Funktionssicherheit relevante Signale einen Fehler aufweisen
- WND_MOT_CTRL: Signal für Fensterbewegungssteuerung vom Benutzer (vom H_PCB)
- WIND_STATE: Fensterstatus Signal, welches an H_PCB gesendet wird
Zu beachten: In einem realen Projekt müssen die Pins des Mikrocontrollers (aus dem HSI) den jeweiligen Ports (Schnittstellen) zugeordnet werden. An dieser Stelle wurde dieser Schritt ausgelassen.
Die Funktionen können zu diesem Zeitpunkt nicht zu 100 % dem spezifischen ASIL zugeordnet werden, da bisher nicht bekannt ist, ob und wie auf der Ebene der Softwarearchitektur Maßnahmen wie Dekomposition oder Koexistenz umgesetzt werden.
ISO 26262 – Functional Safety Concept (FSC)
Das Functional Safety Concept (FSC) hat folgende Ziele:
- Definition von Degradierungsfunktion (Degradation)
- Zeitliche Detektierung von FS-relevanten Fehlern (Berücksichtigung des FTTI)
- Definition von FS-Anforderungen
- Definition von Safe State(s)
- Erstellung eines Validierungsplans
Wir konzentrieren uns hier auf die Erstellung von FSC-Anforderungen für SG1. Hier werden wir nur die Anforderungen ohne zugehörige Attribute und Rückverfolgbarkeit definieren, wie es im Artikel Anforderungsmanagement beschrieben ist. Es ist zu beachten, dass die Anforderungen auf einer höheren Abstraktionsebene definiert werden und keine Implementierungsdetails enthalten.
- FMS_PCB soll eine Hinderniserkennungsfunktion für Fensterbewegung nach oben implementieren.
- Wenn FMS_PCB ein Hindernis erkennt, soll FMS_PCB die Fensterbewegung nach oben stoppen und eine Umkehrbewegung 15 cm nach unten ausführen.
- Operation Mode: “normal mode”
- FTTI: 100 ms
- Safe State (Sicherer Zustand): SS1 (Safe State: 1 – Fensterbewegung stoppt)
- Redundancy (Redundanz): 2 Sensoren für die Fensterbewegungsauswertung (Stromsensor und Hall-Sensor)
- Fault Avoidance (Fehlervermeidung):
- FMS_PCB soll für Hinderniserkennung zwei unabhängige Sensor-Werte benutzen.
- FMS_PCB soll für die Strommessung einen Stromsensor benutzen.
- FMS_PCB soll für die Fensterpositionsbestimmung und Fenstergeschwindigkeitsbestimmung einen Hall-Sensor benutzen.
- Fault Detection (Fehlerdetektierung):
- FMS_PCB soll die Fensterbewegung nach oben stoppen, wenn ein Fehler am Stromsensor oder Hall-Sensor detektiert wird. FMS_PCB soll in SS1 übergehen.
- FMS_PCB soll die Fensterbewegung nach oben stoppen, wenn ein FS-relevanter Fehler auftritt, und FMS_PCB soll in SS1 übergehen.
- Degradation Function (Degradationsfunktion):
- Wenn FMS_PCB ein sicherheitsrelevanter Fehler detektiert, soll FMS_PCB die Fensterbewegung nach oben nur im “manual mode” mit einer maximalen Geschwindigkeit von 3 cm/s durchführen.
- Wenn FMS_PCB Fehler bei beiden Sensoren: Strom- und Hall-Sensor detektiert, soll FMS_PCB keine Fensterbewegung nach oben mehr ausführen und in SS1 übergehen.
ISO 26262 – Technical Safety Concept (TSC)
Das Technical Safety Concept verfolgt die Ziele:
- Spezifizierung von technischen Anforderungen für:
- Relevante Anforderungen für Funktionale Sicherheit,
- Einschränkungen,
- Eigenschaften von Systemelementen und
- Schnittstellen von Systemelementen
- Definition der Sicherheitsmechanismen,
- Festlegung der Sicherheitsanforderungen für Betrieb, Produktion und Aufrechterhaltung,
- Überprüfung, ob die Anforderungen die Funktonale Sicherheit erfüllen,
- etc.
Es gibt zahlreiche Anforderungen an den TSC gemäß ISO 26262-4, Kapitel 6. Hier werden wir nur eine kleine Untermenge dieser Anforderungen kurz ansprechen. Obwohl alle Zielpunkte des TSC für das Konzept wichtig sind, möchte ich einige Punkte hervorheben. Meiner Meinung nach verdienen insbesondere die Sicherheitsmechanismen und die Kriterien für die Koexistenz einen tieferen Einblick.
Als Grundlage für die Definition von Sicherheitsmechanismen dienen die HARA, das Functional Safety Concept (FSC) und die Systemarchitektur. Auf dem Diagramm „Systemarchitektur: Fenstermotorsteuerung FMS_PCB und kritische Pfade“ sind die Signalpfade des Stromsensors „CURR_MON“ und des Hall-Sensors „USHHS“ gekennzeichnet.
Wir gehen davon aus, dass die Hardware-Analyse bereits durchgeführt wurde. Sowohl die “Evaluation of the hardware architectural metrics” als auch die “Evaluation of safety goal violations due to random hardware failures” sind erfolgt. Daraus abgeleitete Maßnahmen wurden mit dem TSC synchronisiert.
Es ist zu beachten, dass die LIN-Funktion aufgrund der Koexistenzregelung (nach ISO 26262) eine Wrapper-Schicht benötigt.
Dazu sollen folgende Software-Sicherheitsmechanismen (gemäß [ISO 26262-4, 6.4.2.1]) definiert werden:
- – Detektierung von Fehlern, Indikation und Fehler-Handling
- – Mechanismen für das Erreichen von Safe-State (Sicherer Zustand)
definiert und umgesetzt werden:
- Fehlerdetektion am Hall-Sensor (TSC-Anforderungen):
- Wenn FMS_PCB SW ein Kurzschluss- oder Open-Load-Fehler vom Hall-Sensor detektiert, soll FMS_PCB SW in SS1 übergehen.
Die TSC-Anforderungen können auf der SW-Ebene weiter detailliert werden:
- Fehlerdetektierung am Hall-Sensor (SW-Anforderungen):
- Das FMS_PCB SW soll Kurzschlussfehler am Hall-Sensor detektieren.
- Wenn FMS_PCB SW ein Kurzschlussfehler detektiert, soll ein Fehlereintrag “Hall-Sensor Fehler: Kurzschluss” im NvM gespeichert werden.
- Wenn FMS_PCB SW ein Kurzschlussfehler detektiert, soll ein FMS_PCB SW ins SS1 übergehen.
- Das FMS_PCB SW soll Open-Load-Fehler am Hall-Sensor detektieren.
- Wenn FMS_PCB SW ein Open-Load-Fehler detektiert, soll ein Fehlereintrag “Hall-Sensor Fehler: Open-Load” im NvM gespeichert werden.
- Wenn FMS_PCB SW ein Open-Load-Fehler detektiert, soll ein FMS_PCB SW ins SS1 übergehen.
- Das FMS_PCB SW soll Kurzschlussfehler am Hall-Sensor detektieren.
Die TSC-Anforderungen vom Stromsensor beschreiben mehr Diagnosemöglichkeiten als die Diagnose von Hall-Sensor. Hier wird davon angenommen, dass alle diese Maßnahmen aus entsprechenden Analysen für ASIL B-Erfüllung notwendig sind.
- Fehlerdetektierung am Stromsensor (TSC-Anforderungen):
- Wenn FMS_PCB SW während des Selbst-Tests vom Stromsensor beim Start-up, oder Stromsensortemperaturmessung oder Stromsensor-EEPROM-Datenüberprüfung ein Fehler detektiert, soll FMS_PCB SW in SS1 übergehen.
- Fehlerdetektierung am Stromsensor (SWE-Anforderungen):
- Das FMS_PCB SW soll Selbstdiagnose vom Stromsensor während Start-up initiieren.
- Wenn FMS_PCB SW während Selbstdiagnose vom Stromsensor einen Fehler detektiert, soll ein Fehlereintrag “Stromsensor Fehler: Selbstdiagnose Fehler” im NvM gespeichert werden.
- Wenn FMS_PCB SW während der Selbstdiagnose vom Stromsensor einen Fehler detektiert, soll FMS_PCB SW in SS1 übergehen.
- Das FMS_PCB SW soll Stromsensortemperatur lesen.
- Wenn FMS_PCB SW die Übertemperatur am Stromsensor detektiert, soll FMS_PCB SW einen Fehlereintrag “Stromsensor Fehler: Übertemperatur” im NvM speichern.
- Wenn FMS_PCB SW die Übertemperatur am Stromsensor detektiert, soll FMS_PCB SW in SS1 übergehen.
- Das FMS_PCB SW soll die Stromsensor-EEPROM lesen und auf die Gültigkeit und Konsistenz von dort gespeicherten Daten mit CRC-Berechnung überprüfen.
- Wenn FMS_PCB_SW nach dem Auslesen von Stromsensor-EEPROM-Daten feststellt, dass der CRC-Wert von EEPROM-Daten nicht mit dem berechneten CRC-Wert übereinstimmt, soll FMS_PCB SW einen Fehlereintrag “Stromsensor Fehler: EEPROM CRC Fehler” im NvM speichern.
- Wenn FMS_PCB_SW nach dem Auslesen von Stromsensor-EEPROM-Daten feststellt, dass der CRC-Wert von EEPROM-Daten nicht mit dem berechneten Wert übereinstimmt, soll FMS_PCB SW in SS1 übergehen.
- Das FMS_PCB SW soll Selbstdiagnose vom Stromsensor während Start-up initiieren.
Ergänzend zu diesen Anforderungen könnte man noch Anforderungen für die Plausibilisierung von Benutzereingabe-, sowie den Hall-Sensor und Stromsensor-Daten und Motorspannung schreiben. Des Weiteren empfiehlt es sich, die Registerbelegung für die Peripheriekonfiguration zur Laufzeit zu überprüfen. Für die spätere Softwareumsetzung soll erwähnt werden, dass ASIL B-SW-Funktionen (Stromsensormessung und Hall-Sensor-Pulsmessung) im ASIL B-SW-Speicherbereich abgespeichert werden müssen (getrennt von QM-SW-Funktionen). Die ASIL B-SW-Funktionen sollen in priorisierten ASIL B-Tasks mit zeitlicher Ausführungsprüfung ausgeführt werden (Deadline Monitoring) etc.
Verbesserungsmöglichkeiten: Reaktion auf FS-relevante Fehler und Übergehen in SS1 sollte abgestimmt und durchgedacht implementiert werden.
ISO/SAE 21434 – TARA (Threat Analysis and Risk Assessment)
Da wir uns in diesem Dokument mehr auf die technischen Details konzentrieren, möchte ich hier nicht alle Anforderungen aus dem Standard ISO/SAE 21434 im Detail betrachten, sondern nur die technische Seite, die für die technische Umsetzung relevant ist.
Ergänzende Information aus ISO/SAE 21434 befindet sich in dem Artikel: ISO/SAE 21434 – Road Vehicles – Cybersecurity Engineering.
Im Standard ISO/SAE 21434 spielt die Threat Analysis und Risk Assessment (TARA) eine zentrale Rolle. In diesem Dokument werden die einzelnen Systemkomponenten betrachtet und auf die möglichen Angriffe analysiert. Ganz am Anfang ist es wichtig, eine Item-Definition entsprechend dem Kapitel: 9.3 durchzuführen. Dabei wird genau festgestellt, um welche Systemkomponente oder System es sich bei der Analyse handelt. Des Weiteren werden auch die Umgebungsbeteiligten, die zur Cyber-Sicherheit beitragen können, identifiziert. Als Ergebnis soll eine vorläufige Architektur erstellt werden, die für die Erfüllung dieser Aufgaben notwendig ist.
Auf dem Diagramm unten sieht man eine Preliminary Architecture (Vorläufige Architektur), die für die TARA-Analyse hilfreich sein kann.
Aus diesem Diagramm ist ersichtlich, dass das FMS_PCB bei der Analyse eine zentrale Rolle spielt. Die aus TARA ergebenden Maßnahmen, welche später erläutert werden, orientieren sich an dem FMS_PCB. Die Angriffspfade zeigen mögliche Angriffswege (mit Funktionsbeschreibung), welche für die potenziellen Angriffe benutzt werden können.
Die TARA-Analyse dient als Grundlage für die Implementierung von Cybersecurity-Maßnahmen in Hardware und Software während der Systemarchitekturentwicklung.

Zur Auswertung gehört auch eine Beschreibung der Operativer Umgebung. Hier sind die Punkte aus der Beschreibung:
Pos. Nr. | Beschreibung: |
1 | Fensterheber-ECU mit zwei Subsystemen. Das Fensterheber-ECU besteht aus zwei funktional zusammenhängenden, aber physikalisch getrennten Systemen: 1 – H_PCB – Punkt 3 2 – FMS_PCB – Punkt 2 |
2 | FMS_PCB (Hauptverantwortung) Teilsystem vom Fensterheber-ECU mit – einer LIN-Schnittstelle – Schnittstellen zur DC-Motor-Sensorik und zur DC-Motorsteuerung |
3 | H_PCB (Verantwortung vom Lieferanten) Teilsystem vom Fensterheber-ECU mit – CAN-Schnittstelle (Kommunikation im Komfort-CAN-Bereich) – Benutzertastenfeld-Schnittstelle für die Eingabe von Benutzerkommandos – LIN-Schnittstelle für das Weiterleiten von Benutzerkommandos an FMS_PCB |
4 | Benutzerkommandoschalter zum Bedienen von Fensterheberfunktion. |
5 | E-Fenstermotor (DC-Motor) für die Ansteuerung von Fensterbewegungen. |
.. | .. |
Aus dem Diagramm: “Fensterheber ECU – Elementdefinition und Elementgrenzen für TARA” ergeben sich folgende Angriffsmöglichkeiten:
- Angriff durch Benutzung von Debugger-Schnittstelle (SWD) zum Flashen von gefälschter Firmware
- Simulation des Benutzertastenfelds (Verantwortung liegt bei H_PCB), um die Fensterbewegung zu beeinflussen
- Angriff über den LIN-Bus, in dem die LIN-Signale vorgetäuscht werden, um die Fensterbewegung zu beeinflussen
- Simulation eines Diagnosetesters über den LIN-Bus, um die sicherheitskritischen Funktionen zu beeinflussen oder Diagnosedienste zu missbrauchen
- Angriff über OBD, um die Firmware zu aktualisieren oder Verhalten vom Fensterheber zu beeinflussen
Aus zeitlichen Gründen wurden in der TARA nicht alle Angriffspfade analysiert. Hier wird nur ein Asset (Wert) berücksichtigt:
- Datenkommunikation (LIN-Leitungstrennung zwischen H_PCB und FMS_PCB und Datenmanipulation durch verfälschte LIN-Nachrichten)
In der unten stehenden Tabelle ist eine tabellarische TARA-Analyse für den oben genannten Angriffspfad dargestellt.
Nachfolgend einige Erläuterungen zu einzelnen Punkten der Tabelle:
- Cybersecurity Property: Es werden nur Integrität und Verfügbarkeit sind ausgewählt.
- Impact Category: Funktionale Sicherheit sowie finanzieller Aspekt wurden nicht in Betracht genommen.
- WoO – Window of Opportunity: Es wurde ein Zwischenwert zwischen Moderate und Difficult gewählt, da für einen Angriff nicht nur ein Zugang zum Fahrzeug, sondern auch mechanische Manipulationen erforderlich sind.
- Risk value determination: O:2 ist zwar als niedrig eingestuft, entscheidet man trotzdem, eine Risikoreduzierung durchzuführen.
- Cybersecurity-Goal: kann eventuell weniger detailliert beschrieben werden.
Später sollen aus dem Cybersecurity-Goal die Anforderungen abgeleitet werden.

Aus der TARA-Auswertung können wir die Cybersecurity-Anforderungen ableiten:
- Die LIN-Kommunikation zwischen dem H_PCB und dem FMS_PCB soll mit 128-Bit-Passwort abgesichert werden.
- Ein gemeinsames 128-Bit-Passwort soll verteilt im Flash-Bereich des FMS_PCB gespeichert werden.
- Das FMS_PCB soll eine (pseudo) Zufallszahl generieren und an den H_PCB in einer LIN-Nachricht (ID: 0xE1) schicken.
- Das FMS_PCB soll generierte Zufallszahl zusammen mit 128-Bit-Passwort mittels Chaskey-MAC-Algorithmus zu einer Authentifizierungssignatur berechnen.
- Wenn eine LIN-Nachricht (ID: 0xE2) innerhalb der nächsten 100 ms empfangen wird und sowohl die empfangene als auch die berechnete Authentifizierungssignatur übereinstimmen, soll die LIN-Kommunikation weiterbetrieben werden.
- Wenn LIN-Nachricht (ID: 0xE2) in nächsten 100 ms nicht empfangen wird, dann soll das FMS_PCB in den SS1 übergehen.
- Wenn innerhalb von 100 ms die LIN-Nachricht (ID: 0xE2) empfangen wird, aber die Authentifizierungssignatur von dem H_PCB nicht mit der vom FMS_PCB berechneten Signatur übereinstimmt, soll das FMS_PCB in den Safe State SS1 übergehen und dort zeitlich inkrementell verbleiben, wenn die Fehlversuche nacheinander erfolgen:
- 1. Fehlversuch: 1 Sekunde
- 2. Fehlversuch: 4 Sekunden
- 3. Fehlversuch: 9 Sekunden
- 4. Fehlversuch: 15 Sekunden
- 5. Fehlversuch: 25 Sekunden
- 6. Fehlversuch: 30 Sekunden
- Wenn nach dem 6. Fehlversuch 30 Sekunden ablaufen, soll ein Reset des FMS_PCB-Mikrocontrollers durchgeführt werden.
Zusammenfassung und Ergänzungen
Obwohl die Methodik für das System-Engineering und die Systemarchitektur in den oberen Kapiteln nicht bis ins Detail behandelt wurde, sollte sie es ermöglichen, die prinzipielle Vorgehensweise an eigene Projekte anzupassen und zu integrieren.
Ein zusammenhängender Artikel, den ich empfehle, ist: Softwarearchitektur (Fensterheber-ECU), in dem die Methodik für die Erstellung der Softwarearchitektur erläutert wird.
Für jedes dieser Kapitel können Fragen entstehen. Daher bitte ich meine Leser, diese Fragen zu stellen. Ich werde versuchen, diese Fragen möglichst sachlich zu beantworten und hier zu veröffentlichen.
Abschließend werden hier die Punkte aufgeführt, die in einem realen Projekt eine wichtige Rolle spielen, in diesem Dokument jedoch ausgelassen sind.
Sicherheitskonzept: Das Sicherheitskonzept dient als Grundlage für die weitere Entwicklung des Produkts. Aus diesem Grund sollte man dem Sicherheitskonzept im Projekt besondere Aufmerksamkeit widmen.
Degradierungskonzept: Neben dem Sicherheitskonzept spielt das Degradierungskonzept ebenfalls eine wichtige Rolle.
Netzwerkkommunikation: Die für die LIN-Kommunikation (oder andere Kommunikationsarten) benötigten Daten sollten möglichst schnell geklärt werden.
Diagnose- (UDS-Dienste): In diesem Dokument werden sie komplett ausgelassen, sind jedoch für reale Projekte wichtig. Das Diagnoselastenheft sollte möglichst früh in den Anforderungen berücksichtigt werden.
Mechanik: In so einem Projekt, wie Fensterheber-ECU, spielt Mechanik eine große Rolle bei der Implementierung in allen Disziplinen (Software, Hardware und Mechanik). Hier sollten Faktoren wie die Alterung von Werkstoffen, Verformungen, Temperaturen usw. berücksichtigt werden. Durch Messungen, Versuche und Experimente wird bestimmt, wie der Fensterhebermotor abhängig von den Umgebungsbedingungen angesteuert werden soll.
Kalibrierung und Parametrierung: Für das System und die Software ist es wichtig, bereits zu Beginn eines Projekts zu wissen, welche Kalibrierungs- und Parametrierungsartefakten benötigt werden.
Produktionsdaten: Diese Daten sind ebenfalls wichtig und sollten frühzeitig geplant und abgestimmt werden.
Powermodi: Eine besondere Rolle spielen die Powermodi in einem modernen Projekt. Die Anforderungen an ein Steuergerät bezüglich des Stromkonsums und des Steuergerätverhaltens beim Start-Up bzw. Power-Down muss ebenfalls geklärt werden.
Fehlerdetektierung und Fehlermanagement: Das Fehlermanagement betrifft beide Disziplinen Software und Hardware und ist wichtig für die Erfüllung der ISO 26262-Anforderungen.
Sicherlich gibt es viel mehr Punkte, welche hier nicht aufgeführt sind, die in einem realen Projekt jedoch eine wichtige Rolle spielen. Wenn Sie eine Beratung und/oder eine Unterstützung in Ihrem Projekt im Bereich Systems Engineering benötigen:
Quellenangaben:
- [1] Automotive SPICE Process Assessment / Reference Model, Version 4.0
- [2] ISO 26262-1:2018Road vehicles — Functional safety
- [3] ISO/SAE 21434 Road vehicles — Cybersecurity engineering
- [4] TLE7182EM H-Bridge and Dual Half Bridge Driver IC
- [5] IAUA120N04S5N014 Automotive MOSFET OptiMOS™ 5 Power-Transistor
- [6] Current Sensor TLI4971
- [7] NTC Thermistors, SMD 0402, 0603, 0805, 1206 Chip
- [8] TLE4941C in PG-SSO-2-4 Differential Two-Wire Hall Effect Sensor-IC for Wheel Speed Applications
- [9] DC Motor 31 x 42 1.13.021.7XX
- [10] MOTIX™ TLE987x user manual rev. 1.91
- [11] MOTIX™ TLE9879QXA40 Rev. 2.11
- [12] MAX16997/MAX16998 High-Voltage Watchdog Timers with Adjustable Timeout Delay
Autor: Dipl.-Ing. Nachrichtentechnik (FH) Oleg Czaikowsky, den 14.03.2025