MCU内部数据存储ECC处理系统及其处理方法与流程

文档序号:14481255阅读:884来源:国知局

本发明涉及汽车领域,特别是涉及一种车载控制器mcu内部数据存储ecc处理系统。本发明还涉及一种车载控制器mcu内部数据存储ecc处理方法。



背景技术:

常规车载控制器基于mcu芯片设计,并将数据存储于内存(如,eeprom或dflash等非易失性存储器)中,一般在车辆上电、熄火下电运行时分别进行读取、写入存储操作。常规车载控制器运行过程,如图1所示,控制器系统通电后,开始初始化阶段的运行,此时如果存在ecc错误,则在数据读取时立即进入不可屏蔽ecc处理中断,系统无法后续的运行(直至ecc故障消除);如果系统未发生此类内存访问异常,系统在轮循阶段获得熄火下电请求信号(锁芯熄火开关信号)后,进入软件熄火下电阶段并存储数据,此时如果存在电池供电系统的异常掉电,则存在对内存单元写入操作的风险时刻,即在进入ecu休眠(ecusleep)前将极易发生在写入大量的待存储数据(包括诸如控制器检测到的故障、历史故障信息、执行器学习值等)时的损坏异常情形。

如图2所示,ecc(errorcheckingandcorrection)是内存常见的读取时的数据有效性校验机制,可实现故障数据的检测和修正。ecc是由奇偶校验发展而来,该功能是减少和发现内存故障的最常用方法。车载控制器由于其特殊安全性需求,其内存通常是具有ecc特性的,ecc根据其能够纠正比特数分为ecc=1,ecc=5等。最常见的ecc校验是ecc=1(secded,signalerrorcorrectanddoubleerrorsdetect),通常是hamming码,也有半导体芯片商提供的其他算法。

oob(out-of-band)区域,存放ecc值区域,当控制器在向内存写入数据时,同时计算该数据的ecc值,并将此值存入oob区域;在控制器从内存读取数据时,同时读取oob区域的ecc值,在读取数据同时生成ecc值,两个ecc值进行按位异或。根据异或结果来检测和修正内存错误。具体算法简单示例(secdedecc)如下:

a、单字节ecc仅需要对列进行奇偶校验,单字节校验,如图3所示,

其中cp0=bit0^bit2^bit4^bit6;cp1=bit1^bit3^bit5^bit7;

cp2=bit0^bit1^bit4^bit5;cp3=bit2^bit3^bit6^bit7;

cp4=bit0^bit1^bit2^bit3;cp5=bit4^bit5^bit6^bit7;

数据在写入内存时,生成ecc值,计为ecc1,数据从内从读取后,计算其ecc值,计为ecc2,ecc1与ecc2按位异或,结果为ecc3:

ecc3=ecc1^ecc2;

如果ecc3中包含一个1,则表明oob存储的ecc结果有错,如果,ecc3中有三位是1,则表明原数据在存储过程中某一比特位数字错位,可修复,ecc3为其余结果均不可修复。图4为bit6错误时对应的故障判决树,有示意可知,bit6错误时,ecc3中cp0=1;cp3=1;cp5=1。

b.两字节及以上字节的内存ecc检测方式与单字节原理一样,只是增加行检测,以便定位发生错误的具体字节。

3、ecc校验后的处理

a、如果发生单比特的错误,系统将纠正该错误,即将bit0修正为1,或bit1修正为0。

b、如果发生多个比特错误,系统将无法通过算法纠正,系统将报相应的故障信息,并提示修改。

在发生b情况时,由于系统自身无法修复内存错误故障,ecc校验规则的处理策略并未规定后续的处理方式,通常mcu系统会尝试复位,然后再修复,但故障无法通过简单的复位修复,这样很可能导致系统将无法正常运行。控制器的基本功能将受影响。

本发明中提及的“基本功能”概念属于车载控制器行业的基础概念,指包含基础软件部分的控制驱动能力、应用层软件的产品控制特性等保持正常工作的功能状态。

本发明中提及的“软复位”概念属于车载控制器行业的基础概念,指由用户代码决定复位时机,让程序跳回至起点,或配合片内复位模块,产生等同于硬件复位的效果。

