待会议完成后补充修正
This commit is contained in:
parent
8bbea3a147
commit
e4af8b2619
File diff suppressed because one or more lines are too long
|
|
@ -343,7 +343,7 @@
|
||||||
<GroupNumber>2</GroupNumber>
|
<GroupNumber>2</GroupNumber>
|
||||||
<FileNumber>14</FileNumber>
|
<FileNumber>14</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>1</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<bDave2>0</bDave2>
|
<bDave2>0</bDave2>
|
||||||
<PathWithFileName>..\src\sys_config.c</PathWithFileName>
|
<PathWithFileName>..\src\sys_config.c</PathWithFileName>
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
<TargetName>OTA</TargetName>
|
<TargetName>OTA</TargetName>
|
||||||
<ToolsetNumber>0x4</ToolsetNumber>
|
<ToolsetNumber>0x4</ToolsetNumber>
|
||||||
<ToolsetName>ARM-ADS</ToolsetName>
|
<ToolsetName>ARM-ADS</ToolsetName>
|
||||||
<pCCUsed>5060750::V5.06 update 6 (build 750)::ARMCC</pCCUsed>
|
<pCCUsed>5060960::V5.06 update 7 (build 960)::.\ARMCC</pCCUsed>
|
||||||
<uAC6>0</uAC6>
|
<uAC6>0</uAC6>
|
||||||
<TargetOption>
|
<TargetOption>
|
||||||
<TargetCommonOption>
|
<TargetCommonOption>
|
||||||
|
|
|
||||||
|
|
@ -30,35 +30,40 @@ float temp_bat_voltage=0;
|
||||||
|
|
||||||
// uint8_t bat_str[50]={0,0},bat_str_len=0;
|
// uint8_t bat_str[50]={0,0},bat_str_len=0;
|
||||||
|
|
||||||
|
const float coulomp_voltage_tables[3][21] = {
|
||||||
const uint16_t coulomp_voltage_table[11] = {
|
{ // 4串
|
||||||
BAT_LEVEL_0PERCENT_VOLT,
|
420.0f, 423.6f, 427.2f, 430.8f, 434.4f, 438.0f, 441.6f, 445.2f, 448.8f, 452.4f,
|
||||||
BAT_LEVEL_10PERCENT_VOLT,
|
456.0f, 459.6f, 463.2f, 466.8f, 470.4f, 474.0f, 477.6f, 481.2f, 484.8f, 488.4f, 492.0f
|
||||||
BAT_LEVEL_20PERCENT_VOLT,
|
},
|
||||||
BAT_LEVEL_30PERCENT_VOLT,
|
{ // 5串
|
||||||
BAT_LEVEL_40PERCENT_VOLT,
|
525.0f, 529.5f, 534.0f, 538.5f, 543.0f, 547.5f, 552.0f, 556.5f, 561.0f, 565.5f,
|
||||||
BAT_LEVEL_50PERCENT_VOLT,
|
570.0f, 574.5f, 579.0f, 583.5f, 588.0f, 592.5f, 597.0f, 601.5f, 606.0f, 610.5f, 615.0f
|
||||||
BAT_LEVEL_60PERCENT_VOLT,
|
},
|
||||||
BAT_LEVEL_70PERCENT_VOLT,
|
{ // 6串
|
||||||
BAT_LEVEL_80PERCENT_VOLT,
|
630.0f, 635.4f, 640.8f, 646.2f, 651.6f, 657.0f, 662.4f, 667.8f, 673.2f, 678.6f,
|
||||||
BAT_LEVEL_90PERCENT_VOLT,
|
684.0f, 689.4f, 694.8f, 700.2f, 705.6f, 711.0f, 716.4f, 721.8f, 727.2f, 732.6f, 738.0f
|
||||||
BAT_LEVEL_100PERCENT_VOLT,
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
uint8_t pmu_voltage_to_percent(uint32_t volt){//电压转百分比
|
uint8_t pmu_voltage_to_percent(uint32_t volt){//电压转百分比
|
||||||
uint8_t i, percent;
|
|
||||||
|
uint8_t table_index = BAT_Message.Bat_PACK ;
|
||||||
|
|
||||||
|
const float* voltage_table = coulomp_voltage_tables[table_index];
|
||||||
|
|
||||||
|
uint8_t i, percent;
|
||||||
float step, base;
|
float step, base;
|
||||||
if((volt < coulomp_voltage_table[0])){
|
if((volt < voltage_table[0])){
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if((volt >= coulomp_voltage_table[10])){
|
if((volt >= voltage_table[20])){
|
||||||
return 100;
|
return 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < 10; i++) {
|
for (i = 0; i < 20; i++) {
|
||||||
if((volt < coulomp_voltage_table[i+1]) && (volt >= coulomp_voltage_table[i])){
|
if((volt < voltage_table[i+1]) && (volt >= voltage_table[i])){
|
||||||
step = (coulomp_voltage_table[i+1] - coulomp_voltage_table[i]) / 10.0;
|
step = (voltage_table[i+1] - voltage_table[i]) / 10.0;
|
||||||
base = coulomp_voltage_table[i];
|
base = voltage_table[i];
|
||||||
percent = (10 * i) + (volt - base) / step;
|
percent = (10 * i) + (volt - base) / step;
|
||||||
DEBUG("\n\ni:%d,volt:%d,step:%02.2f,base:%02.2f,percent:%d\n\n",i,volt,step,base,percent);
|
DEBUG("\n\ni:%d,volt:%d,step:%02.2f,base:%02.2f,percent:%d\n\n",i,volt,step,base,percent);
|
||||||
return (uint8_t)percent;
|
return (uint8_t)percent;
|
||||||
|
|
|
||||||
|
|
@ -1,37 +1,37 @@
|
||||||
#ifndef _APP_BAT_H_
|
#ifndef _APP_BAT_H_
|
||||||
#define _APP_BAT_H_
|
#define _APP_BAT_H_
|
||||||
|
|
||||||
|
#include "b6x.h"
|
||||||
|
|
||||||
|
|
||||||
#define BAT_SxP1 4 // 电池四串一并
|
|
||||||
#define BAT_VOLT(_Volt) (_Volt * BAT_SxP1) //电压单位转换
|
#define BAT_VOLT(_Volt) (_Volt * BAT_SxP1) //电压单位转换
|
||||||
#define BAT_Low_VOLT BAT_VOLT(105) //10.5V x 4 = 42V
|
#define BAT_Low_VOLT BAT_VOLT(105) //10.5V x 4 = 42V
|
||||||
#define BAT_Full_VOLT BAT_VOLT(144) //14.4V x 4 = 57.6V
|
#define BAT_Full_VOLT BAT_VOLT(144) //14.4V x 4 = 57.6V
|
||||||
|
|
||||||
// #define BAT_LEVEL_0PERCENT_VOLT BAT_VOLT(105) // 0%:(105~110]=(42.0V~44.0V]
|
|
||||||
// #define BAT_LEVEL_10PERCENT_VOLT BAT_VOLT(113) // 10%:(110~113]=(44.0V~45.2V]
|
|
||||||
// #define BAT_LEVEL_20PERCENT_VOLT BAT_VOLT(116) // 20%:(113~116]=(45.2V~46.4V]
|
|
||||||
// #define BAT_LEVEL_30PERCENT_VOLT BAT_VOLT(119) // 30%:(116~119]=(46.4V~47.6V]
|
|
||||||
// #define BAT_LEVEL_40PERCENT_VOLT BAT_VOLT(122) // 40%:(119~122]=(47.6V~48.8V]
|
|
||||||
// #define BAT_LEVEL_50PERCENT_VOLT BAT_VOLT(125) // 50%:(122~125]=(48.8V~50.0V]
|
|
||||||
// #define BAT_LEVEL_60PERCENT_VOLT BAT_VOLT(128) // 60%:(125~128]=(50.0V~51.2V]
|
|
||||||
// #define BAT_LEVEL_70PERCENT_VOLT BAT_VOLT(131) // 70%:(128~131]=(51.2V~52.4V]
|
|
||||||
// #define BAT_LEVEL_80PERCENT_VOLT BAT_VOLT(134) // 80%:(131~134]=(52.4V~53.6V]
|
|
||||||
// #define BAT_LEVEL_90PERCENT_VOLT BAT_VOLT(137) // 90%:(134~137]=(53.6V~54.8V]
|
|
||||||
// #define BAT_LEVEL_100PERCENT_VOLT BAT_VOLT(144) //100%:(137~144]=(54.8V~57.6V]
|
|
||||||
|
|
||||||
// 内阻 20mΩ * 4 =80mΩ // 线损 10A 0.1V
|
// 内阻 20mΩ * 4 =80mΩ // 线损 10A 0.1V
|
||||||
|
|
||||||
#define BAT_LEVEL_0PERCENT_VOLT BAT_VOLT(105) // 0%
|
#define BAT_LEVEL_0PERCENT_VOLT BAT_VOLT(105) // 0%
|
||||||
#define BAT_LEVEL_10PERCENT_VOLT BAT_VOLT(107) // 10%
|
#define BAT_LEVEL_5PERCENT_VOLT BAT_VOLT(105.9) // 0%
|
||||||
#define BAT_LEVEL_20PERCENT_VOLT BAT_VOLT(109) // 20%
|
#define BAT_LEVEL_10PERCENT_VOLT BAT_VOLT(106.8) // 10%
|
||||||
#define BAT_LEVEL_30PERCENT_VOLT BAT_VOLT(111) // 30%
|
#define BAT_LEVEL_15PERCENT_VOLT BAT_VOLT(107.7) // 10%
|
||||||
#define BAT_LEVEL_40PERCENT_VOLT BAT_VOLT(113) // 40%
|
#define BAT_LEVEL_20PERCENT_VOLT BAT_VOLT(108.6) // 20%
|
||||||
#define BAT_LEVEL_50PERCENT_VOLT BAT_VOLT(115) // 50%
|
#define BAT_LEVEL_25PERCENT_VOLT BAT_VOLT(109.5) // 20%
|
||||||
#define BAT_LEVEL_60PERCENT_VOLT BAT_VOLT(117) // 60%
|
#define BAT_LEVEL_30PERCENT_VOLT BAT_VOLT(110.4) // 30%
|
||||||
#define BAT_LEVEL_70PERCENT_VOLT BAT_VOLT(119) // 70%
|
#define BAT_LEVEL_35PERCENT_VOLT BAT_VOLT(111.3) // 30%
|
||||||
#define BAT_LEVEL_80PERCENT_VOLT BAT_VOLT(123) // 80%
|
#define BAT_LEVEL_40PERCENT_VOLT BAT_VOLT(112.2) // 40%
|
||||||
#define BAT_LEVEL_90PERCENT_VOLT BAT_VOLT(127) // 90%
|
#define BAT_LEVEL_45PERCENT_VOLT BAT_VOLT(113.1) // 40%
|
||||||
#define BAT_LEVEL_100PERCENT_VOLT BAT_VOLT(134) //100%
|
#define BAT_LEVEL_50PERCENT_VOLT BAT_VOLT(114) // 50%
|
||||||
|
#define BAT_LEVEL_55PERCENT_VOLT BAT_VOLT(114.9) // 50%
|
||||||
|
#define BAT_LEVEL_60PERCENT_VOLT BAT_VOLT(115.8) // 60%
|
||||||
|
#define BAT_LEVEL_65PERCENT_VOLT BAT_VOLT(116.7) // 60%
|
||||||
|
#define BAT_LEVEL_70PERCENT_VOLT BAT_VOLT(117.6) // 70%
|
||||||
|
#define BAT_LEVEL_75PERCENT_VOLT BAT_VOLT(118.5) // 70%
|
||||||
|
#define BAT_LEVEL_80PERCENT_VOLT BAT_VOLT(119.4) // 80%
|
||||||
|
#define BAT_LEVEL_85PERCENT_VOLT BAT_VOLT(120.3) // 80%
|
||||||
|
#define BAT_LEVEL_90PERCENT_VOLT BAT_VOLT(121.2) // 90%
|
||||||
|
#define BAT_LEVEL_95PERCENT_VOLT BAT_VOLT(122.1) // 90%
|
||||||
|
#define BAT_LEVEL_100PERCENT_VOLT BAT_VOLT(123) //100%
|
||||||
|
|
||||||
|
|
||||||
// 充电状态
|
// 充电状态
|
||||||
|
|
@ -53,6 +53,9 @@ typedef struct BAT_Message{
|
||||||
uint16_t Bat_Voltage; // 480=48.0V
|
uint16_t Bat_Voltage; // 480=48.0V
|
||||||
uint16_t Runing_Time; // 系统运行时间
|
uint16_t Runing_Time; // 系统运行时间
|
||||||
uint16_t Deep_ACC_Time; // 深踩油门时间
|
uint16_t Deep_ACC_Time; // 深踩油门时间
|
||||||
|
uint8_t Bat_TYPE;
|
||||||
|
uint8_t Bat_PACK;
|
||||||
|
|
||||||
} BAT_Message_t;
|
} BAT_Message_t;
|
||||||
|
|
||||||
uint8_t pmu_voltage_to_percent(uint32_t volt); // 电压转百分比
|
uint8_t pmu_voltage_to_percent(uint32_t volt); // 电压转百分比
|
||||||
|
|
|
||||||
|
|
@ -428,6 +428,35 @@ void FunctionalCode_03_06(uint8_t CMDCode, uint16_t reg_addr , uint16_t reg_val_
|
||||||
len_count =0;
|
len_count =0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case 0x0308: // 电池类型信息
|
||||||
|
if(CMDCode == 0x03){
|
||||||
|
MODBUS_Sent_BUF[len_count++] =radar_data.distance >> 8;
|
||||||
|
MODBUS_Sent_BUF[len_count++] =radar_data.distance & 0xff;
|
||||||
|
MODBUS_Sent_BUF[2] +=2;
|
||||||
|
if(0 == --reg_val_num){
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}else if(CMDCode == 0x06){
|
||||||
|
BAT_Message.Bat_TYPE =reg_val_num ? 1 : 0;
|
||||||
|
MODBUS_Sent_BUF[len_count++] =sys_sta.O_12V >> 8;
|
||||||
|
MODBUS_Sent_BUF[len_count++] =sys_sta.O_12V & 0xff;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 0x0309: // 电池包信息
|
||||||
|
if(CMDCode == 0x03){
|
||||||
|
MODBUS_Sent_BUF[len_count++] =radar_data.distance >> 8;
|
||||||
|
MODBUS_Sent_BUF[len_count++] =radar_data.distance & 0xff;
|
||||||
|
MODBUS_Sent_BUF[2] +=2;
|
||||||
|
if(0 == --reg_val_num){
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}else if(CMDCode == 0x06){
|
||||||
|
BAT_Message.Bat_PACK =reg_val_num ? 1 : 0;
|
||||||
|
MODBUS_Sent_BUF[len_count++] =sys_sta.O_12V >> 8;
|
||||||
|
MODBUS_Sent_BUF[len_count++] =sys_sta.O_12V & 0xff;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
len_count =0;
|
len_count =0;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue