基于FLASH芯片的电池管理系统数据存储管理方法与流程

文档序号:31708540发布日期:2022-10-01 13:20阅读:365来源:国知局
基于FLASH芯片的电池管理系统数据存储管理方法与流程
基于flash芯片的电池管理系统数据存储管理方法
技术领域
1.本发明涉及一种基于flash芯片的电池管理系统数据存储管理方法,主要应用于储能电池管理系统。


背景技术:

2.电池管理系统(battery management system,简称为bms)是管理电池安全稳定合理运行的软硬件系统,如电动汽车、储能电站等应用环境中管理大量电池,其主要功能包括:电池物理参数实时监测;电池状态估计;在线诊断与预警;充、放电管理与预充控制;均衡管理和热管理等。
3.bms在监测电池组数据过程中,其一般要求需要保存一定数据量,可用来存储运行数据以及故障信息等,一般采用flash或sd卡。flash芯片作为bms的“黑匣子”存储电池组的运行数据扮演着至关重要的作用。相对于sd卡等可移动的存储介质,首先flash芯片直接焊接在bms主板更稳定可靠,且不易遗失;其次擦除次数也比可移动的存储介质高。是实现bms数据存储低成本、高可靠的选择。
4.在bms的mcu有限的处理速度和资源的情况下通过使用flash芯片可以实现更高效的数据存储。bms运行过程中将电池组的各种状态数据存储到flash芯片内,然后通过bms的通讯接口和约定的协议,使用上位机将运行数据导出分析。
5.现有电池管理系统数据存储管理方法的主要缺陷在于:
6.1、以文件系统的方式进行数据存储,由于单片机的主频有限,文件系统中大量的搜索操作降低单片机的执行效率,容易使单片机没有更多的时间处理其它任务;
7.2、需要在flash上开辟单独的扇区作为数据索引,修改索引数据需先读出数据,再擦除整页数据,最后修改后重新写入,此操作占用单片机大量的ram。


技术实现要素:

