티스토리 뷰
COMM_NO_COM_NO_PENDING_REQUEST, COMM_NO_COM_REQUEST_PENDING, COMM_FULL_COM_NETWORK_REQUESTED, COMM_FULL_COM_READY_SLEEP, COMM_SILENT_COM은 AUTOSAR Communication Manager(ComM)에서 네트워크 상태를 관리하기 위해 사용되는 내부 상태입니다. 이는 ECU의 현재 네트워크 상태와 **통신 모드(COM MODE)**의 동작을 구체적으로 정의하며, 네트워크 활성화와 절전 관리를 조율합니다.
1. 상태와 COM MODE의 관계
이 상태들은 ComM 모드(COMM_NO_COMMUNICATION, COMM_SILENT_COMMUNICATION, COMM_FULL_COMMUNICATION)와 밀접한 관계가 있습니다. 각각의 상태는 특정한 동작과 전환 조건에 따라 정의됩니다.
ComM 모드 설명
COMM_NO_COMMUNICATION | 네트워크 비활성화: 메시지 송수신 불가. |
COMM_SILENT_COMMUNICATION | 네트워크 수신만 활성화: 메시지 수신 가능, 송신 불가. |
COMM_FULL_COMMUNICATION | 네트워크 송수신 모두 활성화: 메시지 송수신 가능. |
각 상태는 네트워크가 요청을 받을 준비가 되어 있는지, 슬립 상태로 들어가야 하는지 등을 나타냅니다.
2. 각 상태의 상세 설명
2.1 COMM_NO_COM_NO_PENDING_REQUEST
- 설명:
네트워크가 비활성화 상태이며, 추가 요청이 없는 경우를 나타냅니다.- ECU는 통신 요청을 받지 않았고, 네트워크가 비활성화된 상태입니다.
- 이 상태에서는 CAN 컨트롤러도 비활성화되며 에너지 절약 모드로 들어갑니다.
- 관련 COM MODE:
- COMM_NO_COMMUNICATION과 일치.
- 예시:
- 차량이 시동 꺼진 상태이며, 네트워크 통신 요청이 없는 경우.
- 상태 전환 조건:
- 새로운 네트워크 통신 요청이 발생하면 COMM_NO_COM_REQUEST_PENDING으로 전환.
2.2 COMM_NO_COM_REQUEST_PENDING
- 설명:
네트워크가 비활성화 상태지만, 통신 요청이 대기 중인 상태를 나타냅니다.- 네트워크 통신을 활성화하기 위해 준비 중이며, ECU가 요청에 따라 상태를 변경할 예정입니다.
- 관련 COM MODE:
- 여전히 COMM_NO_COMMUNICATION 상태지만, 전환 대기 중.
- 예시:
- 차량의 특정 ECU가 통신을 시작하려고 요청을 보내 대기 중인 상태.
- 상태 전환 조건:
- 네트워크 통신 활성화 준비가 완료되면 COMM_FULL_COM_NETWORK_REQUESTED로 전환.
2.3 COMM_FULL_COM_NETWORK_REQUESTED
- 설명:
네트워크가 완전히 활성화된 상태를 나타냅니다.- ECU가 CAN 메시지를 송수신할 수 있는 상태입니다.
- 네트워크가 완전히 활성화되어, 차량의 동작과 관련된 데이터 교환이 이루어집니다.
- 관련 COM MODE:
- COMM_FULL_COMMUNICATION과 일치.
- 예시:
- 차량 시동이 켜지고 ECU 간에 센서 데이터와 제어 명령이 CAN 버스를 통해 교환되는 상태.
- 상태 전환 조건:
- 통신 종료 요청이 들어오면 COMM_FULL_COM_READY_SLEEP으로 전환.
2.4 COMM_FULL_COM_READY_SLEEP
- 설명:
네트워크가 활성화 상태에서 슬립 모드로 전환 준비 중인 상태입니다.- ECU는 통신 요청이 종료되었고, 슬립 모드로 들어가기 전에 대기 상태에 있습니다.
- 슬립 모드로 들어가기 전, 모든 송수신 작업이 종료되고 네트워크가 정리됩니다.
- 관련 COM MODE:
- COMM_NO_COMMUNICATION으로 전환될 준비 단계.
- 예시:
- 차량이 시동이 꺼지거나, 통신 요청이 종료되어 네트워크가 비활성화되기 직전.
- 상태 전환 조건:
- 네트워크가 안전하게 종료되면 COMM_NO_COM_NO_PENDING_REQUEST로 전환.
2.5 COMM_SILENT_COM
- 설명:
네트워크가 수신만 가능한 상태입니다.- ECU는 메시지를 송신하지 않으며, 네트워크의 상태를 모니터링하거나 진단 요청을 처리합니다.
- 에너지를 절약하면서 네트워크를 방해하지 않도록 설계된 상태입니다.
- 관련 COM MODE:
- COMM_SILENT_COMMUNICATION과 일치.
- 예시:
- 차량이 대기 상태로 진단 도구의 요청을 처리하거나, 네트워크 상태를 모니터링할 때.
- 상태 전환 조건:
- 네트워크 활성화 요청이 들어오면 COMM_FULL_COM_NETWORK_REQUESTED로 전환.
3. 각 상태 간 전환 흐름
아래는 상태 간 전환의 일반적인 흐름입니다:
- 시동 꺼짐 (Idle 상태):
- COMM_NO_COM_NO_PENDING_REQUEST → (통신 요청 발생) → COMM_NO_COM_REQUEST_PENDING.
- 네트워크 활성화 요청:
- COMM_NO_COM_REQUEST_PENDING → (통신 준비 완료) → COMM_FULL_COM_NETWORK_REQUESTED.
- 네트워크 활성화 (주행 상태):
- COMM_FULL_COM_NETWORK_REQUESTED → (통신 종료 요청) → COMM_FULL_COM_READY_SLEEP.
- 슬립 모드 전환 준비:
- COMM_FULL_COM_READY_SLEEP → (완전히 비활성화) → COMM_NO_COM_NO_PENDING_REQUEST.
- Silent 모드 (진단 등):
- COMM_NO_COM_REQUEST_PENDING 또는 COMM_FULL_COM_READY_SLEEP → (진단 활성화) → COMM_SILENT_COM.
4. 전체 구조 요약
상태 설명 관련 COM MODE
COMM_NO_COM_NO_PENDING_REQUEST | 네트워크 비활성화, 요청 없음. | COMM_NO_COMMUNICATION |
COMM_NO_COM_REQUEST_PENDING | 네트워크 비활성화, 요청 대기 중. | COMM_NO_COMMUNICATION |
COMM_FULL_COM_NETWORK_REQUESTED | 네트워크 활성화됨, 메시지 송수신 가능. | COMM_FULL_COMMUNICATION |
COMM_FULL_COM_READY_SLEEP | 네트워크 활성화 상태에서 슬립 준비 중. | COMM_NO_COMMUNICATION |
COMM_SILENT_COM | 네트워크 활성화, 메시지 수신만 가능. | COMM_SILENT_COMMUNICATION |
5. 예시
차량 상태에 따른 흐름
- 시동 꺼짐 (Idle):
- 상태: COMM_NO_COM_NO_PENDING_REQUEST
- 설명: 네트워크 비활성화, 에너지 절약 모드.
- 시동 준비 (Wake-up):
- 상태: COMM_NO_COM_REQUEST_PENDING
- 설명: 통신 요청 발생, 네트워크 활성화 준비.
- 주행 중 (Active):
- 상태: COMM_FULL_COM_NETWORK_REQUESTED
- 설명: 송수신 활성화, 센서 및 제어 데이터 교환.
- 주차 후 대기 (Ready to Sleep):
- 상태: COMM_FULL_COM_READY_SLEEP
- 설명: 통신 종료 준비, 슬립 모드 전환 대기.
- 진단 모드 (Silent):
- 상태: COMM_SILENT_COM
- 설명: 메시지 수신만 가능, 외부 진단 요청 처리.
6. 결론
이 상태들은 네트워크 활성화(통신 시작), 비활성화(통신 종료), 슬립 준비, Silent 모드 등 네트워크 관리의 세부 단계를 정의한 것입니다.
각 상태는 COM MODE와 연관되어 있으며, 자동차의 동작 상태(시동, 대기, 진단 등)에 따라 전환됩니다. 이러한 구조는 네트워크 효율성과 에너지 절약을 극대화하는 데 중요한 역할을 합니다.
개인적으로 학습하면서 정리한 내용입니다.
잘못된 내용이 있을 경우 알려주시면 확인 후 수정 및 반영하도록 하겠습니다.
오늘도 감사합니다.(__)>
'개발 > 그 외 개발관련' 카테고리의 다른 글
CanTp (CAN Transport Protocol) 모듈 (0) | 2025.02.03 |
---|---|
BSW(Basic Software)에서 ComM 모듈 (0) | 2025.02.03 |
AUTOSAR Classic Platform과 Adaptive Platform의 상세 비교 (0) | 2025.01.20 |
Google Test(GTest)란? (0) | 2025.01.16 |
CAN TP (CAN Transport Protocol) 설명 (0) | 2025.01.08 |