/********************************************************************************
Copyright (C), Sinowealth Electronic. Ltd.
Author: 	Sino
Version: 	V0.0
Date: 		2014/09/10
History:
V0.0		2014/09/10		 Preliminary
********************************************************************************/
//*** <<< use Configuration Wizard in Context Menu >>>	***
#define _RAM_CHECK_DATA						0x5A
#define	_FLASH_CHECK_DATA					0x5AA5

//	<h> 系统信息区(SubClassID=0x00		length=48)
//	<h> 电池包信息（E2uiPackConfigMap）
//	<q>	负载锁定
#define _EPCM_LOAD_LOCK			    			0		    				//BIT15; 	0：不使能负载锁定;	1：使能负载锁定
//	<q>	充电器锁定
#define _EPCM_CHARGER_LOCK		    			0		    				//BIT14; 	0：不支持充电器锁定;	1：支持充电器锁定
//	<q>	温度检测点个数
#define	_EPCM_TEMP_NUM							0							//BIT13;	0：单个温度检测点	1：两个温度检测点
//	<o>	LED显示个数
#define	_EPCM_LED_NUM							0							//BIT11~12;	未调用
//	<o> 电芯串数
#define _EPCM_CELL_NUM							4							//BIT8~10; 	电芯串数，6~10串
// <q>	外挂EEPROM备份
#define _EPCM_EEPROM_EN			    			0		    				//BIT7;		0：不使能外挂EE备份功能;	1：使能外挂EE备份功能
// <q>	放电过流MOS控制			
													
#define	_EPCM_OCPM								0							//BIT6;		未调用（0：放电过流关闭放电mos	1：放电过流关闭充放电mos）
// <q>	断线检测
#define _EPCM_CTO_EN	    					1		    				//BIT5;		0：不使能断线保护功能;	1：使能断线保护功能                 
// <q>	二级保护
#define _EPCM_PF_EN			    				1		    				//BIT4;		0：不使能二级保护功能;	1：使能二级保护功能
// <q>	均衡
#define _EPCM_BAL_EN			    			1		    				//BIT3;		0：不使能均衡功能；	1：使能均衡功能
// <q> 过流自恢复
#define	_EPCM_OCRC_EN							1							//BIT2;		0:不使能过流自恢复功能；		1：使能过流自恢复功能
// <q> 硬件过压保护
#define	_EPCM_OV_EN								1							//BIT1;		0:不使能硬件过压功能；	1：使能硬件过压功能		
// <q>	硬件短路保护									
#define _EPCM_SC				    			1		    				//BIT0;		0:不使能硬件短路保护功能；	1：使能硬件短路保护功能

#define _E2_PACKCONFIGMAP						(_EPCM_EEPROM_EN<<15)|(_EPCM_OCPM<<14)|(_EPCM_CTO_EN<<13)|(_EPCM_PF_EN<<12)\
												|(_EPCM_BAL_EN<<11)|(_EPCM_OCRC_EN<<10)|(_EPCM_OV_EN<<9)\
												|(_EPCM_SC<<8)|(_EPCM_LOAD_LOCK<<7)|(_EPCM_CHARGER_LOCK<<6)\
												|(_EPCM_TEMP_NUM<<5)|(_EPCM_LED_NUM<<4)|(_EPCM_CELL_NUM-3)		//U16 xdata E2uiPackConfigMap 
																		
// </h>

// <h>OCV电压（mV）
// 0%2.620
// <o>10%容量对应电压
#define _E2_VOC10			     				3150        					//U16 xdata VOC10
// <o>20%容量对应电压
#define _E2_VOC20			     				3200        					//U16 xdata VOC10
// <o>30%容量对应电压
#define _E2_VOC30			     				3245        					//U16 xdata VOC10	
// <o>40%容量对应电压
#define _E2_VOC40			     				3290        					//U16 xdata VOC10	
// <o>50%容量对应电压
#define _E2_VOC50			     				3335        					//U16 xdata VOC10	
// <o>60%容量对应电压
#define _E2_VOC60			     				3380        					//U16 xdata VOC10
// <o>70%容量对应电压
#define _E2_VOC70			     				3425        					//U16 xdata VOC10
// <o>80%容量对应电压
#define _E2_VOC80			     				3470       	 					//U16 xdata VOC10
// <o>90%容量对应电压
#define _E2_VOC90			     				3515        					//U16 xdata VOC10	
// <o>100%容量对应电压
#define _E2_VOC100			   					3560        					//U16 xdata VOC10					
// </h>

