本申请涉及存储,特别是涉及soc参数掉电非易失的存储方法、装置和计算机设备。
背景技术:
1、在汽车电池管理系统(battry management system,bms)中,汽车电池的荷电状态(state of charge,soc)参数需要随电池充放电实时更新存储,并且保证掉电非易失。目前使用的soc参数掉电非易失的存储方案是直接使用mcu中的flash进行读写操作,并使用额外crc校验判断被写入数据是否正确。由于soc参数更新存储频繁,使得crc校验判断运算量大,导致存储运行缓慢,容易造成阻塞。
2、针对相关技术中存在存储运行缓慢,容易造成阻塞,目前还没有提出有效的解决方案。
技术实现思路
1、在本实施例中提供了一种soc参数掉电非易失的存储方法、装置和计算机设备,以解决相关技术中存在存储运行缓慢,容易造成阻塞的问题。
2、第一个方面,在本实施例中提供了一种soc参数掉电非易失的存储方法,适用于soc参数掉电非易失的存储系统;所述系统包括随机存储器和flash;所述随机存储器中设置有缓存表;所述flash中设置有至少两个存储块;所述方法包括:
3、构建至少两个存储块的块头数据结构,基于所述块头数据结构,建立状态转换机制;并基于所述块头数据结构设置其中一个所述存储块处于激活状态,另一个所述存储块处于备用状态;
4、构建数据头数据结构,并基于所述数据头数据结构建立数据写入机制;
5、在上电初始化后,从所述缓存表中获取处于激活状态的所述存储块的存储地址;
6、基于所述状态转换机制和数据写入机制,将待写入数据写入到所述存储地址中。
7、在其中的一些实施例中,所述存储块的块头数据结构包括:擦写次数、空校验标志、当前使用标志以及换页中标志。
8、在其中的一些实施例中,所述基于所述块头数据结构设置其中一个所述存储块处于激活状态,另一个所述存储块处于备用状态,包括:
9、在所述块头数据结构中的当前使用标志为有效状态设置对应的所述存储块处于激活状态;
10、在所述块头数据结构中的当前使用标志为无效状态设置对应的所述存储块处于激活状态。
11、在其中的一些实施例中,所述数据头数据结构包括id、len、idlenvalid、datavalid以及data。
12、在其中的一些实施例中,所述方法还包括:
13、在上电初始化时,根据所述块头数据结构和所述数据头数据结构中的标志位执行上电恢复数据操作。
14、在其中的一些实施例中,所述方法还包括:
15、在空闲检查时,根据所述块头数据结构和所述数据头数据结构中的标志位执行周期维护操作。
16、在其中的一些实施例中,所述方法还包括:
17、在从所述缓存表中获取处于激活状态的所述存储块的存储地址之前,以低地址往高地址索引,查找处于激活状态的所述存储块的存储地址,将所述存储地址存储到所述缓存表中。
18、第二个方面,在本实施例中提供了一种soc参数掉电非易失的存储装置,适用于soc参数掉电非易失的存储系统;所述系统包括随机存储器和flash;所述随机存储器中设置有缓存表;所述flash中设置有至少两个存储块;所述装置包括:第一处理模块、第二处理模块、获取模块以及写入模块;
19、所述第一处理模块,用于构建至少两个存储块的块头数据结构,基于所述块头数据结构,建立状态转换机制;并基于所述块头数据结构设置其中一个所述存储块处于激活状态,另一个所述存储块处于备用状态;
20、所述第二处理模块,用于构建数据头数据结构,并基于所述数据头数据结构建立数据写入机制;
21、所述获取模块,用于在上电初始化后,从所述缓存表中获取处于激活状态的所述存储块的存储地址;
22、所述写入模块,用于基于所述状态转换机制和数据写入机制,将待写入数据写入到所述存储地址中。
23、第三个方面,在本实施例中提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的soc参数掉电非易失的存储方法。
24、第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的soc参数掉电非易失的存储方法。
25、与相关技术相比,在本实施例中提供的soc参数掉电非易失的存储方法、装置和计算机设备,通过构建至少两个存储块的块头数据结构,基于块头数据结构,建立状态转换机制;并基于块头数据结构设置其中一个存储块处于激活状态,另一个存储块处于备用状态;构建数据头数据结构,并基于数据头数据结构建立数据写入机制;在上电初始化后,从缓存表中获取处于激活状态的存储块的存储地址;基于状态转换机制和数据写入机制,将待写入数据写入到存储地址中,解决了相关技术中存在存储运行缓慢,容易造成阻塞的问题,基于状态转换机制和数据写入机制来严格控制写入顺序,而无需额外crc校验判断,从而提高存储的运行效率,降低阻塞的发生。
26、本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
1.一种soc参数掉电非易失的存储方法,其特征在于,适用于soc参数掉电非易失的存储系统;所述系统包括随机存储器和flash;所述随机存储器中设置有缓存表;所述flash中设置有至少两个存储块;所述方法包括:
2.根据权利要求1所述的soc参数掉电非易失的存储方法,其特征在于,所述存储块的块头数据结构包括:擦写次数、空校验标志、当前使用标志以及换页中标志。
3.根据权利要求2所述的soc参数掉电非易失的存储方法,其特征在于,所述基于所述块头数据结构设置其中一个所述存储块处于激活状态,另一个所述存储块处于备用状态,包括:
4.根据权利要求1所述的soc参数掉电非易失的存储方法,其特征在于,所述数据头数据结构包括id、len、idlenvalid、datavalid以及data。
5.根据权利要求1至4中任一项所述的soc参数掉电非易失的存储方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的soc参数掉电非易失的存储方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的soc参数掉电非易失的存储方法,其特征在于,所述方法还包括:
8.一种soc参数掉电非易失的存储装置,其特征在于,适用于soc参数掉电非易失的存储系统;所述系统包括随机存储器和flash;所述随机存储器中设置有缓存表;所述flash中设置有至少两个存储块;所述装置包括:第一处理模块、第二处理模块、获取模块以及写入模块;
9.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至7中任一项所述的soc参数掉电非易失的存储方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的soc参数掉电非易失的存储方法的步骤。