Files
demo-epb/docs/safety-md/Safety-Case.md
T
Stefan Lohmaier c54a9c55d2
Validate / build-test (macos-latest) (push) Failing after 4s
Validate / build-test (windows-latest) (push) Failing after 15s
Validate / build-test (ubuntu-latest) (push) Failing after 15s
Validate / reports (push) Has been skipped
Release / release (push) Successful in 50s
feat: Vollstaendige Demo-Doku — Safety, Manuals, Reports, API-Doc
Neue Word-Dokumente (alle aus Markdown via pandoc):

Safety (docs/safety/):
- HARA.docx — Hazard Analysis & Risk Assessment, leitet ASIL-D ab
- Safety-Case.docx — Argumentation pro Safety Goal (GSN-Stil)
- FMEDA.docx — Pro-Komponente Failure Modes + Diagnostic Coverage
- MISRA-Compliance-Statement.docx — formaler MISRA-Nachweis
- Verification-Report.docx — V-Modell rechte Seite Zusammenfassung
- Tool-Qualification-Cppcheck.docx — Tool-Qual (TCL2/ASIL-D)

Manuals (docs/manuals/):
- User-Manual.docx — Fahrerhandbuch-Auszug
- Service-Manual.docx — Werkstatt-Doku mit UDS-DTCs

CI-Erweiterungen:
- Doxyfile + `make docs` — API-Dokumentation aus src/
- tools/generate_test_report.py + `make test-report` — Test-Summary HTML
- validate.yml: Doxygen + Test-Report als CI-Artefakte
- release.yml: alle Word-Docs + Engineering-Artefakte ins Release-Bundle

README:
- Komplette Tour durch alle Artefakte
- Repo-Struktur-Diagramm aktualisiert
2026-05-12 00:55:37 -07:00

8.3 KiB

doc-id, version, status, datum
doc-id version status datum
SLM-EPB-SC-001 1.0 Freigegeben 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