// <h>延时参数及预留容量参数
// <o>设计容量（mAh）		 
#define _E2_ulDesignCapacity					7200									//U32 xdata E2ulDesignCapacity
// <o>满充容量（mAh）		 
#define _E2_ulFCC								6500									//U32 xdata E2ulFCC
// <o>循环次数更新阈值
#define _E2_ulCycleThreshold					6000									// U32 xdata E2ulCycleThreshold
// <o>循环次数
#define _E2_uiCycleCount						0											// U16 xdata E2uiCycleCount
// <o>容量学习温度
#define _E2_uiLearnLowTempe 					2881										// U16 xdata E2uiLearnLowTempe
#define _E2_Reserve								0											// U16 xdata E2Reserve 预留占位
// <o>充放电检测阈值
#define _E2_siDfilterCur						50										// U16 xdata E2siDfilterCur
// <o>低功耗检测延时
#define _E2_ucLowPowerDeley						20										// U16 xdata E2ucLowPowerDeley
// <o>充电备份检测延时
#define _E2_ucChgBKDelay						1											// U16 xdata E2ucChgBKDelay
// <o>充电备份检测电流
#define _E2_siChgBKCur							100										// U16 xdata E2siChgBKCur
// <o>RTC备份检测延时
#define _E2_ucRTCBKDelay						5											// U16 xdata E2ucRTCBKDelay
#define _E2_ucRamCheckFlg0				_RAM_CHECK_DATA				// U16 xdata E2ucRamCheckFlg0
// </h>
// </h>

// <h>用户自定义参数(SubClassID=0x01	length=50)
// <o>软件版本(EXP:0x0106 = V1.06)<0x0000-0xffff>
#define _E2_SWVersion							0x0215								// U16 xdata SWVersion
// <o>硬件版本(EXP:0x0106 = V1.06)<0x0000-0xffff>			
#define _E2_HWVersion							0x0130								// U16 xdata HWVersion	
// <o>设备ID<0x00-0xff>
#define _E2_ID									0x00									// U8  xdata ID 	
// <s.12>制造商名称
#define _E2_MNFName 							"Cerlink"					// U8  xdata MNFName[12]
// <o>	生产日期（exp：0x20230404=2023.04.04）<0x00000000-0xffffffff>
#define _E2_MNFDate								0x20250212  				// U32 xdata MNFDate
// <o>序列号<0x0000-0xffff>
#define _E2_SerialNum							0x0000								// U16 xdata SerialNum
// <s.12>设备名称
#define _E2_DeviceName 							"SH39F003"						// U8  xdata DeviceName[12]
// <s.4>电芯材料
#define _E2_DeviceChem 							"LION"								// U8  xdata DeviceChem[12]
// <o>电芯化学ID<0x0000-0xffff>
#define _E2_ChemID								0x0000								// U16 xdata ChemID
#define _E2_ucRamCheckFlg1  					_RAM_CHECK_DATA				// U8  xdata E2ucRamCheckFlg2
// </h>

// <h>充电参数(SubClassID=0x02		length=18)
// <o>过压保护阈值
#define _E2_uiOVvol								3600									// U16 xdata E2uiOVvol	
// <o>过压保护恢复阈值
#define _E2_uiOVRvol							3400									// U16 xdata E2uiOVRvol
// <o>过压保护延时S
#define _E2_ucDelayOV							2											// U8  xdata E2ucDelayOV
// <o>过压保护恢复延时S
#define _E2_ucDelayOVR							2											// U8  xdata E2ucDelayOVR
// <o>充电截止电压(mV)
#define _E2_uiChgEndVol							3500									// U16 xdata E2uiChgEndVol
// <o>充电截止电流(mA)
#define _E2_siChgEndCurr						100										// S16 xdata E2siChgEndCurr
// <o>充电截止延时(S)
#define _E2_ucChgEndDelay						5											// U8  xdata E2ucChgEndDelay
// <o>充电过流保护阈值
#define _E2_slOCCvol							25000									// U32  xdata E2slOCCvol
// <o>充电过流保护延时S
#define _E2_ucDelayOCC							2											// U8  xdata E2ucDelayOCC
// <o>充电过流保护恢复延时S
#define _E2_ucDelayOCCR							60											// U8  xdata E2ucDelayOCCR
#define _E2_ucRamCheckFlg2				_RAM_CHECK_DATA				// U8  xdata E2ucRamCheckFlg2
// </h>

