整车控制器的数据读取和写入方法技术

技术编号:29788389 阅读:135 留言:0更新日期:2021-08-24 18:06
本发明专利技术公开了整车控制器的数据读取和写入方法,涉及整车控制领域。数据读取方法包括:从n个数据页中读取出目标行的n组数据,并从n个检验页中读取出目标行的n个校验码,以及每个校验码对应的预存校验值;根据n个校验码计算对应的n个校验值;当n组数据中存在至少两组相同的数据,且n个校验值分别与对应的预存校验值相同时,则数据读取成功,将相同的数据作为目标行的读出数据。本发明专利技术适用于整车控制器的关键数据保护,不仅增加数据的可靠性,同时增加了数据的可恢复性,能够保护数据的完整性,从而能够防止大数据量的情况下存储器操作时间长而导致周期超时或者操作系统挂起超时的情况发生。

【技术实现步骤摘要】
整车控制器的数据读取和写入方法
本专利技术涉及整车控制领域,尤其涉及整车控制器的数据读取和写入方法。
技术介绍
在整车控制器开发过程中,控制器在运行或者下电存储EEPROM的时候,存在EEPROM存储失败或错误的情况,导致这种情况发生的原因是多方面的,例如,EEPROM某个存储单元失效,或由于存储数据量较大引起调度周期混乱,或由于读写校验故障导致存储的EEPROM数据失效等。这会直接导致某些关键变量读取数据的失效,例如bms的累积充放电安时容量、soc和续驶里程等,对整车安全及用户体验的影响很大。因此,需要建立有效的容错机制,防止各种异常状态下的电动车整车控制器关键数据丢失。目前,常见的数据保护方式,大多采用crc校验码的方式对数据进行正确性判断,然而,在大数据量的情况下,EEPROM操作时间长可能导致周期超时或者操作系统挂起超时,可见这种方式对数据的保护程度不够,且数据的恢复能力有限。
技术实现思路
本专利技术所要解决的技术问题是针对现有技术的不足,提供一种整车控制器的数据读取方法和写入方法,以及存储介质和车辆。本专利技术解决上述技术问题的技术方案如下:一种整车控制器的数据读取方法,控制器从存储器中读取数据,所述存储器划分为n个数据页和n个校验页,每个校验页用于存储对应数据页中每行数据的校验码,其中,所述n个数据页包括1个主数据页和n-1个备份数据页,所述n个校验页包括1个主校验页和n-1个备份校验页,n≥3,所述数据读取方法包括:从所述n个数据页中读取出目标行的n组数据,并从所述n个检验页中读取出所述目标行的n个校验码,以及每个校验码对应的预存校验值;根据所述n个校验码计算对应的n个校验值;当所述n组数据中存在至少两组相同的数据,且所述n个校验值分别与对应的所述预存校验值相同时,则数据读取成功,将相同的数据作为所述目标行的读出数据。本专利技术的有益效果是:本专利技术提供的数据读取方法,适用于整车控制器的关键数据保护,在读取出目标行的数据后,通过多个备份数据页的数据对数据进行判断,并通过校验码进一步判断,不仅增加数据的可靠性,同时增加了数据的可恢复性,能够保护数据的完整性,从而能够防止大数据量的情况下存储器操作时间长而导致周期超时或者操作系统挂起超时的情况发生。本专利技术解决上述技术问题的另一种技术方案如下:一种整车控制器的数据写入方法,控制器向存储器中写入数据,所述存储器划分为n个数据页和n个校验页,每个校验页用于存储对应数据页中每行数据的校验码,其中,所述n个数据页包括1个主数据页和n-1个备份数据页,所述n个校验页包括1个主校验页和n-1个备份校验页,n≥3,所述数据存储方法包括:从所述n个数据页中读取出目标行的n组数据,当所述n组数据中存在至少一组与待写入数据不同的数据时,将所述待写入数据分别写入所述n个数据页的目标行;从所述n个检验页中读取出所述目标行的n个校验码,当所述n个校验码中存在至少一个与待写入校验码不同的校验码时,将所述待写入校验码分别写入所述n个校验页的目标行。本专利技术提供的数据写入方法,适用于整车控制器的关键数据保护,通过将数据分别写入主数据页和多个备份数据页,并将校验码分别写入主校验页和多个备份校验页,不仅增加数据的可靠性,同时增加了数据的可恢复性,能够保护数据的完整性,从而能够防止大数据量的情况下存储器操作时间长而导致周期超时或者操作系统挂起超时的情况发生。本专利技术解决上述技术问题的另一种技术方案如下:一种存储介质,所述存储介质中存储有指令,当计算机读取所述指令时,使所述计算机执行如上述技术方案所述的整车控制器的数据读取方法,或执行如上述技术方案所述的整车控制器的数据写入方法。本专利技术解决上述技术问题的另一种技术方案如下:一种车辆,所述车辆的控制器使用如上述技术方案所述的整车控制器的数据读取方法从存储器中读取数据,或,使用如上述技术方案所述的整车控制器的数据写入方法向存储器中写入数据。本专利技术附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术实践了解到。附图说明图1为本专利技术整车控制器的数据读取方法的实施例提供的存储器地址规划结构示意图;图2为本专利技术整车控制器的数据读取方法的实施例提供的流程示意图;图3为本专利技术整车控制器的数据写入方法的实施例提供的流程示意图。具体实施方式以下结合附图对本专利技术的原理和特征进行描述,所举实施例只用于解释本专利技术,并非用于限定本专利技术的范围。需要说明的是,电动汽车中通常使用EEPROM存储关键数据,低端车型中,通常使用软件代码保护EEPROM数据,然而其逻辑比较有限,基本不做额外的保护。当前主流的EEPROM数据保护方式,大多采用crc校验码的方式对数据进行正确性判断,对数据的保护性不强,不适用于关键数据的保护。下面以EEPROM为例,进行说明。首先,对EEPROM的地址规划方式进行说明,如图1所示,以三个数据区和三个校验区为例,给出了一种示例性的EEPROM地址规划结构示意图。将EEPROM的地址空间划分成128*128大小相同的区域,其中,第一块为主数据区,另外两块为备份区。备份区后为三块存放校验码的1*128的区域,第一块为主校验区,另外;两块为备份区,分别对应存储三块数据区每行的校验码。应理解,也可以根据实际需求将地址空间划分成256*256大小相同的区域,将数据区划分为四块,将第一块作为主数据区,另外三块作为备份区,校验区同理,不再赘述。具体地,图1中,数据页A为主数据页,数据页B、C为备份数据页,校验页a为主校验页,校验页b、c为备份校验页。数据页A中存储有128行和128列数据,每行数据都有一个校验码,数据页A共有128个校验码,校验页a中存储有这128个校验码,每行数据和每行校验码一一对应。数据页B中存储有128行和128列数据,每行数据都有一个校验码,数据页B共有128个校验码,校验页b中存储有这128个校验码,每行数据和每行校验码一一对应。数据页C和校验页c的对应关系同理,不再赘述。例如,数据页A的A1行存储有一组数据,共128列,那么在检验页a的a1行,存储有A1的校验码。数据页B的B1行和数据页C的C1行同样存储有该组数据,是对数据页A的备份,校验页b的b1行和校验页c的c1行同样存储有该校验码,是对校验页a的备份。这种多数据页的地址空间划分方式,有利于增加数据的可靠性,同时增加了数据的可恢复性。对应上述的地址规划,本专利技术采用全新的存取机制来保护数据的完整性,同时为了防止大数据量EEPROM占用系统资源过多,采用异步存取的方式,保证了其他任务的实时性,同时兼顾安全性和使数据的存取操作在可接受的时间响应范围内。下面基于以上地址规划方式,对本专利技术提供的数据读写方法进行进一步说明。如图2所示,为本专利技术整车控制器的数据读取方法的实施例提供的流程示意图,结合图1,以3个数据页和3个校验页为例进行说明,4本文档来自技高网...

【技术保护点】
1.一种整车控制器的数据读取方法,其特征在于,控制器从存储器中读取数据,所述存储器划分为n个数据页和n个校验页,每个校验页用于存储对应数据页中每行数据的校验码,其中,所述n个数据页包括1个主数据页和n-1个备份数据页,所述n个校验页包括1个主校验页和n-1个备份校验页,n≥3,所述数据读取方法包括:/n从所述n个数据页中读取出目标行的n组数据,并从所述n个检验页中读取出所述目标行的n个校验码,以及每个校验码对应的预存校验值;/n根据所述n个校验码计算对应的n个校验值;/n当所述n组数据中存在至少两组相同的数据,且所述n个校验值分别与对应的所述预存校验值相同时,则数据读取成功,将相同的数据作为所述目标行的读出数据。/n

【技术特征摘要】
1.一种整车控制器的数据读取方法,其特征在于,控制器从存储器中读取数据,所述存储器划分为n个数据页和n个校验页,每个校验页用于存储对应数据页中每行数据的校验码,其中,所述n个数据页包括1个主数据页和n-1个备份数据页,所述n个校验页包括1个主校验页和n-1个备份校验页,n≥3,所述数据读取方法包括:
从所述n个数据页中读取出目标行的n组数据,并从所述n个检验页中读取出所述目标行的n个校验码,以及每个校验码对应的预存校验值;
根据所述n个校验码计算对应的n个校验值;
当所述n组数据中存在至少两组相同的数据,且所述n个校验值分别与对应的所述预存校验值相同时,则数据读取成功,将相同的数据作为所述目标行的读出数据。


2.根据权利要求1所述的整车控制器的数据读取方法,其特征在于,还包括:
当所述n组数据中不存在至少两组相同的数据,或存在至少一个校验值与对应的所述预存校验值不相同时,则:
当第i个数据页的目标行的校验值与对应的所述预存校验值相同时,将第i个数据页的目标行的数据作为所述目标行的读出数据;
当所述n个校验值与对应的所述预存校验值均不同时,将所述n组数据逐字节进行数据恢复。


3.根据权利要求2所述的整车控制器的数据读取方法,其特征在于,将所述n组数据逐字节进行数据恢复,具体包括:
将所述n组数据的每个字节逐一进行对比,当至少两组数据存在相同字节时,将其余组数据对应位置的字节替换为所述相同字节;
根据恢复后的数据对应的检验码计算第一校验值,当所述第一校验值与任意一个所述预存校验值相同时,则数据恢复成功。


4.根据权利要求1至3中任一项所述的整车控制器的数据读取方法,其特征在于,从所述n个数据页中读取出目标行的n组数据之前,还包括:
从所述主数据页中读取出目标行的状态标志位,根据所述目标行的状态标志位判断是否读取所述目标行的数据。


5.根据权利要求4所述的整车控制器的数据读取方法,其特征在于,数据读取成功,将相同的数据作为所述目标行的读出数据之后,还包括:<...

【专利技术属性】
技术研发人员:韩斌
申请(专利权)人:北汽福田汽车股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1