备份方法、备份装置和车辆控制器 【技术领域】
本发明涉及备份方法、备份装置和车辆控制器。
本发明要求于2008年11月7日提交的日本专利申请第2008-286466号的优先权,其内容结合于此作为参考。
背景技术
在下文中将在本申请中引用或相关的所有专利、专利申请、专利公开、科技文章等全部结合于此作为参考,以更完整地描述与本发明有关的现有技术的状态。
通常,SRS(辅助约束系统)气囊(air-bag)系统被了解,作为在车辆碰撞时进行乘客保护的系统。在SRS气囊系统中,基于从设置在车辆中的加速度传感器获得的加速度数据来检测碰撞,以激活乘客保护装置,例如,气囊或安全带预紧器(seatbelt pretensioner)。控制整个SRS气囊系统的ECU(电子控制单元)被称为SRS单元,并且其通常与诸如用于引擎和ABS(防抱死制动系统)的ECU的其他ECU分开设置。
例如,日本未审查专利首次公布第2003-252256号公开了一种用于分析在碰撞时的车辆信息(诸如,速度、加速度、制动信息、或加速度信息)以调查碰撞的原因的技术。根据该技术,在车辆运行时,从各种传感器或其他ECU获得的车辆信息被连续地更新并存储,以及在检测车辆碰撞时读取存储在RAM中的车辆信息并将其存储在EEPROM(电可擦除可编程只读存储器)。
通常,EEPROM被用作备份存储器,用于存储非易失性数据(备份数据),例如,车辆信息。另一方面,随着将存储作为备份数据的数据量日益增长,近年来需要使用更便宜且可更快写入的闪存来代替EEPROM。然而,在使用闪存存在以下问题。
图13是闪存与EEPROM之间的性能比较图表。闪存在“字节单位价格”和“写入速度”方面优于EEPROM,而在“写入单位”、“擦除速度”、“擦除单位”、“保留期”(存储数据的年数)、以及“可写入的次数”上次于EEPROM。也就是说,闪存存在可写入次数少以及写入时间长(如果执行包括擦除数据和写入数据的简单重写操作,则需要几百毫秒来用于重写1字节数据)的问题。
【发明内容】
为了解决上述问题,根据本发明的第一方面的备份方法包括以下过程。将备份数据临时存储在易失性存储器中。在闪存中为备份数据保留已擦除区。已擦除区没有数据。将备份数据写入已擦除区中。
保留已擦除区的过程包括以下过程。检测已擦除区的总尺寸。当总尺寸为预定尺寸或更小时,擦除写入闪存的一个块中的所有数据。禁止擦除写入该块的一部分中的数据。该块具有紧接于已擦除区的结束地址的起始地址。当总尺寸为预定尺寸或更小时,确定结束地址。
在擦除写入该块内的所有数据的过程中,如果最近写入的备份数据包括在将擦除的块中,则在擦除该块内的所有数据之前,将最近写入的备份数据移动至已擦除区的起始地址。
备份方法还包括以下过程。最近写入闪存中不同于已擦除区的一个区域的备份数据以及现存最近写入的备份数据的闪存的目的地址被存储在易失性存储器中。
备份方法还包括以下过程。将新近存储在易失性存储器中的备份数据与最近写入目的地址的备份数据进行比较。新近存储的备份数据比最近写入的备份数据更新。如果最近写入目的地址的备份数据与新近存储的备份数据不一致,则将新近存储的备份数据从已擦除区的起始地址写入已擦除区。更新已擦除区的目的地址和起始地址。
写入备份数据的过程通过被定义为记录单元的扇区来实现。闪存被分为多个扇区。
根据本发明的第二方面的备份装置包括:易失性存储器;闪存;以及控制器。控制器将备份数据临时存储在易失性存储器中,在闪存中为备份数据保留已擦除区,该已擦除区没有数据,并且将备份数据写入已擦除区中。
在备份装置中,控制器检测已擦除区的总尺寸,并且当总尺寸为预定尺寸或更小时,擦除写入闪存的一个块中的所有数据。禁止擦除写入该块的一部分中的数据。该块具有紧接于已擦除区的结束地址地起始地址。当总尺寸为预定尺寸或更小时,确定结束地址。
在备份装置中,如果最近写入的备份数据包括在将擦除的块中,则在擦除该块中的所有数据之前,控制器将最近写入的备份数据移动至已擦除区的起始地址。
在备份装置中,控制器将最近写入闪存中不同于已擦除区的一个区域中的最近写入的备份数据以及现存最近写入的备份数据的闪存的目的地址存储在易失性存储器中。
在备份装置中,控制器将新近存储在易失性存储器中的备份数据与最近写入目的地址中的备份数据进行比较。新近存储的备份数据比最近写入的备份数据新。如果最近写入目的地址的备份数据与新近存储的备份数据不一致,则控制器将新近存储的备份数据从已擦除区的起始地址写入已擦除区。控制器更新已擦除区的目的地址和起始地址。
在备份装置中,控制器通过被定义为记录单元的扇区来写入备份数据。闪存被分为多个扇区。
根据本发明的第三方面的车辆控制器包括备份装置,该备份装置包括易失性存储器、闪存和控制器。控制器将备份数据临时存储在易失性存储器中,为备份数据保留在闪存中的已擦除区,该已擦除区没有数据,并且将备份数据写入已擦除区中。
在本发明中,已擦除区一直被保留在闪存中,而不是简单地执行包括擦除数据以及写入存储在闪存中的数据的重写操作。也就是说,在与写入数据的时刻不同的时刻预先执行数据的擦除。因此,由于更新备份数据仅需要不耗时的写入操作,所以可以缩短重写存储在闪存中的备份数据的时间。
另外,虽然在闪存中每个单元的可重写次数是相同的,但是可以通过将备份数据从已擦除区的起始地址连续地写入已擦除区中来降低每个小区的磨损程度(wear level)。因此,可以提高闪存的可重写次数的上限。
【附图说明】
本领域的技术人员将从结合附图的以下详细描述中了解本发明的目的、特征、方面和优点,这些附图示出了本发明的实施例,其中:
图1是示出了包括根据本发明的实施例的备份装置的SRS单元1的示意性框图;
图2示出了闪存1h的存储区;
图3是示出了当包括在SRS单元1中的CPU 1d上电时的初始化过程的流程图;
图4和图5示出了包括在初始化过程中的块检验过程;
图6示出了包括在初始化过程中的数据安装过程;
图7是示出了在由CPU 1d执行的常规操作中的备份过程的流程图;
图8和图9示出了包括在备份过程中的数据写入过程;
图10至图12示出了包括在备份过程中的无用单元收集过程;以及
图13是闪存与EEPROM之间的性能比较图表。
【具体实施方式】
现在,本文中将参照示例性实施例来描述本发明。
本领域的技术人员将认识到,可以使用本发明的教导来实现许多可替换的实施例,并且本发明并不限于本文中出于说明目的而示出的实施例。
图1是示出了包括根据本发明实施例的备份装置的车辆ECU的示意性框图。控制用于乘客保护的整个SRS气囊系统的SRS单元1被作为车辆ECU的实例。
SRS单元1包括:电源电路1a;单元传感器1b;通信I/F 1c;CPU(中央处理单元)1d;触发电路1e;ROM(只读存储器)1f;RAM(随机存取存储器)1g;以及闪存1h。CPU 1d和RAM 1g分别对应于存储控制器和易失性存储器。也就是说,CPU 1d、RAM 1g和闪存1h构成了备份装置。
电源电路1a通过触发开关2连接至诸如电池的外部电源3。当触发开关2改换为接通状态时,电源电路1a接收来自外部电源3的电源电压供应,将电源电压转换为预定的内部电源电压,并且将转换的电源电压提供给单元传感器1b、通信I/F 1c、CPU 1d、触发电路1e、ROM 1f、RAM1g和闪存1h。电源电路1a被设置有备份电源(诸如备份电容器),使得即使在来自外部电源3的电源由于车辆碰撞而被阻断时SRS单元1也能进行操作。
单元传感器1b是加速度传感器,其检测运行方向和/或横向上的加速度,并且将基于检测的加速度的加速度数据输出至CPU 1d。通信I/F 1c是在CPU 1d与设置在外部的引擎ECU 4、ABS ECU 5、卫星传感器6、以及速度传感器7之间中继数据通信的接口电路。
引擎ECU 4控制引擎,并通过通信I/F 1c将关于引擎的状况的信息(引擎数据)传送至CPU 1d。ABS ECU 5控制整个防抱死制动系统,并且通过通信I/F 1c将关于制动的信息(制动数据)传送至CPU 1d。卫星传感器6是设置在车辆的预定位置处(诸如在车辆的前面或任一侧面)的加速度传感器,检测在设置部分处的加速度,并且通过通信I/F 1c将基于检测到的加速度的加速度数据传送至CPU 1d。速度传感器7检测车辆的速度,并且通过通信I/F 1c将基于检测到的速度的速度数据传送至CPU1d。
CPU 1d基于存储在ROM 1f中的控制程序进行操作。CPU 1d基于从单元传感器1b获得的加速度数据以及通过通信I/F 1c从卫星传感器6获得的加速度数据,来确定车辆碰撞是否已发生。基于确定结果,CPU 1d控制触发电路1e,从而控制作为乘客保护装置的气囊8的激活。与传统方法类似的方法可用于基于加速度数据的碰撞确定,因此,下文中省略了对其的说明。
CPU 1d具有对触发开关2接通的次数(激活的次数)进行计数的功能以及故障诊断功能。CPU 1d将激活的次数、故障诊断历史、碰撞确定历史、气囊8的激活历史、引擎数据、制动数据、速度数据等作为备份数据临时存储在RAM 1g中。另外,CPU 1d具有以满足预定条件作为触发器来将存储在RAM 1g中的备份数据存储在闪存1h中的备份功能。稍后将说明备份功能的详情。
在CPU 1d的控制下,触发电路1e通过将电流供给包括在气囊8的充气机内的划针来对气囊8进行充气,以进行触发。气囊8包括用于驾驶者和乘客的座位的气囊、侧面气囊、帘式气囊等。除气囊8之外,安全带预紧器可以作为乘客保护装置被设置。
ROM 1f是非易失性只读存储器,其临时存储由CPU 1d执行的控制程序和气囊8的激活控制所需要的非易失性数据。RAM 1g是可重写易失性存储器,用于临时存储CPU 1d执行各种处理所需要的上述备份数据或易失性数据。闪存1h是可重写非易失性存储器,其被用作在满足预定条件之后对临时存储在RAM 1g中的备份数据进行存储的备份存储器。
在该实施例中,假设闪存1h的总尺寸为64千字节,如图2所示。闪存1h的存储区被分为多个扇区,每个扇区都是数据记录的单元。备份数据的写入由扇区来执行。在该实施例中,假设一个扇区具有16个字节。因此,闪存1h的存储区被分为4000个扇区(扇区“0”至“3999”)。
16个字节中的15个字节被分配给实际数据区(用于存储备份数据的存储区),而剩余的1个字节被分配给管理数据区(用于存储表示存储在实际数据区中的备份数据类型的管理数据的存储区)。例如,如果速度数据作为备份数据被存储在一个扇区中,则将速度数据存储在实际数据区中,并且表示速度数据被存储在实际数据区中的管理数据被存储在管理数据区中。如果不能将所有要存储的备份数据存储在一个扇区中,则分配多个扇区来存储备份数据。
在该实施例的闪存1h中,擦除存储的备份数据是以作为最小可擦除单元的块为单位来执行的。由于在该实施例中假设一个块具有16千字节,所以闪存1h的存储区被分为四个块(“1”至“4”),并且对于每个块,共同擦除1000段扇区数据。
假设在该实施例中扇区“0”的地址是最小地址,扇区“3999”的地址是最大地址,扇区“0”的地址是整个存储区的起始地址,以及扇区“3999”的地址是整个存储区的结束地址。
下文中,对根据该实施例的SRS单元1的操作进行说明。在该实施例中对气囊8的激活控制与传统的激活控制相同。因此,这里省略了对激活控制的说明,并且在下文中,仅详细解释备份数据的备份。
图3是示出了当触发开关2接通时由CPU 1d执行的初始化过程的流程图。在该初始化过程中,CPU 1d对闪存1h执行空白检查过程(步骤S1)。在该空白检测过程中,对从闪存1h的存储区的起始地址至结束地址的所有扇区进行扫描,以找到已擦除区并提取已擦除区的起始地址和结束地址。已擦除区是数据已被擦除的区域。
例如,如果包括在块“1”中的所有扇区、包括在块“3”中的扇区“2002”至“2999”、以及包括在块“4”中的所有扇区都是被擦除的区域,则扇区“2002”的地址是已擦除区的起始地址,以及扇区“999”的地址是已擦除区的结束地址。作为说明的层次,原因在于备份数据的写入是从已擦除区的起始地址(较小的地址)开始顺序地执行,并且如果写入至扇区“3999”结束,则写入从扇区“0”连续执行。如果备份数据被擦除(已擦除区被保留),则以块为单位从具有紧接于已擦除区的结束地址的起始地址的块开始顺序地擦除备份数据。
为此,如图5A所示的仅具有一个块的最小地址的一个扇区是已擦除区的情况或者如图5B所述的离散区是已擦除区的情况不能发生。因此,如果具有一个块的起始地址的第一扇区是已擦除区,则该块必须是已擦除块。然后,对该块进行空白检查。如果未擦除区存在于该块中,则CPU 1d优选地输出故障表示信号。类似地,如果呈现如图5B所示离散的已擦除区,则CPU 1d优选地输出故障表示信号。
在空白检查过程之后,CPU 1d执行数据安装过程(步骤S2)。在数据安装过程中,最近存储除了在空白检查过程中检测到的已擦除区外的区域中的最新备份数据(即,区域存储备份数据)以及存储有最近备份数据的最近数据目的地址被读出以被作为表格存储在RAM 1g的公共存储区中。
具体地,如果不是已擦除区的扇区“1000”至“2001”包括在闪存1h中,则基于存储在扇区“1000”至“2001”中的管理数据来搜索相同类型的备份数据(例如,关于速度数据的备份数据),以从其中提取最新备份数据。由于备份数据从最小地址顺序地写入,则存储在具有最大地址的扇区中的备份数据是最近备份数据。
然后,使提取的最近备份数据(例如,最新的速度数据)以及最近数据目的地址(最近备份数据存储于其中)与将作为表格存储在RAM 1g的公共存储区中的管理数据相关联。类似地,关于另一种类型的备份数据(例如,触发电路接通的次数、故障诊断历史等),最近备份数据及其最近数据目的地址被从扇区“1000”至“2001”提取,以与作为表格存储在RAM 1g的公共存储区中的管理数据相关联。在空白检查过程中获得的已擦除区的起始地址和结束地址也被存储在RAM 1g中。
在数据安装过程之后,CPU 1d执行锁定释放过程(步骤S3)。具体地,如果设置了用于禁止将数据写入闪存中的锁定机制,则执行锁定释放过程以释放锁定机制。如果在闪存中没有设置锁定机制,则可以省略步骤S3中的过程。
通过如上所述一旦上电则执行初始化过程,存储在闪存1h中的最近备份数据及其最近数据目的地址与作为表格存储在RAM 1g的公共存储区中的管理数据相关联,如图6所示。另外,已擦除区的起始地址和结束地址也被存储在RAM 1g中。
在下文中,参考图7中的流程图来说明由CPU 1d执行的正常操作中的备份过程。备份过程以预定间隔重复地执行。与备份过程相同,CPU 1d在正常操作中执行在初始化过程中以预定间隔将存储在RAM 1g的公共存储区中的备份数据更新为最新获得的备份数据。换句话说,在常规操作中,将存储在RAM 1g的公共存储区中的备份数据顺序地更新为新的备份数据。在下文中,假设上述情况来说明备份过程。
如图7所示,在备份过程中,CPU 1d对闪存1h执行数据写入过程(步骤S10)。在数据写入过程中,将存储在RAM 1g的公共存储区中的备份数据以及存储在闪存1h的最近数据目的地址中的备份数据进行比较。如果两种备份数据不是一致的(即,满足预定条件),则从RAM 1g的公共存储区读出备份数据,并且从闪存1h的已擦除区的起始地址将该备份数据顺序地写入闪存1h中。
具体地,假设如图8所示在存储在RAM 1g的公共存储区中的备份数据之中的速度数据的最近数据目的地址是扇区“1002”的地址。在此情况下,CPU 1d将存储在RAM 1g的公共存储区中的速度数据与存储在闪存1h的扇区“1002”中的速度数据进行比较。
如果两种数据不一致,则CPU 1d从RAM 1g的公共存储区读取速度数据,并且将读取的速度数据写入到已擦除区的起始地址(扇区“2002”的地址)中,如图9所示。同时,CPU 1d将存储在RAM 1g中的速度数据的最近数据目的地址更新为扇区“2002”的地址,并且还将已擦除区的起始地址更新为扇区“2003”的地址。
通过针对每种类型的备份数据执行的数据写入处理,新的备份数据被从已擦除区的起始地址顺序地写入,并且RAM 1g上的最近数据目的地址和已擦除区的起始地址被顺序地更新。换句话说,RAM 1g上的最近数据目的地址总是表示属于目标类型的最近备份数据的目的地,以及RAM1g上的已擦除区的起始地址总是表示存在于闪存1h中的已擦除区的最近起始地址。
在数据写入过程之后,CPU 1d确定是否发生了将数据写入闪存1h(步骤S11)。如果数据写入发生(步骤S11:是),则CPU 1d完成备份过程。如果数据写入未发生(步骤S11:否),则CPU 1d执行无用单元收集处理(步骤S12)。在无用单元收集过程中,CPU 1d监测包括在闪存1h中的已擦除区的总尺寸。如果总尺寸为预定尺寸或更小,则CPU 1d擦除存储在具有紧接于已擦除区的结束地址的起始地址的块内的备份数据,从而,总保留预定尺寸的已擦除区。
例如,假设如果已擦除区的总尺寸为对应于2个块或更小的尺寸,则执行块内的数据擦除。如果如图10所示块“1”和“4”是已擦除区,则存储在块“2”中以擦除为目的的备份数据被擦除。可以使用存储在RAM1g中的已擦除区的起始地址和结束地址来计算已擦除区的总尺寸。
如果有效数据(即,最近备份数据)被存储在以擦除为目的的块“2”中,则顺序地从已擦除区的起始地址写入最近备份数据,然后,擦除存储在块“2”中的备份数据。具体地,如图11所示,假设最近备份数据被存储在包括在以擦除为目的的块“2”中的扇区“1998”和“1999”中。存储在扇区“1998”中的备份数据被写入作为已擦除区的起始地址的扇区“3000”中。另外,存储在扇区“1999”中的备份数据被写入作为紧临已擦除区的起始地址的地址的扇区“3001”中。
在如上所述地移动备份数据之后,存储在以擦除为目的的块“2”中的备份数据被擦除,如图12所示。同时,更新存储在RAM 1g中的已擦除区的起始地址和结束地址。换句话说,新的已擦除区的起始地址和结束地址分别变为扇区“3002”和“1999”的地址。
通过以预定间隔重复上述备份过程,总在闪存1h的存储区中保留预定尺寸(对应于至少两个块)的已擦除区,并且新的备份数据从已擦除区的起始地址顺序地写入。
换句话说,在该实施例中,不是通过包括数据擦除和数据写入的简单重写过程来对闪存1h进行重写。相反,仅在不更新(重写)备份数据时执行需要较长处理时间的擦除过程,使得总是保留预定尺寸的已擦除区。因此,当实际上更新备份数据时,仅执行不耗时的写入过程。因此,可以减少重写存储在闪存1h中的备份数据所需的时间。
虽然针对闪存1h的每个单元限定的可重写次数不变,但是可以通过从已擦除区的起始地址顺序地写入新的备份数据来减小每个单元的耗损程度。因此,可以大大增加闪存1h的可重写次数的上限。例如,如果假设备份数据的总尺寸是2千字节,则对于16千字节的一个块可以确保与预定次数乘以8相对应的可重写次数。另外,对于全部4个块可以确保与预定次数乘以32相对应的可重写次数。
如上所述,根据本实施例,可以解决在将闪存用作备份存储器中的具体问题(即,重写时间长和可重写次数少)。
在本实施例中已说明,控制整个SRS气囊系统的SRS单元1被作为包括备份装置的车辆ECU的实例,该备份装置包括CPU 1d、RAM 1g和闪存1h。然而,该实施例的备份装置可应用于需要备份功能的任何车辆ECU(例如,引擎ECU 4),并且可应用于需要备份功能的任何电子装置。
应当清楚,本发明不限于上述实施例,而在不背离本发明的范围和精神的情况下,可以进行改进和改变。