// <h>放电参数(SubClassID=0x03		length=21)
// <o>欠压保护电压
#define _E2_uiUVvol								2600									// U16 xdata E2uiUVvol
// <o>欠压保护恢复电压			
#define _E2_uiUVRvol							3000									// U16 xdata E2uiUVRvol
// <o>欠压保护延时
#define _E2_ucDelayUV							2  										// U8  xdata E2ucDelayUV 
// <o>欠压保护恢复延时
#define _E2_ucDelayUVR							2											// U8  xdata E2ucDelayUVR
// <o>放电截止延时(S)	
#define _E2_ucDsgEndDelay						5											// U8  xdata E2ucDsgEndDelay 
// <o>放电截止电压(mV)
#define _E2_uiDsgEndVol							2700									// U16 xdata E2uiDsgEndVol
// <o>放电过流1保护阈值 
#define _E2_uiOCDvol			 				-20000								//U32 xdata	E2uiOCDvol
// <o>放电过流1保护延时s 
#define _E2_ucDelayOCD			 				2											//U8 xdata	E2ucDelayOCD
// <o>放电过流2保护阈值 
#define _E2_slOCD2vol			 				-40000								// S32 xdata E2slOCD2vol
// <o>放电过流2保护延时125mS 
#define _E2_ucDelayOCD2					 		2											//U8 xdata	E2ucDelayOCD2
// <o>负载移除检测延时
#define _E2_ucDelayLoadR		 				4											//U8 xdata	E2ucDelayLoadR	
#define _E2_ucRamCheckFlg3						_RAM_CHECK_DATA				// U8  xdata E2ucRamCheckFlg3
// </h>

// <h>放电PWM参数(SubClassID=0x05		length=5)
// <o>PWM频率(Hz)
#define _E2_DSG1PWMFreq							4000									// U16 xdata DSG1PWMFreq
// <o>PWM低档占空比(%)
#define _E2_DSG1PWMRatioL						30										// U8 xdata DSG1PWMRatioL
// <o>PWM高档占空比(%)
#define _E2_DSG1PWMRatioH						70										// U8 xdata DSG1PWMRatioH
#define _E2_ucRamCheckFlg5				_RAM_CHECK_DATA				// U8  xdata E2ucRamCheckFlg5
// </h>

// <h>充电温度保护参数(SubClassID=0x06	length=11)
// <o>充电高温保护温度(_E2_TempOTC=保护温度*10+2731)
#define _E2_TempOTC								3431									// U16 xdata TempOTC	
// <o>充电高温保护释放温度(_E2_TempOTCR=释放温度*10+2731)
#define _E2_TempOTCR							3331									// U16 xdata TempOTCR
// <o>充电低温保护温度(_E2_TempUTC=保护温度*10+2731)
#define _E2_TempUTC								2531									// U16 xdata TempUTC
// <o>充电低温保护释放温度(_E2_TempUTCR=释放温度*10+2731)
#define _E2_TempUTCR							2631									// U16 xdata TempUTCR
// <o>温度保护延时(s)
#define _E2_DelayOTC							3											// U8  xdata DelayOTC
// <o>温度保护释放延时(s)
#define _E2_DelayOTCR							3											// U8  xdata DelayOTCR
#define _E2_ucRamCheckFlg6				_RAM_CHECK_DATA				// U8  xdata E2ucRamCheckFlg6
// </h>

// <h>放电温度保护参数(SubClassID=0x07	length=9)
// <o>放电高温保护温度(_E2_TempOTC=保护温度*10+2731)
#define _E2_TempOTD								3431									// U16 xdata TempOTD	
// <o>放电高温保护释放温度(_E2_TempOTCR=释放温度*10+2731)
#define _E2_TempOTDR							3331									// U16 xdata TempOTDR
// <o>放电低温保护温度(_E2_TempUTC=保护温度*10+2731)
#define _E2_TempUTD								2531									// U16 xdata TempUTD
// <o>放电低温保护释放温度(_E2_TempUTCR=释放温度*10+2731)
#define _E2_TempUTDR							2631									// U16 xdata TempUTDR
#define _E2_ucRamCheckFlg7				_RAM_CHECK_DATA				// U8  xdata E2ucRamCheckFlg6
// </h>

// <h>平衡参数(SubClassID=0x08					length=8)
// <o>平衡电压(mV)
#define _E2_BalanceVol							3000									// U16 xdata BalanceVol
// <o>平衡压差(mV)
#define _E2_BalanceVolDiff						10										// U16 xdata BalanceVolDiff
// <o>平衡电流(mA)
#define _E2_BalCurrent							100										// S16 xdata BalCurrent
// <o>平衡检测延时(S)
#define _E2_BalanceDelay						2											// U8  xdata BalanceDelay 
#define _E2_ucRamCheckFlg8				_RAM_CHECK_DATA				// U8  xdata E2ucRamCheckFlg8
// </h>

// <h>容量统计参数(SubClassID=0x09				length=17)
// <o>容量百分比SOC(%)
#define _E2_ucSOC								100										// U8  xdata E2ucSOC
// <o>剩余容量E2ulDfRC(mAh)
#define _E2_ulDfRC								3000									// U32 xdata E2ulLastFCC
// <o>放电截止电流
#define   _E2_slDsgEndCurr          			-5000									// U32 xdata E2slDsgEndCurr
// <o>放电循环次数变更计数值
#define _E2_ulCycleThresholdCount				0											// U32 xdata E2ulCycleThresholdCount
// <o>上次更新容量时的循环次数
#define _E2_uiLastCCount						0											// U16 xdata	E2uiLastCCount
// <o>放电截止标志
#define _E2_ucDsgEndFlg							0										//U8  xdata E2ucDsgEndFlg
#define _E2_ucRamCheckFlg9				_RAM_CHECK_DATA				// U8  xdata E2ucRamCheckFlg9
// </h>

