123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436 |
- #ifndef __VAR_H
- #define __VAR_H
- #include "stm32f1xx_hal.h"
- #include "key_drivers.h"
- #include "stdlib.h"
- #include "string.h"
- /******************************类型定义Begin*************************/
- typedef enum
- {
- TRUE = 0U,
- FALSE,
- }TrueOrFalse_Flag_Struct_t;
- //电机运行信息
- typedef struct
- {
- uint16_t BikeSpeed; //车速 0.1km/h,地址偏移0
- int16_t MotorSpeed; //输出转速 1rpm,地址偏移2
- uint16_t Power; //电功率 1W,地址偏移4
- uint16_t BusVoltage; //母线电压 1mV,地址偏移6
- uint16_t BusCurrent; //母线电流 1mA,地址偏移8
- uint8_t Cadence; //踏频 1rpm,地址偏移10
- uint8_t Torque; //踩踏力矩 1Nm,地址偏移11
- uint8_t CadenceDir; //踩踏方向 0-正,1-反,2-停止,地址偏移12
- uint8_t GearSt; //助力档位,地址偏移13
- uint8_t LightSwitch; //灯开关 0xF0-关,0xF1-开,地址偏移14
- uint8_t SOC; //剩余电量 1%,地址偏移15
- uint16_t RemainDistance; //续航里程 1km,地址偏移16
- uint16_t ODO_Km; //总里程 1km,地址偏移18
- uint8_t PowerPerKm; //平均功耗 0.01Ah/km ,地址偏移20
- uint8_t T_PCB; //PCB温度 +40℃,地址偏移21
- uint8_t T_Roil; //绕组温度 +40℃,地址偏移22
- uint8_t T_MCU; //MCU温度 +40℃,地址偏移23
- uint32_t ODO_Time; //骑行总时间 1s,地址偏移24
- uint8_t RS[4];
- }MC_RunInfo_Struct_t;
- //电机故障码
- typedef union MC_ERRORCODE
- {
- struct
- {
- uint32_t Protect_OverCurrent :1;//过流保护
- uint32_t Protect_UnderVoltage :1;//低压保护
- uint32_t Protect_OverVoltage :1;//过压保护
- uint32_t Protect_LockRotor :1;//堵转保护
- uint32_t Protect_OverTemp :1;//过热保护
- uint32_t Fault_SpeedSensor :1;//速度传感器故障
- uint32_t Fault_TorqueSensor :1;//力矩传感器故障
- uint32_t Fault_HallSensor :1;//霍尔传感器故障
- uint32_t Fault_PhaseLine :1;//相线故障
- uint32_t Fault_NtcSensor :1;//温度传感器故障
- uint32_t Fault_BMS_Check :1;//BMS校验失败
- uint32_t Fault_HMI_Check :1;//HMI校验失败
- uint32_t Fault_PBU_Check :1;//PBU校验失败
- uint32_t Fault_MCU :1;//MCU故障
- uint32_t Fault_CadenceSensor :1;//踏频传感器故障
- uint32_t Fault_GasSensor :1;//指拨故障
- uint32_t Fault_MOS :1;//MOS短路
- uint32_t Protect_VoltageChange :1;//电压波动异常
- uint32_t Fault_Circuit :1;//电路故障
- uint32_t Fault_TE_MCU :1;//TE MCU故障
- uint32_t Fault_TE_Circuit :1;//TE 电路故障
- uint32_t RS1 :1;
- uint32_t RS2 :1;
- uint32_t RS3 :1;
- uint32_t RS4 :1;
- uint32_t RS5 :1;
- uint32_t RS6 :1;
- uint32_t RS7 :1;
- uint32_t RS8 :1;
- uint32_t RS9 :1;
- uint32_t RS10 :1;
- uint32_t RS11 :1;
- }ERROR_Bit;
- uint32_t Code;
- }MC_ErrorCode_Struct_t;
- //控制电机指令
- typedef enum PBU_AssistMode_Flag
- {
- PBU_AssistMode_Flag_Gear = 0U, //档位调节模式
- PBU_AssistMode_Flag_Smart, //智能模式
- PBU_AssistMode_Flag_Walk, //推行模式
- PBU_AssistMode_Flag_WalkSby, //推行等待模式
- }PBU_AssistMode_Flag_Struct_t;
- typedef struct
- {
- uint32_t SendCodeTimeCnt_WalkSby; //发送预推行周期计时
- TrueOrFalse_Flag_Struct_t HMI_ACK_Flag; //HMI反馈标志
- uint32_t DelayTimeCnt; //超时计时
- }PBU_WalkSbyProcess_Struct_t;
- typedef struct
- {
- PBU_AssistMode_Flag_Struct_t PBU_AssistMode_Flag; //当前助力模式
- uint32_t SendCodeTimeCnt_Ctl; //发送指令周期计时
- uint32_t WalkDelayTimeCnt; //推行超时退出计时
- uint8_t GearStBak_Walk; //推行模式助力档位备份
- uint8_t GearStBak_Smart; //智能模式助力档位备份
- TrueOrFalse_Flag_Struct_t IsSmartEtrWalk_Flag; //进入Walk前是否Smart标志
- PBU_WalkSbyProcess_Struct_t PBU_WalkSbyProcess; //预推行模式处理
- }PBU_AssitMode_Status_Struct_t;
- typedef struct
- {
- uint8_t GearSt; //助力档位
- uint8_t LightSwitch; //灯开关 0xF0-关,0xF1-开
- }ControlCode_Struct_t;
- //电池运行状态
- typedef union BMS_STATUS
- {
- struct
- {
- uint8_t Charge :1;//充电
- uint8_t Discharge :1;//放电
- uint8_t RS1 :1;
- uint8_t RS2 :1;
- uint8_t RS3 :1;
- uint8_t RS4 :1;
- uint8_t RS5 :1;
- uint8_t RS6 :1;
- }Status_Bit;
- uint8_t Status;
- }BMS_STATUS_Struct_t;
- //电池运行信息
- typedef struct
- {
- uint16_t Voltage; //电压 1mV,地址偏移0
- uint16_t Current; //电流 1mA,地址偏移2
- uint16_t RC; //剩余容量 1mAh,地址偏移4
- uint16_t FCC; //满充容量 1mAh,地址偏移6
- uint8_t Cell_NTC; //电芯温度 +40℃,地址偏移8
- uint8_t SOC; //剩余电量 1%,地址偏移9
- BMS_STATUS_Struct_t Status; //运行状态,地址偏移10
- }BMS_RunInfo_Struct_t;
- //电池故障码
- typedef union BMS_ERRORCODE
- {
- struct
- {
- uint32_t DisOverCurrent2st :1;//二级放电过流保护过流
- uint32_t ChgOverCurrent :1;//充电过流保护
- uint32_t ShortCircut :1;//短路保护
- uint32_t UnderVoltage :1;//过放保护
- uint32_t OverVoltage :1;//过充保护
- uint32_t DisUnderTemp :1;//放电低温保护
- uint32_t DisOverTemp :1;//放电高温保护
- uint32_t ChgUnderTemp :1;//充电低温保护
- uint32_t ChgOverTemp :1;//充电高温保护
- uint32_t DisMOS :1;//放电MOS失效
- uint32_t ChgMOS :1;//充电MOS失效
- uint32_t NTC :1;//NTC失效
- uint32_t DisOverCurrentWarn1 :1;//一级放电过流警告
- uint32_t DisOverCurrent1st :1;//一级放电过流保护
- uint32_t AFE :1;//AFE失效
- uint32_t MCU :1;//MCU故障
- uint32_t ChgOverVoltageWarn :1;//充电过压警告
- uint32_t DisUnderVoltageWarn :1;//放电低压警告
- uint32_t ChgOverCurrentWarn :1;//充电过流警告
- uint32_t DisOverCurrentWarn :1;//放电过流警告
- uint32_t ChgOverTempWarn :1;//充电高温警告
- uint32_t ChgUnderTempWarn :1;//充电低温警告
- uint32_t DisOverTempWarn :1;//放电高温警告
- uint32_t DisUnderTempWarn :1;//放电低温警告
- uint32_t MOSOverTempWarn :1;//MOS高温警告
- uint32_t RS11 :1;
- uint32_t RS12 :1;
- uint32_t RS13 :1;
- uint32_t RS14 :1;
- uint32_t RS15 :1;
- uint32_t RS16 :1;
- uint32_t RS17 :1;
- }ERROR_Bit;
- uint32_t Code;
- }BMS_ErrorCode_Struct_t;
- //按键状态
- typedef struct
- {
- Key_Status_t Key_Add; //+键
- Key_Status_t Key_Dec; //-键
- Key_Status_t Key_Set; //i键
- Key_Status_t Key_Power; //电源键
- Key_Status_t Key_Light; //灯键
- Key_Status_t Key_Walk; //Walk键
- }PBU_HMI_KeyStatus_Struct_t;
- typedef struct
- {
- PBU_HMI_KeyStatus_Struct_t PBU_HMI_KeyStatus;
- uint8_t KeyTrig_Flag; //按键触发标志
- TrueOrFalse_Flag_Struct_t HMI_ACK_Flag; //HMI进入菜单模式反馈标志
- uint32_t SendCodeTimeCnt; //发送指令周期计时
- uint32_t DelayTimeCnt; //超时计时
- }PBU_HMI_Menu_Process_Struct_t;
- //按键测试
- typedef union KEY_STATUS
- {
- struct
- {
- uint8_t Add :1;//+
- uint8_t Dec :1;//-
- uint8_t Set :1;//Set
- uint8_t Light :1;//Light
- uint8_t Walk :1;//Walk
- uint8_t Power :1;//Power
- uint8_t RS1 :1;
- uint8_t RS2 :1;
- }Status_Bit;
- uint8_t Status;
- }KeyTest_Status_Struct_t;
- typedef struct
- {
- KeyTest_Status_Struct_t KeyTest_Status; //测试模式按键状态
- uint32_t SendCodeTimeCnt; //发送指令周期计时
- }PBU_TestMode_Process_Struct_t;
- //PBU出厂配置
- typedef struct
- {
- uint8_t RatedVoltage; //额定电压
- uint8_t GearsNum; //助力档位数量
- uint8_t NoHMI_Flag; //支持无HMI标识,0x55-不支持,0x-AA支持
- uint8_t Rs1;
- uint8_t Rs2;
- uint8_t Rs3;
- uint8_t Rs4;
- uint8_t Rs5;
- uint8_t Rs6;
- uint8_t Rs7;
- uint8_t Rs8;
- uint8_t Rs9;
- uint8_t Rs10;
- uint8_t Rs11;
- uint8_t Rs12;
- uint8_t Rs13;
- }PBU_ConfigParam_Struct_t;
- //PBU运行历史信息
- typedef struct
- {
- uint32_t RunTime; //运行总时间 1min
- uint32_t PowerOnCnt; //开机次数
- uint8_t Rs1;
- uint8_t Rs2;
- uint8_t Rs3;
- uint8_t Rs4;
- uint8_t Rs5;
- uint8_t Rs6;
- uint8_t Rs7;
- uint8_t Rs8;
- }PBU_RunLog_Struct_t;
- //PBU生产信息
- typedef struct
- {
- char Manufacturer[8]; //生产厂商 ASCII,0x2E结束,无效填充0x20
- char MacAddr[8]; //生产地 ASCII,0x2E结束,无效填充0x20
- char MacDate[8]; //生产日期 ASCII,0x2E结束,无效填充0x20
- char Rs[8];
- }PBU_MacInfo_Struct_t;
- //PBU版本信息
- typedef struct
- {
- char Mode[16]; //型号 ASCII,0x2E结束,无效填充0x20
- char SN_Num[16]; //序列号 ASCII,0x2E结束,无效填充0x20
- char HW_Version[16]; //硬件版本 ASCII,0x2E结束,无效填充0x20
- char FW_Version[16]; //软件版本 ASCII,0x2E结束,无效填充0x20
- }PBU_VerInfo_Struct_t;
- //PBU校验信息
- typedef struct
- {
- uint32_t MAC_ID[3]; //物理ID
- uint8_t CheckCode[12]; //校验码
- }PBU_CheckInfo_Struct_t;
- //PBU运行模式
- typedef enum
- {
- PBU_RunMode_MC_AssisitCtrl = 0U, //助力控制模式
- PBU_RunMode_HMI_Menu, //HMI设置模式
- PBU_RunMode_CDL_KeyTest, //按键测试
- PBU_RunMode_PowerOff, //关机处理模式
- PBU_RunMode_Updating //升级模式
- }PBU_RunMode_t;
- //PBU关机处理
- typedef union READY_STATUS
- {
- struct
- {
- uint8_t MC :1;//接收到MC关机就绪信号
- uint8_t BMS :1;//接收到BMS关机就绪信号
- uint8_t HMI :1;//接收到HMI关机就绪信号
- uint8_t RS1 :1;
- uint8_t RS2 :1;
- uint8_t RS3 :1;
- uint8_t RS4 :1;
- uint8_t RS5 :1;
- }Status_Bit;
- uint8_t Status;
- }Ready_Status_Struct_t;
- typedef struct
- {
- Ready_Status_Struct_t Ready_Status;
- uint32_t SendCodeTimeCnt;
- uint32_t DelayTimeCnt;
- }PBU_PowerOff_Process_Struct_t;
- //开机处理
- typedef struct
- {
- uint8_t PowerKeyStatus; //0-初始状态,1-按下中,2-弹起
- uint32_t PowerOnTimeCnt;
- uint8_t PowerOnOKCnt;
- }PBU_PowerOn_Process_Struct_t;
- //配置MC参数
- typedef struct
- {
- TrueOrFalse_Flag_Struct_t MC_ACK_Flag;
- uint32_t SendCodeTimeCnt;
- uint32_t DelayTimeCnt;
- }PBU_MC_CfgProcess_Struct_t;
- //PBU故障码
- typedef union PBU_ERRORCODE
- {
- struct
- {
- uint32_t Key_Add :1;//+键故障
- uint32_t Key_Dec :1;//-键故障
- uint32_t Key_Set :1;//i键故障
- uint32_t Key_Light :1;//灯键故障
- uint32_t Key_Walk :1;//Walk键故障
- uint32_t Key_Power :1;//电源键故障
- uint32_t MCU_Fault :1;//MCU故障 66
- uint32_t MOS_Fault :1;// 67
- uint32_t Hardware_Fault :1;// 68
- uint32_t Communication_HMI_Fault :1;// 69
- uint32_t Communication_MC_Fault : 1;// 70
- uint32_t RS4 :1;
- uint32_t RS5 :1;
- uint32_t RS6 :1;
- uint32_t RS7 :1;
- uint32_t RS8 :1;
- uint32_t RS9 :1;
- uint32_t RS10 :1;
- uint32_t RS11 :1;
- uint32_t RS12 :1;
- uint32_t RS13 :1;
- uint32_t RS14 :1;
- uint32_t RS15 :1;
- uint32_t RS16 :1;
- uint32_t RS17 :1;
- uint32_t RS18 :1;
- uint32_t RS19 :1;
- uint32_t RS20 :1;
- uint32_t RS21 :1;
- uint32_t RS22 :1;
- uint32_t RS23 :1;
- uint32_t RS24 :1;
- }ERROR_Bit;
- uint32_t Code;
- }PBU_ErrorCode_Struct_t;
- /******************************类型定义End***************************/
- /******************************全局变量Begin*************************/
- extern MC_RunInfo_Struct_t MC_RunInfo; //MC运行信息
- extern MC_ErrorCode_Struct_t MC_ErrorCode,MC_ErrorCodeBackup; //MC故障码
- extern ControlCode_Struct_t ControlCode; //控制MC指令
- extern ControlCode_Struct_t ControlCode_MC_WalkSby;
- extern PBU_AssitMode_Status_Struct_t PBU_AssitMode_Status; //助力模式状态
- extern BMS_RunInfo_Struct_t BMS_RunInfo; //BMS运行信息
- extern BMS_ErrorCode_Struct_t BMS_ErrorCode; //BMS故障码
- extern PBU_HMI_Menu_Process_Struct_t PBU_HMI_Menu_Process; //PBU进入HMI设置模式处理
- extern PBU_TestMode_Process_Struct_t PBU_Test_Process; //PBU进入测试模式处理
- extern PBU_ConfigParam_Struct_t PBU_ConfigParam; //PBU配置参数
- extern PBU_RunLog_Struct_t PBU_RunLog; //PBU运行历史
- extern PBU_MacInfo_Struct_t PBU_MacInfo; //PBU生产信息
- extern PBU_VerInfo_Struct_t PBU_VerInfo; //PBU版本信息
- extern PBU_CheckInfo_Struct_t PBU_CheckInfo; //PBU校验信息
- extern PBU_RunMode_t PBU_RunMode; //PBU运行模式
- extern PBU_PowerOff_Process_Struct_t PBU_PowerOff_Process;//PBU关机处理
- extern PBU_PowerOn_Process_Struct_t PBU_PowerOn_Process;//PBU开机判断
- extern PBU_MC_CfgProcess_Struct_t PBU_MC_Cfg; //PBU配置MC处理
- extern uint32_t SysTime_5ms;
- extern char UserString1[16];
- extern char UserString2[16];
- extern char UserString3[16];
- extern PBU_ErrorCode_Struct_t PBU_ErrorCode,PBU_ErrorCodeBackup;
- extern PBU_ErrorCode_Struct_t PBU_hardwareErrorCode;
- extern PBU_ErrorCode_Struct_t PBU_commErrorCode;
- extern PBU_ErrorCode_Struct_t PBU_TE_ErrorCode;
- extern _Bool BMS_Online_Flag;
- extern _Bool HMI_Online_Flag;
- extern _Bool MC_Online_Flag;
- extern _Bool TE_Online_Flag;
- extern uint32_t HMI_Online_TimeCnt;
- extern uint32_t MC_Online_TimeCnt;
- extern uint32_t BMS_Online_TimeCnt;
- extern uint32_t TE_Online_TimeCnt;
- extern TrueOrFalse_Flag_Struct_t PBU_ErrorFlag;
- extern TrueOrFalse_Flag_Struct_t BMS_ChargingFlag;
- extern TrueOrFalse_Flag_Struct_t PBU_TE_FaultDetectFlag;
- extern uint32_t Vin_test_TimeCnt;
- extern uint8_t Scan_Key_Start;
- extern uint8_t LED_Blink_Enable;
- extern uint32_t PBU_Error_senddata;
- extern uint32_t ErrorCodeFinal;
- /******************************全局变量End***************************/
- /******************************全局函数Begin*************************/
- extern void Var_Init(void);
- extern void Error_Init(void);
- /******************************全局函数End***************************/
- #endif
|