CN116974492B - 一种基于flash的里程数据存储方法、装置、设备及介质 - Google Patents
一种基于flash的里程数据存储方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116974492B CN116974492B CN202311219940.5A CN202311219940A CN116974492B CN 116974492 B CN116974492 B CN 116974492B CN 202311219940 A CN202311219940 A CN 202311219940A CN 116974492 B CN116974492 B CN 116974492B
- Authority
- CN
- China
- Prior art keywords
- mileage
- data
- sector
- storage area
- area
- 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
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000013500 data storage Methods 0.000 title claims description 26
- 230000008439 repair process Effects 0.000 claims abstract description 63
- 230000002159 abnormal effect Effects 0.000 claims abstract description 32
- 238000012545 processing Methods 0.000 claims abstract description 23
- 238000004891 communication Methods 0.000 claims description 8
- 230000005856 abnormality Effects 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 230000007246 mechanism Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及数据处理技术领域,尤其涉及一种基于FLASH的里程数据存储方法、装置、设备及介质,生成随机数,将用于存储里程数据的FLASH区域划分为第一存储区域、第二存储区域和异常处理区域;将接收到的里程数据交替存储至所述第一存储区域的扇区A和扇区B中;当检测到所述第一存储区域的所述扇区A或所述扇区B中存储的里程数据异常时,基于另一扇区的一级修复里程备份域恢复初始数据,并进行继续存储;当检测到所述第一存储区域损坏时,基于所述异常处理区域的二级修复里程备份域将存储区域切换至所述第二存储区域,并进行继续存储。从而通过冗余和容错机制可以更好的保护里程数据,最大程度发挥出FLASH的存储能力。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种基于FLASH的里程数据存储方法、装置、设备及介质。
背景技术
现有技术,车辆里程数据主要存储在EEPROM和FLASH中,由于可以单字节擦除,记录里程方式比较灵活。
但是,通过EEPROM存储车辆里程数据,价格优势不明显,并且不能很好利用微控制器内部的多余FLASH空间;而通过FLASH存储车辆里程数据,未对分区进行结构化设计管理,简单的存储管理在容错方面有一定缺陷,不能很好的保护和恢复里程数据值。
发明内容
为克服现有技术中的不足,本申请提供一种基于FLASH的里程数据存储方法、装置、设备及介质,能够提高里程数据存储的冗余和容错能力。
第一方面,本申请提供一种基于FLASH的里程数据存储方法,所述方法包括以下步骤:
将用于存储里程数据的FLASH区域划分为第一存储区域、第二存储区域和异常处理区域;其中,所述第一存储区域和所述第二存储区域的结构相同,并且均包括扇区A和扇区B,所述扇区A和所述扇区B均包括一级修复里程备份域;所述异常处理区域包括二级修复里程备份域;
将接收到的里程数据交替存储至所述第一存储区域的所述扇区A和所述扇区B中;
当检测到所述第一存储区域的所述扇区A或所述扇区B中存储的里程数据异常时,基于另一扇区的所述一级修复里程备份域恢复初始数据,并进行继续存储;
当检测到所述第一存储区域损坏时,基于所述异常处理区域的所述二级修复里程备份域将存储区域切换至所述第二存储区域,并进行继续存储。
在一种可能的实施方式中,所述扇区A和所述扇区B还均包括数据位域、数据域和状态域,所述数据位域的bit位域所述数据域的位置一一对应,所述数据域用于存储实际里程数据,所述状态域用指示所述扇区A或者所述扇区B的未使用、擦除、使用、写满中的任一状态。
在一种可能的实施方式中,所述将接收到的里程数据交替存储至所述第一存储区域的所述扇区A和所述扇区B中,包括以下步骤:
基于所述数据位域判断所述数据域的当前存储位置是否为最后一个里程数据的存储位置;
若所述数据域的当前存储位置不为最后一个里程数据的存储位置,将当前接收到的里程数据存储至该所述数据域的当前位置中;
若所述数据域的当前存储位置为最后一个里程数据的存储位置,将该扇区的状态域由使用状态更新为写满状态,并且将该扇区存储的最后一个里程数据存储到另一扇区的所述一级修复里程备份域中,以及将当前接收到的里程数据存储至另一扇区,将所述另一扇区的状态域由擦除状态更新为使用状态。
在一种可能的实施方式中,其中,在一扇区的状态域为使用状态并且当前存储位置达到设定阈值时,将另一扇区存储的里程数据擦除,状态域由写满状态更新为擦除状态。
在一种可能的实施方式中,所述当检测到所述第一存储区域的所述扇区A或所述扇区B中存储的里程数据异常时,基于另一扇区的所述一级修复里程备份域恢复初始数据,并进行继续存储,包括以下步骤:
从当前存储里程数据的所述第一存储区域的一扇区中读取里程数据;
按照设置的数据校验规则对读取的所述里程数据进行校验;
若校验结果异常,基于该扇区的所述一级修复里程备份域中存储的里程数据恢复初始数据,并进行继续存储。
在一种可能的实施方式中,所述当检测到所述第一存储区域损坏时,基于所述异常处理区域的所述二级修复里程备份域将存储区域切换至所述第二存储区域,并进行继续存储,包括以下步骤:
当检测到所述第一存储区域损坏时,读取所述第一存储区域存储的所有里程数据;
查找读取的所有里程数据的规律并确定一初始数据,并将确定的所述初始数据存储至所述异常处理区域的所述二级修复里程备份域中;
根据所述二级修复里程备份域中初始数据,将当前接收到的里程数据存储至所述第二存储区域中。
在一种可能的实施方式中,所述将待存储的重要数据按字节分散存储到所述安全存储区中之后,还包括以下步骤:
通过如下方式获取用于存储的里程数据:
对采集的里程信号进行处理,得到里程数据;其中,所述里程信号为CAN总线报文信号或者脉冲信号;
根据显示精度对得到的所述里程数据进行调整,并将调整精度之后的里程数据作为用于存储的里程数据。
第二方面,本申请提供一种基于FLASH的里程数据存储装置,所述装置包括:
划分模块,用于将用于存储里程数据的FLASH区域划分为第一存储区域、第二存储区域和异常处理区域;其中,所述第一存储区域和所述第二存储区域的结构相同,并且均包括扇区A和扇区B,所述扇区A和所述扇区B均包括一级修复里程备份域;所述异常处理区域包括二级修复里程备份域;
存储模块,用于将接收到的里程数据交替存储至所述第一存储区域的所述扇区A和所述扇区B中;
第一异常处理模块,用于当检测到所述第一存储区域的所述扇区A或所述扇区B中存储的里程数据异常时,基于另一扇区的所述一级修复里程备份域恢复初始数据,并进行继续存储;
第二异常处理模块,用于当检测到所述第一存储区域损坏时,基于所述异常处理区域的所述二级修复里程备份域将存储区域切换至所述第二存储区域,并进行继续存储。
第三方面,本申请提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如第一方面任一所述的基于FLASH的里程数据存储方法的步骤。
第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面任一所述的基于FLASH的里程数据存储方法的步骤。
本实施例提供的一种基于FLASH的里程数据存储方法、装置、设备及介质,将用于存储里程数据的FLASH区域划分为第一存储区域、第二存储区域和异常处理区域;其中,所述第一存储区域和所述第二存储区域的结构相同,并且均包括扇区A和扇区B,所述扇区A和所述扇区B均包括一级修复里程备份域;所述异常处理区域包括二级修复里程备份域;将接收到的里程数据交替存储至所述第一存储区域的所述扇区A和所述扇区B中;当检测到所述第一存储区域的所述扇区A或所述扇区B中存储的里程数据异常时,基于另一扇区的所述一级修复里程备份域恢复初始数据,并进行继续存储;当检测到所述第一存储区域损坏时,基于所述异常处理区域的所述二级修复里程备份域将存储区域切换至所述第二存储区域,并进行继续存储。从而通过冗余和容错机制可以更好的保护里程数据,最大程度发挥出FLASH的存储能力。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请一实施例所述基于FLASH的里程数据存储方法的流程图;
图2示出了本申请一实施例所述数据位域的bit位与所述数据域的位置一一对应的示意图;
图3示出了本申请一实施例所述将接收到的里程数据交替存储至所述第一存储区域的所述扇区A和所述扇区B中的流程图;
图4示出了本申请一实施例里程数据异常时的处理流程图;
图5示出了本申请一实施例第一存储区域损坏时的处理流程图;
图6示出了本申请一实施例所述基于FLASH的里程数据存储装置的结构示意图;
图7示出了本申请一实施例所述电子设备的结构框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。 应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。 此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
目前,通过FLASH存储车辆里程数据的方式,由于未对分区进行结构化设计管理,所以在存储管理容错方面存在一定的缺陷,不能很好的保护和恢复里程数据值。基于此,本申请提供一种基于FLASH的里程数据存储方法、装置、设备及介质,能够提高里程数据存储的冗余和容错能力。
在一实施例中,参见说明书附图1,本申请提供的一种基于FLASH的里程数据存储方法,所述方法包括以下步骤:
S1、将用于存储里程数据的FLASH区域划分为第一存储区域、第二存储区域和异常处理区域;其中,所述第一存储区域和所述第二存储区域的结构相同,并且均包括扇区A和扇区B,所述扇区A和所述扇区B均包括一级修复里程备份域;所述异常处理区域包括二级修复里程备份域;
S2、将接收到的里程数据交替存储至所述第一存储区域的所述扇区A和所述扇区B中;
S3、当检测到所述第一存储区域的所述扇区A或所述扇区B中存储的里程数据异常时,基于另一扇区的所述一级修复里程备份域恢复初始数据,并进行继续存储;
S4、当检测到所述第一存储区域损坏时,基于所述异常处理区域的所述二级修复里程备份域将存储区域切换至所述第二存储区域,并进行继续存储。
在本申请实施例中,所述基于FLASH的里程数据存储方法可以运行于终端设备或者是服务器;其中,终端设备可以为本地应用软件,当基于FLASH的里程数据存储方法运行于服务器时,该基于FLASH的里程数据存储方法则可以基于云交互系统来实现与执行,其中,云交互系统至少包括服务器和客户端设备(也即应用软件)。具体的,以应用于服务器为例,当所述基于FLASH的里程数据存储方法运行于服务器时,能够通过冗余和容错机制更好的保护里程数据,可以最大程度发挥出FLASH的存储能力。
具体的,在步骤S1中,用于FLASH存储的里程数据可以是基于数据采集模块通过捕获外部输入信号得到的。例如,在一实施例中,所述外部输入信号为CAN总线报文信号,则数据采集模块能够直接按照CAN总线报文信号换算关系进行转化,得到本次里程值;在另一实施例中,所述外部输入信号为脉冲信号,则数据采集模块能够根据脉冲计算速度,依据时间和速度计算本次里程值。另外,在得到本次里程值之后,还需要按照线性计算公式计算出累计里程数据值,作为用于FLASH存储的里程数据。其中,CAN总线报文信号换算关系、脉冲计算公式以及线性计算公式应为本领域技术人员所熟知的技术手段,在此不做赘述。
需要说明的是,通过线性公式得到的累计里程数据值的精度较高,如果直接用于FLASH存储,则存储的数据量会被大大限制。所以,在本申请中,在存储里程数据时,并非是按照此时的精度进行数据存储的,而是只需在用户显示的精度基础上扩大一个量级的精度进行数据存储即可。例如,用户显示的精度为0.1公里,则FLASH存储的精度量级为0.01公里,若通过线性公式得到的累计里程数据值为0.12345公里,则FLASH最终存储的里程数据值为0.12公里。
在本申请中,FLASH所述划分出的第一存储区域和第二存储区域的结构相同,均包括扇区A和扇区B。在一实施例中,将所述第一存储区域作为里程数据的主存储区域,将所述第二存储区域作为里程数据的备存储区域,当所述第一存储区域出现严重扇区问题时,启用第二存储区域,从而达到功能安全的要求。
其中,所述扇区A和所述扇区B的结构相同,用于交替存储里程数据。具体的,所述扇区A和所述扇区B均包括数据位域、数据域、状态域和一级修复里程备份域,所述状态域用于指示扇区A和扇区B的未使用、擦除、使用、写满四个状态;所述数据位域通过bit位与所述数据域的位置进行一一对应,即通过所述数据位域的bit位的位置坐标就可以找到需要存储里程数据的位置,也可以通过bit位的数值确定对应数据域的区域是否写入过里程数据;所述数据域主要是存储实际的里程数据;所述一级修复里程备份域用于每次更换扇区存储里程数据时,将上一个扇区的最后里程数据备份到此区域。其中,所述数据位域通过bit位与所述数据域的位置进行一一对应的示意图可以参见说明书附图2。
参见说明书附图3,在步骤S2中,所述将接收到的里程数据交替存储至所述第一存储区域的所述扇区A和所述扇区B中,包括以下步骤:
S201、基于所述数据位域判断所述数据域的当前存储位置是否为最后一个里程数据的存储位置;
S202、若所述数据域的当前存储位置不为最后一个里程数据的存储位置,将当前接收到的里程数据存储至该所述数据域的当前位置中;
S203、若所述数据域的当前存储位置为最后一个里程数据的存储位置,将该扇区的状态域由使用状态更新为写满状态,并且将该扇区存储的最后一个里程数据存储到另一扇区的所述一级修复里程备份域中,以及将当前接收到的里程数据存储至另一扇区,将所述另一扇区的状态域由擦除状态更新为使用状态。
即,在步骤S201-步骤S203中,在进行里程数据存储时,其主要逻辑为,根据数据位域的全局变量记录值判定当前存储位置是否为最后一个里程数据的存储位置,如果是最后一个里程数据的存储位置,则说明本扇区已经写满,将该扇区的状态域的标识由使用状态更新为写满状态,并且对写满里程数据的另一个扇区进行擦除处理,以存储当前接收到的里程数据,同时还需要把该扇区最后存储的里程数据放到另一个扇区的一级修复里程备份域中,完成扇区的切换;
如果不是最后一个里程数据的存储位置,则属于正常的存储数据结构,通过数据位域的数值找到数据域的地址位置,进而把需要存储的里程数据存储至该数据域的地址中,同时清楚数据位域对应的数值,表示此区域写入过数据。
其中,需要说明的是,在其他实施例中,并不是只有在本扇区写满里程数据时,才对另一扇区进行擦除处理;而是优选的,在本扇区写满里程数据之前,就对另一扇区进行擦除处理,以使另一扇区能够及时完成存储当前接收到的里程数据的任务。
例如,在一扇区的状态域为使用状态并且当前存储位置达到设定阈值时,将另一扇区存储的里程数据擦除,状态域由写满状态更新为擦除状态。在一实施例中,当前,扇区A的状态域为使用状态,扇区B的状态域为写满状态,当扇区A的已存储量为其全部存储量的75%时,即达到设定阈值,就将扇区B中存满的里程数据全部擦除,当扇区A存满时,就可以直接将当前接收到的里程数据存储至已经擦除好的扇区B中。
参见说明书附图4,在步骤S3中,所述当检测到所述第一存储区域的所述扇区A或所述扇区B中存储的里程数据异常时,基于另一扇区的所述一级修复里程备份域恢复初始数据,并进行继续存储,包括以下步骤:
S301、从当前存储里程数据的所述第一存储区域的一扇区中读取里程数据;
S302、按照设置的数据校验规则对读取的所述里程数据进行校验;
S303、若校验结果异常,基于该扇区的所述一级修复里程备份域中存储的里程数据恢复初始数据,并进行继续存储。
即,在步骤S301-步骤S303中,在通过FLASH存储里程数据时,还需要实时对FLASH存储的里程数据进行校验,以判断FLASH存储的里程数据是否异常。在一实施例中,可以从状态域为使用状态的扇区A读取其存储的里程数据并进行校验,以判断所述扇区A存储的里程数据是否异常,若判断里程数据异常,则将扇区B的一级修复里程备份域中存储的里程数据作为初始数据,将当前数据位域值恢复到正常数据并进行存储。
参见说明书附图5,在步骤S4中,所述当检测到所述第一存储区域损坏时,基于所述异常处理区域的所述二级修复里程备份域将存储区域切换至所述第二存储区域,并进行继续存储,包括以下步骤:
S401、当检测到所述第一存储区域损坏时,读取所述第一存储区域存储的所有里程数据;
S402、查找读取的所有里程数据的规律并确定一初始数据,并将确定的所述初始数据存储至所述异常处理区域的所述二级修复里程备份域中;
S403、根据所述二级修复里程备份域中初始数据,将当前接收到的里程数据存储至所述第二存储区域中。
即,在步骤S401-步骤S403中,当监测到第一存储区域损坏时,例如,在一实施例中,通过硬件扫描模块生成的第一存储区域报错信息来判断第一存储区域是否损坏。当第一存储区域损坏时,需要读取其所述扇区A和所述扇区B中存储的所有里程数据,根据里程数据的规律恢复一个有意义的数据,作为初始数据,并存储至异常处理区域的二级修复里程备份域中,进而根据所述二级修复里程备份域中存储的初始数据,将当前接收到的里程数据存储至第二存储区域中,然后正常的流程执行里程数据的存储。
需要说明的是,在里程数据异常切换扇区时,或者某一存储区域损坏切换存储区域时,得到的初始数据并非准确,所以本申请对于FLASH存储里程数据具有一定的容错机制,但是通过这样的冗余机制进行数据恢复,可以更好的保护里程数据,避免里程数据丢失。
可见,本申请提供的一种基于FLASH的里程数据存储方法,使用软件结构思想对FLASH扇区进行结构设计,并且使用bit位与数据结合的方式管理里程数据在FLASH中的存储规则,从而最大限度发挥FLASH的存储能力,同时采用冗余和数据恢复的异常处理机制,保证了数据的准确性和抗干扰性。
基于同一发明构思,本申请实施例中还提供了一种基于FLASH的里程数据存储装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述一种基于FLASH的里程数据存储方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如说明书附图6所示,本申请实施例提供的一种基于FLASH的里程数据存储装置,所述装置包括:
划分模块601,用于将用于存储里程数据的FLASH区域划分为第一存储区域、第二存储区域和异常处理区域;其中,所述第一存储区域和所述第二存储区域的结构相同,并且均包括扇区A和扇区B,所述扇区A和所述扇区B均包括一级修复里程备份域;所述异常处理区域包括二级修复里程备份域;
存储模块602,用于将接收到的里程数据交替存储至所述第一存储区域的所述扇区A和所述扇区B中;
第一异常处理模块603,用于当检测到所述第一存储区域的所述扇区A或所述扇区B中存储的里程数据异常时,基于另一扇区的所述一级修复里程备份域恢复初始数据,并进行继续存储;
第二异常处理模块604,用于当检测到所述第一存储区域损坏时,基于所述异常处理区域的所述二级修复里程备份域将存储区域切换至所述第二存储区域,并进行继续存储。
在一实施例中,所述扇区A和所述扇区B还均包括数据位域、数据域和状态域,所述数据位域的bit位与所述数据域的位置一一对应,所述数据域用于存储实际里程数据,所述状态域用指示所述扇区A或者所述扇区B的未使用、擦除、使用、写满中的任一状态。
在一实施例中,所述存储模块602将接收到的里程数据交替存储至所述第一存储区域的所述扇区A和所述扇区B中,包括:
基于所述数据位域判断所述数据域的当前存储位置是否为最后一个里程数据的存储位置;
若所述数据域的当前存储位置不为最后一个里程数据的存储位置,将当前接收到的里程数据存储至该所述数据域的当前位置中;
若所述数据域的当前存储位置为最后一个里程数据的存储位置,将该扇区的状态域由使用状态更新为写满状态,并且将该扇区存储的最后一个里程数据存储到另一扇区的所述一级修复里程备份域中,以及将当前接收到的里程数据存储至另一扇区,将所述另一扇区的状态域由擦除状态更新为使用状态。
在一实施例中,所述存储模块602用于在一扇区的状态域为使用状态并且当前存储位置达到设定阈值时,将另一扇区存储的里程数据擦除,状态域由写满状态更新为擦除状态。
在一实施例中,所述第一异常处理模块603当检测到所述第一存储区域的所述扇区A或所述扇区B中存储的里程数据异常时,基于另一扇区的所述一级修复里程备份域恢复初始数据,并进行继续存储,包括:
从当前存储里程数据的所述第一存储区域的一扇区中读取里程数据;
按照设置的数据校验规则对读取的所述里程数据进行校验;
若校验结果异常,基于该扇区的所述一级修复里程备份域中存储的里程数据恢复初始数据,并进行继续存储。
在一实施例中,所述第二异常处理模块604当检测到所述第一存储区域损坏时,基于所述异常处理区域的所述二级修复里程备份域将存储区域切换至所述第二存储区域,并进行继续存储,包括:
当检测到所述第一存储区域损坏时,读取所述第一存储区域存储的所有里程数据;
查找读取的所有里程数据的规律并确定一初始数据,并将确定的所述初始数据存储至所述异常处理区域的所述二级修复里程备份域中;
根据所述二级修复里程备份域中初始数据,将当前接收到的里程数据存储至所述第二存储区域中。
在一实施例中,所述装置还包括:
获取模块,用于对采集的里程信号进行处理,得到里程数据;以及根据显示精度对得到的所述里程数据进行调整,并将调整精度之后的里程数据作为用于存储的里程数据。其中,所述里程信号为CAN总线报文信号或者脉冲信号。
本申请提供的一种基于FLASH的里程数据存储装置,通过划分模块将用于存储里程数据的FLASH区域划分为第一存储区域、第二存储区域和异常处理区域;其中,所述第一存储区域和所述第二存储区域的结构相同,并且均包括扇区A和扇区B,所述扇区A和所述扇区B均包括一级修复里程备份域;所述异常处理区域包括二级修复里程备份域;通过存储模块将接收到的里程数据交替存储至所述第一存储区域的所述扇区A和所述扇区B中;通过第一异常处理模块当检测到所述第一存储区域的所述扇区A或所述扇区B中存储的里程数据异常时,基于另一扇区的所述一级修复里程备份域恢复初始数据,并进行继续存储;通过第二异常处理模块当检测到所述第一存储区域损坏时,基于所述异常处理区域的所述二级修复里程备份域将存储区域切换至所述第二存储区域,并进行继续存储。从而通过冗余和容错机制可以更好的保护里程数据,最大程度发挥出FLASH的存储能力。
基于本发明的同一构思,说明书附图7所示,本申请实施例提供的一种电子设备700的结构,该电子设备700包括:至少一个处理器701,至少一个网络接口704或者其他用户接口703,存储器705,至少一个通信总线702。通信总线702用于实现这些组件之间的连接通信。该电子设备700可选的包含用户接口703,包括显示器(例如,触摸屏、LCD、CRT、全息成像(Holographic)或者投影(Projector)等),键盘或者点击设备(例如,鼠标,轨迹球(trackball),触感板或者触摸屏等)。
存储器705可以包括只读存储器和随机存取存储器,并向处理器701提供指令和数据。存储器705的一部分还可以包括非易失性随机存取存储器(NVRAM)。
在一些实施方式中,存储器705存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统7051,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;
应用程序模块7052,包含各种应用程序,例如桌面(launcher)、媒体播放器(MediaPlayer)、浏览器(Browser)等,用于实现各种应用业务。
在本申请实施例中,通过调用存储器705存储的程序或指令,处理器701用于执行如一种基于FLASH的里程数据存储方法中的步骤,通过冗余和容错机制可以更好的保护里程数据,最大程度发挥出FLASH的存储能力。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如基于FLASH的里程数据存储方法中的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述基于FLASH的里程数据存储方法。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (8)
1.一种基于FLASH的里程数据存储方法,其特征在于,所述方法包括以下步骤:
将用于存储里程数据的FLASH区域划分为第一存储区域、第二存储区域和异常处理区域;其中,所述第一存储区域和所述第二存储区域的结构相同,并且均包括扇区A和扇区B,所述扇区A和所述扇区B均包括一级修复里程备份域;所述异常处理区域包括二级修复里程备份域;
将接收到的里程数据交替存储至所述第一存储区域的所述扇区A和所述扇区B中;
当检测到所述第一存储区域的所述扇区A或所述扇区B中存储的里程数据异常时,基于另一扇区的所述一级修复里程备份域恢复初始数据,并进行继续存储;其中,所述一级修复里程备份域备份有另一扇区存储的最后一个里程数据;
当检测到所述第一存储区域损坏时,基于所述异常处理区域的所述二级修复里程备份域将存储区域切换至所述第二存储区域,并进行继续存储;
其中,所述当检测到所述第一存储区域的所述扇区A或所述扇区B中存储的里程数据异常时,基于另一扇区的所述一级修复里程备份域恢复初始数据,并进行继续存储,包括从当前存储里程数据的所述第一存储区域的一扇区中读取里程数据;按照设置的数据校验规则对读取的所述里程数据进行校验;若校验结果异常,基于该扇区的所述一级修复里程备份域中存储的里程数据恢复初始数据,并进行继续存储;
其中,所述当检测到所述第一存储区域损坏时,基于所述异常处理区域的所述二级修复里程备份域将存储区域切换至所述第二存储区域,并进行继续存储,包括当检测到所述第一存储区域损坏时,读取所述第一存储区域存储的所有里程数据;查找读取的所有里程数据的规律并确定一初始数据,并将确定的所述初始数据存储至所述异常处理区域的所述二级修复里程备份域中;根据所述二级修复里程备份域中初始数据,将当前接收到的里程数据存储至所述第二存储区域中。
2.根据权利要求1所述一种基于FLASH的里程数据存储方法,其特征在于,所述扇区A和所述扇区B还均包括数据位域、数据域和状态域,所述数据位域的bit位与所述数据域的位置一一对应,所述数据域用于存储实际里程数据,所述状态域用指示所述扇区A或者所述扇区B的未使用、擦除、使用、写满中的任一状态。
3.根据权利要求2所述一种基于FLASH的里程数据存储方法,其特征在于,所述将接收到的里程数据交替存储至所述第一存储区域的所述扇区A和所述扇区B中,包括以下步骤:
基于所述数据位域判断所述数据域的当前存储位置是否为最后一个里程数据的存储位置;
若所述数据域的当前存储位置不为最后一个里程数据的存储位置,将当前接收到的里程数据存储至该所述数据域的当前位置中;
若所述数据域的当前存储位置为最后一个里程数据的存储位置,将该扇区的状态域由使用状态更新为写满状态,并且将该扇区存储的最后一个里程数据存储到另一扇区的所述一级修复里程备份域中,以及将当前接收到的里程数据存储至另一扇区,将所述另一扇区的状态域由擦除状态更新为使用状态。
4.根据权利要求3所述一种基于FLASH的里程数据存储方法,其特征在于,其中,在一扇区的状态域为使用状态并且当前存储位置达到设定阈值时,将另一扇区存储的里程数据擦除,状态域由写满状态更新为擦除状态。
5.根据权利要求4所述一种基于FLASH的里程数据存储方法,其特征在于,通过如下方式获取用于存储的里程数据:
对采集的里程信号进行处理,得到里程数据;其中,所述里程信号为CAN总线报文信号或者脉冲信号;
根据显示精度对得到的所述里程数据进行调整,并将调整精度之后的里程数据作为用于存储的里程数据。
6.一种基于FLASH的里程数据存储装置,其特征在于,所述装置包括:
划分模块,用于将用于存储里程数据的FLASH区域划分为第一存储区域、第二存储区域和异常处理区域;其中,所述第一存储区域和所述第二存储区域的结构相同,并且均包括扇区A和扇区B,所述扇区A和所述扇区B均包括一级修复里程备份域;所述异常处理区域包括二级修复里程备份域;
存储模块,用于将接收到的里程数据交替存储至所述第一存储区域的所述扇区A和所述扇区B中;
第一异常处理模块,用于当检测到所述第一存储区域的所述扇区A或所述扇区B中存储的里程数据异常时,基于另一扇区的所述一级修复里程备份域恢复初始数据,并进行继续存储,包括从当前存储里程数据的所述第一存储区域的一扇区中读取里程数据;按照设置的数据校验规则对读取的所述里程数据进行校验;若校验结果异常,基于该扇区的所述一级修复里程备份域中存储的里程数据恢复初始数据,并进行继续存储;
第二异常处理模块,用于当检测到所述第一存储区域损坏时,基于所述异常处理区域的所述二级修复里程备份域将存储区域切换至所述第二存储区域,并进行继续存储,包括当检测到所述第一存储区域损坏时,读取所述第一存储区域存储的所有里程数据;查找读取的所有里程数据的规律并确定一初始数据,并将确定的所述初始数据存储至所述异常处理区域的所述二级修复里程备份域中;根据所述二级修复里程备份域中初始数据,将当前接收到的里程数据存储至所述第二存储区域中。
7.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至5任一所述的基于FLASH的里程数据存储方法的步骤。
8.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至5任一所述的基于FLASH的里程数据存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311219940.5A CN116974492B (zh) | 2023-09-21 | 2023-09-21 | 一种基于flash的里程数据存储方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311219940.5A CN116974492B (zh) | 2023-09-21 | 2023-09-21 | 一种基于flash的里程数据存储方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116974492A CN116974492A (zh) | 2023-10-31 |
CN116974492B true CN116974492B (zh) | 2023-12-12 |
Family
ID=88485292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311219940.5A Active CN116974492B (zh) | 2023-09-21 | 2023-09-21 | 一种基于flash的里程数据存储方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116974492B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5265230A (en) * | 1990-08-29 | 1993-11-23 | Hewlett-Packard Company | Method and apparatus for determining sector status in a data storage device by writing a status of read-only, writable, or obliterated in an error recovery area of each sector |
CN103176752A (zh) * | 2012-07-02 | 2013-06-26 | 晶天电子(深圳)有限公司 | 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器 |
CN104484289A (zh) * | 2014-12-19 | 2015-04-01 | 武汉长江通信智联技术有限公司 | 一种基于扇区的嵌入式系统写保护的装置以及方法 |
CN106502839A (zh) * | 2016-10-27 | 2017-03-15 | 武汉奥泽电子有限公司 | 一种基于汽车BCMFlash的存储方法及系统 |
CN112100184A (zh) * | 2020-10-26 | 2020-12-18 | 上海擎感智能科技有限公司 | 车辆总里程数据存储方法和计算机存储介质 |
CN116721483A (zh) * | 2023-05-29 | 2023-09-08 | 重庆长安汽车股份有限公司 | 车辆里程值的更新方法、装置、设备、存储介质和车辆 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2954538B1 (fr) * | 2009-12-23 | 2020-04-17 | Thales | Securisation de l'effacement d'une memoire de type flashprom. |
-
2023
- 2023-09-21 CN CN202311219940.5A patent/CN116974492B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5265230A (en) * | 1990-08-29 | 1993-11-23 | Hewlett-Packard Company | Method and apparatus for determining sector status in a data storage device by writing a status of read-only, writable, or obliterated in an error recovery area of each sector |
CN103176752A (zh) * | 2012-07-02 | 2013-06-26 | 晶天电子(深圳)有限公司 | 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器 |
CN104484289A (zh) * | 2014-12-19 | 2015-04-01 | 武汉长江通信智联技术有限公司 | 一种基于扇区的嵌入式系统写保护的装置以及方法 |
CN106502839A (zh) * | 2016-10-27 | 2017-03-15 | 武汉奥泽电子有限公司 | 一种基于汽车BCMFlash的存储方法及系统 |
CN112100184A (zh) * | 2020-10-26 | 2020-12-18 | 上海擎感智能科技有限公司 | 车辆总里程数据存储方法和计算机存储介质 |
CN116721483A (zh) * | 2023-05-29 | 2023-09-08 | 重庆长安汽车股份有限公司 | 车辆里程值的更新方法、装置、设备、存储介质和车辆 |
Also Published As
Publication number | Publication date |
---|---|
CN116974492A (zh) | 2023-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111104244B (zh) | 用于在存储阵列组中重建数据的方法和设备 | |
US10459814B2 (en) | Drive extent based end of life detection and proactive copying in a mapped RAID (redundant array of independent disks) data storage system | |
JP4901987B1 (ja) | 記憶装置、電子機器及び誤りデータの訂正方法 | |
US5581690A (en) | Method and apparatus for preventing the use of corrupt data in a multiple disk raid organized storage system | |
KR101870521B1 (ko) | 스토리지 저널링을 개선하는 방법 및 시스템 | |
CN108646982B (zh) | 一种基于ubifs的数据自动修复方法及装置 | |
US8489916B2 (en) | Multi-disk fault-tolerant system, method for generating a check block, and method for recovering a data block | |
US20140068208A1 (en) | Separately stored redundancy | |
US6708294B1 (en) | Cache memory apparatus and computer readable recording medium on which a program for controlling a cache memory is recorded | |
US8996826B2 (en) | Techniques for system recovery using change tracking | |
JPH07500203A (ja) | ロールバックのためのデータ・バックアップ・システム | |
KR102031606B1 (ko) | 버저닝된 메모리 구현 | |
CN105468479B (zh) | 一种磁盘阵列raid坏块处理方法及装置 | |
CN111045870B (zh) | 一种保存与恢复元数据的方法、装置和介质 | |
CN106959912B (zh) | 磁盘检测方法及装置 | |
CN113227959A (zh) | 具有读取错误处理的存储器控制器 | |
CN105045685A (zh) | 缓存数据的备份方法及装置、缓存数据的恢复方法及装置 | |
CN111813609A (zh) | 一种存储介质中数据恢复方法、数据恢复系统及相关设备 | |
CN107992268B (zh) | 一种坏块标记的方法及相关装置 | |
CN110597779A (zh) | 一种分布式文件系统中的数据读写方法及相关装置 | |
CN111816239B (zh) | 磁盘检测方法、装置、电子设备及机器可读存储介质 | |
CN116974492B (zh) | 一种基于flash的里程数据存储方法、装置、设备及介质 | |
US20210232466A1 (en) | Storage system and restore control method | |
CN111428280B (zh) | SoC安全芯片密钥信息完整性存储及错误自修复方法 | |
US7577804B2 (en) | Detecting data integrity |
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 |