#ifndef __BMS_MAGENE_H_ #define __BMS_MAGENE_H_ #include "stdint.h" #include "can.h" #include "var.h" //基础ID #define BMS_MAGENE_BASE_TPDO 0x180 #define BMS_MAGENE_BASE_RPDO 0x200 //电池地址 #define BMS_MAGENE_ADDRESS_COM 0x10 #define BMS_MAGENE_ADDRESS_MAIN 0x11 #define BMS_MAGENE_ADDRESS_BACK 0x12 //PageID #define BMS_MAGENE_STATUS_PAGE_ID 0xF0 #define BMS_MAGENE_CTRL_PAGE_ID 0xE4 #define BMS_MAGENE_BROAD_PAGE_ID 0xE4 //状态类别码 #define BMS_MAGENE_FUC_CODE_BASE_INFO (uint8_t)9 #define BMS_MAGENE_FUC_CODE_CAP_INFO (uint8_t)10 #define BMS_MAGENE_FUC_CODE_CYC_INFO (uint8_t)11 #define BMS_MAGENE_FUC_CODE_STA_INFO (uint8_t)12 #define BMS_MAGENE_FUC_CODE_RTC_INFO (uint8_t)13 #define BMS_MAGENE_FUC_CODE_CELL1_INFO (uint8_t)14 #define BMS_MAGENE_FUC_CODE_CELL2_INFO (uint8_t)15 #define BMS_MAGENE_FUC_CODE_CELL3_INFO (uint8_t)16 #define BMS_MAGENE_FUC_CODE_CELL4_INFO (uint8_t)17 #define BMS_MAGENE_FUC_CODE_CELL5_INFO (uint8_t)18 #define BMS_MAGENE_FUC_CODE_TMP_INFO (uint8_t)19 #define BMS_MAGENE_FUC_CODE_SW_INFO (uint8_t)20 //控制命令码 #define BMS_MAGENE_CTRL_CODE_SW_INFO (uint8_t)6 #define BMS_MAGENE_BRD_CODE_UPD_INFO (uint8_t)5 //电池基本状态数据 9 typedef struct { uint8_t PageID; uint8_t Code; uint16_t Voltage; int16_t Current; uint8_t Temperature; uint8_t WorkState; }BMS_Magene_BaseInfo_Struct; //电池容量数据 10 typedef struct { uint8_t PageID; uint8_t Code; uint16_t FullCapcity; uint16_t RemainCapcity; uint8_t SOC; uint8_t SOH; }BMS_Magene_CapInfo_Struct; //电池循环数据 11 typedef struct { uint8_t PageID; uint8_t Code; uint16_t CycleCount; uint16_t DesignCapcity; uint16_t ErrCode; }BMS_Magene_CycInfo_Struct; //电池状态数据 12 typedef struct { uint8_t PageID; uint8_t Code; uint16_t LastChargeTime; uint16_t MaxChargeTime; uint16_t BatState; }BMS_Magene_StaInfo_Struct; //电池时间数据 13 typedef struct { uint8_t PageID; uint8_t Code; uint16_t TimeH; uint16_t TimeL; uint16_t DesignVol; }BMS_Magene_RtcInfo_Struct; //电池电芯数据1 14 typedef struct { uint8_t PageID; uint8_t Code; uint16_t CellVol[3]; }BMS_Magene_CellInfo1_Struct; //电池电芯数据2 15 typedef struct { uint8_t PageID; uint8_t Code; uint16_t CellVol[3]; }BMS_Magene_CellInfo2_Struct; //电池电芯数据3 16 typedef struct { uint8_t PageID; uint8_t Code; uint16_t CellVol[3]; }BMS_Magene_CellInfo3_Struct; //电池电芯数据4 17 typedef struct { uint8_t PageID; uint8_t Code; uint16_t CellVol[3]; }BMS_Magene_CellInfo4_Struct; //电池电芯数据5 18 typedef struct { uint8_t PageID; uint8_t Code; uint16_t CellVol[3]; }BMS_Magene_CellInfo5_Struct; //电池温度数据 19 typedef struct { uint8_t PageID; uint8_t Code; uint8_t ChgMosT; uint8_t DisChgMosT; uint8_t CellT_Max; uint8_t CellT_Min; uint8_t CellT_Max_Num; uint8_t CellT_Min_Num; }BMS_Magene_TmpInfo_Struct; //电池状态数据 20 typedef struct { uint8_t PageID; uint8_t Code; uint8_t Rsv1; uint8_t State; uint8_t Rsv2; uint8_t Rsv3; uint8_t Rsv4; uint8_t Rsv5; }BMS_Magene_BatStInfo_Struct; //电池TPDO数据 typedef struct { BMS_Magene_BaseInfo_Struct BaseInfo; BMS_Magene_CapInfo_Struct CapInfo; BMS_Magene_CycInfo_Struct CycInfo; BMS_Magene_StaInfo_Struct StaInfo; BMS_Magene_RtcInfo_Struct RtcInfo; BMS_Magene_CellInfo1_Struct CellInfo1; BMS_Magene_CellInfo2_Struct CellInfo2; BMS_Magene_CellInfo3_Struct CellInfo3; BMS_Magene_CellInfo4_Struct CellInfo4; BMS_Magene_CellInfo5_Struct CellInfo5; BMS_Magene_TmpInfo_Struct TmpInfo; BMS_Magene_BatStInfo_Struct BatStInfo; }BMS_Magene_TPDOInfo_Struct; //主机控制 typedef struct { uint8_t PageID; uint8_t Code; uint8_t Switch; uint8_t Rsv1; uint8_t MosCtrl; uint8_t Rsv2; uint8_t Rsv3; uint8_t Rsv4; }BMS_Magene_CtrCode_Struct; //主机广播 typedef struct { uint8_t PageID; uint8_t Code; uint8_t Upd; uint8_t Rsv1; uint8_t Rsv2; uint8_t Rsv3; uint8_t Rsv4; uint8_t Rsv5; }BMS_Magene_BrdCode_Struct; //电池RPDO数据 typedef struct { BMS_Magene_CtrCode_Struct CtrCode; BMS_Magene_BrdCode_Struct BrdCode; }BMS_Magene_RPDOInfo_Struct; //BMS在线状态 typedef struct { uint8_t OnLineFlag; //0-离线,1-在线 uint32_t TimeCnt; }BMS_Magene_OnLineCheck_Struct; //BMS报文数据 typedef struct { uint8_t RefreshFlag; //0-未更新,1-更新 uint8_t RS; uint16_t ID; uint8_t Data[8]; }BMS_Magene_CanData_Struct_t; //全局变量 extern BMS_Magene_TPDOInfo_Struct BMS_Magene_TPDOInfo_Main, BMS_Magene_TPDOInfo_Back; //电池主动上报数据 extern BMS_Magene_RPDOInfo_Struct BMS_Magene_RPDOInfo_Main, BMS_Magene_RPDOInfo_Back; //电池控制参数 extern BMS_Magene_OnLineCheck_Struct BMS_Magene_OnLineCheck_Main, BMS_Magene_OnLineCheck_Back; //电池在线检测 extern BMS_Magene_CanData_Struct_t BMS_Magene_CanData; //全局函数 extern void BMS_Magene_VarInit(void); //参数初始化 extern void BMS_Magene_Loop(void); //BMS处理主循环 #endif