Bläddra i källkod

* 增加产品标签写入和读取指令,使用与客户对产品标签有特殊需求时出厂写入,默认为0xFF。

Dail 1 år sedan
förälder
incheckning
92c223f7a2
5 ändrade filer med 38 tillägg och 2 borttagningar
  1. 1 0
      User/Inc/eeprom_flash.h
  2. 1 0
      User/Inc/var.h
  3. 13 0
      User/Src/can_process.c
  4. 8 0
      User/Src/eeprom_flash.c
  5. 15 2
      User/Src/var.c

+ 1 - 0
User/Inc/eeprom_flash.h

@@ -18,6 +18,7 @@
 #define    EEPROM_FLASH_ADDR_USER_INFO3          EEPROM_FLASH_BEGIN_ADDRESS + (uint32_t)124         //自定义字符串3 16bytes + 4bytes
 #define    EEPROM_FLASH_ADDR_GEARBOX_PARAMS      EEPROM_FLASH_BEGIN_ADDRESS + (uint32_t)144         //自动变速器控制参数 8bytes + 4bytes   
 #define    EEPROM_FLASH_ADDR_BATTERY_PARMAS      EEPROM_FLASH_BEGIN_ADDRESS + (uint32_t)156         //电池放电曲线参数 204bytes + 4bytes  
+#define    EEPROM_FLASH_ADDR_TAG_INFO            EEPROM_FLASH_BEGIN_ADDRESS + (uint32_t)364         //产品标签信息 32bytes + 4bytes
 
 #define    EEPROM_FLASH_ADDR_TEMP_BEGIN_ADDRESS    0x0801F400
 #define    EEPROM_FLASH_ADDR_TEMP_END_ADDRESS      0x0801F7FF

+ 1 - 0
User/Inc/var.h

@@ -539,6 +539,7 @@ extern MC_DebugInfo_Struct_t MC_DebugInfo;
 extern MC_ErrorCode_Struct_t MC_ErrorCode;
 extern MC_VerInfo_Struct_t MC_VerInfo;
 extern char Firmware_Special[32];
+extern uint8_t MC_TagInfo[32];
 extern OnLine_Status_Struct_t DeviceOnLine_Status;
 extern BMS_RunInfo_Struct_t BMS_RunInfo;
 extern Device_CheckInfo_Struct_t BMS_CheckInfo;

+ 13 - 0
User/Src/can_process.c

@@ -805,6 +805,19 @@ void DataProcess(uint16_t ID, uint8_t Mode, uint16_t Cmd, uint8_t* Data)
 					SendData(ID_MC_TO_CDL, MODE_REPORT, 0xA903, (uint8_t*)"ACK");
 					break;
 				}
+				case 0x3C00://查询电机标签信息
+				{
+				  ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_TAG_INFO, MC_TagInfo, 32);
+					SendData(ID_MC_TO_CDL, MODE_REPORT, 0xBB20, MC_TagInfo);
+					break;
+				}
+				case 0x3D20://写入电机标签信息
+				{
+				  memcpy(MC_TagInfo, Data, DataLength);
+					IsFlashSaveDataUpdate = TRUE;
+					SendData(ID_MC_BC, MODE_REPORT, 0xA903, (uint8_t*)"ACK");
+					break;
+				}
 				default:break;
 			}
 			break;

+ 8 - 0
User/Src/eeprom_flash.c

@@ -35,6 +35,8 @@ void CopyDataToEEPROM_Flash(void)
 	SaveDataToEEPROM_Flash(EEPROM_FLASH_ADDR_GEARBOX_PARAMS, (uint8_t*)&GearBox_OBC_SetParams.GearNum, 8);
 	//写入电池放电曲线参数
 	SaveDataToEEPROM_Flash(EEPROM_FLASH_ADDR_BATTERY_PARMAS, (uint8_t*)&BatteryCellInfo.DesignCap, sizeof(BatterCellInfo_Struct_t));
+	//写入产品标签信息
+	SaveDataToEEPROM_Flash(EEPROM_FLASH_ADDR_TAG_INFO, (uint8_t*)MC_TagInfo, 32);		
 
 	//写入标志
 	Temp_32[0] = (EEPROM_Flash_Flag[0] << 24) + (EEPROM_Flash_Flag[1] << 16) + (EEPROM_Flash_Flag[2] << 8) + EEPROM_Flash_Flag[3];
@@ -95,6 +97,12 @@ void CopyDataFromEEPROM_Flash(void)
 	{
 	   memcpy((uint8_t*)&BatteryCellInfo.DesignCap, Flash_ReadDataBuf, sizeof(BatterCellInfo_Struct_t));
 	}
+	//读取产品标签信息
+	Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_TAG_INFO, Flash_ReadDataBuf, 32);
+	if(Error_OK == 0)
+	{
+	   memcpy(&MC_TagInfo, Flash_ReadDataBuf, 32);
+	}
 	
 }
 

+ 15 - 2
User/Src/var.c

@@ -7,7 +7,8 @@ MC_RunInfo_Struct_t MC_RunInfo;                           //MC
 MC_DebugInfo_Struct_t MC_DebugInfo;                       //MC调试信息
 MC_ErrorCode_Struct_t MC_ErrorCode;                       //MC故障代码
 MC_VerInfo_Struct_t MC_VerInfo;                           //MC版本信息
-char Firmware_Special[32];                                //MC软件版本特性说明
+char Firmware_Special[32] = {0,};                         //MC软件版本特性说明
+uint8_t MC_TagInfo[32] = {0xFF,};                         //MC生产标签信息
 OnLine_Status_Struct_t DeviceOnLine_Status;               //设备在线检测结果
 BMS_RunInfo_Struct_t BMS_RunInfo;                         //BMS运行信息
 Device_CheckInfo_Struct_t BMS_CheckInfo;                  //BMS授权校验
@@ -708,10 +709,22 @@ void Var_Init(void)
 	strncpy(MC_MacInfo.MacAddr, (char*)"WUHAN.  ", 8);
 	strncpy(MC_MacInfo.MacDate, (char*)"20210901", 8);
 
+    //产品标签
+	/*
+	Digit1-2:   MO(Battery:BT, Controller:CT, BB:BB, Charger:CG, Display:DP, Motor:MO)
+	Digit3-4:   MA(MOTINOVA)
+	Digit5-10:  000001(Consecutive number)
+	Digit11-17: V1.2202(Hardware version:"Version." + Date(YYMM))
+	Digit18-24: /261022(Production Date:/DDMMYY)
+	Digit25-26: FI(Customer:Fishcer)
+	Digit27-31: 65347(Customer Article No.)
+	*/
+	//strncpy(MC_TagInfo, (char*)"MOMA000001V1.2202/261022FI65347 ", 32);
+
 	//MCU ID读取
 	memcpy((uint8_t*)MC_CheckInfo.MAC_ID, (uint8_t*)(0x1FFFF7E8), 12);
 	
-  //MC存储数据初始化为默认值
+    //MC存储数据初始化为默认值
 	Var_SetToDefaultParam();
 	Var_SetToDefaultLog();