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:
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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).
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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).
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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).
|
||||
@@ -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.
|
||||
@@ -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).
|
||||
Reference in New Issue
Block a user