ACC Requirements Specification
ACC Safety Requirements (SAF)

ACC Safety Requirements (SAF)

1. Safety Goals

SAF001
1.1. Safety Goal 1 - 의도치 않은 가속 방지
UID: SAF001
RELATIONS (Parent):
STATEMENT:

[ASIL B] ACC 시스템은 의도치 않은 가속을 야기해서는 안 된다. Safe State: 모터 구동 중지 (ACC OFF). FTTI(Fault Tolerant Time Interval): 100ms.

ASIL:

B

CATEGORY:

Safety Goal

VERIFICATION:

T

HARA:

S2/E3/C2 → ASIL B

SAF002
1.2. Safety Goal 2 - 접근 시 감속 (AEB 미포함)
UID: SAF002
RELATIONS (Parent):
STATEMENT:

[ASIL B] 전방 차량 접근 시 시스템은 PID 제어 범위 내에서 적절한 감속을 수행해야 한다. 본 시스템은 AEB를 포함하지 않으므로 비상 제동은 수행하지 않는다. Safe State: 모터 출력 0 (자연 감속). FTTI: 200ms.

ASIL:

B

CATEGORY:

Safety Goal

VERIFICATION:

T

HARA:

S2/E3/C2 → ASIL B

SAF003
1.3. Safety Goal 3 - 운전자 오버라이드 보장 (→ STANDBY)
UID: SAF003
RELATIONS (Parent):
STATEMENT:

[ASIL B] 운전자의 브레이크/액셀 입력은 어떠한 상황에서도 ACC보다 우선해야 한다. 브레이크 또는 액셀 입력 시 즉시 STANDBY로 전이 (모터 출력 0, 설정값 보존). Safe State: 운전자 직접 제어 모드 (STANDBY).

ASIL:

B

CATEGORY:

Safety Goal

VERIFICATION:

T

HARA:

S2/E4/C1 → ASIL B

2. Functional Safety Requirements (FSR)

SAF004
2.1. FSR-01: 브레이크 입력 시 모터 즉시 중지 (→ STANDBY)
UID: SAF004
RELATIONS (Parent):
STATEMENT:

[ASIL B] 브레이크 버튼 신호(BTN_BRAKE=1) 감지 시 50ms 이내에 모터 구동을 중지하고 ACC를 STANDBY 상태로 전환한다. 브레이크 버튼이 눌려있는 동안 지속적으로 제동 상태로 간주한다. STANDBY 상태에서는 모터 제어 출력이 0이어야 한다. 이는 SG1, SG3을 만족하기 위한 안전 메커니즘이다.

ASIL:

B

CATEGORY:

FSR

VERIFICATION:

T

SAFETY_GOAL:

SAF001, SAF003

SAF005
2.2. FSR-02: 센서 고장 시 FAULT (능동 감속 없음)
UID: SAF005
RELATIONS (Parent):
STATEMENT:

[ASIL B] LiDAR 또는 카메라 데이터 손실(CAN 타임아웃) 또는 센서 에러코드 수신(ERR_SENSOR != 0) 감지 시 200ms 이내에 FAULT 상태로 전이한다. FAULT 진입 시 모터 출력을 0으로 설정하고 HMI에 경고를 표시한다. 능동 감속은 수행하지 않으며, 운전자가 ACC ON/OFF를 눌러 OFF로 전환해야 한다.

ASIL:

B

CATEGORY:

FSR

VERIFICATION:

T

SAFETY_GOAL:

SAF002

SAF006
2.3. FSR-03: CAN 통신 이상 시 FAULT (능동 감속 없음)
UID: SAF006
RELATIONS (Parent):
STATEMENT:

[ASIL B] 메인 ECU ↔ 모터 제어기 간 통신 단절(CAN 게이트웨이 미수신 또는 CAN 게이트웨이 ↔ 모터 노드 I2C 단절) 또는 모터 에러코드 수신(ERR_MTR != 0) 감지 시 100ms 이내에 모터 출력을 0으로 설정하고 FAULT 상태로 전이한다. 능동 감속은 수행하지 않는다. 운전자가 ACC ON/OFF를 눌러 OFF로 전환해야 한다.

ASIL:

B

CATEGORY:

FSR

VERIFICATION:

T

SAFETY_GOAL:

SAF001, SAF002

SAF007
2.4. FSR-04: 목표거리 이하 시 최대 감속 (AEB 미포함)
UID: SAF007
RELATIONS (Parent):
STATEMENT:

[ASIL QM] 전방 차량과의 거리가 목표 거리 이하로 감소하면 PID 제어 범위 내에서 최대 감속을 수행한다. AEB(비상 제동)는 본 시스템에 포함되지 않으므로 긴급 정지는 수행하지 않는다. 위험 상황의 최종 제동 책임은 운전자에게 있다.

ASIL:

QM

CATEGORY:

FSR

VERIFICATION:

T

SAFETY_GOAL:

SAF002

SAF008
2.5. FSR-05: 제어 출력 범위 제한
UID: SAF008
RELATIONS (Parent):
STATEMENT:

[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).

ASIL:

B

CATEGORY:

FSR

VERIFICATION:

T

SAFETY_GOAL:

SAF001

SAF015
2.6. FSR-06: 액셀 입력 시 STANDBY 전이
UID: SAF015
RELATIONS (Parent):
STATEMENT:

[ASIL B] 액셀 페달 신호 감지 시 50ms 이내에 모터 제어를 ACC에서 해제하고 STANDBY로 전환한다. 이는 SG3(운전자 오버라이드 보장)을 만족하기 위한 안전 메커니즘이다.

ASIL:

B

CATEGORY:

FSR

VERIFICATION:

T

SAFETY_GOAL:

SAF003

SAF016
2.7. FSR-07: ACC ON 시 자가진단 필수
UID: SAF016
RELATIONS (Parent):
STATEMENT:

[ASIL B] ACC OFF에서 ON 전환 시 자가진단을 수행해야 한다. 자가진단 실패(FAULT 조건 존재) 시 ACC가 활성화되지 않고 OFF를 유지해야 한다. 이는 SG1/SG2(의도치 않은 가속/충돌 방지)를 위한 사전 검증 메커니즘이다.

ASIL:

B

CATEGORY:

FSR

VERIFICATION:

T

SAFETY_GOAL:

SAF001, SAF002

SAF017
2.8. FSR-08: 페달 입력 중 ACC 활성화 방지
UID: SAF017
RELATIONS (Parent):
STATEMENT:

[ASIL B] ACC OFF 상태에서 ON 전환 시도 시, 브레이크 버튼 또는 액셀 페달이 눌려있는 경우 ACC 활성화를 거부하고 OFF 상태를 유지해야 한다. 브레이크 버튼 또는 액셀 페달 입력 중에는 운전자가 직접 제어 중이므로 ACC가 개입하지 않는다. 이는 SG1(의도치 않은 가속 방지) 및 SG3(운전자 오버라이드 보장)을 만족하기 위한 안전 메커니즘이다.

ASIL:

B

CATEGORY:

FSR

VERIFICATION:

T

SAFETY_GOAL:

SAF001, SAF003

3. Technical Safety Requirements (TSR)

SAF010
3.1. TSR-02: MTR_CMD E2E 보호 (선택적 적용)
UID: SAF010
RELATIONS (Parent):
STATEMENT:

[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 참조.

ASIL:

B

CATEGORY:

TSR

VERIFICATION:

T

SAFETY_MECHANISM:

E2E protection (AUTOSAR P01, selective on MTR_CMD only)

SAF011
3.2. TSR-03: 워치독 타이머
UID: SAF011
RELATIONS (Parent):
STATEMENT:

[ASIL B] 메인 ECU는 주기적(10ms 이내)으로 워치독을 킥한다. SW 행(hang) 시 워치독 리셋으로 안전 상태(모터 정지)로 진입한다.

ASIL:

B

CATEGORY:

TSR

VERIFICATION:

T

SAFETY_MECHANISM:

Watchdog timer

SAF012
3.3. TSR-04: 프로그램 흐름 모니터링
UID: SAF012
RELATIONS (Parent):
STATEMENT:

[ASIL B] 주요 태스크(10ms 제어 루프)의 실행 순서를 모니터링한다. 예상 실행 순서 위반 시 FAULT 전이를 트리거한다.

ASIL:

B

CATEGORY:

TSR

VERIFICATION:

T

SAFETY_MECHANISM:

Program flow monitoring

SAF013
3.4. TSR-05: RAM 무결성 테스트
UID: SAF013
RELATIONS (Parent):
STATEMENT:

[ASIL B] 초기화 시 및 주기적으로 안전 관련 RAM 영역에 대해 무결성 테스트를 수행한다. 테스트 실패 시 FAULT 전이.

ASIL:

B

CATEGORY:

TSR

VERIFICATION:

T

SAFETY_MECHANISM:

RAM test

SAF014
3.5. TSR-06: 모터 구동 독립 차단 경로
UID: SAF014
RELATIONS (Parent):
STATEMENT:

[ASIL B] SW 제어와 독립적으로 모터 구동을 차단할 수 있는 하드웨어 경로를 확보한다. (예: 브레이크 신호로 모터 드라이버 Enable 핀 직접 제어)

ASIL:

B

CATEGORY:

TSR

VERIFICATION:

T

SAFETY_MECHANISM:

Independent shutdown path

SAF018
3.6. TSR-07: 하트비트 모니터링
UID: SAF018
RELATIONS (Parent):
STATEMENT:

[ASIL B] 메인 ECU는 주기적(10ms 이내)으로 하트비트 신호를 출력해야 한다. 하트비트 신호가 설정된 타임아웃 내 감지되지 않으면 시스템은 SW hang으로 판단하고, ACC를 FAULT 상태로 전이하여 안전 상태(모터 정지)로 진입해야 한다.

ASIL:

B

CATEGORY:

TSR

VERIFICATION:

T

SAFETY_MECHANISM:

Heartbeat monitoring