mirror of
https://github.com/Dev-KATECH/ADM.git
synced 2026-05-17 01:43:59 +09:00
- 코드 구조 변경(레이어 삭제/추가) : IG_Layer 삭제 : Vehicle_System_Mode_Layer 삭제 : System_Layer 추가 - 코드 구조 변경(통합) : System_Check 내 함수 Drive_Mode로 이동 : System_Layer로 Drive_Mode, Ignition 이동 - DBC 업데이트 : CAN_DBC_ch1_v41.dbc : RC_VCU_Signal2(0x41) 내 RC_ACU_Drive_Mode 신호 추가
189 lines
4.4 KiB
C
189 lines
4.4 KiB
C
/*
|
||
* Ignition.c
|
||
*
|
||
* Created on: 2024. 6. 17.
|
||
* Author: SUPYO
|
||
*/
|
||
#include "IG_Layer/Ignition.h"
|
||
#include "Global_Variable.h"
|
||
|
||
uint8_t GV_All_ECU_Ready_Flag_2 = 0;
|
||
uint8_t GV_ALL_ECU_Off_Flag_2 = 0;
|
||
int Operation_Ready = 0;
|
||
int Operation_Ready_2 = 0;
|
||
|
||
|
||
/*=================== Ignition On ===================*/
|
||
/*
|
||
* Function Name : IG_OnCheck_HV_Status
|
||
* Data Type : void
|
||
* Description : Checklist / 1. -- / 2. HV Released / 3. EPAM Applied / 4. LDC, BMS Fault Check
|
||
* Requirement : 고장 검출 시간 필요, 고장 시 운행 방어 코드 필요.
|
||
*/
|
||
void IG_OnCheck_HV_Status(void)
|
||
{
|
||
if(GV_BMS_Fault_Check == 0 && GV_HV_Apply_Check == 0) GV_IG_Process_Status = 2;
|
||
}
|
||
|
||
void HV_ON_FUNC(void)
|
||
{
|
||
/*Check Fault Status, Contact HV Sys*/
|
||
GV_HV_ON_CMD = 1;
|
||
|
||
/*Check Fault Status, Contact LDC Sys*/
|
||
if(GV_HV_Apply_Check == 1)
|
||
{
|
||
GV_LDC_ACT_CMD = 1;
|
||
GV_LDC_TAGT_CMD = 120; // 20240821- 30->40으로 변경, 추후 자율주행 시 180 으로 조정 // 20241010 - 150A 로 조정// 20241024-> 라이다플럭스 인계 120A 로 조정
|
||
}
|
||
}
|
||
|
||
void Key_on_Sub_Func1(void)
|
||
{
|
||
if(GV_CE_ON_CMD == 1)
|
||
{
|
||
GV_MCU_Init_Status = 1;
|
||
GV_Steer_Init_Status = 1;
|
||
GV_Brake_Init_Status = 1;
|
||
GV_ACU_Init_Status = 1;
|
||
}
|
||
else
|
||
{
|
||
GV_MCU_Init_Status = 0;
|
||
GV_Steer_Init_Status = 0;
|
||
GV_Brake_Init_Status = 0;
|
||
GV_ACU_Init_Status = 0;
|
||
}
|
||
}
|
||
|
||
/*
|
||
* Function Name : Key_on_Sub_Func1
|
||
* Data Type : void
|
||
* Description : Check the ECU Systems
|
||
* Requirement : *
|
||
*/
|
||
void Key_on_Sub_Func2(void)
|
||
{
|
||
if(GV_BCM_Init_Status == 1 /*&& GV_BMS_Init_Status == 1*/ && GV_MCU_Init_Status == 1 && GV_Steer_Init_Status == 1 && GV_Brake_Init_Status == 1 && GV_ACU_Init_Status == 1 ) // GV_SOC_STAT_Flag =! 3 <20><> soc 30 % <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||
GV_All_ECU_Ready_Flag = 1;
|
||
else
|
||
GV_All_ECU_Ready_Flag = 0;
|
||
|
||
if(GV_BCM_Init_Status == 0 /*&& GV_BMS_Init_Status == 0 */&& GV_MCU_Init_Status == 0 && GV_Steer_Init_Status == 0 && GV_Brake_Init_Status == 0 && GV_ACU_Init_Status == 0)
|
||
GV_ALL_ECU_Off_Flag = 1;
|
||
else
|
||
GV_ALL_ECU_Off_Flag = 0;
|
||
}
|
||
|
||
/*
|
||
* Function Name : Key_on_Sub_Func3
|
||
* Data Type : void
|
||
* Description : Final Sub Function / Check ECU Init , HV on, LDC on -> Pass
|
||
* Requirement : Operation Ready, EPAM Release, Process Status = Key on Complete 3
|
||
*/
|
||
void Key_on_Sub_Func3(void)
|
||
{
|
||
Operation_Ready = 1;
|
||
GV_EPAM_CMD = 0; //EPAM Release Cmd
|
||
GV_IG_Process_Status = 3;
|
||
}
|
||
|
||
/*
|
||
* Function Name : Key_on_Process_Func
|
||
* Data Type : void
|
||
* Description : ECU Init / Contact HV System / EPAM Release and Process Complete
|
||
* Requirement : *
|
||
*/
|
||
void Key_on_Process_Func(void)
|
||
{
|
||
Key_on_Sub_Func1();
|
||
Key_on_Sub_Func2();
|
||
if(GV_All_ECU_Ready_Flag == 1) Key_on_Sub_Func3();
|
||
}
|
||
|
||
/*=================== Ignition Off ===================*/
|
||
/* Key off 시 고전압 확인
|
||
* Function Name : IG_OffCheck_HV_Status
|
||
* Data Type : void
|
||
* Description : Checklist / 1. -- / 2. HV Released / 3. EPAM Applied / 4. LDC, BMS Fault Check
|
||
* Requirement : *
|
||
*/
|
||
void IG_OffCheck_HV_Status_2(void)
|
||
{
|
||
if(GV_HV_Apply_Check == 1 && GV_EPAM_STA == 1) GV_IG_Process_Status = 0;
|
||
}
|
||
|
||
void HV_OFF_FUNC(void)
|
||
{
|
||
/*Check Fault Status, Contact HV Sys*/
|
||
if(GV_LDC_Apply_Check == 0 && GV_HV_ON_CMD == 1)
|
||
{
|
||
CNT_GV_HV_ON_CMD++;
|
||
} // 240522 LDC 전원 드랍확인 후 CNT 진행, 충분한 시간 후 HV OFF
|
||
|
||
/*Check Fault Status, Contact LDC Sys*/
|
||
// LDC
|
||
GV_LDC_ACT_CMD = 0;
|
||
|
||
GV_LDC_TAGT_CMD = 0;
|
||
|
||
|
||
|
||
if (CNT_GV_HV_ON_CMD >= 500) //1000ms
|
||
{
|
||
CNT_GV_HV_ON_CMD = 0;
|
||
GV_HV_ON_CMD = 0;
|
||
GV_Key_Off_Level = 2;
|
||
}
|
||
}
|
||
|
||
void Key_off_Sub_Func1(void)
|
||
{
|
||
if(GV_BCM_Init_Status == 1 && GV_MCU_Init_Status == 1 && GV_Steer_Init_Status == 1 && GV_Brake_Init_Status == 1 && GV_ACU_Init_Status == 1)
|
||
GV_All_ECU_Ready_Flag = 1;
|
||
else
|
||
GV_All_ECU_Ready_Flag = 0;
|
||
|
||
// if(GV_BCM_Init_Status == 0 && GV_MCU_Init_Status == 0 && GV_Steer_Init_Status == 0 && GV_Brake_Init_Status == 0 && GV_ACU_Init_Status == 0)
|
||
// {
|
||
// GV_ALL_ECU_Off_Flag = 1;
|
||
// GV_Key_Off_Level = 1;
|
||
// }
|
||
// else
|
||
// GV_ALL_ECU_Off_Flag = 0;
|
||
|
||
GV_ALL_ECU_Off_Flag = 1;
|
||
GV_Key_Off_Level = 1;
|
||
}
|
||
|
||
|
||
void Key_off_Sub_Func2(void)
|
||
{
|
||
HV_OFF_FUNC();
|
||
}
|
||
|
||
void Key_off_Sub_Func3(void)
|
||
{
|
||
// ldc 드랍
|
||
if(GV_can_rx_ldc_v < 5)
|
||
{
|
||
GV_CE_ON_CMD = 0;
|
||
GV_Key_Off_Level = 3;
|
||
}
|
||
else GV_CE_ON_CMD = 1;
|
||
}
|
||
|
||
|
||
void Key_Off_Process_Func(void)
|
||
{
|
||
Key_off_Sub_Func1();
|
||
if(GV_Key_Off_Level == 1) Key_off_Sub_Func2();
|
||
else if(GV_Key_Off_Level == 2) Key_off_Sub_Func3();
|
||
|
||
if(GV_ALL_ECU_Off_Flag == 1 && GV_Key_Off_Level == 3)
|
||
{
|
||
Operation_Ready = 0;
|
||
GV_IG_Process_Status = 1;
|
||
}
|
||
}
|