Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
DC360_1drap3_xiaoju_V1
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
丁雨邯
DC360_1drap3_xiaoju_V1
Commits
22d26c45
提交
22d26c45
authored
5月 18, 2020
作者:
wysheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
打开门禁;修复启动完成时电池单体电压
上级
7e1355f5
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
77 行增加
和
17 行删除
+77
-17
Drv_TCUComm.c
DcPillar/Src/Drivers/Drv_TCUComm.c
+25
-11
Drv_SmartAllocation_DcModule.c
DcPillar/Src/SmartAllocation/Drv_SmartAllocation_DcModule.c
+52
-6
没有找到文件。
DcPillar/Src/Drivers/Drv_TCUComm.c
浏览文件 @
22d26c45
...
...
@@ -1100,10 +1100,12 @@ void startCompSend_A(void)
Data
[
len
++
]
=
reason
;
//充电桩与BMS通信协议版本号
Data
[
len
++
]
=
0x01
;
Data
[
len
++
]
=
0x01
;
Data
[
len
++
]
=
0x00
;
//2015
//BMS与充电桩通信协议版本号
if
(
ChgVer
==
eChgVer_2011
)
{
Data
[
len
++
]
=
0x01
;
...
...
@@ -1117,43 +1119,53 @@ void startCompSend_A(void)
Data
[
len
++
]
=
0x00
;
}
//充电桩与BMS 握手结果
if
(
ChgVer
==
eChgVer_2011
)
Data
[
len
++
]
=
0x01
;
else
Data
[
len
++
]
=
0x00
;
//电池类型
Data
[
len
++
]
=
BrmMsg
.
BatType
;
//最高允许温度
Data
[
len
++
]
=
BcpMsg
.
MaxTemp
;
//BMS 最高允许充电电压
Data
[
len
++
]
=
(
u8
)
(
BcpMsg
.
ChgMaxVolt
>>
0
);
//最高允许充电电压 BIN码 2
Data
[
len
++
]
=
(
u8
)
(
BcpMsg
.
ChgMaxVolt
>>
8
);
//单体最高允许充电电压
Data
[
len
++
]
=
(
u8
)
(
BcpMsg
.
PerBatMaxVolt
>>
0
);
Data
[
len
++
]
=
(
u8
)
(
BcpMsg
.
PerBatMaxVolt
>>
8
);
//最高允许充电电流
Data
[
len
++
]
=
(
u8
)
(
BcpMsg
.
ChgMaxCurrt
>>
0
);
//最高允许充电电流 BIN码 2
Data
[
len
++
]
=
(
u8
)
(
BcpMsg
.
ChgMaxCurrt
>>
8
);
//整车动力蓄电池额定总电压
Data
[
len
++
]
=
(
u8
)
(
BrmMsg
.
BatRateVolt
>>
0
);
// BIN码 2
Data
[
len
++
]
=
(
u8
)
(
BrmMsg
.
BatRateVolt
>>
8
);
//整车动力蓄电池额定总电压
//整车动力蓄电池当前电压
Data
[
len
++
]
=
(
u8
)
(
BcpMsg
.
StartVolt
>>
0
);
// BIN码 2
Data
[
len
++
]
=
(
u8
)
(
BcpMsg
.
StartVolt
>>
8
);
//整车动力蓄电池当前电压
//整车动力蓄电池额定容量
Data
[
len
++
]
=
(
u8
)
(
BrmMsg
.
BatRateCap
>>
0
);
// BIN码 2
Data
[
len
++
]
=
(
u8
)
(
BrmMsg
.
BatRateCap
>>
8
);
//整车动力蓄电池额定容量
//整车动力蓄电池标称能量
Data
[
len
++
]
=
(
u8
)
(
BcpMsg
.
BatEnergy
>>
0
);
// BIN码 2
Data
[
len
++
]
=
(
u8
)
(
BcpMsg
.
BatEnergy
>>
8
);
//整车动力蓄电池标称能量
//整车动力蓄电池荷电状态
Data
[
len
++
]
=
(
u8
)
(
BcpMsg
.
StartSoc
>>
0
);
// BIN码 2
Data
[
len
++
]
=
(
u8
)
(
BcpMsg
.
StartSoc
>>
8
);
//当前荷电状态
//充电机最高输出电压
Data
[
len
++
]
=
0x4C
;
// BIN码 2
Data
[
len
++
]
=
0x1D
;
//最高输出电压 750
//充电机最低输出电压
Data
[
len
++
]
=
0xB8
;
// BIN码 2
Data
[
len
++
]
=
0x0B
;
//最低输出电压300
//充电机最大输出电流
Data
[
len
++
]
=
0xDC
;
// BIN码 2
Data
[
len
++
]
=
0x05
;
// 最大输出电流
//充电机最小输出电流
Data
[
len
++
]
=
0xa0
;
// BIN码 2
Data
[
len
++
]
=
0x0F
;
//最小输出电流0A
//车辆识别码
memcpy
(
&
Data
[
len
],
BrmMsg
.
Vin
,
17
);
//车辆识别码 BIN码 17
len
+=
17
;
...
...
@@ -1204,7 +1216,9 @@ void startCompSend_B(void)
Data
[
len
++
]
=
BcpMsg_B
.
MaxTemp
;
Data
[
len
++
]
=
(
u8
)
(
BcpMsg
.
ChgMaxVolt
>>
0
);
//最高允许充电电压 BIN码 2
Data
[
len
++
]
=
(
u8
)
(
BcpMsg
.
ChgMaxVolt
>>
8
);
//单体最高允许充电电压
Data
[
len
++
]
=
(
u8
)
(
BcpMsg_B
.
PerBatMaxVolt
>>
0
);
Data
[
len
++
]
=
(
u8
)
(
BcpMsg_B
.
PerBatMaxVolt
>>
8
);
Data
[
len
++
]
=
(
u8
)
(
BcpMsg_B
.
ChgMaxCurrt
>>
0
);
//最高允许充电电流 BIN码 2
Data
[
len
++
]
=
(
u8
)
(
BcpMsg_B
.
ChgMaxCurrt
>>
8
);
...
...
@@ -2187,7 +2201,7 @@ void InformationReporting_22_A(void)
InformainReport_A
.
InfRe
.
workStau
=
0x03
;
}
InformainReport_A
.
InfRe
.
Emergency
=
PillarError
.
Value
.
Emergency
==
1
;
InformainReport_A
.
InfRe
.
Emergency
=
PillarError
.
Value
.
Emergency
;
InformainReport_A
.
InfRe
.
smoke
=
0x00
;
InformainReport_A
.
InfRe
.
AccContac
=
0x00
;
InformainReport_A
.
InfRe
.
DCOutConOff
=
PillarError
.
Value
.
Contactor
;
...
...
@@ -2317,7 +2331,7 @@ void InformationReporting_22_B(void)
InformainReport_B
.
InfRe
.
workStau
=
0x03
;
}
InformainReport_B
.
InfRe
.
Emergency
=
PillarError_B
.
Value
.
Emergency
==
1
;
InformainReport_B
.
InfRe
.
Emergency
=
PillarError_B
.
Value
.
Emergency
;
InformainReport_B
.
InfRe
.
smoke
=
0x00
;
InformainReport_B
.
InfRe
.
AccContac
=
0x00
;
InformainReport_B
.
InfRe
.
DCOutConOff
=
PillarError_B
.
Value
.
Contactor
;
...
...
DcPillar/Src/SmartAllocation/Drv_SmartAllocation_DcModule.c
浏览文件 @
22d26c45
...
...
@@ -13,6 +13,7 @@
#include "Drv_SmartAllocation.h"
#include "Drv_BoardIo.h"
void
DcModleVoltDetect
(
u16
Voltage
);
StructDcModuleAbility
DcModuleAbility
=
{
...
...
@@ -300,7 +301,9 @@ void DcModule(void const * parameter)
osDelay
(
6000
);
DcModeleRelayInit
();
DcModuleCanInit
();
//ACContactorSet(eSwSta_On);
//ACContactorSet(eSwSta_On);
DcModuleAbility
.
MaxVolt
=
UserParam
.
DcMaxVolt
;
DcModuleAbility
.
MinVolt
=
UserParam
.
DcMinVolt
;
DcModuleAbility
.
MaxCurrt
=
UserParam
.
DcMaxCurrt
;
...
...
@@ -562,7 +565,7 @@ void GetNXRAcVoltMsg(u32 addr)
{
StructDcModuleSend
DataSend
=
{
0
};
u16
reg
=
0
;
DataSend
.
Id
=
0x680780
+
(
addr
<<
11
);
DataSend
.
Id
=
(
0x00000060
<<
20
)
|
(
1
<<
19
)
|
(
addr
<<
11
)
|
(
0x000000f0
<<
3
);
//0x6080780 + (addr<<11);//0x06080f80
DataSend
.
Len
=
8
;
DataSend
.
Data
[
0
]
=
0x10
;
DataSend
.
Data
[
1
]
=
0x00
;
...
...
@@ -580,7 +583,7 @@ void GetNXRAcVoltMsg(u32 addr)
{
//osDelay(10);
}
/*
reg = 0x000D; //B相
DataSend.Data[2] = reg>>8;
DataSend.Data[3] = reg;
...
...
@@ -595,27 +598,70 @@ void GetNXRAcVoltMsg(u32 addr)
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
{
//osDelay(10);
}
}
*/
}
#include<math.h>
u16
DcVoltIn
=
0
;
void
GetNXRAcVolt
(
CanRxMsg
*
RxMsg
)
{
if
((
0x
6f8000
==
(
RxMsg
->
ExtId
&
0x1FFFF807
))
\
if
((
0x
060f8000
==
(
RxMsg
->
ExtId
&
0xFFFF8000
))
\
/*&& (0x41 == RxMsg->Data[0] || 0x42 == RxMsg->Data[0]) \*/
&&
(
0xf0
==
RxMsg
->
Data
[
1
]))
{
if
(
0x0C
==
RxMsg
->
Data
[
3
])
{
//A
u32
val
=
RxMsg
->
Data
[
4
];
val
=
val
<<
8
;
val
|=
RxMsg
->
Data
[
5
];
val
=
val
<<
8
;
val
|=
RxMsg
->
Data
[
6
];
val
=
val
<<
8
;
val
|=
RxMsg
->
Data
[
7
];
u8
S
=
(
u8
)(
val
>>
31
)
&
0x01
;
u32
M
=
val
&
0x007fffff
;
u16
E
=
(
u8
)(
val
>>
23
);
float
f
=
(
1
+
M
*
pow
(
2
,
-
23
))
*
pow
(
2
,
(
E
-
127
));
DcVoltIn
=
(
u16
)(
f
*
10
);
DcModleVoltDetect
((
u16
)(
f
*
10
));
}
else
if
(
0x0D
==
RxMsg
->
Data
[
3
])
{
//B
u32
val
=
RxMsg
->
Data
[
4
];
val
=
val
<<
8
;
val
|=
RxMsg
->
Data
[
5
];
val
=
val
<<
8
;
val
|=
RxMsg
->
Data
[
6
];
val
=
val
<<
8
;
val
|=
RxMsg
->
Data
[
7
];
u8
S
=
(
u8
)(
val
>>
31
)
&
0x01
;
u32
M
=
val
&
0x007fffff
;
u16
E
=
(
u8
)(
val
>>
23
);
float
f
=
(
1
+
M
*
pow
(
2
,
-
23
))
*
pow
(
2
,
(
E
-
127
));
DcModleVoltDetect
((
u16
)(
f
*
10
));
}
else
if
(
0x0E
==
RxMsg
->
Data
[
3
])
{
//C
u32
val
=
RxMsg
->
Data
[
4
];
val
=
val
<<
8
;
val
|=
RxMsg
->
Data
[
5
];
val
=
val
<<
8
;
val
|=
RxMsg
->
Data
[
6
];
val
=
val
<<
8
;
val
|=
RxMsg
->
Data
[
7
];
u8
S
=
(
u8
)(
val
>>
31
)
&
0x01
;
u32
M
=
val
&
0x007fffff
;
u16
E
=
(
u8
)(
val
>>
23
);
float
f
=
(
1
+
M
*
pow
(
2
,
-
23
))
*
pow
(
2
,
(
E
-
127
));
DcModleVoltDetect
((
u16
)(
f
*
10
));
}
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论