--- doc-id: SLM-EPB-SC-001 version: 1.0 status: Freigegeben datum: 2026-05-12 --- # Safety Case — demo-epb | Feld | Wert | |----------------|------------------------------------------------| | Projekt | demo-epb | | Dokument-ID | SLM-EPB-SC-001 | | Datum | 2026-05-12 | | Version | 1.0 | | Status | Freigegeben | | Norm | ISO 26262 Part 2 §6.5 + Part 6 §6 | | Erstellt von | Stefan Lohmaier | | Freigegeben von| (Safety Manager, im Realprojekt) | --- ## 1. Zweck Argumentation, dass das EPB-System die in der HARA identifizierten Sicherheitsziele erfuellt. Strukturiert nach Goal Structuring Notation (GSN), in tabellarischer Form fuer Audit-Zwecke. ## 2. Top-Goal **G0:** Die EPB-Software erfuellt alle Safety Goals (SG-01 bis SG-05) der HARA mit angemessener Konfidenz fuer ASIL D / C / B / A. ## 3. Argument-Struktur | Goal | Behauptung | Strategie | Evidenz | |------|------------------------------------------------------|------------------------------------------|------------------------------------------| | G0 | EPB erfuellt alle SG aus HARA | Decomposition nach SG | G1, G2, G3, G4, G5 | | G1 | SG-01 (kein ungewolltes Loesen) ist erfuellt | Architektonisch + Test + Review | SWA-002 + Tests + Code-Review | | G2 | SG-02 (kein ungewolltes Apply) ist erfuellt | Architektonisch + Plausibilisierung | SWA-002 standstill-check + Tests | | G3 | SG-03 (Schutz vor Ueberstrom) ist erfuellt | Architektonisch + Test | SWA-003 overcurrent-cutoff + Tests | | G4 | SG-04 (Hill-Hold-Uebergabe) ist erfuellt | Architektonisch + Sequenz-Test | SWA-001 + Tests | | G5 | SG-05 (Reaktionszeit) ist erfuellt | Performance-Messung + Test | Step-Timing-Tests | ## 4. Detail-Argumente ### G1 — SG-01: Kein ungewolltes Loesen **Argument:** | # | Aussage | Beleg | |---|-----------------------------------------------------------------------|--------------------------------------| | 1 | Apply Controller verlaesst APPLIED nur bei expliziter Release-Anforderung mit Vorbedingungen | `apply_controller.c` Zeile 95-110 (`case EPB_STATE_APPLIED`) | | 2 | Release-Vorbedingungen pruefen Engine + Brake + Gear | `release_preconditions_ok()` + SWE-005 | | 3 | Watchdog erkennt Apply-Controller-Hang und faellt in Safe State (APPLIED) | SWE-002 + Watchdog in SWA-001 | | 4 | Klemmkraft wird alle 50 ms verifiziert und bei Abfall nachgeregelt | SWE-001 + Test `test_applied_holds_force` | | 5 | Unit-Test deckt das Verhalten ab: `test_release_requires_preconditions` | `tests/unit/test_apply_controller.c` | **Konfidenz:** ASIL-D. Architektonische Trennung + Tests + 2 Reviewer. ### G2 — SG-02: Kein ungewolltes Apply waehrend Fahrt **Argument:** | # | Aussage | Beleg | |---|-----------------------------------------------------------------------|--------------------------------------| | 1 | Apply-Anforderung wird nur bei Stillstand (v < 0.5 km/h) angenommen | `apply_controller.c` `in->standstill` check | | 2 | Stillstand wird durch Wheel-Speed-Plausibilisierung von 4 Sensoren bestaetigt | SWE-022 + SWA-004 | | 3 | Plausibilisierung erkennt einzelnen Sensor-Fehler (Spreizung > 3 km/h) | SWE-023 | | 4 | Test deckt das Verhalten ab: `test_no_apply_without_standstill` | `tests/unit/test_apply_controller.c` | **Konfidenz:** ASIL-D. Sensor-Redundanz + Test + 2 Reviewer. ### G3 — SG-03: Schutz vor Aktor-Ueberstrom **Argument:** | # | Aussage | Beleg | |---|--------------------------------------------------------------------------------|------------------------------------| | 1 | Motorstrom wird mit 1 kHz abgetastet | `actuator_isr_1khz` + SWE-013 | | 2 | Bei > 8 A fuer > 100 ms wird der Motor abgeschaltet | `actuator_driver.c` Overcurrent-Logik + SWE-014 | | 3 | Nach Overcurrent ist `actuator_apply` blockiert (returns EPB_EOVERCURRENT) | Test `test_overcurrent_blocks_subsequent_apply` | | 4 | DTC wird gesetzt (Diagnostic Manager SWA-008) | SWE-014 (implicit DTC trigger) | **Konfidenz:** ASIL-A (Hazard H-05). Lokale Logik + Test. ### G4 — SG-04: Hill-Hold-Uebergabe **Argument:** | # | Aussage | Beleg | |---|---------------------------------------------------------------------------------|------------------------------------| | 1 | Hill-Hold wird aktiviert bei grade > 5%, v=0, Bremse | `safety_manager.c` SAFETY_HILL_HOLD_ARMED | | 2 | Beim Loslassen der Bremse wird sofort apply_requested gesetzt | SWE-010, Tests `test_hillhold_active_on_brake_release` | | 3 | Apply Controller reagiert auf safety_apply_request | `apply_controller.c` `apply_request_present()` | | 4 | Inclinometer ist tiefpass-gefiltert (Robustheit gegen Sensorrauschen) | SWA-005 + SWE-024 | **Konfidenz:** ASIL-C. Architektonisch + Tests + Filter. ### G5 — SG-05: Reaktionszeit **Argument:** | # | Aussage | Beleg | |---|---------------------------------------------------------------------------------|------------------------------------| | 1 | Apply Controller laeuft alle 50 ms | `apply_ctrl_step_50ms` | | 2 | Schalter wird in 50 ms entprellt (5 stable samples) | `switch_debouncer.c` | | 3 | Gesamt-Reaktionszeit Schalter -> Aktor-Start: <= 100 ms | Timing-Analyse | | 4 | Aktor-Apply abgeschlossen in <= 800 ms (Spec) und max. 1500 ms (Timeout) | Apply timeout, SWE-006 | **Konfidenz:** ASIL-B. Performance + Timeout. ## 5. Common-Cause / Common-Mode Folgende Common-Cause-Risiken wurden geprueft: | Risiko | Massnahme | |---------------------------------------|-------------------------------------------------------------| | Speicherfehler (Stack/Heap) | Statische Allokation, MISRA C 21.3 (kein Heap) | | Compiler-Bug | GCC qualifiziert (siehe Tool-Qualification-Report), MISRA-Check | | Konfigurations-Fehler | Build-Pipeline reproduzierbar, Version-pinning, CI-Verify | | Shared-State-Race | Single-Threaded Step-Funktionen, ISR-Trennung via Volatile | ## 6. Restrisiken Folgende Risiken bleiben: | Risiko | Bewertung | Begruendung | |----------------------------------------|--------------------------|------------------------------------| | Sensor-Drift Inclinometer ueber Jahre | Akzeptiert | Periodische Kalibrierung im Service-Manual | | EMV-Einfluss auf CAN | Auf System-Ebene gemildert | CAN ECU bietet eigene Fehlerbehandlung | | Aktor-Lebenszeit | Aussen-Verantwortung | Tier-1 Komponente, Datenblatt | ## 7. Aenderungshistorie | Version | Datum | Aenderung | Autor | |---------|-------------|-------------------------|----------------| | 0.1 | 2026-05-11 | Initialer Entwurf | S. Lohmaier | | 1.0 | 2026-05-12 | Erstfreigabe | S. Lohmaier |