VehCo.c 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. /*
  2. * @Author : ChenJie
  3. * @Date : 2021-11-25 15:36:06
  4. * @Version : V3.0
  5. * @LastEditors : ChenJie
  6. * @LastEditTime : 2022-05-10 19:04:08
  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] = "P156V102"; //应用层软件版本信息,可通过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. CANNet_Init();
  63. // /*打开强电主继电器*/
  64. // PSwtDrv_Interface(_PSWT_INDEX_MAINRELAY_CHAN, 1);
  65. // //打开蓝牙电源
  66. // PSwtDrv_Interface(_PSWT_INDEX_BLEPWRCONTROL, 1);
  67. }
  68. //整车管理10ms基准运行任务
  69. void VehCo_Manage10ms(void)
  70. {
  71. Can0RxDiagnose();
  72. // Can1RxDiagnose();
  73. VehCo_Ctrl();
  74. }
  75. //整车管理1ms基准运行任务
  76. void VehCo_Manage1ms(void)
  77. {
  78. CAN0Net_Manage1ms();
  79. CAN1Net_Manage1ms();
  80. CAN2Net_Manage1ms();
  81. }
  82. //停机准备状态操作,10ms运行一次
  83. uint8 VehCo_Afterrun(void)
  84. {
  85. uint8 stRetUB = 0;
  86. if (HardwareDrv_bBootloaderReqUB == 1)
  87. {
  88. //进入Bootloader烧写状态准备,将系统置于安全状态
  89. {
  90. stRetUB = 1;
  91. }
  92. }
  93. else
  94. {
  95. //进入停机关电准备
  96. VehCo_Ctrl();
  97. {
  98. stRetUB = 1;
  99. }
  100. }
  101. return stRetUB;
  102. }
  103. /*********************************************************************************************/
  104. void VehCo_Ctrl(void)
  105. {
  106. /*在CAN唤醒的情况下,由上层算法决定CAN唤醒过程结束*/
  107. if (BattCD_stWakeupU.B.bCAN == 1)
  108. {
  109. if (VehCo_bTestCANWuFinUW_C == 1)
  110. {
  111. BattCD_stWakeupU.B.bCAN = 0;
  112. }
  113. }
  114. /*正式程序开始*/
  115. GetAIOValue();
  116. GetDIOState();
  117. ctrlFunc();
  118. }
  119. /*********************************************************************************************/