123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- #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_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;
- uint32_t Time;
- 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
|