// <h>AFE参数(SubClassID=0x0A			length=4)
// <o>保护配置
#define _E2_AFEProtectConfig					0x74									// U8  xdata AFEProtectConfig
// <o>硬件过压保护阈值
#define _E2_AFEOVvol							4400									// U16 xdata AFEOVvol
#define _E2_ucRamCheckFlgA				_RAM_CHECK_DATA				// U8  xdata E2ucRamCheckFlgA
// </h>

// <h>校准参数(SubClassID=0x0B		length=12)
// <o>电压校准增益
#define _E2_uiVPackGain							2594									// U16 xdata E2uiVPackGain	
// <o>电流校准增益
#define _E2_siCadcGain							-89										// S16 xdata E2siCadcGain 
// <o>电流零漂
#define _E2_siCadcOffset						4											// S16 xdata E2siCadcOffset
// <o>外部温度零漂(TS0)
#define _E2_siTS0Offset							0											// S16 xdata E2siTS0Offset
// <o>外部温度零漂(TS1)
#define _E2_siTS1Offset							0											// S16 xdata E2siTS1Offset
// <o>校准参数预留
#define _E2_ucCalibrated						0											// U8  xdata E2ucCalibrated 
#define _E2_ucRamCheckFlgB				_RAM_CHECK_DATA				// U8  xdata E2ucRamCheckFlgB
// </h>

/*****************************************************************************************************************/
/*****************************************************************************************************************/
/*****************************************************************************************************************/
/*****************************************************************************************************************/
/*****************************************************************************************************************/
/*****************************************************************************************************************/
/*****************************************************************************************************************/
/*****************************************************************************************************************/
/*****************************************************************************************************************/
/*****************************************************************************************************************/
/*****************************************************************************************************************/
/*****************************************************************************************************************/

struct DataFlashStu
{
//系统信息区开始 SubClassID=0x00		length=48
    unsigned    int     E2uiPackConfigMap;
    unsigned    int     E2uiVOC[10];
    unsigned    long    E2ulDesignCapacity;
	unsigned    long    E2ulFCC;
	unsigned    long    E2ulCycleThreshold;
    unsigned    int     E2uiCycleCount;
    unsigned    int     E2uiLearnLowTempe;
    unsigned    int     E2Reserve;
    signed    	int     E2siDfilterCur;
    unsigned    char    E2ucLowPowerDeley;
    unsigned    char    E2ucChgBKDelay;	
    unsigned    int     E2siChgBKCur;	
    unsigned    char    E2ucRTCBKDelay;
    unsigned    char    E2ucRamCheckFlg0;

//用户自定义参数区开始 SubClassID=0x01	langth=50
    unsigned    int     E2uiSWVersion;
    unsigned    int     E2uiHWVersion;
    unsigned    char    E2ucID;
    unsigned    char    E2ucMNFName[12];
    unsigned    long    E2ulMNFDate;
    unsigned    int     E2uiSerialNum;
    unsigned    char    E2ucDeviceName[12];
    unsigned    char    E2ucDeviceChem[12];
    unsigned    int     E2uiChemID;
    unsigned    char    E2ucRamCheckFlg1;

//充电参数区开始 SubClassID=0x02		langth=18
    unsigned    int     E2uiOVvol;
    unsigned    int     E2uiOVRvol;
    unsigned    char    E2ucOVDelay;
    unsigned    char    E2ucOVRDelay;
	unsigned    int     E2uiChgEndVol0;
    signed    	int     E2siChgEndCurr0;
    unsigned    char    E2ucChgEndDelay0;
    signed    	long	E2slOCCvol;
    unsigned    char    E2ucDelayOCC;
    unsigned    char    E2ucDelayOCCR;
    unsigned    char    E2ucRamCheckFlg2;

//放电参数区开始 SubClassID=0x03		langth=21
    unsigned    int     E2uiUVvol;
    unsigned    int     E2uiUVRvol;
    unsigned    char    E2ucDelayUV;
    unsigned    char    E2ucDelayUVR;
	unsigned    int    	E2uiDsgEndVol;
	unsigned    char    E2ucDsgEndDelay;
    signed    	long    E2uiOCDvol;
    unsigned    char    E2ucDelayOCD;
    signed    	long	E2slOCD2vol;
    unsigned    char    E2ucDelayOCD2;
    unsigned    char	E2ucDelayLoadR;
    unsigned    char    E2ucRamCheckFlg3;

//放电PWM参数区开始 SubClassID=0x05		langth=5
    unsigned    int     DSG1PWMFreq;
    unsigned    char    DSG1PWMRatioL;
    unsigned    char    DSG1PWMRatioH;
    unsigned    char    E2ucRamCheckFlg5;


//充电温度保护参数开始 SubClassID=0x06	langth=11
    unsigned    int     TempOTC;
    unsigned    int     TempOTCR;
    unsigned    int     TempUTC;
    unsigned    int     TempUTCR;
    unsigned    char    DelayOTC;
    unsigned    char    DelayOTCR;
    unsigned    char    E2ucRamCheckFlg6;

//放电温度保护参数开始 SubClassID=0x07	langth=9
    unsigned    int     TempOTD;
    unsigned    int     TempOTDR;
    unsigned    int     TempUTD;
    unsigned    int     TempUTDR;
    unsigned    char    E2ucRamCheckFlg7;

//平衡参数区开始 SubClassID=0x08		langth=8
    unsigned    int     BalanceVol;
    unsigned    int     BalanceVolDiff;
    unsigned    int     BalCurrent;
    unsigned    char    BalanceDelay;
    unsigned    char    E2ucRamCheckFlg8;

//容量统计 SubClassID=0x09				length=17
    unsigned    char    E2ucSOC;
    unsigned    long    E2ulDfRC;
    signed    long    E2slDsgEndCurr;
    unsigned    long    E2ulCycleThresholdCount;
	unsigned    int    E2uiLastCCount;
	unsigned    char	E2ucDsgEndFlg;								
    unsigned    char    E2ucRamCheckFlg9;

//AFE参数区开始 SubClassID=0x0A			length=4
	unsigned	char	AFEProtectConfig;
	unsigned	int		AFEOVvol;
	unsigned	char	E2ucRamCheckFlgA;

//校准参数区开始 SubClassID=0x0B			length=12
    unsigned    int     E2uiVPackGain;
    signed    	int     E2siCadcGain;
    unsigned    int     E2siCadcOffset;
    unsigned    int     E2siTS0Offset;
    unsigned    int     E2siTS1Offset;
    unsigned    char    E2ucCalibrated;
    unsigned    char    E2ucRamCheckFlgB;
};  

