Initial commit: demo-epb v1.0 — Elektrische Parkbremse Demo

Vollstaendige Demo des slohmaier Dev Process anhand einer EPB-Steuergeraet-
Software. Zeigt ASPICE 4.0 / ISO 26262-konforme Entwicklung im Monorepo.

Inhalte:
- 5 Plaene (PID, PM-, QA-, SWE-, Test-Plan) in Word, ausgefuellt mit
  EPB-spezifischen Inhalten
- 10 System-Anforderungen + 25 Software-Anforderungen (Doorstop-MD)
- 5 System-Architektur-Elemente + 10 Software-Architektur-Elemente
  mit PlantUML-Diagrammen und vollstaendigem Mapping
- 3 implementierte Komponenten (Apply Controller D, Actuator Driver B,
  Switch Debouncer QM) plus 7 Header-Stubs
- 28 Unit-Tests, alle gruen, mit Coverage- und MISRA-Build-Targets
- Audit-Artefakte: 1 Review-Protokoll, 1 Non-Conformity, 1 MISRA-Record
- Gitea-Actions-CI-Pipeline (validate.yml)
- Doorstop-Konfiguration fuer bidirektionale Traceability
- Generator-Skript fuer alle 50 Reqs/Arch-Elemente aus Strukturdaten
- README mit gefuehrter Tour fuer Prospects
This commit is contained in:
Stefan Lohmaier
2026-05-11 13:51:02 -07:00
commit 1855162e6d
92 changed files with 4116 additions and 0 deletions
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'Apply-Controller haelt Klemmkraft'
level: 1.1
normative: true
reviewed: null
links:
- SYS-001
asil: D
---
# SWE-001: Apply-Controller haelt Klemmkraft
Der Apply-Controller muss die Klemmkraft im Hold-Zustand alle 50 ms verifizieren und bei Abweichung > 10% nachregeln.
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'Watchdog ueberwacht Apply-Controller'
level: 1.2
normative: true
reviewed: null
links:
- SYS-001
asil: D
---
# SWE-002: Watchdog ueberwacht Apply-Controller
Ein unabhaengiger Watchdog muss die Liveness des Apply-Controllers mit 100 ms Timeout ueberwachen und bei Ausbleiben in den sicheren Zustand (Apply) gehen.
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'Schalter-Apply-Signal an Apply-Controller weiterleiten'
level: 1.3
normative: true
reviewed: null
links:
- SYS-002
asil: D
---
# SWE-003: Schalter-Apply-Signal an Apply-Controller weiterleiten
Das Software-Modul Switch-Debouncer muss ein entprelltes Apply-Signal innerhalb von 50 ms an den Apply-Controller liefern.
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'Klemmkraft-Erreichen bestaetigen'
level: 1.4
normative: true
reviewed: null
links:
- SYS-002
asil: D
---
# SWE-004: Klemmkraft-Erreichen bestaetigen
Der Apply-Controller muss das Erreichen der Ziel-Klemmkraft via Strommessung erkennen und ein Status-Flag setzen.
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'Release-Voraussetzungen pruefen'
level: 1.5
normative: true
reviewed: null
links:
- SYS-003
asil: B
---
# SWE-005: Release-Voraussetzungen pruefen
Vor jedem Release muss der Apply-Controller pruefen: Motor laeuft, Bremspedal betaetigt, Gang ist eingelegt. Andernfalls Release abweisen.
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'Aktoren in Release-Position fahren'
level: 1.6
normative: true
reviewed: null
links:
- SYS-003
asil: B
---
# SWE-006: Aktoren in Release-Position fahren
Der Actuator-Driver muss beide Aktoren parallel in Release-Position fahren. Maximalzeit: 1200 ms. Bei Timeout DTC setzen.
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'Motor-Aus-Bedingung erkennen'
level: 1.7
normative: true
reviewed: null
links:
- SYS-004
asil: D
---
# SWE-007: Motor-Aus-Bedingung erkennen
Der Safety-Manager muss erkennen: Motor-Status = aus, Geschwindigkeit < 0.5 km/h. Auswertezyklus 50 ms.
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'Auto-Apply nach 2 s Verzoegerung'
level: 1.8
normative: true
reviewed: null
links:
- SYS-004
asil: D
---
# SWE-008: Auto-Apply nach 2 s Verzoegerung
Ist die Motor-Aus-Bedingung 2 s stabil erfuellt und Parkbremse noch nicht aktiv, muss der Safety-Manager Apply-Anforderung an den Apply-Controller senden.
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'Hill-Hold-Aktivierungsbedingung'
level: 1.9
normative: true
reviewed: null
links:
- SYS-005
asil: D
---
# SWE-009: Hill-Hold-Aktivierungsbedingung
Der Safety-Manager muss Hill-Hold aktivieren, wenn Neigung (gefiltert) > 5%, Geschwindigkeit < 0.5 km/h und Bremspedal betaetigt sind.
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'Hill-Hold-Uebergabe an Apply-Controller'
level: 1.10
normative: true
reviewed: null
links:
- SYS-005
asil: D
---
# SWE-010: Hill-Hold-Uebergabe an Apply-Controller
Wird das Bremspedal bei aktivem Hill-Hold losgelassen, muss der Safety-Manager unmittelbar Apply-Anforderung an den Apply-Controller senden, bevor das Fahrzeug zu rollen beginnen kann.
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'Anfahrabsicht erkennen'
level: 1.11
normative: true
reviewed: null
links:
- SYS-006
asil: B
---
# SWE-011: Anfahrabsicht erkennen
Anfahrabsicht ist erkannt, wenn: Gaspedal > 10%, Gang in Vorwaerts oder Rueckwaerts, Motor laeuft.
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'Sicherheits-Check vor Auto-Release'
level: 1.12
normative: true
reviewed: null
links:
- SYS-006
asil: B
---
# SWE-012: Sicherheits-Check vor Auto-Release
Vor Auto-Release muessen erfuellt sein: Fahrertuer geschlossen, Sicherheitsgurt angelegt. Andernfalls warnen und nicht loesen.
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'Strommessung mit 1 kHz'
level: 1.13
normative: true
reviewed: null
links:
- SYS-007
asil: B
---
# SWE-013: Strommessung mit 1 kHz
Der Actuator-Driver muss den Motorstrom jedes Aktors mit mindestens 1 kHz abtasten. Genauigkeit +/- 100 mA.
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'Overcurrent-Cutoff'
level: 1.14
normative: true
reviewed: null
links:
- SYS-007
asil: B
---
# SWE-014: Overcurrent-Cutoff
Bei Motorstrom > 8 A laenger als 100 ms muss der Actuator-Driver den Motor abschalten und einen DTC P0xxx setzen.
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'Klemmkraft-Schaetzung aus Strom-Profil'
level: 1.15
normative: true
reviewed: null
links:
- SYS-007
asil: B
---
# SWE-015: Klemmkraft-Schaetzung aus Strom-Profil
Der Actuator-Driver muss die erreichte Klemmkraft aus dem Stromverlauf bei Apply schaetzen (Modell: F = k * I_peak).
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'UDS RoutineControl 0x31 fuer Service-Release'
level: 1.16
normative: true
reviewed: null
links:
- SYS-008
asil: QM
---
# SWE-016: UDS RoutineControl 0x31 fuer Service-Release
Service-Mode wird ueber UDS RoutineControl Service 0x31, Routine-ID 0x0301 aktiviert. Bedingung: Fahrzeug muss stillstehen.
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'Service-Mode-Indikator'
level: 1.17
normative: true
reviewed: null
links:
- SYS-008
asil: QM
---
# SWE-017: Service-Mode-Indikator
Im Service-Mode muss die EPB-LED am Schalter mit 2 Hz blinken.
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'UDS Service 0x19 ReadDTC'
level: 1.18
normative: true
reviewed: null
links:
- SYS-009
asil: QM
---
# SWE-018: UDS Service 0x19 ReadDTC
Das System muss alle gespeicherten DTCs ueber Service 0x19 (Subfunktion 0x02 reportDTCByStatusMask) ausgeben.
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'UDS Service 0x22 ReadDataByIdentifier'
level: 1.19
normative: true
reviewed: null
links:
- SYS-009
asil: QM
---
# SWE-019: UDS Service 0x22 ReadDataByIdentifier
Folgende DIDs muessen lesbar sein: 0xF187 (SW-Version), 0x0301 (Klemmkraft links), 0x0302 (Klemmkraft rechts).
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'LED-Steuerung'
level: 1.20
normative: true
reviewed: null
links:
- SYS-010
asil: QM
---
# SWE-020: LED-Steuerung
Apply-aktiv: LED dauerleuchtend. Release: LED aus. Fehler: LED blinkt 4 Hz. Service-Mode: LED blinkt 2 Hz.
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'CAN-Status-Frame'
level: 1.21
normative: true
reviewed: null
links:
- SYS-010
asil: QM
---
# SWE-021: CAN-Status-Frame
Status-Frame 0x3A0 mit 50 Hz: Byte 0 = Status (0=Released, 1=Applied, 2=Applying, 3=Releasing, 0xFF=Error), Byte 1-2 = Klemmkraft links, Byte 3-4 = Klemmkraft rechts.
+17
View File
@@ -0,0 +1,17 @@
---
active: true
derived: false
header: 'Stillstands-Erkennung aus Wheel Speeds'
level: 1.22
normative: true
reviewed: null
links:
- SYS-001
- SYS-002
- SYS-006
asil: B
---
# SWE-022: Stillstands-Erkennung aus Wheel Speeds
Stillstand ist erkannt, wenn alle 4 Wheel-Speed-Signale fuer mindestens 200 ms unter 0.5 km/h liegen.
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'Wheel Speed Plausibilisierung'
level: 1.23
normative: true
reviewed: null
links:
- SYS-007
asil: B
---
# SWE-023: Wheel Speed Plausibilisierung
Spreizung der Wheel-Speed-Signale: bei Geradeaus-Fahrt darf die Differenz nicht > 3 km/h sein. Andernfalls Sensor-Fehler-DTC.
+15
View File
@@ -0,0 +1,15 @@
---
active: true
derived: false
header: 'Inclinometer Tiefpass-Filter'
level: 1.24
normative: true
reviewed: null
links:
- SYS-005
asil: B
---
# SWE-024: Inclinometer Tiefpass-Filter
Das Roh-Neigungssignal muss mit einem Tiefpass 1. Ordnung (Zeitkonstante 200 ms) gefiltert werden, bevor es zur Hill-Hold-Bewertung verwendet wird.
+16
View File
@@ -0,0 +1,16 @@
---
active: true
derived: false
header: 'Switch-Debouncing'
level: 1.25
normative: true
reviewed: null
links:
- SYS-002
- SYS-003
asil: QM
---
# SWE-025: Switch-Debouncing
Der EPB-Schalter muss mit einer Entprell-Zeit von 50 ms entprellt werden. Stabiler Pegel = Eingangssignal fuer Apply-Controller.
+16
View File
@@ -0,0 +1,16 @@
---
active: true
derived: false
header: 'Halten der Parkbremse im Stillstand'
level: 1.1
normative: true
reviewed: null
links: []
asil: D
---
# SYS-001: Halten der Parkbremse im Stillstand
Wenn die Parkbremse aktiviert ist und das Fahrzeug stillsteht, muss das EPB-System die mechanische Klemmkraft an beiden hinteren Bremssaetteln aufrecht erhalten, bis ein Loesen ausdruecklich angefordert wird. Sicherheitsziel: SG-01.
**Verifikation:** SiL-Test mit Auf-/Ab-Hangelung, Klemmkraftmessung.
+14
View File
@@ -0,0 +1,14 @@
---
active: true
derived: false
header: 'Apply auf Fahrer-Anforderung'
level: 1.2
normative: true
reviewed: null
links: []
asil: D
---
# SYS-002: Apply auf Fahrer-Anforderung
Bei Betaetigung des EPB-Schalters in Apply-Richtung muss das System innerhalb von 800 ms die Parkbremse anlegen, sofern die Voraussetzungen erfuellt sind (Stillstand oder Geschwindigkeit unter 5 km/h). Sicherheitsziel: SG-01.
+14
View File
@@ -0,0 +1,14 @@
---
active: true
derived: false
header: 'Release auf Fahrer-Anforderung'
level: 1.3
normative: true
reviewed: null
links: []
asil: B
---
# SYS-003: Release auf Fahrer-Anforderung
Bei Betaetigung des EPB-Schalters in Release-Richtung muss das System die Parkbremse loesen, sofern die folgenden Voraussetzungen erfuellt sind: Motor laeuft, Fahrer betaetigt Bremspedal, Gang ist eingelegt. Maximalzeit fuer Loesen: 1500 ms.
+14
View File
@@ -0,0 +1,14 @@
---
active: true
derived: false
header: 'Auto-Apply bei Motor-Aus'
level: 1.4
normative: true
reviewed: null
links: []
asil: D
---
# SYS-004: Auto-Apply bei Motor-Aus
Wenn der Motor ausgeschaltet wird und das Fahrzeug stillsteht und keine Parkbremse aktiv ist, muss das System die Parkbremse spaetestens 2 s nach Erkennung Motor-Aus automatisch anlegen. Sicherheitsziel: SG-01.
+14
View File
@@ -0,0 +1,14 @@
---
active: true
derived: false
header: 'Hill-Hold am Berg'
level: 1.5
normative: true
reviewed: null
links: []
asil: D
---
# SYS-005: Hill-Hold am Berg
Bei aktivem Hill-Hold (Fahrzeug steht am Hang mit Neigung > 5%, Fahrer betaetigt Bremspedal) uebernimmt das EPB-System die Bremskraft beim Loesen des Bremspedals und haelt diese, bis die Anfahrt erkannt wird. Sicherheitsziel: SG-01.
+14
View File
@@ -0,0 +1,14 @@
---
active: true
derived: false
header: 'Auto-Release beim Anfahren (Drive-Away-Assist)'
level: 1.6
normative: true
reviewed: null
links: []
asil: B
---
# SYS-006: Auto-Release beim Anfahren (Drive-Away-Assist)
Wenn die Parkbremse aktiv ist und der Fahrer Anfahrabsicht zeigt (Gaspedal-Betaetigung bei eingelegtem Gang), muss das System die Parkbremse innerhalb von 500 ms loesen. Voraussetzung: alle Sicherheitskriterien (Fahrertuer geschlossen, Sicherheitsgurt) erfuellt.
+14
View File
@@ -0,0 +1,14 @@
---
active: true
derived: false
header: 'Aktor-Stromueberwachung'
level: 1.7
normative: true
reviewed: null
links: []
asil: B
---
# SYS-007: Aktor-Stromueberwachung
Das System muss den Motorstrom jedes Aktors mit mindestens 1 kHz ueberwachen und bei Ueberschreitung von 8 A fuer mehr als 100 ms den Aktor abschalten und einen DTC setzen. Sicherheitsziel: SG-03.
+14
View File
@@ -0,0 +1,14 @@
---
active: true
derived: false
header: 'Service-Modus fuer Werkstatt'
level: 1.8
normative: true
reviewed: null
links: []
asil: QM
---
# SYS-008: Service-Modus fuer Werkstatt
Das System muss ueber UDS RoutineControl (Service 0x31) einen Service-Modus bereitstellen, in dem die Aktoren manuell in Wartungs-Position gefahren werden koennen (z.B. fuer Bremsbelag-Wechsel).
+14
View File
@@ -0,0 +1,14 @@
---
active: true
derived: false
header: 'UDS-Diagnose'
level: 1.9
normative: true
reviewed: null
links: []
asil: QM
---
# SYS-009: UDS-Diagnose
Das System muss UDS-Diagnose nach ISO 14229 bereitstellen: ReadDTC (0x19), ReadDataByIdentifier (0x22), RoutineControl (0x31), ECUReset (0x11). Tester-Adresse 0x712, Antwort-Adresse 0x71A.
+14
View File
@@ -0,0 +1,14 @@
---
active: true
derived: false
header: 'HMI-Statusanzeige'
level: 1.10
normative: true
reviewed: null
links: []
asil: QM
---
# SYS-010: HMI-Statusanzeige
Der EPB-Status muss dem Fahrer signalisiert werden: LED am Schalter (an = Apply, aus = Release, blinkend = Fehler) sowie Text im Kombi-Display via CAN-Bus (Frame-ID 0x3A0, 50 Hz).