123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- /*
- * @Author : ChenJie
- * @Date : 2021-11-25 15:36:06
- * @Version : V3.0
- * @LastEditors : ChenJie
- * @LastEditTime : 2022-05-10 19:04:08
- * @Description : file content
- * @FilePath : \VehicleControl\VehicleControl\src\System\Vehicle\VehCo.c
- */
- /********************************************************************************
- * 常州易控汽车电子股份有限公司
- * (c) Copyright 2009-2015 ECTEK
- * 保留所有权利
- ********************************************************************************
- * 工程名称:整车管理
- * 文件名: VehCo.c
- * 功能描述 : 整车管理协调
- * 引用记录:
- * 备注:
- * 修订记录:
- * 日期 版本 作者 描述
- * 2011.07.14 00.01.00 李中 第一版
- *******************************************************************************/
- #include "VehCo.h"
- #include "HardwareLib.h"
- #include "CANNet.h"
- #include "AccPedCD.h"
- #define APPLAYERVER_START_SEC_VAR
- #include "MemMap.h"
- const uint8 AppLayer_idxVerUBA[64] = "P156V102"; //应用层软件版本信息,可通过UDS接口读取
- #define APPLAYERVER_STOP_SEC_VAR
- #include "MemMap.h"
- /*********************************************************************************************/
- /*示例代码*/
- #ifdef _SAMPLE_CODE_
- #endif //_SAMPLE_CODE_
- /*********************************************************************************************/
- /*************************************************************/
- /*标定数据区开始(请不要在该区域加入非标定数据相关的内容) */
- #define MAPDATA_START_SEC_VAR_CONST
- #include "MemMap.h"
- /*VehCo*/
- PRAGMA_MAPDATA const uint16 VehCo_bTestCANWuFinUW_C = 0; /*测试模式下控制CAN唤醒状态结束*/
- PRAGMA_MAPDATA const uint16 VehCo_bTestCPCtrlUW_C = 0; /*CP下拉阻值选择测试操作*/
- #define MAPDATA_STOP_SEC_VAR_CONST
- #include "MemMap.h"
- /*标定数据区结束 */
- /*************************************************************/
- #define _BOOTLOADER_EMBEDDED
- #ifdef _BOOTLOADER_EMBEDDED
- uint32 VehCo_pBootloaderUIP;
- #pragma section ".bootloader_entry" ax
- void Bootloader_Entry(void);
- #pragma section
- #endif
- //整车管理初始化
- void VehCo_Init(void)
- {
- #ifdef _BOOTLOADER_EMBEDDED
- VehCo_pBootloaderUIP = (uint32)Bootloader_Entry;
- #endif
- /*********************************************************************************************/
- /*示例代码*/
- #ifdef _SAMPLE_CODE_
- AccPedCD_Init();
- // VehCo_uAccPedUW = 0;
- #endif //_SAMPLE_CODE_
- /*********************************************************************************************/
- CANNet_Init();
- /*打开强电主继电器*/
- PSwtDrv_Interface(_PSWT_INDEX_MAINRELAY_CHAN, 1);
- //打开蓝牙电源
- PSwtDrv_Interface(_PSWT_INDEX_BLEPWRCONTROL, 1);
- }
- //整车管理10ms基准运行任务
- void VehCo_Manage10ms(void)
- {
- /*********************************************************************************************/
- /*样例代码*/
- #ifdef _SAMPLE_CODE_
- static UINT16 TimerMs = 0;
- TimerMs = TimerMs + 10;
- VehCo_Ctrl();
- VcuRxDiagnose();
- BcuRxDiagnose();
- if (TimerMs % 100 == 0)
- {
- //FaultDiagnosisFunc();//此处有重启问题,待排查
- }
- #endif //_SAMPLE_CODE_
- /*********************************************************************************************/
- }
- //整车管理1ms基准运行任务
- void VehCo_Manage1ms(void)
- {
- CAN0Net_Manage1ms();
- CAN1Net_Manage1ms();
- CAN2Net_Manage1ms();
- }
- //停机准备状态操作,10ms运行一次
- uint8 VehCo_Afterrun(void)
- {
- uint8 stRetUB = 0;
- if (HardwareDrv_bBootloaderReqUB == 1)
- {
- //进入Bootloader烧写状态准备,将系统置于安全状态
- {
- stRetUB = 1;
- }
- }
- else
- {
- //进入停机关电准备
- /*样例代码*/
- #ifdef _SAMPLE_CODE_
- VehCo_Ctrl();
- #endif //_SAMPLE_CODE_
- {
- stRetUB = 1;
- }
- }
- return stRetUB;
- }
- /*********************************************************************************************/
- /*样例代码*/
- #ifdef _SAMPLE_CODE_
- void VehCo_Ctrl(void)
- {
- /*在CAN唤醒的情况下,由上层算法决定CAN唤醒过程结束*/
- if (BattCD_stWakeupU.B.bCAN == 1)
- {
- if (VehCo_bTestCANWuFinUW_C == 1)
- {
- BattCD_stWakeupU.B.bCAN = 0;
- }
- }
- /*正式程序开始*/
- GetHVLockState();
- GetDIOState();
- GetAIOValue();
- LockAndUnlockCtrl();
- }
- #endif //_SAMPLE_CODE_
- /*********************************************************************************************/
|