8.本发明的目的在于针对上述电池管理系统数据存储管理方法的缺陷,提供一种不需要在flash芯片上建立数据索引,从而节省存储空间,以及提高mcu执行效率的电池管理系统数据存储管理方法。
9.为了达到目的,本发明提供的技术方案为:
10.一种基于flash芯片的电池管理系统数据存储管理方法,所述电池管理系统包括mcu、与mcu通信的flash存储芯片,flash芯片内以多个字节组成一页,以多页组成一个块,其包括如下步骤:
11.(1)将flash芯片上一个以上的块空间定义为一个簇,作为对flash芯片管理的最小单元;
12.(2)数据写入:mcu将电池运行数据划分为若干类型,包括电池簇数据、单体电压、单体温度、单体soc、单体soh,每类数据以数据包为单位写入到flash芯片中,数据包由时间标识、数据内容和校验码组成;当一簇flash空间的剩余空间小于一个数据包的字节数时,
则调整flash的地址指向下一新簇,先将新簇数据进行擦除,再将数据包写入,在flash全空间范围内实现循环存储;
13.(3)数据读取:
14.3.1)上位机选取需要读取的数据类型,再根据选取的每一类数据向mcu请求读取数据索引,mcu将每簇的第一包数据的时间标识和该簇的地址结合形成一个簇记录,依次上传给上位机得到一个数据索引;
15.3.2)用户根据数据索引选取一个需要读取的簇记录;
16.3.3)上位机向mcu发出选取簇记录数据的上传指令,mcu接收到该指令后,将对应选取簇记录的详细数据上传给上位机;
17.3.4)上位机根据步骤3.1)选择的数据类型以及步骤3.3)接收到的详细数据,再根据最小时间标识进行数据拼接,对应时间标识没有的数据采用补充机制进行补偿,进而形成完整的数据集。
18.优选地,步骤3.1)具体为:mcu将flash当作一个栈空间,以当前的flash地址为栈顶,以退栈的方式检索每簇首地址的时间标识及对应的簇地址作为簇记录上传到上位机;如果当前簇没有数据或者退栈的地址与当前簇的地址相距一个簇的空间,则退栈结束,索引生成完毕。
19.优选地,步骤3.3)具体为:上位机将簇记录对应的flash地址传给mcu,mcu以该地址为起点将该簇的数据上传给上位机。
20.优选地,步骤(2)中,mcu将电池运行数据写入到flash芯片时采用阈值触发,即当电池运行数据变化达到某一阈值时,mcu将该电池运行数据写入到flash芯片中。
21.优选地,步骤(2)中,mcu将电池运行数据写入到flash芯片时采用时间触发,即每隔一定时间,mcu定时将电池运行数据写入到flash芯片中。
22.优选地,步骤(2)中,mcu将电池运行数据写入到flash芯片时采用阈值触发为主、时间触发为辅,即当电池运行数据变化达到某一阈值时,mcu将该电池运行数据写入到flash芯片中;但当电池运行大于某一时间间隔,电池运行数据变化仍未达到阈值触发条件导致没有数据点被存储的,此时mcu将电池运行数据写入到flash芯片中。
23.优选地,步骤3.4)中的补偿机制,对应时间标识没有的数据采用前一时间标识的数据进行补齐。
24.优选地,步骤3.4)中的补偿机制,对应时间标识没有的数据采用前一时间标识数据与后一时间标识的数据进行线性插值的方式补齐数据。
25.本发明提供的技术方案,与现有技术相比,具有如下有益效果:
26.1、在整个存储过程中,mcu存储数据只需往flash内写入数据,如果满足换簇条件则擦除新簇,然后将flash的地址调整到新簇即可,没有其它冗余操作,提高了mcu的执行效率;
27.2、在读取过程中,根据上位机指定的簇地址,按簇将数据上传给上位机,数据解析任务由上位机进行,避免了mcu的资源占用;
28.3、在flash芯片上不需要建立数据索引,从而节省了存储空间。
附图说明
29.图1是本发明电池管理系统的电路原理图;
30.图2是flash芯片的物理结构图;
31.图3是flash芯片上簇结构的示意图;
32.图4是本发明数据包的格式示意图;
33.图5是本发明数据包的循环存储示意图;
34.图6是实施例数据包的具体格式图。
35.图7是实施例上位机数据索引的格式示意图。
具体实施方式
36.为进一步了解本发明的内容,结合实施例对本发明作详细描述,以下实施例用于说明本发明,但不用来限制本发明的范围。
37.本实施例涉及一种基于flash芯片的电池管理系统数据存储管理方法,如图1-2所示,所述电池管理系统包括mcu、与mcu通信的flash存储芯片,flash芯片内以多个字节组成一页,以多页组成一个块,其包括如下步骤:
38.(1)参照图3,将flash芯片上一个以上(n个)的块空间定义为一个簇,作为对flash芯片管理的最小单元;n≥1;
39.(2)数据写入:mcu将电池运行数据划分为若干类型,包括电池簇数据、单体电压、单体温度、单体soc、单体soh,每类数据以数据包为单位写入到flash芯片中,参照图4,数据包由时间标识、数据内容和校验码组成;当一簇flash空间的剩余空间小于一个数据包的字节数时,则调整flash的地址指向下一新簇,先将新簇数据进行擦除,再将数据包写入,参照图5,在flash全空间范围内实现循环存储;
40.作为一个具体实施例,所述的数据内容包括组端电压、组端电流、单体电压、单体电流等,从而如图6,数据包的格式为:时间标识+组端电压、组端电流、单体电压、单体温度、单体xx等数据+校验位。
41.(3)数据读取:
42.3.1)上位机选取需要读取的数据类型,再根据选取的每一类数据向mcu请求读取数据索引,mcu将每簇的第一包数据的时间标识和该簇的地址结合形成一个簇记录,依次上传给上位机得到一个数据索引;数据索引的格式如图7所示,不同的flash存储芯片的簇地址格式是不同的,比如w25q128的簇地址通常是从0x000000到0xffffff。
43.3.2)用户根据数据索引选取一个需要读取的簇记录;
44.3.3)上位机向mcu发出选取簇记录数据的上传指令,mcu接收到该指令后,将对应选取簇记录的详细数据上传给上位机;
45.3.4)上位机根据步骤3.1)选择的数据类型以及步骤3.3)接收到的详细数据,再根据最小时间标识进行数据拼接,对应时间标识没有的数据采用补充机制进行补偿,进而形成完整的数据集。
46.步骤3.1具体为:mcu将flash当作一个栈空间,以当前的flash地址为栈顶,以退栈的方式检索每簇首地址的时间标识及对应的簇地址作为簇记录上传到上位机;如果当前簇没有数据或者退栈的地址与当前簇的地址相距一个簇的空间,则退栈结束,索引生成完毕。
47.步骤3.3具体为:上位机将簇记录对应的flash地址传给mcu,mcu以该地址为起点将该簇的详细数据上传给上位机。
48.步骤(2)中,mcu将电池运行数据写入到flash芯片时采用阈值触发为主、时间触发为辅,即当电池运行数据变化达到某一阈值时,mcu将该电池运行数据写入到flash芯片中;但当电池运行大于某一时间间隔,电池运行数据变化仍未达到阈值触发条件导致没有数据点被存储的,此时mcu将电池运行数据写入到flash芯片中。
49.步骤3.4)中的补充机制采用线性差值法,即对应时间标识没有的数据采用前一时间标识数据与后一时间标识的数据进行线性插值的方式补齐数据。举例如下:有以下时间标识分别为时间1、时间2、时间3的连续数据,分别如表1、表2、表3所示。其中,如当时间2中的单体电压2为无数据的情况下,时间2单体电压2数据为时间1单体电压2数据与时间3单体电压2数据对应与时间2的线性差值数据。
50.表1时间1的数据集
[0051][0052]
表2时间2的数据集
[0053][0054]
表3时间3的数据集
[0055][0056]
本发明所述的flash芯片按照内部存储结构不同,分为两种:nor flash和nand flash。nor flash使用方便,易于连接,可以在芯片上直接运行代码,稳定性出色,传输速率高,在小容量时有很高的性价比,这使其很适合应于嵌入式系统中作为flash rom。相对于nor flash,nand flash强调更高的性能,更低的成本,更小的体积,更长的使用寿命。这使nand flash很擅于存储纯资料或数据等,在嵌入式系统中用来支持文件系统。
[0057]
nand flash在工艺制程方面分nand flash有两种类型:mlc和slc。mlc和slc属于
两种不同类型的nand flash存储器。
[0058]
nor flash在通信方式上nor flash分为两种类型:cfi flash和spiflash。
[0059]
作为一个具体实施例,flash存储芯片选用为w25q128,存储容量为16m字节。属于一种spi flash。其芯片物理结构中总共有65536页,每页256字节;以256页组成一块,图2中n=256,共256块,即图3中n=256。
[0060]
flash存储芯片具有两种存储模式:
[0061]
模式1,通过计算bms需存储的一个数据包大小在1000个字节,采用最小存储单位为字节的方式,即1000字节需要4页存储,第4页剩余24字节,接下来的数据包继续写入该第4页剩余字节,一块可以存储256*256/1000=65个数据包。
[0062]
模式2,通过计算bms需存储的一个数据包大小在1000个字节,采用最小存储单位为页的方式,即1000字节需要4页存储,第4页剩余字节不再存储,也就是说一个数据包写入到4个页,一块可以存储256/4=64个数据包。
[0063]
以上示意性的对本发明及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明的实施方案,实际的结构并不局限于此。所以本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1