123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
- #include "var.h"
- MC_RunInfo_Struct_t MC_RunInfo; //MC运行信息
- MC_ErrorCode_Struct_t MC_ErrorCode; //MC故障代码
- MC_VerInfo_Struct_t MC_VerInfo; //MC版本信息
- OnLine_Status_Struct_t DeviceOnLine_Status; //设备在线检测结果
- BMS_RunInfo_Struct_t BMS_RunInfo; //BMS运行信息
- Device_CheckInfo_Struct_t BMS_CheckInfo; //BMS授权校验
- BMS_DesignInfo_Struct_t BMS_DesignInfo; //BMS设计信息
- Device_CheckInfo_Struct_t PBU_CheckInfo; //PBU授权校验
- PBU_ConfigParam_Struct_t PBU_ConfigParam; //PBU配置参数
- Device_CheckInfo_Struct_t HMI_CheckInfo; //HMI授权校验
- MC_ConfigParam_Struct_t MC_ConfigParam; //MC配置参数
- MC_TorqueCorrectParam_Struct_t MC_TorqueCorrectParam; //力矩传感器校正信息
- MC_MotorParam_Struct_t MC_MotorParam; //马达参数
- MC_RunLog_Struct_t MC_RunLog; //MC历史信息
- uint8_t Secret_Key[8]; //授权验证密钥
- MC_MacInfo_Struct_t MC_MacInfo; //MC生产信息
- uint8_t UserString1[16]; //MC自定义字符串1
- uint8_t UserString2[16]; //MC自定义字符串2
- uint8_t UserString3[16]; //MC自定义字符串3
- Device_CheckInfo_Struct_t MC_CheckInfo; //MC授权信息
- MC_TE_SensorStatus_Struct_t MC_TE_SensorStatus; //TE传回传感器状态
- MC_TE_SensorData_Struct_t MC_TE_SensorData; //发给TE传感器结果
- MC_AssistParam_Struct_t MC_AssisParam; //助力输出计算参数
- uint8_t MC_WalkMode_Persent = 100; //推行模式最高转速百分比设置
- #if INSERT_FAULT_TEST_FLAG
- uint8_t InsertFault_Flag = INSERT_FAULT_NC;
- #endif
- //BMS默认设计信息
- const BMS_DesignInfo_Struct_t BMS_DesignInfo_Default =
- {
- (uint16_t)10000, //设计容量
- (uint8_t)36, //设计电压
- {0,0,0,0,0,0,0,0} //电芯型号
- };
- //PBU默认配置
- const PBU_ConfigParam_Struct_t PBU_ConfigParam_Default =
- {
- 4, //档位数量
- MC_SUPPORT_DISABLE, //是否支持无PBU操作
- };
- //MC默认配置参数,占用32bytes
- const MC_ConfigParam_Struct_t MC_ConfigParam_Default =
- {
- (uint8_t)0, //预留
- (MC_StarMode_Struct_t)MC_StarMode_NORM, //启动模式
- (uint16_t)100, //停机时间 ms
- (uint8_t)25, //限速 km/h
- (uint8_t)3, //下降速度
- (uint8_t)14, //前齿数 T
- (uint8_t)9, //后齿数 T
- (uint8_t)17, //限流 A
- (uint8_t)135, //高温预警值 +40℃
- (uint8_t)165, //高温保护值 +40℃
- (MC_SupportFlag_Struct_t)MC_SUPPORT_DISABLE, //0x55-不支持,0x-AA支持
- (uint8_t)219, //轮胎周长 cm
- (uint8_t)0, //系列号,
- {100,100}, //ECO
- {100,100}, //NORM
- {100,100}, //SPORT
- {100,100}, //TURBO
- {100,100} //SMART
- };
- const MC_TorqueCorrectParam_Struct_t MC_TorqueCorrectParam_Default =
- {
- (uint16_t)400,
- (uint8_t)100
- };
- //MC默认马达参数,占用16bytes
- const MC_MotorParam_Struct_t MC_MotorParam_Default =
- {
- (uint16_t)250, //W
- (uint16_t)1600, //rpm
- (uint16_t)200, //mohm
- (uint16_t)10, //mH
- (uint16_t)10, //mH
- (uint16_t)36000, //mV
- (uint8_t)36 //V
- };
- //MC默认历史信息,占用48bytes
- const MC_RunLog_Struct_t MC_RunLog_Default =
- {
- (uint32_t)1, //开机次数
- (uint32_t)0, //运行总时间 min
- (uint16_t)0, //过流保次数
- (uint16_t)0, //低压保护次数
- (uint16_t)0, //高压保护次数
- (uint16_t)0, //堵转保护次数
- (uint16_t)0, //温度保护次数
- (uint16_t)0, //速度传感器错误次数
- (uint16_t)0, //力矩传感器错误次数
- (uint16_t)0, //霍尔传感器错误次数
- (uint16_t)0, //马达相线错误次数
- (uint16_t)0, //NTC错误次数
- (uint16_t)0, //BMS校验错误次数
- (uint16_t)0, //HMI校验错误次数
- (uint16_t)0, //PBU校验错误次数
- (uint8_t)65, //PCB历史最高温
- (uint8_t)65, //PCB历史最低温
- (uint32_t)0, //运行总里程
- (uint8_t)65, //绕组历史最高温
- (uint8_t)65, //绕组历史最低温
- (uint8_t)65, //MCU历史最高温
- (uint8_t)65 //MCU历史最低温
- };
- //默认密钥,占用8bytes
- const uint8_t Secret_Key_Default[8] = "!@#$%^&*";
- //ECO档位助力参数
- const nGearParam_Struct_t GearParam_Default_ECO =
- {
- (uint16_t)377,
- (uint16_t)0,
- (uint16_t)100,
- (uint16_t)840,
- (uint8_t)1,
- (uint8_t)1,
- (uint16_t)338
- };
- //NORM档位助力参数
- const nGearParam_Struct_t GearParam_Default_NORM =
- {
- (uint16_t)795,
- (uint16_t)0,
- (uint16_t)100,
- (uint16_t)1200,
- (uint8_t)2,
- (uint8_t)1,
- (uint16_t)605
- };
- //SPORT档位助力参数
- const nGearParam_Struct_t GearParam_Default_SPORT =
- {
- (uint16_t)1504,
- (uint16_t)0,
- (uint16_t)100,
- (uint16_t)1590,
- (uint8_t)3,
- (uint8_t)1,
- (uint16_t)1003
- };
- //TURBO档位助力参数
- const nGearParam_Struct_t GearParam_Default_TURBO =
- {
- (uint16_t)2354,
- (uint16_t)0,
- (uint16_t)100,
- (uint16_t)2100,
- (uint8_t)5,
- (uint8_t)1,
- (uint16_t)1024
- };
- //SMART档位助力参数
- const nGearParam_Struct_t GearParam_Default_SMART =
- {
- (uint16_t)1000,
- (uint16_t)1460,
- (uint16_t)100,
- (uint16_t)2100,
- (uint8_t)4,
- (uint8_t)1,
- (uint16_t)1024
- };
- //全局函数定义
- //变量初始化
- void Var_Init(void)
- {
- //MC故障码初始化为0
- MC_ErrorCode.Code = 0;
-
- //TE故障码初始化为0
- MC_TE_SensorStatus.TE_ErrorCode.Code = 0;
-
- //设备在线检测结果初始化为离线
- DeviceOnLine_Status.Status = 0x07;
-
- //BMS设计信息初始化为默认值
- memcpy((uint8_t*)&BMS_DesignInfo.Capacity, (uint8_t*)&BMS_DesignInfo_Default.Capacity, sizeof(BMS_DesignInfo_Struct_t));
-
- //PBU配置参数初始化为默认值
- memcpy((uint8_t*)&PBU_ConfigParam.GearsNum, (uint8_t*)&PBU_ConfigParam_Default.GearsNum, sizeof(PBU_ConfigParam_Struct_t));
-
- //MC版本信息初始化,Mode和SN从EEPROM读取
- strcpy(MC_VerInfo.HW_Version, (char*)"V0r3r1_20190307.");//QD004C,增加修改同步IO和同步时钟的跳线
- strcpy(MC_VerInfo.FW_Version, (char*)"V0r1r0_20190530.");
-
- //MC校验信息初始化,校验码从EEPROM读取
- MC_CheckInfo.MAC_ID[0] = *(__IO uint32_t*)(0x1FFFF7E8);
- MC_CheckInfo.MAC_ID[1] = *(__IO uint32_t*)(0x1FFFF7EC);
- MC_CheckInfo.MAC_ID[2] = *(__IO uint32_t*)(0x1FFFF7F0);
- //MC存储参数初始化为默认值
- strncpy((char*)MC_CheckInfo.CheckCode, (char*)MC_CheckInfo.MAC_ID, 12);
- memcpy((uint8_t*)&MC_ConfigParam.RS1, (uint8_t*)&MC_ConfigParam_Default.RS1, sizeof(MC_ConfigParam_Default));
- memcpy((uint8_t*)&MC_TorqueCorrectParam.StarData, (uint8_t*)&MC_TorqueCorrectParam_Default.StarData, sizeof(MC_TorqueCorrectParam_Default));
- memcpy((uint8_t*)&MC_MotorParam.Rate_Power, (uint8_t*)&MC_MotorParam_Default.Rate_Power, sizeof(MC_MotorParam_Default));
- memcpy(Secret_Key, Secret_Key_Default, sizeof(Secret_Key_Default));
- memcpy((uint8_t*)&MC_RunLog.PowerOnCnt, (uint8_t*)&MC_RunLog_Default.PowerOnCnt, sizeof(MC_RunLog_Default));
- }
- //根据电机型号系列号调用不同的助力参数
- void UpdateGearParam(uint8_t SerialNum)
- {
- switch(SerialNum)
- {
- case 1:
- {
-
- break;
- }
- case 2:
- {
-
- break;
- }
- case 3:
- {
-
- break;
- }
- case 4:
- {
-
- break;
- }
- default:
- {
- //助力参数初始化
- memcpy((uint8_t*)&MC_AssisParam.Gear_ECO.Gain_K, (uint8_t*)&GearParam_Default_ECO.Gain_K, sizeof(nGearParam_Struct_t));
- memcpy((uint8_t*)&MC_AssisParam.Gear_NORM.Gain_K, (uint8_t*)&GearParam_Default_NORM.Gain_K, sizeof(nGearParam_Struct_t));
- memcpy((uint8_t*)&MC_AssisParam.Gear_SPORT.Gain_K, (uint8_t*)&GearParam_Default_SPORT.Gain_K, sizeof(nGearParam_Struct_t));
- memcpy((uint8_t*)&MC_AssisParam.Gear_TURBO.Gain_K, (uint8_t*)&GearParam_Default_TURBO.Gain_K, sizeof(nGearParam_Struct_t));
- memcpy((uint8_t*)&MC_AssisParam.Gear_SMART.Gain_K, (uint8_t*)&GearParam_Default_SMART.Gain_K, sizeof(nGearParam_Struct_t));
- break;
- }
- }
- }
|