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