union DataFlashUn
{
    struct  DataFlashStu    DataFlashStu0;  /*一定要先声明结构体再定义数组*/
    unsigned    char    reversed[510];
};

struct  DataFlashStr
{
    union   DataFlashUn DataFlashUnRaw;
    unsigned    int     FlashCheck1;
    union   DataFlashUn DataFlashUnBak;
    unsigned    int     FlashCheck2;
};

struct DataFlashStr code dataflashstr = 
{
/*****************************************************************************************************************/
//备份A区
/*****************************************************************************************************************/
    //系统信息区开始 SubClassID=0x00		length=48
    {
        _E2_PACKCONFIGMAP,      			//U16 xdata E2uiPackConfigMap
        _E2_VOC10,							//U16 xdata VOC10
        _E2_VOC20,							//U16 xdata VOC20
        _E2_VOC30,							//U16 xdata VOC30
        _E2_VOC40,							//U16 xdata VOC40
        _E2_VOC50,							//U16 xdata VOC50
        _E2_VOC60,							//U16 xdata VOC60
        _E2_VOC70,							//U16 xdata VOC70
        _E2_VOC80,							//U16 xdata VOC80
        _E2_VOC90,							//U16 xdata VOC90
        _E2_VOC100,         				//U16 xdata VOC100
        _E2_ulDesignCapacity,         		// U32 xdata E2ulDesignCapacity			   
        _E2_ulFCC,     						// U32 xdata E2ulFCC	
		_E2_ulCycleThreshold,				// U32 xdata E2uiCycleThreshold       
		_E2_uiCycleCount,			     	// U16 xdata E2uiCycleCount    
		_E2_uiLearnLowTempe,       			// U16 xdata E2uiLearnLowTempe  
		_E2_Reserve,       	 				// U16 xdata E2Reserve      
		_E2_siDfilterCur,            		// S16 xdata E2siDfilterCur    
		_E2_ucLowPowerDeley,			  	// U8  xdata E2ucLowPowerDeley 
        _E2_ucChgBKDelay,         			// U8  xdata E2ucChgBKDelay		 
        _E2_siChgBKCur,                		// S16 xdata E2siChgBKCur		   
        _E2_ucRTCBKDelay,              		// U8  xdata E2ucRTCBKDelay		 
        _E2_ucRamCheckFlg0,             	// U8  xdata E2ucRamCheckFlg0  


    //用户自定义参数区开始 SubClassID=0x01	length=50
        _E2_SWVersion,         				//U16 xdata SWVersion     
        _E2_HWVersion,         				//U16 xdata HWVersion     
        _E2_ID,                				//U8  xdata ID            
        _E2_MNFName,           				//U8  xdata MNFName[12]  
        _E2_MNFDate,           				//U32 xdata MNFDate       
        _E2_SerialNum,         				//U16 xdata SerialNum     
        _E2_DeviceName,        				//U8  xdata DeviceName[12]
        _E2_DeviceChem,        				//U8  xdata DeviceChem[12]
        _E2_ChemID,            				//U16 xdata ChemID        
        _E2_ucRamCheckFlg1,					//U8  xdata E2ucRamCheckFlg1
        
    //充电参数区开始 SubClassID=0x02		length=18
        _E2_uiOVvol,             			//U16 xdata E2uiOVvol				
        _E2_uiOVRvol,            			//U16 xdata E2uiOVRvol				
        _E2_ucDelayOV,           			//U8  xdata E2ucDelayOV				
        _E2_ucDelayOVR,          			//U8  xdata E2ucDelayOVR
		_E2_uiChgEndVol,
		_E2_siChgEndCurr,
		_E2_ucChgEndDelay,
        _E2_slOCCvol,        					//S32 xdata E2slOCCvol			
        _E2_ucDelayOCC,          			//U8  xdata E2ucDelayOCC			
        _E2_ucDelayOCCR,         			//U8  xdata E2ucDelayOCCR
        _E2_ucRamCheckFlg2,							//U8  xdata E2ucRamCheckFlg2

    //放电参数区开始 SubClassID=0x03		langth=21             
        _E2_uiUVvol,			    		//U16 xdata E2uiUVvol				
        _E2_uiUVRvol,						//U16 xdata E2uiUVRvol				
        _E2_ucDelayUV,		    			//U8  xdata E2ucDelayUV				
        _E2_ucDelayUVR,	        			//U8  xdata E2ucDelayUVR
		_E2_uiDsgEndVol,
		_E2_ucDsgEndDelay,
        _E2_uiOCDvol,	    				//S32 xdata E2uiOCDvol			
        _E2_ucDelayOCD,    					//U8  xdata E2ucDelayOCD		
        _E2_slOCD2vol,	    				//S32 xdata E2slOCD2vol			
        _E2_ucDelayOCD2,    				//U8  xdata E2ucDelayOCD2				
        _E2_ucDelayLoadR,        			//U8  xdata E2ucDelayLoadR			
        _E2_ucRamCheckFlg3,       			//U8  xdata E2ucRamCheckFlg3


    //放电PWM参数区开始 SubClassID=0x05		langth=5             
        _E2_DSG1PWMFreq,	    			//U16 xdata DSG1PWMFreq			
        _E2_DSG1PWMRatioL,					//U8  xdata DSG1PWMRatioL		
        _E2_DSG1PWMRatioH,					//U8  xdata DSG1PWMRatioH				
        _E2_ucRamCheckFlg5,					//U8  xdata E2ucRamCheckFlg5

//充电温度保护参数开始 SubClassID=0x06	langth=11
        _E2_TempOTC,           				//U16 xdata TempOTC				
        _E2_TempOTCR,          				//U16 xdata TempOTCR			
        _E2_TempUTC,           				//U16 xdata TempUTC				
        _E2_TempUTCR,          				//U16 xdata TempUTCR			
        _E2_DelayOTC,      					//U8  xdata DelayOTC			
        _E2_DelayOTCR,     					//U8  xdata DelayOTCR			
        _E2_ucRamCheckFlg6,					//U8  xdata E2ucRamCheckFlg6

//放电温度保护参数开始 SubClassID=0x07	langth=9
        _E2_TempOTD,           				//U16 xdata TempOTD				
        _E2_TempOTDR,          				//U16 xdata TempOTDR			
        _E2_TempUTD,           				//U16 xdata TempUTD				
        _E2_TempUTDR,          				//U16 xdata TempUTDR			
        _E2_ucRamCheckFlg7,       			//U8  xdata E2ucRamCheckFlg7

//平衡参数区开始 SubClassID=0x08		langth=8
        _E2_BalanceVol,        				// U16 xdata BalanceVol      	        
        _E2_BalanceVolDiff,    				// U16 xdata BalanceVolDiff  	    
        _E2_BalCurrent,						// S16 xdata BalCurrent			    
        _E2_BalanceDelay,      				// U8 xdata BalanceDelay   	        
        _E2_ucRamCheckFlg8,					// U8 xdata E2ucRamCheckFlg8           

//容量统计 SubClassID=0x09				langth=17             

        _E2_ucSOC,                			//U8  xdata E2ucSOC
	
        _E2_ulDfRC,             			//U32 xdata E2ulLastFCC

		_E2_slDsgEndCurr,					//U32 xdata E2slDsgEndCurr
        _E2_ulCycleThresholdCount,			//U32 xdata E2ulCycleThresholdCount
		_E2_uiLastCCount,
		_E2_ucDsgEndFlg,					//U8  xdata E2ucDsgEndFlg
        _E2_ucRamCheckFlg9,					//U8  xdata E2ucRamCheckFlg9

//AFE参数区开始 SubClassID=0x0A			langth=4
		_E2_AFEProtectConfig,				// U8  xdata AFEProtectConfig
		_E2_AFEOVvol,						// U16 xdata AFEOVvol
		_E2_ucRamCheckFlgA,					// U8  xdata E2ucRamCheckFlgA

//校准参数区开始 SubClassID=0x0B			langth=12         
        _E2_uiVPackGain,      				//U16 xdata E2uiVPackGain
        _E2_siCadcGain,    					//S16 xdata E2siCadcGain
        _E2_siCadcOffset,  					//S16 xdata E2siCadcOffset
        _E2_siTS0Offset,   					//S16 xdata E2siTS0Offset
        _E2_siTS1Offset, 					//S16 xdata E2siTS1Offset
        _E2_ucCalibrated,      				//S16 xdata E2ucCalibrated
        _E2_ucRamCheckFlgB,       			//U8  xdata E2ucRamCheckFlgB
    },

