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
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
8.3 KiB
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 |