车载控制器经过在线装配、在线检测,最终由整车客户进行系统集成并调试。车载控制器在出现系统熄火下电信号请求后,将有大量的数据需要存储,此时如果异常掉电,将有可能造成数据存储异常,如发生多比特位的错误,无法通过ecc纠正算法方式来修复内存错误,系统再次通电后内存读取时故障将通过系统体现出来并影响控制器最终的运行效果。



技术实现要素:

本发明要解决的技术问题是提供一种能降低车辆电源异常掉电时mcu内存数据存储错误发生率,提高安全数据可靠性,保障车载控制器运行功能免受影响的mcu内部数据存储ecc处理系统。本发明还提供了一种mcu内部数据存储ecc处理方法。

为解决上述技术问题,本发明提供的mcu内部数据存储ecc处理系统,包括:连接mcu的电源电压识别模块、中断与复位模块和数据恢复处理模块;

电源电压识别模块,mcu收到熄火下电请求后开始往内存写数据时,如果此时电源系统电压小于预设电压阈值,触发mcu自带的欠压中断,则停止往内存写入数据且置起欠压故障标志位;

中断与软复位模块,读取内存数据时一旦ecc校验中发现不可修复的故障,不修复不可修复区域的数据,调用内存的擦除操作指令,将不可修复区域中数据清除为默认值,完成清除数据后进行系统软复位;

数据恢复处理模块,在初始化阶段对车载控制器ecu片内和片外动态数据存储空间的数据进行一致性校验,校验一致cpu才读取片内动态存储空间数据,否则将片外静态数据存储空间存储的出厂原始备份数据拷贝至片内和片外动态数据存储空间恢复数据。

其中,mcu自带的欠压中断识别速率在1微秒内。

其中,电压阈值范围为5.0-10.5v。

进一步改进,当系统发生软复位后,软复位后的初始化阶段判断mcu的复位源信息,如果识别为ecc故障后的复位源且发生过两次,则将片外静态数据存储空间存储的出厂原始备份数据拷贝至片内和片外动态数据存储空间恢复数据。

本发明提供一种mcu内部数据存储ecc处理方法,包括:

mcu收到熄火下电请求后开始往内存写数据时,使能mcu自带的欠压中断,如果此时电源系统电压此时小于预设电压阈值,则停止往内存写入数据且置起欠压故障标志位;

读取内存数据时一旦ecc校验中发现不可修复的故障,不修复不可修复区域的数据,调用内存的擦除操作指令,将不可修复区域中数据清除为默认值,完成清除数据后进行系统软复位;

在初始化阶段对车载控制器ecu片内和片外动态数据存储空间的数据进行一致性校验,校验一致cpu才读取片内动态存储空间数据,否则将片外静态数据存储空间存储的出厂原始备份数据拷贝至片内和片外动态数据存储空间恢复数据。

其中,mcu自带的欠压中断识别速率在1微秒内(小于1微妙)。

其中,电压阈值范围为5.0-10.5v。

进一步改进,当系统发生软复位后,软复位后的初始化阶段判断mcu的复位源信息,如果识别为ecc故障后的复位源且发生过两次,则将片外静态数据存储空间存储的出厂原始备份数据拷贝至片内和片外动态数据存储空间恢复数据。

本发明创造性地提出在车载控制器熄火下电后的数据存储时增加系统电压检测机制,并引入了全新的ecc校验机制的数据修正规则,即如果发现ecc校验失败将擦除出错区域并引导系统复位,及时将车辆运行状态限制在初始化的安全阶段。本发明能大幅降低控制器出现ecc校验无法修复的内存错误并有效地规避了由于ecc校验失败导致的控制器的基本功能受到影响情况发生。例如,将本发明应用于电动助力转向(eps)汽车底盘安全产品中,在使用本发明之前的曾见两例由于ecc校验失败导致控制器基本功能受影响的故障件,自本发明提出经过近两年的实际量产使用,未见由于内存故障导致的控制器基本功能受影响情况发生,同时在台架环境下模拟的1000次的随机时刻掉电耐久试验后,eps系统仍然保持了良好的运行状态。

本发明既从控制器出现ecc校验无法修复的内存错误的角度降低了故障发生率,又从控制器数据极限掉电损坏的角度有效地保证了数据安全可用性,充分满足基于车载控制器的电控系统的可靠运行和安全需求。本发明基于ecc校验的基本原理和车载控制器的运行特性,能大幅降低内存存储故障发生率,并在发生ecc校验无法修复的内存故障后保证控制器基本功能运行正常,满足驾驶员对电气产品基本功能需求,设计方案易实现且可靠性高。