		_FLASH_CHECK_DATA,                 // U16 xdata FlashCheck	
/*****************************************************************************************************************/
//备份B区
/*****************************************************************************************************************/
/*****************************************************************************************************************/
//系统信息区开始 SubClassID=0x00		langth=48
	{
        _E2_PACKCONFIGMAP,      			//U16 xdata E2uiPackConfigMap
        _E2_VOC10,							//U16 xdata VOC10
        _E2_VOC20,							//U16 xdata VOC20
        _E2_VOC30,							//U16 xdata VOC30
        _E2_VOC40,							//U16 xdata VOC40
        _E2_VOC50,							//U16 xdata VOC50
        _E2_VOC60,							//U16 xdata VOC60
        _E2_VOC70,							//U16 xdata VOC70
        _E2_VOC80,							//U16 xdata VOC80
        _E2_VOC90,							//U16 xdata VOC90
        _E2_VOC100,         				//U16 xdata VOC100
        _E2_ulDesignCapacity,         		// U32 xdata E2ulDesignCapacity			   
        _E2_ulFCC,     						// U32 xdata E2ulFCC
		_E2_ulCycleThreshold,				// U32 xdata E2uiCycleThreshold       
		_E2_uiCycleCount,			     	// U16 xdata E2uiCycleCount    
		_E2_uiLearnLowTempe,       			// U16 xdata E2uiLearnLowTempe  
		_E2_Reserve,       	 				// U16 xdata E2Reserve      
		_E2_siDfilterCur,            		// S16 xdata E2siDfilterCur    
		_E2_ucLowPowerDeley,			  	// U8  xdata E2ucLowPowerDeley 
        _E2_ucChgBKDelay,         			// U8  xdata E2ucChgBKDelay		 
        _E2_siChgBKCur,                		// S16 xdata E2siChgBKCur		   
        _E2_ucRTCBKDelay,              		// U8  xdata E2ucRTCBKDelay		 
        _E2_ucRamCheckFlg0,             	// U8  xdata E2ucRamCheckFlg0  


//用户自定义参数区开始 SubClassID=0x01	length=50
        _E2_SWVersion,         				//U16 xdata SWVersion     
        _E2_HWVersion,         				//U16 xdata HWVersion     
        _E2_ID,                				//U8  xdata ID            
        _E2_MNFName,           				//U8  xdata MNFName[12]  
        _E2_MNFDate,           				//U32 xdata MNFDate       
        _E2_SerialNum,         				//U16 xdata SerialNum     
        _E2_DeviceName,        				//U8  xdata DeviceName[12]
        _E2_DeviceChem,        				//U8  xdata DeviceChem[12]
        _E2_ChemID,            				//U16 xdata ChemID        
        _E2_ucRamCheckFlg1,					//U8  xdata E2ucRamCheckFlg1
        
//充电参数区开始 SubClassID=0x02		length=18
        _E2_uiOVvol,             			//U16 xdata E2uiOVvol				
        _E2_uiOVRvol,            			//U16 xdata E2uiOVRvol				
        _E2_ucDelayOV,           			//U8  xdata E2ucDelayOV				
        _E2_ucDelayOVR,          			//U8  xdata E2ucDelayOVR
		_E2_uiChgEndVol,
		_E2_siChgEndCurr,
		_E2_ucChgEndDelay,
        _E2_slOCCvol,        					//S32 xdata E2slOCCvol			
        _E2_ucDelayOCC,          			//U8  xdata E2ucDelayOCC			
        _E2_ucDelayOCCR,         			//U8  xdata E2ucDelayOCCR
        _E2_ucRamCheckFlg2,							//U8  xdata E2ucRamCheckFlg2

//放电参数区开始 SubClassID=0x03		langth=21             
        _E2_uiUVvol,			    		//U16 xdata E2uiUVvol				
        _E2_uiUVRvol,						//U16 xdata E2uiUVRvol				
        _E2_ucDelayUV,		    			//U8  xdata E2ucDelayUV				
        _E2_ucDelayUVR,	        			//U8  xdata E2ucDelayUVR
		_E2_uiDsgEndVol,
		_E2_ucDsgEndDelay,
        _E2_uiOCDvol,	    				//S32 xdata E2uiOCDvol			
        _E2_ucDelayOCD,    					//U8  xdata E2ucDelayOCD		
        _E2_slOCD2vol,	    				//S32 xdata E2slOCD2vol			
        _E2_ucDelayOCD2,    				//U8  xdata E2ucDelayOCD2				
        _E2_ucDelayLoadR,        			//U8  xdata E2ucDelayLoadR			
        _E2_ucRamCheckFlg3,       			//U8  xdata E2ucRamCheckFlg3


//放电PWM参数区开始 SubClassID=0x05		langth=5             
        _E2_DSG1PWMFreq,	    			//U16 xdata DSG1PWMFreq			
        _E2_DSG1PWMRatioL,					//U8  xdata DSG1PWMRatioL		
        _E2_DSG1PWMRatioH,					//U8  xdata DSG1PWMRatioH				
        _E2_ucRamCheckFlg5,					//U8  xdata E2ucRamCheckFlg5

//充电温度保护参数开始 SubClassID=0x06	langth=11
        _E2_TempOTC,           				//U16 xdata TempOTC				
        _E2_TempOTCR,          				//U16 xdata TempOTCR			
        _E2_TempUTC,           				//U16 xdata TempUTC				
        _E2_TempUTCR,          				//U16 xdata TempUTCR			
        _E2_DelayOTC,      					//U8  xdata DelayOTC			
        _E2_DelayOTCR,     					//U8  xdata DelayOTCR			
        _E2_ucRamCheckFlg6,					//U8  xdata E2ucRamCheckFlg6

//放电温度保护参数开始 SubClassID=0x07	langth=9
        _E2_TempOTD,           				//U16 xdata TempOTD				
        _E2_TempOTDR,          				//U16 xdata TempOTDR			
        _E2_TempUTD,           				//U16 xdata TempUTD				
        _E2_TempUTDR,          				//U16 xdata TempUTDR			
        _E2_ucRamCheckFlg7,       			//U8  xdata E2ucRamCheckFlg7

//平衡参数区开始 SubClassID=0x08		langth=8
        _E2_BalanceVol,        				// U16 xdata BalanceVol      	        
        _E2_BalanceVolDiff,    				// U16 xdata BalanceVolDiff  	    
        _E2_BalCurrent,						// S16 xdata BalCurrent			    
        _E2_BalanceDelay,      				// U8 xdata BalanceDelay   	        
        _E2_ucRamCheckFlg8,					// U8 xdata E2ucRamCheckFlg8           

//容量统计 SubClassID=0x09				langth=17             
        _E2_ucSOC,                			//U8  xdata E2ucSOC	
        _E2_ulDfRC,             			//U32 xdata E2ulLastFCC
		_E2_slDsgEndCurr,					//U32 xdata E2slDsgEndCurr
        _E2_ulCycleThresholdCount,			//U32 xdata E2ulCycleThresholdCount
		_E2_uiLastCCount,
		_E2_ucDsgEndFlg,					//U8  xdata E2ucDsgEndFlg
		
        _E2_ucRamCheckFlg9,					//U8  xdata E2ucRamCheckFlg9

//AFE参数区开始 SubClassID=0x0A			langth=4
		_E2_AFEProtectConfig,				// U8  xdata AFEProtectConfig
		_E2_AFEOVvol,						// U16 xdata AFEOVvol
		_E2_ucRamCheckFlgA,					// U8  xdata E2ucRamCheckFlgA

//校准参数区开始 SubClassID=0x0B			langth=12         
        _E2_uiVPackGain,      				//U16 xdata E2uiVPackGain
        _E2_siCadcGain,    					//S16 xdata E2siCadcGain
        _E2_siCadcOffset,  					//S16 xdata E2siCadcOffset
        _E2_siTS0Offset,   					//S16 xdata E2siTS0Offset
        _E2_siTS1Offset, 					//S16 xdata E2siTS1Offset
        _E2_ucCalibrated,      				//S16 xdata E2ucCalibrated
        _E2_ucRamCheckFlgB,       			//U8  xdata E2ucRamCheckFlgB
    },

		_FLASH_CHECK_DATA,                 // U16 xdata FlashCheck
};

//*** <<< end of configuration section >>> ***
