VehCo.c 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. /*
  2. * @Author : ChenJie
  3. * @Date : 2021-11-25 15:36:06
  4. * @Version : V3.0
  5. * @LastEditors : ChenJie
  6. * @LastEditTime : 2021-12-15 11:53:14
  7. * @Description : file content
  8. * @FilePath : \VehicleControl\VehicleControl\src\System\Vehicle\VehCo.c
  9. */
  10. /********************************************************************************
  11. * 常州易控汽车电子股份有限公司
  12. * (c) Copyright 2009-2015 ECTEK
  13. * 保留所有权利
  14. ********************************************************************************
  15. * 工程名称:整车管理
  16. * 文件名: VehCo.c
  17. * 功能描述 : 整车管理协调
  18. * 引用记录:
  19. * 备注:
  20. * 修订记录:
  21. * 日期 版本 作者 描述
  22. * 2011.07.14 00.01.00 李中 第一版
  23. *******************************************************************************/
  24. #include "VehCo.h"
  25. #include "HardwareLib.h"
  26. #include "CANNet.h"
  27. #include "AccPedCD.h"
  28. #define APPLAYERVER_START_SEC_VAR
  29. #include "MemMap.h"
  30. const uint8 AppLayer_idxVerUBA[64] = "P156V101"; //应用层软件版本信息,可通过UDS接口读取
  31. #define APPLAYERVER_STOP_SEC_VAR
  32. #include "MemMap.h"
  33. /*********************************************************************************************/
  34. /*示例代码*/
  35. #ifdef _SAMPLE_CODE_
  36. #endif //_SAMPLE_CODE_
  37. /*********************************************************************************************/
  38. /*************************************************************/
  39. /*标定数据区开始(请不要在该区域加入非标定数据相关的内容) */
  40. #define MAPDATA_START_SEC_VAR_CONST
  41. #include "MemMap.h"
  42. /*VehCo*/
  43. PRAGMA_MAPDATA const uint16 VehCo_bTestCANWuFinUW_C = 0; /*测试模式下控制CAN唤醒状态结束*/
  44. PRAGMA_MAPDATA const uint16 VehCo_bTestCPCtrlUW_C = 0; /*CP下拉阻值选择测试操作*/
  45. #define MAPDATA_STOP_SEC_VAR_CONST
  46. #include "MemMap.h"
  47. /*标定数据区结束 */
  48. /*************************************************************/
  49. #define _BOOTLOADER_EMBEDDED
  50. #ifdef _BOOTLOADER_EMBEDDED
  51. uint32 VehCo_pBootloaderUIP;
  52. #pragma section ".bootloader_entry" ax
  53. void Bootloader_Entry(void);
  54. #pragma section
  55. #endif
  56. //整车管理初始化
  57. void VehCo_Init(void)
  58. {
  59. #ifdef _BOOTLOADER_EMBEDDED
  60. VehCo_pBootloaderUIP = (uint32)Bootloader_Entry;
  61. #endif
  62. /*********************************************************************************************/
  63. /*示例代码*/
  64. #ifdef _SAMPLE_CODE_
  65. AccPedCD_Init();
  66. //VehCo_uAccPedUW = 0;
  67. #endif //_SAMPLE_CODE_
  68. /*********************************************************************************************/
  69. CANNet_Init();
  70. /*打开强电主继电器*/
  71. PSwtDrv_Interface(_PSWT_INDEX_MAINRELAY_CHAN, 1);
  72. //打开蓝牙电源
  73. PSwtDrv_Interface(_PSWT_INDEX_BLEPWRCONTROL, 1);
  74. }
  75. //整车管理10ms基准运行任务
  76. void VehCo_Manage10ms(void)
  77. {
  78. /*********************************************************************************************/
  79. /*样例代码*/
  80. #ifdef _SAMPLE_CODE_
  81. VehCo_Ctrl();
  82. VcuRxDiagnose();
  83. BcuRxDiagnose();
  84. #endif //_SAMPLE_CODE_
  85. /*********************************************************************************************/
  86. }
  87. //整车管理1ms基准运行任务
  88. void VehCo_Manage1ms(void)
  89. {
  90. #ifdef _APP_RELEASE_CODE
  91. CAN0Net_Manage1ms();
  92. CAN1Net_Manage1ms();
  93. #endif
  94. CAN2Net_Manage1ms();
  95. }
  96. //停机准备状态操作,10ms运行一次
  97. uint8 VehCo_Afterrun(void)
  98. {
  99. uint8 stRetUB = 0;
  100. if (HardwareDrv_bBootloaderReqUB == 1)
  101. {
  102. //进入Bootloader烧写状态准备,将系统置于安全状态
  103. {
  104. stRetUB = 1;
  105. }
  106. }
  107. else
  108. {
  109. //进入停机关电准备
  110. /*样例代码*/
  111. #ifdef _SAMPLE_CODE_
  112. VehCo_Ctrl();
  113. #endif //_SAMPLE_CODE_
  114. {
  115. stRetUB = 1;
  116. }
  117. }
  118. return stRetUB;
  119. }
  120. /*********************************************************************************************/
  121. /*样例代码*/
  122. #ifdef _SAMPLE_CODE_
  123. void VehCo_Ctrl(void)
  124. {
  125. /*在CAN唤醒的情况下,由上层算法决定CAN唤醒过程结束*/
  126. if (BattCD_stWakeupU.B.bCAN == 1)
  127. {
  128. if (VehCo_bTestCANWuFinUW_C == 1)
  129. {
  130. BattCD_stWakeupU.B.bCAN = 0;
  131. }
  132. }
  133. #ifdef _APP_TEST_CODE
  134. TestDeviceFun();
  135. VehCo_uBattF = (float32)BattCD_uFltUW / 100.0F;
  136. #endif
  137. #ifdef _APP_TEST_MOTOR_CODE
  138. MotorTestFun();
  139. #endif
  140. #ifdef _APP_RELEASE_CODE
  141. /*正式程序开始*/
  142. GetHVLockState();
  143. GetDIOState();
  144. GetAIOValue();
  145. #endif
  146. }
  147. #endif //_SAMPLE_CODE_
  148. /*********************************************************************************************/