附图说明

下面结合附图与具体实施方式对本发明作进一步详细的说明:

图1是一种现有车载控制器ecc处理流程示意图。

图2是ecc校验机制示意图。

图3是单字节ecc校验算法示意图一。

图4是单字节ecc校验算法示意图二。

图5本发明ecc处理流程示意图一。

图6本发明ecc处理流程示意图二。

图7本发明ecc处理流程示意图三。

具体实施方式

本发明提供的mcu内部数据存储ecc处理系统,包括:连接mcu的电源电压识别模块、中断与复位模块和数据恢复处理模块;

如图5所示,电源电压识别模块,执行欠压中断处理。本发明在正常的车载控制器运行到熄火下电请求后开始往内存写数据的时候,增加电源电压识别模块,使能mcu自带的欠压中断且识别速率在微秒级内由中断服务程序完成处理响应,如果此时电源系统电压此时小于6.75v(典型值,具体值由车辆设计主机厂或客户电源系统供应商确定),则停止往内存写入数据且置起欠压故障标志位。虽然控制器部分信息不能被保存,但可以大幅降低控制器在往内存写产生错误的可能性,同时由于系统电压过低的情况仅出现在非正常状态下,数据可以被丢弃。

如图6所示,中断与软复位模块,ecc异常处理中断与软复位。本发明在初始化阶段读取内存数据时一旦ecc校验中发现不可修复的故障(如,存在超过一个比特位错误)后,由设定该中断服务程序实现对当前访问预读取的存储单元内的数据执行修正规则:将不尝试对不可修复区域的数据进行修复,而是调用内存的擦除操作指令,将不可修复区域中数据清除为默认值0xff,完成清除数据后进行系统软复位(softreset)。系统重新运行,此时因被清除的数据为系统可接受的不影响整车运行的基本功能的默认值,因此内存数据保证了系统的可靠运行。

如图7所示,数据恢复处理模块,内外部数据区的恢复处理。在ecu硬件架构上,存储管理功能包含片内和片外两块存储空间,且片外eeprom由spi通信线由cpu间接读写。在正常上电、熄火下电时时内外数据区的存储数据由cpu同时进行读、写操作以实现数据的一致性,即动态数据区a和动态数据区b的数据完全相同,且初始化阶段构成彼此校验一致后,cpu才读取访问动态数据区a的数据;否则将静态数据区内的产品出厂原始备份数据向动态数据区a和动态数据区b分别进行搬移复制恢复,其中动态数据区a的数据恢复需由cpu经过spi通信线间接完成。

其中,mcu自带的欠压中断识别速率在1微秒内。

其中,电压阈值范围为5.0-10.5v,优选电压阈值为6.75v。

进一步改进,当系统发生软复位后,软复位后的初始化阶段判断mcu的复位源信息,如果识别为ecc故障后的复位源且发生过两次,则将片外静态数据存储空间存储的出厂原始备份数据拷贝至片内和片外动态数据存储空间恢复数据。

本发明提供一种mcu内部数据存储ecc处理方法,包括:

mcu收到熄火下电请求后开始往内存写数据时,如果此时电源系统电压小于预设电压阈值,触发mcu自带的欠压中断,则停止往内存写入数据且置起欠压故障标志位;

读取内存数据时一旦ecc校验中发现不可修复的故障,不修复不可修复区域的数据,调用内存的擦除操作指令,将不可修复区域中数据清除为默认值,完成清除数据后进行系统软复位;

在初始化阶段对车载控制器ecu片内和片外动态数据存储空间的数据进行一致性校验,校验一致cpu才读取片内动态存储空间数据,否则将片外静态数据存储空间存储的出厂原始备份数据拷贝至片内和片外动态数据存储空间恢复数据。

其中,mcu自带的欠压中断识别速率在1微秒内。

其中,电压阈值范围为5.0-10.5v,优选电压阈值为6.75v。

进一步改进,当系统发生软复位后,软复位后的初始化阶段判断mcu的复位源信息,如果识别为ecc故障后的复位源且发生过两次,则将片外静态数据存储空间存储的出厂原始备份数据拷贝至片内和片外动态数据存储空间恢复数据。

以上通过具体实施方式和实例对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1