ACC Safety Requirements (SAF)
1. Safety Goals
[ASIL B] ACC 시스템은 의도치 않은 가속을 야기해서는 안 된다. Safe State: 모터 구동 중지 (ACC OFF). FTTI(Fault Tolerant Time Interval): 100ms.
B
Safety Goal
T
S2/E3/C2 → ASIL B
[ASIL B] 전방 차량 접근 시 시스템은 PID 제어 범위 내에서 적절한 감속을 수행해야 한다. 본 시스템은 AEB를 포함하지 않으므로 비상 제동은 수행하지 않는다. Safe State: 모터 출력 0 (자연 감속). FTTI: 200ms.
B
Safety Goal
T
S2/E3/C2 → ASIL B
[ASIL B] 운전자의 브레이크/액셀 입력은 어떠한 상황에서도 ACC보다 우선해야 한다. 브레이크 또는 액셀 입력 시 즉시 STANDBY로 전이 (모터 출력 0, 설정값 보존). Safe State: 운전자 직접 제어 모드 (STANDBY).
B
Safety Goal
T
S2/E4/C1 → ASIL B
2. Functional Safety Requirements (FSR)
[ASIL B] 브레이크 버튼 신호(BTN_BRAKE=1) 감지 시 50ms 이내에 모터 구동을 중지하고 ACC를 STANDBY 상태로 전환한다. 브레이크 버튼이 눌려있는 동안 지속적으로 제동 상태로 간주한다. STANDBY 상태에서는 모터 제어 출력이 0이어야 한다. 이는 SG1, SG3을 만족하기 위한 안전 메커니즘이다.
B
FSR
T
SAF001, SAF003
[ASIL B] LiDAR 또는 카메라 데이터 손실(CAN 타임아웃) 또는 센서 에러코드 수신(ERR_SENSOR != 0) 감지 시 200ms 이내에 FAULT 상태로 전이한다. FAULT 진입 시 모터 출력을 0으로 설정하고 HMI에 경고를 표시한다. 능동 감속은 수행하지 않으며, 운전자가 ACC ON/OFF를 눌러 OFF로 전환해야 한다.
B
FSR
T
SAF002
[ASIL B] 메인 ECU ↔ 모터 제어기 간 통신 단절(CAN 게이트웨이 미수신 또는 CAN 게이트웨이 ↔ 모터 노드 I2C 단절) 또는 모터 에러코드 수신(ERR_MTR != 0) 감지 시 100ms 이내에 모터 출력을 0으로 설정하고 FAULT 상태로 전이한다. 능동 감속은 수행하지 않는다. 운전자가 ACC ON/OFF를 눌러 OFF로 전환해야 한다.
B
FSR
T
SAF001, SAF002
[ASIL QM] 전방 차량과의 거리가 목표 거리 이하로 감소하면 PID 제어 범위 내에서 최대 감속을 수행한다. AEB(비상 제동)는 본 시스템에 포함되지 않으므로 긴급 정지는 수행하지 않는다. 위험 상황의 최종 제동 책임은 운전자에게 있다.
QM
FSR
T
SAF002
[ASIL B] MotorControl SWC 의 inner-loop 속도 PI (SWR034) 최종 출력(TargetPwmDuty)은 물리적으로 허용 가능한 범위 [−PWM_MAX, +PWM_MAX] 로 클램핑한다. 최대 가속도 및 최대 감속도 제한값을 초과하는 PWM 명령을 출력하지 않는다. Anti-windup back-calculation 과 연동하여 포화 구간에서 적분기 wind-up 을 방지한다.
cascaded 구조에서 클램핑 책임은 PWM 출력단(MotorControl) 에 있으며, DistanceControl 의 outer-loop 출력(TargetSpeedCmS) 은 속도 범위 [0, SetSpeedCmS] 로 별도 clamp (SWR011).
B
FSR
T
SAF001
[ASIL B] 액셀 페달 신호 감지 시 50ms 이내에 모터 제어를 ACC에서 해제하고 STANDBY로 전환한다. 이는 SG3(운전자 오버라이드 보장)을 만족하기 위한 안전 메커니즘이다.
B
FSR
T
SAF003
[ASIL B] ACC OFF에서 ON 전환 시 자가진단을 수행해야 한다. 자가진단 실패(FAULT 조건 존재) 시 ACC가 활성화되지 않고 OFF를 유지해야 한다. 이는 SG1/SG2(의도치 않은 가속/충돌 방지)를 위한 사전 검증 메커니즘이다.
B
FSR
T
SAF001, SAF002
[ASIL B] ACC OFF 상태에서 ON 전환 시도 시, 브레이크 버튼 또는 액셀 페달이 눌려있는 경우 ACC 활성화를 거부하고 OFF 상태를 유지해야 한다. 브레이크 버튼 또는 액셀 페달 입력 중에는 운전자가 직접 제어 중이므로 ACC가 개입하지 않는다. 이는 SG1(의도치 않은 가속 방지) 및 SG3(운전자 오버라이드 보장)을 만족하기 위한 안전 메커니즘이다.
B
FSR
T
SAF001, SAF003
3. Technical Safety Requirements (TSR)
[ASIL B] 액추에이터 직접 제어 경로인 MTR_CMD(0x210, 메인 ECU → Arduino) 메시지에 AUTOSAR E2E Profile 01 방식의 Rolling Counter(MTR_RC, 4bit) + CRC(MTR_CRC, CRC-8)를 포함한다. DLC 6 byte (PWM 4ch × 1byte + RC 4bit + CRC 8bit). 수신 측(Arduino)은 카운터 순서 및 CRC 검증에 실패한 메시지를 무효 처리하고 타임아웃 규정에 따라 안전 정지(모터 출력 0)로 진입한다.
E2E 보호는 단일 결함 지점(액추에이터 직전 명령 경로) 에만 선택적으로 적용한다. 다른 CAN 메시지(SENSOR_FUSION 0x110, VEH_CTRL 0x120, ACC_CTRL 0x510, MTR_SPD_FB 0x300, ACC_STATUS 0x520)는 3주기 연속 미수신 타임아웃(SYS025) 및 수신측 플러시블리티 검사로 무결성을 확보한다. VEH_CTRL 은 ASIL-B 경로이지만 20ms 주기 + 수신측 레벨 트리거 재확인(BTN_BRAKE) / 범위 검증(SET_ACCEL_PWM)으로 커버된다. 근거는 SYS2-QA-001 잔여 과제 #5 참조.
B
TSR
T
E2E protection (AUTOSAR P01, selective on MTR_CMD only)
[ASIL B] 메인 ECU는 주기적(10ms 이내)으로 워치독을 킥한다. SW 행(hang) 시 워치독 리셋으로 안전 상태(모터 정지)로 진입한다.
B
TSR
T
Watchdog timer
[ASIL B] 주요 태스크(10ms 제어 루프)의 실행 순서를 모니터링한다. 예상 실행 순서 위반 시 FAULT 전이를 트리거한다.
B
TSR
T
Program flow monitoring
[ASIL B] 초기화 시 및 주기적으로 안전 관련 RAM 영역에 대해 무결성 테스트를 수행한다. 테스트 실패 시 FAULT 전이.
B
TSR
T
RAM test
[ASIL B] SW 제어와 독립적으로 모터 구동을 차단할 수 있는 하드웨어 경로를 확보한다. (예: 브레이크 신호로 모터 드라이버 Enable 핀 직접 제어)
B
TSR
T
Independent shutdown path
[ASIL B] 메인 ECU는 주기적(10ms 이내)으로 하트비트 신호를 출력해야 한다. 하트비트 신호가 설정된 타임아웃 내 감지되지 않으면 시스템은 SW hang으로 판단하고, ACC를 FAULT 상태로 전이하여 안전 상태(모터 정지)로 진입해야 한다.
B
TSR
T
Heartbeat monitoring