CN115793995B - 一种面向传统MCU中仅有Pflash的数据存储方法 - Google Patents
一种面向传统MCU中仅有Pflash的数据存储方法 Download PDFInfo
- Publication number
- CN115793995B CN115793995B CN202310093945.1A CN202310093945A CN115793995B CN 115793995 B CN115793995 B CN 115793995B CN 202310093945 A CN202310093945 A CN 202310093945A CN 115793995 B CN115793995 B CN 115793995B
- Authority
- CN
- China
- Prior art keywords
- pflash
- eeprom
- flag bit
- block
- 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.)
- Active
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种面向传统MCU中仅有Pflash的数据存储方法,涉及BMS嵌入式汽车电子技术领域,在整车运行过程中,若检测到Pflash模拟的Eeprom的存储块满,则将运行数据向片外备份Eeprom进行备份存储,然后在低压下电状态对Pflash进行换块擦除操作;在整车上电初始化时,若在上一次整车运行过程中需要进行换块擦除操作且同时遇到了异常断电,则先对Pflash进行换块擦除操作,再将片外备份Eeprom中的存储数据存储至Pflash模拟的Eeprom中。本发明既解决了使用Pflash模拟的Eeprom进行数据存储带来的程序运行异常问题,也保证了BMS的重要运行数据存储的安全完整性。
Description
技术领域
本发明涉及BMS嵌入式汽车电子技术领域,尤其是一种面向传统MCU中仅有Pflash的数据存储方法。
背景技术
BMS作为新能源汽车动力电池管理系统,其不管是在整车的性能、安全使用角度等都离不开安全的数据存储技术,进口的车规级MCU(微控制单元)除配置有用于运行程序的片内Pflash(program flash),还配置有用于存储数据的片内Dflash(Data flash),常规用法是使用Dflash模拟Eeprom(电可擦写可编程只读存储器)功能来存储BMS运行时重要的数据,如SOC等;根据模拟Eeprom的原理,模拟Eeprom时最少需要两个块或以上才能实现,当第一个块存储满后,需要进行换块存储,当Dflash模拟的Eeprom的第一个块存储满需要进行换块擦除操作时,因为Dflash和Pflash是两个独立的区域,物理特性也不相同,擦除Dflash过程中对用于程序运行的Pflash区域没有任何的影响,所以在整个数据存储过程中,程序运行顺畅流利,且运行时的数据也能安全完整的存储。
但是,目前大部分国产车规级MCU仅有配置有片内Pflash,都没有配置片内Dflash,那么只能使用Pflash模拟Eeprom功能来存储BMS运行时重要的数据,当Pflash模拟的Eeprom的第一个块存储满时,将面对以下两种情况:一、对Pflash进行换块擦除操作,那么根据MCU的Pflash特性会有几十甚至几百毫秒的物理操作时间,在此期间整个MCU的程序都是不运行的状态,对于BMS来说,这肯定是不被允许的,因为BMS的发送或接收报文时间最小的周期为10ms,这会导致BMS的报文丢失,严重的时候有几十帧的报文丢失,会导致整个BMS的运行异常,从而导致这期间整车处于一个非预期的失控状态;二、不对Pflash进行换块擦除操作,那么由于Pflash模拟的Eeprom储存区域满,后面的运行数据将不能存储至Pflash模拟的Eeprom中,只能在RAM中缓存,此时如果遇到异常断电,会导致RAM中缓存的运行数据丢失,以SOC数据为例,如果SOC数据不能安全完整的存储,整车再启动时SOC会出现跳变,严重时候会导致整车无法启动运行或电池过放风险。
发明内容
为了克服上述现有技术中的缺陷,本发明提供一种面向传统MCU中仅有Pflash的数据存储方法,在使用国产MCU开发的BMS产品中,解决了使用Pflash模拟的Eeprom进行数据存储带来的程序运行异常问题,也保证了BMS的重要运行数据存储的安全完整性,使得即使在使用国产MCU方案下整车依然具备良好性能和安全性。
为实现上述目的,本发明采用以下技术方案,包括:
一种面向传统MCU中仅有Pflash的数据存储方法,包括以下步骤:
S1,在整车运行过程中,若检测到Pflash模拟的Eeprom的存储块满,即检测到Pflash需要进行换块擦除操作,则停止向Pflash模拟的Eeprom存储数据,记录状态标志位BlockFullFlag=0x55,并将此状态标志位BlockFullFlag=0x55存储至片外备份Eeprom中;
S2,运行数据在RAM缓存中存储,并将RAM缓存中的存储数据向片外备份Eeprom进行备份存储;
S3,判断整车运行状态是否为低压下电状态,若是,则在低压下电状态对Pflash进行换块擦除操作,等待换块擦除操作完成后,将RAM缓存中的存储数据存储至Pflash模拟的Eeprom中,清除状态标志位,即BlockFullFlag=0x00,同时记录正常下电完成标志位NormalPowerDownFlag=0xAA,并将此正常下电完成标志位NormalPowerDownFlag=0xAA存储至片外备份Eeprom中;
S4,在下一次整车上电初始化时,从片外备份Eeprom中读取状态标志位和正常下电完成标志位,
若状态标志位BlockFullFlag=0x55且正常下电完成标志位NormalPowerDownFlag不为0xAA,即表示在上一次整车运行过程中检测到了Pflash需要进行换块擦除操作且同时遇到了异常断电,则先对Pflash进行换块擦除操作,等待换块擦除操作完成后,再将片外备份Eeprom中的存储数据存储至Pflash模拟的Eeprom中,然后清除状态标志位和正常下电完成标志位,即BlockFullFlag=0x00,NormalPowerDownFlag=0x00;
否则,直接清除状态标志位和正常下电完成标志位,即BlockFullFlag=0x00,NormalPowerDownFlag=0x00。
优选的,步骤S2中,RAM缓存中的存储数据向片外备份Eeprom进行备份存储时,先对存储数据进行CRC校验,再将存储数据+校验码一并存储至片外备份Eeprom中。
本发明的优点在于:
(1)考虑到使用国产MCU开发的BMS产品,在使用Pflash进行模拟Eeprom功能时,整车运行过程中遇到换块擦除操作时带来的严重后果,本发明提供一种对应的解决方案,可以保证整车运行过程无任何异常,且能保证即使在此期间遇到异常断电,BMS的重要运行时数据均不会丢失,既解决了使用Pflash模拟的Eeprom进行数据存储带来的程序运行异常问题,也保证了BMS的重要敏感数据存储的安全完整性,使得在使用国产MCU方案下整车依然具备良好的性能和安全性。
(2)本发明在在整车运行过程中,即便检测到需要进行换块擦除操作时,也暂时不对Pflash进行换块擦除操作,而是将RAM缓存中的存储数据备份存储到片外备份Eeprom,以保证整车运行过程无任何异常。等到低压下电状态时再对Pflash进行换块擦除操作,因为在低压下电状态下整车已经停发停收所有的报文,处于准备休眠中,所以此时换块擦除期间的几十或几百毫秒的MCU不工作不会对整车有任何的功能和安全影响。
(3)本发明将RAM缓存中的存储数据备份存储到片外备份Eeprom,以避免遇到异常断电导致RAM缓存中的存储数据丢失的问题,在整车上电初始化时,读取状态标志位和正常下电完成标志位,若上一次整车运行过程中检测到了Pflash需要进行换块擦除操作且同时遇到了异常断电,则先对Pflash进行换块擦除操作,再将片外备份Eeprom中的存储数据存储至Pflash模拟的Eeprom中。因为在上电初始化阶段整车还没有完全启动运行,不需要收发报文,所以此时换块擦除期间的几十或几百毫秒的MCU不工作不会对整车有任何的功能和安全影响。
(4)本发明在安全状态下,如上电初始化状态和低压下电状态,对Pflash进行换块擦除操作,不会对MCU的程序运行产生影响,不会对整车有任何的功能和安全影响。
(5)本发明还提供了上一次整车运行过程中是否异常断电的诊断方式,满足正常低压下电状态时记录正常下电完成标志位NormalPowerDownFlag=0xAA,并将此标志位NormalPowerDownFlag=0xAA存储,再次上电时读取该标志位,如果NormalPowerDownFlag是0xAA表示正常下电。反之为异常下电。
(6)本发明通过片外备份Eeprom实现安全冗余的备份数据读和写,片外备份Eeprom中的存储数据不会在掉电后丢失,在BMS全生命周期内,即使进行换块擦除操作的同时遇到异常断电极端工况,亦能保证运行时数据的存储安全。
附图说明
图1为本发明的一种面向传统MCU中仅有Pflash的数据存储方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由图1所示,一种面向传统MCU中仅有Pflash的数据存储方法,具体如下所示:
S1,在整车运行过程中,若检测到Pflash模拟的Eeprom的存储块满,即检测到Pflash需要进行换块擦除操作时,则停止向Pflash模拟的Eeprom存储数据,记录状态标志位BlockFullFlag=0x55,并将此状态标志位BlockFullFlag=0x55存储在小容量的片外备份Eeprom中。
S2,从记录状态标志位BlockFullFlag=0x55开始,运行数据在RAM缓存中存储,并将RAM缓存中的存储数据向片外备份Eeprom进行备份存储。
其中,RAM缓存中的存储数据向片外备份Eeprom进行备份存储时,先对存储数据进行完整性的CRC校验,再将存储数据+校验码一并存储至片外备份Eeprom中。
S3,判断整车运行状态是否为低压下电状态,若是,则在低压下电状态对Pflash进行换块擦除操作,等待换块擦除操作完成后,将RAM缓存中的存储数据全部存储到Pflash模拟的Eeprom中的新存储区域,清除状态标志位,即BlockFullFlag=0x00,同时记录正常下电完成标志位NormalPowerDownFlag=0xAA,并将此正常下电完成标志位NormalPowerDownFlag=0xAA存储至片外备份Eeprom中。
因为在低压下电状态下整车已经停发停收所有的报文,处于准备休眠中,所以此时换块擦除期间的几十或几百毫秒的MCU不工作不会对整车有任何的功能和安全影响。
后续可通过正常下电完成标志位诊断上一次整车运行过程中是否发生异常下电,根据步骤S3可知整车在运行了正常下电过程后会记录正常下电完成标志位NormalPowerDownFlag=0xAA,反之,若在上电初始化中读取到正常下电完成标志位NormalPowerDownFlag不为0xAA,则判断上次的下电为异常下电;
S4,在下一次整车上电初始化时,从片外备份Eeprom中读取状态标志位和正常下电完成标志位,若状态标志位BlockFullFlag=0x55且正常下电完成标志位NormalPowerDownFlag不为0xAA,即表示在上一次整车运行过程中检测到了Pflash需要进行换块擦除操作且同时遇到了异常断电,则先对Pflash进行换块擦除操作,等待换块擦除操作完成后,再将片外备份Eeprom中的存储数据存储至Pflash模拟的Eeprom中,然后清除状态标志位和正常下电完成标志位,即BlockFullFlag=0x00,NormalPowerDownFlag=0x00;否则,直接清除状态标志位和正常下电完成标志位,即BlockFullFlag=0x00,NormalPowerDownFlag=0x00。
后续按照步骤S1-S3的方式,进行本次整车运行;然后按照步骤S4的方式,在下一次整车上电初始化时进行判断。
因为在上电初始化阶段整车还没有完全启动运行,不需要收发报文,所以此时换块擦除期间的几十或几百毫秒的MCU不工作不会对整车有任何的功能和安全影响。
本发明中相关字符的含义说明如下所示:
BlockFullFlag为状态标志位;其中,BlockFullFlag=0x55表示Pflash模拟的Eeprom的存储块满,即表示Pflash需要进行换块擦除操作;BlockFullFlag=0x00表示Pflash模拟的Eeprom的存储块未满,即表示Pflash不需要进行换块擦除操作。
NormalPowerDownFlag为正常下电完成标志位;其中,NormalPowerDownFlag=0xAA表示正常下电完成,NormalPowerDownFlag=0x00表示正常下电未完成。
BMS指电池管理系统。
SOC指电池充电状态,又称电池剩余容量,表示电池继续工作的能力。
RAM指随机存取存储器。
CRC指循环冗余校验码,是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。
Eeprom指电可擦写可编程只读存储器。
MCU指微控制单元,又称单片微型计算机或者单片机、芯片级的计算机,为不同的应用场合做不同组合控制。
Pflash指program flash(程序闪存),用于存储运行程序或者数据,是主flash。
Dflash指Data flash(数据闪存),Dflash可以与主flash并存,在主flash的程序运行时,Dflash可以用于存储数据。
以上仅为本发明创造的较佳实施例而已,并不用以限制本发明创造,凡在本发明创造的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明创造的保护范围之内。
Claims (2)
1.一种面向传统MCU中仅有Pflash的数据存储方法,其特征在于,包括以下步骤:
S1,在整车运行过程中,若检测到Pflash模拟的Eeprom的存储块满,即检测到Pflash需要进行换块擦除操作,则停止向Pflash模拟的Eeprom存储数据,记录状态标志位BlockFullFlag=0x55,并将此状态标志位BlockFullFlag=0x55存储至片外备份Eeprom中;
S2,运行数据在RAM缓存中存储,并将RAM缓存中的存储数据向片外备份Eeprom进行备份存储;
S3,判断整车运行状态是否为低压下电状态,若是,则在低压下电状态对Pflash进行换块擦除操作,等待换块擦除操作完成后,将RAM缓存中的存储数据存储至Pflash模拟的Eeprom中,清除状态标志位,即BlockFullFlag=0x00,同时记录正常下电完成标志位NormalPowerDownFlag=0xAA,并将此正常下电完成标志位NormalPowerDownFlag=0xAA存储至片外备份Eeprom中;
S4,在下一次整车上电初始化时,从片外备份Eeprom中读取状态标志位和正常下电完成标志位,
若状态标志位BlockFullFlag=0x55且正常下电完成标志位NormalPowerDownFlag不为0xAA,即表示在上一次整车运行过程中检测到了Pflash需要进行换块擦除操作且同时遇到了异常断电,则先对Pflash进行换块擦除操作,等待换块擦除操作完成后,再将片外备份Eeprom中的存储数据存储至Pflash模拟的Eeprom中,然后清除状态标志位和正常下电完成标志位,即BlockFullFlag=0x00,NormalPowerDownFlag=0x00;
否则,直接清除状态标志位和正常下电完成标志位,即BlockFullFlag=0x00,NormalPowerDownFlag=0x00。
2.根据权利要求1所述的一种面向传统MCU中仅有Pflash的数据存储方法,其特征在于,步骤S2中,RAM缓存中的存储数据向片外备份Eeprom进行备份存储时,先对存储数据进行CRC校验,再将存储数据+校验码一并存储至片外备份Eeprom中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310093945.1A CN115793995B (zh) | 2023-02-10 | 2023-02-10 | 一种面向传统MCU中仅有Pflash的数据存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310093945.1A CN115793995B (zh) | 2023-02-10 | 2023-02-10 | 一种面向传统MCU中仅有Pflash的数据存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115793995A CN115793995A (zh) | 2023-03-14 |
CN115793995B true CN115793995B (zh) | 2023-04-07 |
Family
ID=85430756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310093945.1A Active CN115793995B (zh) | 2023-02-10 | 2023-02-10 | 一种面向传统MCU中仅有Pflash的数据存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115793995B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116578248A (zh) * | 2023-07-12 | 2023-08-11 | 上海泰矽微电子有限公司 | 数据处理方法、设备和计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007041798A (ja) * | 2005-08-02 | 2007-02-15 | Seiko Epson Corp | 情報処理装置及び情報処理装置のメモリ書き換え方法 |
CN103914393A (zh) * | 2014-04-11 | 2014-07-09 | 四川华拓光通信股份有限公司 | 一种基于mcu的flash不丢失更新存储方法 |
CN111045870A (zh) * | 2019-12-27 | 2020-04-21 | 北京浪潮数据技术有限公司 | 一种保存与恢复元数据的方法、装置和介质 |
CN112397128A (zh) * | 2020-11-19 | 2021-02-23 | 潍柴动力股份有限公司 | 一种Flash存储器的控制方法和装置 |
CN112506712A (zh) * | 2020-12-19 | 2021-03-16 | 浙江阿尔法汽车技术有限公司 | 一种基于硬拷贝的mcu模拟eeprom的数据保护方法 |
CN113696732A (zh) * | 2020-05-20 | 2021-11-26 | 北京新能源汽车股份有限公司 | 一种低压下电控制方法、装置及电动汽车 |
CN115657537A (zh) * | 2022-10-20 | 2023-01-31 | 中国第一汽车股份有限公司 | 车辆及电子控制单元的标定数据管理方法、装置及介质 |
-
2023
- 2023-02-10 CN CN202310093945.1A patent/CN115793995B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007041798A (ja) * | 2005-08-02 | 2007-02-15 | Seiko Epson Corp | 情報処理装置及び情報処理装置のメモリ書き換え方法 |
CN103914393A (zh) * | 2014-04-11 | 2014-07-09 | 四川华拓光通信股份有限公司 | 一种基于mcu的flash不丢失更新存储方法 |
CN111045870A (zh) * | 2019-12-27 | 2020-04-21 | 北京浪潮数据技术有限公司 | 一种保存与恢复元数据的方法、装置和介质 |
CN113696732A (zh) * | 2020-05-20 | 2021-11-26 | 北京新能源汽车股份有限公司 | 一种低压下电控制方法、装置及电动汽车 |
CN112397128A (zh) * | 2020-11-19 | 2021-02-23 | 潍柴动力股份有限公司 | 一种Flash存储器的控制方法和装置 |
CN112506712A (zh) * | 2020-12-19 | 2021-03-16 | 浙江阿尔法汽车技术有限公司 | 一种基于硬拷贝的mcu模拟eeprom的数据保护方法 |
CN115657537A (zh) * | 2022-10-20 | 2023-01-31 | 中国第一汽车股份有限公司 | 车辆及电子控制单元的标定数据管理方法、装置及介质 |
Non-Patent Citations (2)
Title |
---|
Qingqing Zhong ; Zhigui Lin ; Dejun Meng."Design and Implementation of In-Circuit Programming for Flash Memory in HCS08 MCU Family".《2011 International Symposium on Computer Science and Society》.2011,全文. * |
温暖 ; 杨维明 ; 彭菊红 ; 王旭光 ; .基于MCU的嵌入式系统的Bootloader设计.微电子学与计算机.2018,(03),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN115793995A (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101477482B (zh) | 一种嵌入式Linux系统中的断电时恢复闪存数据的方法 | |
US8838918B2 (en) | Information processing apparatus and data backup method | |
CN107678420B (zh) | 一种发动机数据在线存储方法 | |
EP3200085A1 (en) | Data saving method and device and terminal | |
US8448023B2 (en) | Approach for data integrity in an embedded device environment | |
CN103246280B (zh) | 一种电动汽车诊断系统 | |
CN102004706B (zh) | 一种基于ftl的闪存擦写掉电保护方法 | |
CN115793995B (zh) | 一种面向传统MCU中仅有Pflash的数据存储方法 | |
CN106021002B (zh) | 一种嵌入式设备数据读写方法及装置 | |
CN111158599B (zh) | 一种写数据的方法、装置、设备及存储介质 | |
CN101963891A (zh) | 数据存储处理方法与装置、固态硬盘系统与数据处理系统 | |
EP2093673A1 (en) | A system and method with multi-level buffer | |
CN105589767A (zh) | 一种用于nand flash的系统掉电保护实现方法 | |
CN102004656A (zh) | 一种汽车集成信息液晶显示及控制平台的冗余备份及安全升级技术 | |
CN111143132A (zh) | 一种bios恢复方法、装置、设备及可读存储介质 | |
CN105760165A (zh) | 一种mcu自我备份加载刷新的方法 | |
CN106503542B (zh) | 设备参数防改写方法、设备和空调器 | |
JP2002062956A (ja) | 停電処理方法及び停電処理装置 | |
US20230315587A1 (en) | Recovery from broken mode | |
CN109325373B (zh) | 一种元数据的保存方法、装置、设备及可读存储介质 | |
CN107797946B (zh) | 一种车载存储装置 | |
CN113345500B (zh) | 用来进行恢复管理的方法及设备 | |
JP2671299B2 (ja) | 電子ジヤーナル制御方式 | |
CN112506686A (zh) | 一种dcs控制器日志系统实现方法和装置 | |
JP2013214233A (ja) | 携帯端末装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |