提交 de1188bb 作者: wysheng

修改一些错误

上级 077158e8
......@@ -315,6 +315,7 @@
<state>$PROJ_DIR$\..\Src\Drivers\W5500\Ethernet\W5500</state>
<state>$PROJ_DIR$\..\Src\Drivers\W5500\Ethernet</state>
<state>$PROJ_DIR$\..\Src\Drivers\W5500\Internet\DNS</state>
<state>$PROJ_DIR$\..\Src\SmartAllocation</state>
</option>
<option>
<name>CCStdIncCheck</name>
......@@ -2150,6 +2151,21 @@
</file>
</group>
<group>
<name>SmartAllocation</name>
<file>
<name>$PROJ_DIR$\..\Src\SmartAllocation\Drv_SmartAllocation.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\Src\SmartAllocation\Drv_SmartAllocation.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\Src\SmartAllocation\SmartAllocation_B_ChgRun.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\Src\SmartAllocation\SmartAllocation_ChgRun.c</name>
</file>
</group>
<group>
<name>Threads</name>
<group>
<name>Charge</name>
......@@ -2212,6 +2228,9 @@
</file>
<file>
<name>$PROJ_DIR$\..\Src\Thread\Charge\ChgPro_ChgRun.c</name>
<excluded>
<configuration>Debug</configuration>
</excluded>
</file>
<file>
<name>$PROJ_DIR$\..\Src\Thread\Charge\ChgPro_ChgStart.c</name>
......@@ -2260,6 +2279,9 @@
</file>
<file>
<name>$PROJ_DIR$\..\Src\Thread\Charge_B\ChgPro_B_ChgRun.c</name>
<excluded>
<configuration>Debug</configuration>
</excluded>
</file>
<file>
<name>$PROJ_DIR$\..\Src\Thread\Charge_B\ChgPro_B_ChgStart.c</name>
......
......@@ -419,6 +419,21 @@
</file>
</group>
<group>
<name>SmartAllocation</name>
<file>
<name>$PROJ_DIR$\..\Src\SmartAllocation\Drv_SmartAllocation.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\Src\SmartAllocation\Drv_SmartAllocation.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\Src\SmartAllocation\SmartAllocation_B_ChgRun.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\Src\SmartAllocation\SmartAllocation_ChgRun.c</name>
</file>
</group>
<group>
<name>Threads</name>
<group>
<name>Charge</name>
......
......@@ -67,6 +67,40 @@ typedef struct
u16 ActualCurrt;//0.1A/Bit;
}StructDcModuleCtrl;
#define TemCtrlSwith 0//温控开关 1:打开,0:关闭
#if 1
#define DcModuleMaxVolt (7500)//750V
#define DcModuleMinVolt (2000)//200V
#define DcModuleMaxCurrt (100) //10A
#define DcModuleMinCurrt (5) //1A
#define DcModuleSinMaxCurrt (2000)
#else
#define DcModuleMaxVolt (5000)//750V
#define DcModuleMinVolt (2000)//250V
#define DcModuleMaxCurrt (150) //15A
#define DcModuleMinCurrt (10) //1A
#endif
typedef enum
{
eSwSta_Low= 0,
eSwSta_High,
}EnumModuStatus;
typedef struct
{
u8 Id;
u8 Temp;
u16 Volt;//0.1V/Bit;
u16 Currt;//0.1A/Bit;
u16 State;
u32 RecvTime;
EnumModuStatus ModStatus;
}StructDcModuleStatus;
extern StructDcModuleAbility DcModuleAbility;
extern void DcModuleCanInit_B(void);
......
......@@ -443,6 +443,7 @@ void MCP2515_SetInt(pMCP2515IntHandle pIrqHandle, FunctionalState NewState)
/* Enable GPIOA clock */
RCC_AHB1PeriphClockCmd(MCP2515_INT_GPIO_CLK, ENABLE);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
/* Enable SYSCFG clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
......
......@@ -264,10 +264,10 @@ void TCUCanInit(void)
MCP2515_B_WriteReg(CNF1, (1 << BRP0) | (1 << BRP1) | (1 << BRP2)); //125K
// 设置传播段 Prop Seg 为00,即1TQ,相位缓冲段 Phase Seg1的长度3TQ
MCP2515_B_WriteReg(CNF2, (1 << BTLMODE) | (1 << PHSEG11));
MCP2515_B_WriteReg(CNF2, (1 << BTLMODE) | (0 << PHSEG11));
// 设置 相位缓冲段 Phase Seg2为 3TQ , 禁用唤醒滤波器
MCP2515_B_WriteReg(CNF3, (1 << PHSEG21));
MCP2515_B_WriteReg(CNF3, (0 << PHSEG21));
// 设置MCP2515中断使能寄存器,使能接收缓冲器中断
MCP2515_B_WriteReg(CANINTE, (1 << RX1IE) | (1 << RX0IE));
......@@ -326,7 +326,7 @@ u8 TCUCommInit(void)
TCUMsg = osMessageCreate(osMessageQ(TCUMsg), NULL);
TCUCanInit();
return TRUE;
}
......@@ -411,8 +411,8 @@ StructTCUEM TCUChgContralTCUEM_B;
StructTCUCControl TCUControlInfo =
{
.ChargingServiceFlag = 2,
.version = 0x0110,
.ChargingServiceFlag = 1,
.version = 0x0100,
.ChargeNum =
{
0, 0, 0, 0
......@@ -1420,7 +1420,7 @@ void TCUHeartBeat_A(void)
};
static u8 CountNum; //最大255
Data[0] = 0x01;
Data[0] = 0x00;
Data[1] = CountNum++;
Data[2] = TCUCommuStatus.ConnectFlag;
Data[3] = TCUControlInfo.ChargingServiceFlag;
......@@ -1457,17 +1457,10 @@ void AckTCUHeartBeat(StructTCUSend * pPgnRecv)
TCUCommuStatus.HeartBeatRecvTime_B = GetSystemTick();
}
if (pPgnRecv->Data[2] == 0x00)
{
TCUCommuStatus.ConnectFlag = 1; //tcu检测控制器心跳状态
TCUCommuStatus.HeartBeatVaild = 1; //控制器检测tcu心跳状态
}
else
{
TCUCommuStatus.ConnectFlag = 0;
TCUCommuStatus.HeartBeatVaild = 0;
memset(&TCUCommuStatus, 0, sizeof(TCUCommuStatus)); //通讯失败通讯初始化
}
TCUCommuStatus.ConnectFlag = CONNECT_NORMAL; //tcu检测控制器心跳状态
TCUCommuStatus.HeartBeatVaild = CONNECT_NORMAL; //控制器检测tcu心跳状态
}
......@@ -1499,7 +1492,10 @@ void TCUtimeSet(StructTCUSend * pPgnRecv)
void TCUtimeSetAck(void)
{
u8 Data[8];
u8 Data[8] =
{
0
};
StructTime Time;
cp56time2a * time = NULL;
......@@ -1540,7 +1536,10 @@ void TCUVersionCheck(StructTCUSend * pPgnRecv)
void TCUVersionCheckSent(void)
{
u8 Data[8];
u8 Data[8] =
{
0
};
Data[0] = TCUCommuStatus.ChgNum;
Data[1] = TCUControlInfo.version;
......@@ -1562,10 +1561,10 @@ void TCUParam(StructTCUSend * pPgnRecv)
void TCUParamAck(void)
{
u8 Data[8];
memset(Data,0,8);
Data[0] = TCUCommuStatus.ChgNum;
if ((TCUCommuStatus.VerChkVaild == 0) || (TCUCommuStatus.ConnectFlag == 0))
if ((TCUCommuStatus.VerChkVaild == 0) || (TCUCommuStatus.ConnectFlag == CONNECT_TIMEOUT))
{
TCUCommuStatus.ParamVaild = 0;
Data[1] = 01; //失败
......@@ -1615,7 +1614,10 @@ void SerConAckAnalysis(StructTCUSend * pPgnRecv)
void SerConAck(void)
{
u8 Data[8];
u8 Data[8] =
{
0
};
Data[0] = TCUCommuStatus.ChgNum;
Data[1] = TCUCommuStatus.ChargingServiceSetValue;
......@@ -1683,7 +1685,10 @@ void ElectControlAnalysis(StructTCUSend * pPgnRecv)
void ElectControlAck(void)
{
u8 Data[8];
u8 Data[8] =
{
0
};
Data[0] = TCUCommuStatus.ChgNum;
Data[1] = TCUCommuStatus.ElectLockSetValue;
......
......@@ -218,7 +218,7 @@ typedef struct
}StructVerificationInformain;
#define TCU1939Addr (0x8A)
#define ChargerCont1939Addr (0xF6)
#define ChargerCont1939Addr (0xE0)
typedef enum
{
eCmd_start = 0x000100,// 充电启动帧
......
#ifndef __DRV_SMARTALLOCATION_H__
#define __DRV_SMARTALLOCATION_H__
#include "Global.h"
typedef enum
{
Invalid = 0, //无效
Valid = 1, //有效且空闲
Hold_A = 2, //A枪占用
Hold_B = 3, //B枪占用
}StructDcModuleUsedStatus;
typedef struct
{
u8 addr;
u8 status;
u32 Voltage;
u32 Current;
}StructDcModule;
typedef struct
{
u8 num;
u8 ValidNum;
StructDcModule modules[2];
StructDcModuleUsedStatus status;
u32 Voltage;
u32 Current;
}StructDcModuleGroup;
typedef struct
{
u8 num;
u16 NeedVolt;//0.1V/Bit;
u16 NeedCurrt;//0.1A/Bit;
u16 ActualVolt;//0.1V/Bit;
u16 ActualCurrt;//0.1A/Bit;
}StructDcModuleGroupCtrl;
extern StructDcModuleGroup DcModuleGroup[];
extern StructDcModuleManage DcModuleManage_A;
#endif /*__DRV_SMARTALLOCATION_H__*/
......@@ -62,6 +62,8 @@ extern void ChgProCommBeak_AB(StructChargeCtrl *pChargeCtrl);
extern void ChgProCommError_AB(StructChargeCtrl *pChargeCtrl);
extern void ChgProChgBreak_AB(StructChargeCtrl *pChargeCtrl);
extern void SmartAllocation_ChgProChgRun(StructChargeCtrl *pChargeCtrl);
const pChargeCtrlHandle ChargeCtrlHandle[] =
{
ChgProChgIdle,
......@@ -75,7 +77,7 @@ const pChargeCtrlHandle ChargeCtrlHandle[] =
ChgProWaitBmsReady,
ChgProWaitPillarReady,
ChgProChgStart,
ChgProChgRun,
SmartAllocation_ChgProChgRun,//ChgProChgRun,
ChgProWaitVoltChgRun,
ChgProChgStop,
ChgProCommBeak,
......@@ -150,8 +152,8 @@ void Thd_Charge(void const *parameter)
MemoryInit();
DcModuleInit();//DcModuleInit_B();
MeterInit();
DcOutInit_Uni();
//MeterInit();
//DcOutInit_Uni();
DcOutInit(); //DcOutInit_B();
FanInit();
......
......@@ -39,6 +39,7 @@ extern void ChgProCommBeak_B(StructChargeCtrl_B *pChargeCtrl);
extern void ChgProCommError_B(StructChargeCtrl_B *pChargeCtrl);
extern void ChgProChgBreak_B(StructChargeCtrl_B *pChargeCtrl);
extern void SmartAllocation_ChgProChgRun_B(StructChargeCtrl_B *pChargeCtrl);
const pChargeCtrlHandle_B ChargeCtrlHandle_B[] =
{
......@@ -53,7 +54,7 @@ const pChargeCtrlHandle_B ChargeCtrlHandle_B[] =
ChgProWaitBmsReady_B,
ChgProWaitPillarReady_B,
ChgProChgStart_B,
ChgProChgRun_B,
SmartAllocation_ChgProChgRun_B,//ChgProChgRun_B,
ChgProWaitVoltChgRun_B,
ChgProChgStop_B,
ChgProCommBeak_B,
......@@ -106,7 +107,7 @@ void ChargeTimeCountCtrl_B(void const *Param)
/* the system main thread */
void Thd_Charge_B(void const *parameter)
{
DcModuleInit_B();
//DcModuleInit_B();
//MeterInit_B();
DcOutInit_B();
DrainResistInit_B();
......
......@@ -13,6 +13,8 @@
#include "FTP_Upgrade.h"
extern void TCUCanInit(void);
StructTCUCommuStatus TCUCommuStatus =
{
.ChgNum = 0,
......@@ -104,6 +106,7 @@ void TCURecvProcess(void)
break;
case eCmd_TCUErroComm: // 计费单元错误帧
TCUErroCommAnalysis(&pPgnRecv);
break;
default:
......@@ -157,7 +160,7 @@ void DCMeasuring_A(void)
TCUCommuStatus.ConnectFlag = 0;
TCUCommuStatus.HeartBeatErrCnt = 0;
TCUCommuStatus.HeartBeatVaild = 0; //心跳失效
DcModuleCanInit_B(); //can通讯接口初始化
TCUCanInit(); //can通讯接口初始化
}
else
{
......@@ -193,7 +196,7 @@ void DCMeasuring_B(void)
TCUCommuStatus.ConnectFlag = 0;
TCUCommuStatus.HeartBeatErrCnt = 0;
TCUCommuStatus.HeartBeatVaild = 0; //心跳失效
DcModuleCanInit_B();
TCUCanInit();
}
else
{
......@@ -335,7 +338,7 @@ void TCUPillarHeartBeat(void)
{
u32 SendTick;
if (TCUCommuStatus.HeartBeatVaild == 0)
if (TCUCommuStatus.HeartBeatVaild != CONNECT_NORMAL)
return;
if (0 == TCUCommuStatus.HeartBeatRecvTime) //初始12s一次
......@@ -350,7 +353,7 @@ void TCUPillarHeartBeat(void)
TCUCommuStatus.ConnectFlag = 0;
TCUCommuStatus.HeartBeatErrCnt = 0;
TCUCommuStatus.HeartBeatVaild = 0; //心跳失效
DcModuleCanInit_B();
TCUCanInit();
}
else
{
......@@ -378,7 +381,7 @@ void TCUPillarHeartBeat_B(void)
{
u32 SendTick;
if (TCUCommuStatus.HeartBeatVaild == 0)
if (TCUCommuStatus.HeartBeatVaild != CONNECT_NORMAL)
return;
if (0 == TCUCommuStatus.HeartBeatRecvTime_B) //初始12s一次
......@@ -392,7 +395,7 @@ void TCUPillarHeartBeat_B(void)
TCUCommuStatus.ConnectFlag = 0;
TCUCommuStatus.HeartBeatErrCnt_B = 0;
TCUCommuStatus.HeartBeatVaild = 0; //心跳失效
DcModuleCanInit_B();
TCUCanInit();
}
else
{
......@@ -825,7 +828,7 @@ void TCUWorkProcess(void)
void TCULinkProcess(void) //心跳帧处理
{
TCUPillarHeartBeat(); //心跳处理
TCUPillarHeartBeat_B(); //心跳处理
//TCUPillarHeartBeat_B(); //心跳处理
CommutionConfigurationStage(); //配置阶段
CommutionRunStage(); //运行阶段
ConEMSend(); //ab超时发送逻辑
......@@ -836,12 +839,13 @@ void TCULinkProcess(void) //心跳帧处理
void TCUComm(void const * argument)
{
osDelay(6000);
TCUCommInit();
//DcModuleCanInit_B();
/**/ osDelay(6000);
for (; ; )
{
#if 1
TCURecvProcess(); //帧接收
TCUWorkProcess(); //遥测遥信息处理
TCULinkProcess(); //心跳包处理配置信息
......@@ -849,6 +853,21 @@ void TCUComm(void const * argument)
// TCUCodeDone();//告警故障处理
// TCUSaveEventDone();
#endif
#if 0
static u8 StatusGetCnt = 0;
StatusGetCnt++;
if(StatusGetCnt > 255)
StatusGetCnt = 0;
u8 Data[8] ={0};
Data[0] = StatusGetCnt;
TCUSinglePackSendMsg(Data, 8, eCmd_stopAck, 4);
#endif
osDelay(100);
}
}
......
......@@ -5,7 +5,8 @@
#include "Drv_TCUComm.h"
#include "Thd_TcuControl.h"
#define CONNECT_NORMAL 0
#define CONNECT_TIMEOUT 1
typedef enum
{
......
......@@ -128,7 +128,7 @@ int main(void)
osThreadDef(Thd_TCUControl, Thd_TCUControl, osPriorityNormal, 0, 2*configMINIMAL_STACK_SIZE);
osThreadCreate(osThread(Thd_TCUControl), NULL);
//osThreadDef(Internet, Internet, osPriorityNormal, 0, 2*configMINIMAL_STACK_SIZE);
// osThreadCreate(osThread(Internet), NULL);
//osThreadCreate(osThread(Internet), NULL);
osThreadDef(TCUComm, TCUComm, osPriorityNormal, 0, 2*configMINIMAL_STACK_SIZE);
osThreadCreate(osThread(TCUComm), NULL);
......@@ -136,7 +136,7 @@ int main(void)
}
DBGMCU_Config(DBGMCU_IWDG_STOP, ENABLE);
WdgInit();
//WdgInit();
/* Start scheduler */
osKernelStart();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论