CN113342268A - 一种soc数据存储方法、装置、计算机设备和存储介质 - Google Patents
一种soc数据存储方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113342268A CN113342268A CN202110570148.9A CN202110570148A CN113342268A CN 113342268 A CN113342268 A CN 113342268A CN 202110570148 A CN202110570148 A CN 202110570148A CN 113342268 A CN113342268 A CN 113342268A
- Authority
- CN
- China
- Prior art keywords
- storage
- storage area
- battery
- current
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Secondary Cells (AREA)
Abstract
本申请涉及一种SOC数据存储方法、装置、计算机设备和存储介质。所述方法包括:获取SOC数据的数据长度和存储介质容量,得到存储区域划分的区域个数;根据区域个数确定每个存储区域的存储地址信息,当预设的SOC数据写入条件触发时,根据电池使用时间获取当前的电池电量信息,将电池电量信息在当前存储区域中进行存储,存储成功后,将当前存储区域中的存储次数加一,得到更新后的存储次数;当更新后的存储次数大于或等于预设的最大次数时,在下一次SOC数据写入条件触发时,将要存储的SOC数据存储到下一存储区域,若当前存储区域是最后一个存储区域,将要存储的SOC数据存储到第一个存储区域。
Description
技术领域
本申请涉及数据存储技术领域,特别是涉及一种SOC数据存储方法、装置、计算机设备和存储介质。
背景技术
随着我国经济的快速增长,机动车规模扩张所引发的能源、环境问题已经成为制约城市可持续发展的瓶颈之一。大力发展新能源汽车是应对全球能源短缺和环境污染的重大战略举措。电池管理系统(BMS,Battery Management System)作为新能源汽车最关键的零部件之一,是衔接电池组、整车系统和电机的重要纽带。电池荷电状态(SOC,State ofCharge)估算是动力电池管理系统中最为重要的功能之一,系统中的许多其他功能都依赖于剩余电量评估的结果。
电池管理系统上电时需要读取存储在存储介质中的SOC数据,车辆运行过程中,SOC的变化满足一定条件时也需要写入存储介质中,电池管理系统下电时也需将当前SOC写入存储介质中。EEPROM(带电可擦可编程只读存储器)由于具有高性价比,成为当前电池管理系统主流的存储芯片。但是EEPROM的写入是有寿命限制的,一般10万次到几十万次不等,以一般寿命10万次为例,传统的SOC存储方法为固定位置周期性写入,以10分钟存储一次,则一年的存储次数为52560。对于需要长期工作的不间断电源系统,工作两年则该存储芯片无法正常使用。现有技术存在资源利用率低的问题,因此急需一种SOC数据存储方法延长EEPROM的写入寿命保证电池管理系统的合理使用。
发明内容
基于此,有必要针对上述技术问题,提供一种能够可延长存储介质的使用寿命的SOC数据存储方法、装置、计算机设备和存储介质。
一种SOC数据存储方法,所述方法包括:
获取SOC数据的数据长度和存储介质容量,根据所述数据长度和所述存储介质容量得到存储区域划分的区域个数;
根据所述区域个数确定每个存储区域的存储地址信息;所述存储区域连续;每个所述存储区域用于存储电池电量信息和当前存储区域的存储次数;所述存储次数的初始值为0;
当预设的SOC数据写入条件触发时,根据电池使用时间获取当前的电池电量信息,将所述电池电量信息在当前存储区域中进行存储,存储成功后,将所述当前存储区域中的存储次数加一,得到更新后的存储次数;
当所述更新后的存储次数大于或等于预设的最大次数时,在下一次SOC数据写入条件触发时,判断所述当前存储区域是否是最后一个存储区域;
若所述当前存储区域不是最后一个存储区域,将要存储的SOC数据存储到下一存储区域,若所述当前存储区域是最后一个存储区域,将所述要存储的SOC数据存储到第一个存储区域。
在其中一个实施例中,还包括:根据所述区域个数确定每个存储区域的存储地址信息;所述存储区域连续;每个所述存储区域用于存储电池电量信息和当前存储区域的存储次数;所述电池电量信息为电池的剩余电荷量或电池荷电状态。
在其中一个实施例中,还包括:根据电池额定容量物理量和电池的剩余电荷量数据精度,得到剩余电荷量的数值范围;
根据所述剩余电荷量的数值范围得到所述电池电量信息的数据长度;
获取预设的所述存储次数的数据长度;
获取存储介质容量;
根据所述电池电量信息的数据长度、所述存储次数的数据长度和所述存储介质容量得到存储区域划分的区域个数。
在其中一个实施例中,还包括:根据电池的荷电状态数据范围和数据精度,得到电池的荷电状态的数值范围;
根据所述电池的荷电状态的数值范围得到所述电池电量信息的数据长度;
获取预设的所述存储次数的数据长度;
获取存储介质容量;
根据所述电池电量信息的数据长度、所述存储次数的数据长度和所述存储介质容量得到存储区域划分的区域个数。
在其中一个实施例中,还包括:当预设的SOC数据写入条件触发时,根据电池使用时间获取当前的电池电量信息,将所述电池电量信息在当前存储区域中进行存储,存储成功后,将所述当前存储区域中的存储次数加一,得到更新后的存储次数;所述SOC数据写入条件为电池管理系统下电或SOC变化满足预设阈值。
在其中一个实施例中,还包括:当所述更新后的存储次数大于或等于预设的最大次数时,在下一次SOC数据写入条件触发时,将要存储的SOC数据存储到下一存储区域,若所述当前存储区域是最后一个存储区域,将所述要存储的SOC数据存储到第一个存储区域之前,将所述下一存储区域或所述第一个存储区域的所述存储次数清零。
在其中一个实施例中,还包括:根据所述区域个数确定每个存储区域的存储地址信息;所述存储区域连续;每个所述存储区域用于存储电池电量信息和当前存储区域的存储次数;其中,所述存储次数的存储地址由所述存储地址信息中的起始地址和所述电池电量信息的数据长度确定。
一种SOC数据存储装置,所述装置包括:
区域个数确定模块,用于获取SOC数据的数据长度和存储介质容量,根据所述数据长度和所述存储介质容量得到存储区域划分的区域个数;
存储地址信息确定模块,用于根据所述区域个数确定每个存储区域的存储地址信息;所述存储区域连续;每个所述存储区域用于存储电池电量信息和当前存储区域的存储次数;所述存储次数的初始值为0;
数据存储模块,用于当预设的SOC数据写入条件触发时,根据电池使用时间获取当前的电池电量信息,将所述电池电量信息在当前存储区域中进行存储,存储成功后,将所述当前存储区域中的存储次数加一,得到更新后的存储次数;
存储区域转换模块,用于当所述更新后的存储次数大于或等于预设的最大次数时,在下一次SOC数据写入条件触发时,判断所述当前存储区域是否是最后一个存储区域;若所述当前存储区域不是最后一个存储区域,将要存储的SOC数据存储到下一存储区域,若所述当前存储区域是最后一个存储区域,将所述要存储的SOC数据存储到第一个存储区域。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取SOC数据的数据长度和存储介质容量,根据所述数据长度和所述存储介质容量得到存储区域划分的区域个数;
根据所述区域个数确定每个存储区域的存储地址信息;所述存储区域连续;每个所述存储区域用于存储电池电量信息和当前存储区域的存储次数;
当预设的SOC数据写入条件触发时,根据电池使用时间获取当前的电池电量信息,将所述电池电量信息在当前存储区域中进行存储,存储成功后,将所述当前存储区域中的存储次数加一,得到更新后的存储次数;
当所述更新后的存储次数大于或等于预设的最大次数时,在下一次SOC数据写入条件触发时,判断所述当前存储区域是否是最后一个存储区域;
若所述当前存储区域不是最后一个存储区域,将要存储的SOC数据存储到下一存储区域,若所述当前存储区域是最后一个存储区域,将所述要存储的SOC数据存储到第一个存储区域。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取SOC数据的数据长度和存储介质容量,根据所述数据长度和所述存储介质容量得到存储区域划分的区域个数;
根据所述区域个数确定每个存储区域的存储地址信息;所述存储区域连续;每个所述存储区域用于存储电池电量信息和当前存储区域的存储次数;所述存储次数的初始值为0;
当预设的SOC数据写入条件触发时,根据电池使用时间获取当前的电池电量信息,将所述电池电量信息在当前存储区域中进行存储,存储成功后,将所述当前存储区域中的存储次数加一,得到更新后的存储次数;
当所述更新后的存储次数大于或等于预设的最大次数时,在下一次SOC数据写入条件触发时,判断所述当前存储区域是否是最后一个存储区域;
若所述当前存储区域不是最后一个存储区域,将要存储的SOC数据存储到下一存储区域,若所述当前存储区域是最后一个存储区域,将所述要存储的SOC数据存储到第一个存储区域。
上述SOC数据存储方法、装置、计算机设备和存储介质,通过获取SOC数据的数据长度和存储介质容量,根据数据长度和存储介质容量得到存储区域划分的区域个数;根据区域个数确定每个存储区域的存储地址信息,当预设的SOC数据写入条件触发时,根据电池使用时间获取当前的电池电量信息,将电池电量信息在当前存储区域中进行存储,存储成功后,将当前存储区域中的存储次数加一,得到更新后的存储次数;当更新后的存储次数大于或等于预设的最大次数时,在下一次SOC数据写入条件触发时,将要存储的SOC数据存储到下一存储区域,若当前存储区域是最后一个存储区域,将要存储的SOC数据存储到第一个存储区域。本发明提供的SOC数据存储方法,将存储介质连续的N个区域用于SOC存储,当预设的SOC数据写入条件触发时,以滚动存储的方式记录当前电池的使用状态以及当前存储区域的存储次数,相比传统的固定位置周期性的写入,可有效减少写入的次数,对于写入次数有限的存储芯片,可有效延长存储介质的寿命,保证电池管理系统电池状态信息的有效性。
附图说明
图1为一个实施例中SOC数据存储方法的流程示意图;
图2为一个实施例中EEPROM分区存储数据的示意图;
图3为一个实施例中SOC数据存储装置的结构框图;
图4为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的SOC数据存储方法,可以应用于如下应用环境中。其中,终端执行一种SOC数据存储方法,通过获取SOC数据的数据长度和存储介质容量,根据数据长度和存储介质容量得到存储区域划分的区域个数;根据区域个数确定每个存储区域的存储地址信息,当预设的SOC数据写入条件触发时,根据电池使用时间获取当前的电池电量信息,将电池电量信息在当前存储区域中进行存储,存储成功后,将当前存储区域中的存储次数加一,得到更新后的存储次数;当更新后的存储次数大于或等于预设的最大次数时,在下一次SOC数据写入条件触发时,将要存储的SOC数据存储到下一存储区域,若当前存储区域是最后一个存储区域,将要存储的SOC数据存储到第一个存储区域。其中,终端可以但不限于是各种车载计算机、嵌入式系统和平板电脑。
在一个实施例中,如图1所示,提供了一种SOC数据存储方法,包括以下步骤:
步骤102,获取SOC数据的数据长度和存储介质容量,根据数据长度和存储介质容量得到存储区域划分的区域个数。
SOC(SOC,State of Charge)数据指的是电池荷电状态,SOC估算是动力电池管理系统中最为重要的功能之一,系统中的许多其他功能都依赖于剩余电量评估的结果。EEPROM(带电可擦可编程只读存储器)是以字节为单位进行擦写的存储介质,由于具有高性价比,成为当前电池管理系统主流的存储芯片。
本发明在单片机片内或片外EEPROM中,将SOC数据在EEPROM中的存储位置划分为N个区域,每一块区域内存储电池的剩余电荷余量/或电池荷电状态和当前区域存储次数。
本发明中,剩余电荷余量,指的是从当前时刻起,电池内部通过化学反应所能释放的电荷量。常用的电池当前剩余电荷余量Qremain计算方法可通过安时积分计算,计算公式为:
其中,Q0表示电池的初始电量,I为电池包充放电电流,电流方向由用户自定义,可以充电为正,放电为负,亦可以充电为负,放电为正;η为电池包充放电效率,其取值范围为0.9~0.98;t为电池电量累积时间。
电池的SOC计算公式为:
其中,Qrated表示电池的标称(额定)的电荷容量。
可以存剩余电荷余量Qremain,也可以直接存SOC(即电池荷电状态),优先选存剩余电荷余量的目的是为了减少除法运算,降低单片机运行内存,提高SOC的精度。
步骤104,根据区域个数确定每个存储区域的存储地址信息。
存储区域连续,每个存储区域用于存储电池电量信息和当前存储区域的存储次数,存储次数的初始值为0。设电池的剩余电荷余量/或电池荷电状态所占字节数为x,当前区域存储次数所占字节数为y,设定SOC初始存储位置为Adr0,则第一个区域的存储地址为[Adr0,Adr0+x+y-1],以此类推,第N个区域的地址为[Adr0+(x+y)*(N-1),Adr0+(x+y)*N-1]。当前区域存储次数EepromCnt最大上限设为MAX_N,EepromCnt第一次上电时初始值为0,BMS上电时读取电池的剩余电荷余量/或电池荷电状态和当前区域存储次数。如果读取的电池的剩余电荷余量/或电池荷电状态在异常范围内,则根据上电时采集的电压值判断当前电池的剩余电荷余量/或电池荷电状态,如果读取的当前区域存储次数为异常数据,则设置默认值。
步骤106,当预设的SOC数据写入条件触发时,根据电池使用时间获取当前的电池电量信息,将电池电量信息在当前存储区域中进行存储,存储成功后,将当前存储区域中的存储次数加一,得到更新后的存储次数。
预设的SOC数据写入条件可以是SOC变化满足一定条件,BMS下电,或其他预设条件,将电池的剩余电荷余量/或电池荷电状态写入第一个区域的存储地址[Adr0,Adr0+(x-1)],写入成功后当前区域存储次数EepromCnt加1,然后将更新后的存储次数写入第一个区域的存储地址[Adr0+x,Adr0+x+y-1]。
步骤108,当更新后的存储次数大于或等于预设的最大次数时,在下一次SOC数据写入条件触发时,判断当前存储区域是否是最后一个存储区域。
步骤110,若当前存储区域不是最后一个存储区域,将要存储的SOC数据存储到下一存储区域,若当前存储区域是最后一个存储区域,将要存储的SOC数据存储到第一个存储区域。
当电池的剩余电荷余量/或电池荷电状态在当前区域的存储次数EepromCnt达到MAX_N时,存储区域地址加1,即将电池的剩余电荷余量/或电池荷电状态存储到第二个区域的存储地址[Adr0+x+y,Adr0+(x-1)+(x+y)],并将当前区域的存储次数EepromCnt清零,将更新后的EepromCnt值写入第二个区域的存储地址[Adr0+x+(x+y),Adr0+(x+y-1)+(x+y)]。以此类推,当第N-1个区域的存储次数达到MAX_N时,将电池的剩余电荷余量/或电池荷电状态存储到第N个区域的存储地址[Adr0+(x+y)*(N-1),Adr0+(x-1)+(x+y)*(N-1)],并将当前区域的存储次数EepromCnt清零,将更新后的EepromCnt值写入第N个区域的存储地址[Adr0+x+(x+y)*(N-1),Adr0+(x+y-1)+(x+y)*(N-1)]。当第N个区域的存储次数达到MAX_N时,又重新开始从第一个区域开始存储。
本发明方法主要针对EEPROM这种写入次数有限的存储介质,但是对于FRAM(铁电存储器)这种写入次数以100亿次计算的存储芯片同样适用。
上述SOC数据存储方法中,通过获取SOC数据的数据长度和存储介质容量,根据数据长度和存储介质容量得到存储区域划分的区域个数;根据区域个数确定每个存储区域的存储地址信息,当预设的SOC数据写入条件触发时,根据电池使用时间获取当前的电池电量信息,将电池电量信息在当前存储区域中进行存储,存储成功后,将当前存储区域中的存储次数加一,得到更新后的存储次数;当更新后的存储次数大于或等于预设的最大次数时,在下一次SOC数据写入条件触发时,将要存储的SOC数据存储到下一存储区域,若当前存储区域是最后一个存储区域,将要存储的SOC数据存储到第一个存储区域。本发明提供的SOC数据存储方法,将存储介质连续的N个区域用于SOC存储,当预设的SOC数据写入条件触发时,以滚动存储的方式记录当前电池的使用状态以及当前存储区域的存储次数,相比传统的固定位置周期性的写入,可有效减少写入的次数,对于写入次数有限的存储芯片,可有效延长存储介质的寿命,保证电池管理系统电池状态信息的有效性。
在其中一个实施例中,还包括:根据区域个数确定每个存储区域的存储地址信息;存储区域连续;每个存储区域用于存储电池电量信息和当前存储区域的存储次数;电池电量信息为电池的剩余电荷量或电池荷电状态。
在其中一个实施例中,还包括:根据电池额定容量物理量和电池的剩余电荷量数据精度,得到剩余电荷量的数值范围;根据剩余电荷量的数值范围得到电池电量信息的数据长度;获取预设的存储次数的数据长度;获取存储介质容量;根据电池电量信息的数据长度、存储次数的数据长度和存储介质容量得到存储区域划分的区域个数。
在其中一个实施例中,还包括:根据电池的荷电状态数据范围和数据精度,得到电池的荷电状态的数值范围;根据电池的荷电状态的数值范围得到电池电量信息的数据长度;获取预设的存储次数的数据长度;获取存储介质容量;根据电池电量信息的数据长度、存储次数的数据长度和存储介质容量得到存储区域划分的区域个数。
在其中一个实施例中,还包括:当预设的SOC数据写入条件触发时,根据电池使用时间获取当前的电池电量信息,将电池电量信息在当前存储区域中进行存储,存储成功后,将当前存储区域中的存储次数加一,得到更新后的存储次数;SOC数据写入条件为电池管理系统下电或SOC变化满足预设阈值。
在其中一个实施例中,还包括:当更新后的存储次数大于或等于预设的最大次数时,在下一次SOC数据写入条件触发时,将要存储的SOC数据存储到下一存储区域,若当前存储区域是最后一个存储区域,将要存储的SOC数据存储到第一个存储区域之前,将下一存储区域或第一个存储区域的存储次数清零。
在其中一个实施例中,还包括:根据区域个数确定每个存储区域的存储地址信息;存储区域连续;每个存储区域用于存储电池电量信息和当前存储区域的存储次数;其中,存储次数的存储地址由存储地址信息中的起始地址和电池电量信息的数据长度确定。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个具体实施例中,如图2所示,在单片机片外EEPROM中,将SOC在EEPROM中的存储位置划分为50个区域,每一块区域内存储电池的剩余电荷余量和当前区域存储次数。EEPROM是以字节为单位进行擦写的存储介质,电池的剩余电荷余量所占字节数为4字节,当前区域存储次数所占字节数为2字节。在这里电池的剩余电荷余量单位为A·ms,精度为0.001,假定电池额定容量物理量为100Ah,则在这里数值表示为100*3600*1000=360000000A·ms,占中4个字节。设定SOC初始存储地址为0x0005(存储地址以十六进制表示),则第一个区域的存储地址为[0x0005,0x000A](10的十六进制数为A),以此类推,第50个区域的地址为[0x012B,0x0130]。当前区域存储次数EepromCnt最大上限设为50000(由于EepromCnt占用两个字节,数据最大值不超过216-1=65535),EepromCnt第一次上电时初始值为0,BMS每次上电时读取电池的剩余电荷余量和当前区域存储次数。如果读取的电池的剩余电荷余量在异常范围内,假定电池剩余电荷余量在0Ah~100Ah范围内,超出该范围则根据上电时采集的电压值判断当前电池的剩余电荷余量(利用电池的OCV-SOC曲线实现),如果读取的当前区域存储次数为异常数据,在这里EepromCnt的范围为0~50000,超出该范围则将EepromCnt设为默认值0。当满足SOC变化大于2%,或者BMS接收到下电指令时,将电池的剩余电荷余量写入第一个区域的存储地址[0x0005,0x0008],写入成功后当前区域存储次数EepromCnt加1,然后将更新后的存储次数写入第一个区域的存储地址[0x0009,0x000A]。当电池的剩余电荷余量在当前区域的存储次数EepromCnt大于或者等于50000时,存储区域地址加1,即将电池的剩余电荷余量存储到第二个区域的存储地址[0x000B,0x000E],并将当前区域的存储次数EepromCnt清零,将更新后的EepromCnt值写入第二个区域的存储地址[0x000F,0x0010]。以此类推,当第49个区域的存储次数达到50000时,将电池的剩余电荷余量存储到第50个区域的存储地址[0x012B,0x012E],并将当前区域的存储次数EepromCnt清零,将更新后的EepromCnt值写入第50个区域的存储地址[0x012F,0x0130]。当第50个区域的存储次数达到50000时,又重新开始从第一个区域开始存储。
在本实施例中,50个区域轮询一次,可写入25万次,轮询2次(单字节地址写入次数达到10万次)可写入50万次。相比固定位置写入10万次可有效延长存储介质的写入寿命。
在另一个具体实施例中,公开了一种SOC数据存储方法,其方法与上一个实施例中的SOC数据存储方法基本相同,其不同之处在于:将SOC在EEPROM中的存储位置划分为20个区域,每一块区域内存储电池的荷电状态和当前区域存储次数。电池的荷电状态所占字节数为2字节,当前区域存储次数所占字节数为2字节(则当前区域存储次数须小于65535)。在这里SOC的分辨率为0.01,则9500表示荷电状态95%,10000表示荷电状态100%。SOC物理量最小值为0,最大值为120%,则电池的荷电状态数值范围为0~12000,占用2个字节。在本实施例中当前区域存储次数EepromCnt最大值为20000。设定SOC初始存储地址为0x0005(存储地址以十六进制表示),则第一个区域的存储地址为[0x0005,0x0008],以此类推,第20个区域的地址为[0x0051,0x0054]。当满足SOC变化大于1%,或者BMS接收到下电指令时,将电池的荷电状态写入第一个区域的存储地址[0x0005,0x0006],写入成功后当前区域存储次数EepromCnt加1,然后将更新后的存储次数写入第一个区域的存储地址[0x0007,0x0008]。当电池的剩余电荷余量在当前区域的存储次数EepromCnt大于或者等于20000时,存储区域地址加1,即将电池的剩余电荷余量存储到第二个区域的存储地址[0x0009,0x000A],并将当前区域的存储次数EepromCnt清零,将更新后的EepromCnt值写入第二个区域的存储地址[0x000B,0x000C]。以此类推,当第19个区域的存储次数达到65000时,将电池的剩余电荷余量存储到第20个区域的存储地址[0x0051,0x0052],并将当前区域的存储次数EepromCnt清零,将更新后的EepromCnt值写入第20个区域的存储地址[0x0053,0x0054]。当第20个区域的存储次数达到20000时,又重新开始从第一个区域开始存储。
在一个实施例中,如图3所示,提供了一种SOC数据存储装置,包括:区域个数确定模块302、存储地址信息确定模块304、数据存储模块306和存储区域转换模块308,其中:
区域个数确定模块302,用于获取SOC数据的数据长度和存储介质容量,根据数据长度和存储介质容量得到存储区域划分的区域个数;
存储地址信息确定模块304,用于根据区域个数确定每个存储区域的存储地址信息;存储区域连续;每个存储区域用于存储电池电量信息和当前存储区域的存储次数;存储次数的初始值为0;
数据存储模块306,用于当预设的SOC数据写入条件触发时,根据电池使用时间获取当前的电池电量信息,将电池电量信息在当前存储区域中进行存储,存储成功后,将当前存储区域中的存储次数加一,得到更新后的存储次数;
存储区域转换模块308,用于当更新后的存储次数大于或等于预设的最大次数时,在下一次SOC数据写入条件触发时,判断所述当前存储区域是否是最后一个存储区域;若所述当前存储区域不是最后一个存储区域,将要存储的SOC数据存储到下一存储区域,若所述当前存储区域是最后一个存储区域,将所述要存储的SOC数据存储到第一个存储区域。
存储地址信息确定模块304还用于根据区域个数确定每个存储区域的存储地址信息;存储区域连续;每个存储区域用于存储电池电量信息和当前存储区域的存储次数;电池电量信息为电池的剩余电荷量或电池荷电状态。
区域个数确定模块302还用于根据电池额定容量物理量和电池的剩余电荷量数据精度,得到剩余电荷量的数值范围;根据剩余电荷量的数值范围得到电池电量信息的数据长度;获取预设的存储次数的数据长度;获取存储介质容量;根据电池电量信息的数据长度、存储次数的数据长度和存储介质容量得到存储区域划分的区域个数。
区域个数确定模块302还用于根据电池的荷电状态数据范围和数据精度,得到电池的荷电状态的数值范围;根据电池的荷电状态的数值范围得到电池电量信息的数据长度;获取预设的存储次数的数据长度;获取存储介质容量;根据电池电量信息的数据长度、存储次数的数据长度和存储介质容量得到存储区域划分的区域个数。
数据存储模块306还用于当预设的SOC数据写入条件触发时,根据电池使用时间获取当前的电池电量信息,将电池电量信息在当前存储区域中进行存储,存储成功后,将当前存储区域中的存储次数加一,得到更新后的存储次数;SOC数据写入条件为电池管理系统下电或SOC变化满足预设阈值。
存储区域转换模块308还用于当更新后的存储次数大于或等于预设的最大次数时,在下一次SOC数据写入条件触发时,将要存储的SOC数据存储到下一存储区域,若当前存储区域是最后一个存储区域,将要存储的SOC数据存储到第一个存储区域之前,将下一存储区域或第一个存储区域的存储次数清零。
存储地址信息确定模块304还用于根据区域个数确定每个存储区域的存储地址信息;存储区域连续;每个存储区域用于存储电池电量信息和当前存储区域的存储次数;其中,存储次数的存储地址由存储地址信息中的起始地址和电池电量信息的数据长度确定。
关于SOC数据存储装置的具体限定可以参见上文中对于SOC数据存储方法的限定,在此不再赘述。上述SOC数据存储装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种SOC数据存储方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种SOC数据存储方法,其特征在于,所述方法包括:
获取SOC数据的数据长度和存储介质容量,根据所述数据长度和所述存储介质容量得到存储区域划分的区域个数;
根据所述区域个数确定每个存储区域的存储地址信息;每个所述存储区域用于存储电池电量信息和当前存储区域的存储次数;
当预设的SOC数据写入条件触发时,根据电池使用时间获取当前的电池电量信息,将所述电池电量信息在当前存储区域中进行存储,存储成功后,将所述当前存储区域中的存储次数加一,得到更新后的存储次数;
当所述更新后的存储次数大于或等于预设的最大次数时,在下一次SOC数据写入条件触发时,判断所述当前存储区域是否是最后一个存储区域;
若所述当前存储区域不是最后一个存储区域,将要存储的SOC数据存储到下一存储区域,若所述当前存储区域是最后一个存储区域,将所述要存储的SOC数据存储到第一个存储区域。
2.根据权利要求1所述的方法,其特征在于,根据所述区域个数确定每个存储区域的存储地址信息;每个所述存储区域用于存储电池电量信息和当前存储区域的存储次数包括:
根据所述区域个数确定每个存储区域的存储地址信息;所述存储区域连续;每个所述存储区域用于存储电池电量信息和当前存储区域的存储次数;所述电池电量信息为电池的剩余电荷量或电池荷电状态。
3.根据权利要求1所述的方法,其特征在于,获取SOC数据的数据长度和存储介质容量,根据所述数据长度和所述存储介质容量得到存储区域划分的区域个数包括:
根据电池额定容量物理量和电池的剩余电荷量数据精度,得到剩余电荷量的数值范围;
根据所述剩余电荷量的数值范围得到所述电池电量信息的数据长度;
获取预设的所述存储次数的数据长度;
获取存储介质容量;
根据所述电池电量信息的数据长度、所述存储次数的数据长度和所述存储介质容量得到存储区域划分的区域个数。
4.根据权利要求1所述的方法,其特征在于,获取SOC数据的数据长度和存储介质容量,根据所述数据长度和所述存储介质容量得到存储区域划分的区域个数包括:
根据电池的荷电状态数据范围和数据精度,得到电池的荷电状态的数值范围;
根据所述电池的荷电状态的数值范围得到所述电池电量信息的数据长度;
获取预设的所述存储次数的数据长度;
获取存储介质容量;
根据所述电池电量信息的数据长度、所述存储次数的数据长度和所述存储介质容量得到存储区域划分的区域个数。
5.根据权利要求3或4所述的方法,其特征在于,当预设的SOC数据写入条件触发时,根据电池使用时间获取当前的电池电量信息,将所述电池电量信息在当前存储区域中进行存储,存储成功后,将所述当前存储区域中的存储次数加一,得到更新后的存储次数包括:
当预设的SOC数据写入条件触发时,根据电池使用时间获取当前的电池电量信息,将所述电池电量信息在当前存储区域中进行存储,存储成功后,将所述当前存储区域中的存储次数加一,得到更新后的存储次数;所述SOC数据写入条件为电池管理系统下电或SOC变化满足预设阈值。
6.根据权利要求5所述的方法,其特征在于,当所述更新后的存储次数大于或等于预设的最大次数时,在下一次SOC数据写入条件触发时,将要存储的SOC数据存储到下一存储区域,若所述当前存储区域是最后一个存储区域,将所述要存储的SOC数据存储到第一个存储区域之前,还包括:
将所述下一存储区域或所述第一个存储区域的所述存储次数清零。
7.根据权利要求6所述的方法,其特征在于,根据所述区域个数确定每个存储区域的存储地址信息;每个所述存储区域用于存储电池电量信息和当前存储区域的存储次数包括:
根据所述区域个数确定每个存储区域的存储地址信息;每个所述存储区域用于存储电池电量信息和当前存储区域的存储次数;其中,所述存储次数的存储地址由所述存储地址信息中的起始地址和所述电池电量信息的数据长度确定。
8.一种SOC数据存储装置,其特征在于,所述装置包括:
区域个数确定模块,用于获取SOC数据的数据长度和存储介质容量,根据所述数据长度和所述存储介质容量得到存储区域划分的区域个数;
存储地址信息确定模块,用于根据所述区域个数确定每个存储区域的存储地址信息;每个所述存储区域用于存储电池电量信息和当前存储区域的存储次数;
数据存储模块,用于当预设的SOC数据写入条件触发时,根据电池使用时间获取当前的电池电量信息,将所述电池电量信息在当前存储区域中进行存储,存储成功后,将所述当前存储区域中的存储次数加一,得到更新后的存储次数;
存储区域转换模块,用于当所述更新后的存储次数大于或等于预设的最大次数时,在下一次SOC数据写入条件触发时,判断所述当前存储区域是否是最后一个存储区域;若所述当前存储区域不是最后一个存储区域,将要存储的SOC数据存储到下一存储区域,若所述当前存储区域是最后一个存储区域,将所述要存储的SOC数据存储到第一个存储区域。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110570148.9A CN113342268A (zh) | 2021-05-25 | 2021-05-25 | 一种soc数据存储方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110570148.9A CN113342268A (zh) | 2021-05-25 | 2021-05-25 | 一种soc数据存储方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113342268A true CN113342268A (zh) | 2021-09-03 |
Family
ID=77471229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110570148.9A Pending CN113342268A (zh) | 2021-05-25 | 2021-05-25 | 一种soc数据存储方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113342268A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100185804A1 (en) * | 2009-01-16 | 2010-07-22 | Kabushiki Kaisha Toshiba | Information processing device that accesses memory, processor and memory management method |
CN104598165A (zh) * | 2014-12-31 | 2015-05-06 | 深圳市共进电子股份有限公司 | 在嵌入式设备上对存储器提高耐用性的方法及装置 |
CN110515538A (zh) * | 2019-07-18 | 2019-11-29 | 安徽力高新能源技术有限公司 | 一种动力锂电池soc存储方法 |
-
2021
- 2021-05-25 CN CN202110570148.9A patent/CN113342268A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100185804A1 (en) * | 2009-01-16 | 2010-07-22 | Kabushiki Kaisha Toshiba | Information processing device that accesses memory, processor and memory management method |
CN104598165A (zh) * | 2014-12-31 | 2015-05-06 | 深圳市共进电子股份有限公司 | 在嵌入式设备上对存储器提高耐用性的方法及装置 |
CN110515538A (zh) * | 2019-07-18 | 2019-11-29 | 安徽力高新能源技术有限公司 | 一种动力锂电池soc存储方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1818829B1 (en) | Apparatus for collecting garbage block of nonvolatile memory according to power state and method of collecting the same | |
CN100428203C (zh) | 基于非易失性存储的便携式设备的实现掉电保护的方法 | |
KR101699104B1 (ko) | 비-휘발성 메모리를 구비한 시스템에 대한 전력 예산의 동적 할당 | |
CN104756088A (zh) | 用于非易失性存储器的灵活磨损管理 | |
CN109471594B (zh) | 一种mlc闪存读写方法 | |
US20140359198A1 (en) | Notification of storage device performance to host | |
EP2816482A1 (en) | Information processing apparatus, control circuit, and control method | |
CN115951839A (zh) | 分区命名空间固态硬盘的数据写入方法、装置及电子设备 | |
Lee et al. | A hybrid flash file system based on NOR and NAND flash memories for embedded devices | |
WO2023029753A1 (zh) | 设备供电方法、装置、终端设备及存储介质 | |
JP2014220021A (ja) | 情報処理装置、制御回路、制御プログラム、および制御方法 | |
TWI697009B (zh) | 寫入控制方法以及資料儲存裝置及其控制器 | |
US8909850B2 (en) | Memory life extension method and apparatus | |
CN102236530A (zh) | 实现手机缓冲存储器机制的系统及手机操作系统加载方法 | |
CN113342268A (zh) | 一种soc数据存储方法、装置、计算机设备和存储介质 | |
CN107817943A (zh) | 数据传输方法、存储器存储装置及存储器控制电路单元 | |
KR20200080164A (ko) | 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 시스템 및 방법 | |
CN112463051B (zh) | 一种电池存储系统的管理方法及数据存储方法 | |
CN116360695A (zh) | 一种基于混合储能电源的数据存储方法及装置 | |
CN111078136A (zh) | 一种防止BMS动态数据存储导致flash寿命降低的方法 | |
CN110334034A (zh) | 映射表动态加载的方法、装置、计算机设备及存储介质 | |
CN114327246B (zh) | 存储介质内数据存储方法、存储介质及计算机设备 | |
CN115782688A (zh) | 增程车辆平均能耗计算方法、装置、设备和存储介质 | |
CN115617504A (zh) | 一种内存管理系统、泄露检测方法及存储介质 | |
CN117251292B (zh) | 内存管理方法、系统、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210903 |
|
RJ01 | Rejection of invention patent application after publication |