VehCo.c 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  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] = "P156V103"; //应用层软件版本信息,可通过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. CAN2Net_Manage1ms();
  94. #endif
  95. //CAN2Net_Manage1ms();
  96. }
  97. //停机准备状态操作,10ms运行一次
  98. uint8 VehCo_Afterrun(void)
  99. {
  100. uint8 stRetUB = 0;
  101. if (HardwareDrv_bBootloaderReqUB == 1)
  102. {
  103. //进入Bootloader烧写状态准备,将系统置于安全状态
  104. {
  105. stRetUB = 1;
  106. }
  107. }
  108. else
  109. {
  110. //进入停机关电准备
  111. /*样例代码*/
  112. #ifdef _SAMPLE_CODE_
  113. VehCo_Ctrl();
  114. #endif //_SAMPLE_CODE_
  115. {
  116. stRetUB = 1;
  117. }
  118. }
  119. return stRetUB;
  120. }
  121. /*********************************************************************************************/
  122. /*样例代码*/
  123. #ifdef _SAMPLE_CODE_
  124. void VehCo_Ctrl(void)
  125. {
  126. /*在CAN唤醒的情况下,由上层算法决定CAN唤醒过程结束*/
  127. if (BattCD_stWakeupU.B.bCAN == 1)
  128. {
  129. if (VehCo_bTestCANWuFinUW_C == 1)
  130. {
  131. BattCD_stWakeupU.B.bCAN = 0;
  132. }
  133. }
  134. #ifdef _APP_TEST_CODE
  135. TestDeviceFun();
  136. VehCo_uBattF = (float32)BattCD_uFltUW / 100.0F;
  137. #endif
  138. #ifdef _APP_TEST_MOTOR_CODE
  139. MotorTestFun();
  140. #endif
  141. #ifdef _APP_RELEASE_CODE
  142. /*正式程序开始*/
  143. GetHVLockState();
  144. GetDIOState();
  145. GetAIOValue();
  146. LockAndUnlockCtrl();
  147. #endif
  148. }
  149. #endif //_SAMPLE_CODE_
  150. /*********************************************************************************************/