本发明专利技术公开了一种实现FLASH芯片数据安全的方法,其特征在于,包括:步骤一,将FLASH芯片划分为用于存放有效标志结构的标志区、备用区和主用区,该有效标志结构包含主用区有效标志字段、主用区地址字段、数据长度字段和备用区有效标志字段;步骤二,将主用区当前的数据和待写的数据整合后的数据写入备用区,并改写有效标志结构的字段设置;及步骤三,将所述备用区当前的数据和待写的数据整合后的数据写入所述主用区,并改写所述有效标志结构的字段设置。本发明专利技术是一种能够有效保证FLASH芯片数据安全的方法,该方法克服了现有技术对FLASH写操作存在的数据破坏的缺点,使得系统在出现掉电等异常情况时仍可恢复FLASH的数据。
【技术实现步骤摘要】
本专利技术涉及一种实现FLASH芯片数据安全的方法,特别是涉及一种在对物理扇区与逻辑扇区大小不一致的FLASH芯片进行写操作时实现数据安全的方法。
技术介绍
FLASH芯片是一种常用的在掉电情况下依然能够保存数据的存储芯片,在嵌入式系统中应用得非常广泛。FLASH在物理介质上一般都是分扇区的,对FLASH的写操作都是以扇区为单位并且需要先擦除整个扇区,然后才能进行写操作,即,假设用户只需要写一个字节,也需要对整个扇区进行先擦后写的操作。对FLASH的写操作的步骤一般为首先获得目的地址所在扇区的数据,然后把扇区中目的区域的数据用待写的数据替代,这样就整合了老的数据和待写的数据,最后把整合后的数据再写入到FLASH。上层(指应用层)应用对FLASH操作的最小单位称之为逻辑扇区,比如,逻辑扇区定为1K,那么即使你只需要存储一个字节的数据,也需要占用1K的空间。由于FLASH的存储容量一般较小,而物理扇区一般较大,如果逻辑扇区定义为和物理扇区一样大,就将使得FLASH的利用率过低。比如,FLASH的容量为512K,物理扇区为8K,如果逻辑扇区也定义为8K,那么该FLASH最大只能存放512K/8K=64个信息块,即,应用最多能够操作64个信息块,这很显然浪费了许多FLASH的空间,为了解决这个问题,可以将逻辑扇区定义的小一点,比如1K,那么应用就能操作512个信息块了,因此一般在应用中逻辑扇区都定义得比物理扇区小。由于FLASH的读写数据较慢,而且是进行先擦后写的操作,因此如果在写的过程中发生掉电等异常,可能破坏了原来的数据,如果信息块较大,跨越了几个物理扇区时,可能部分丢失某个扇区的数据。
技术实现思路
本专利技术所要解决的技术问题在于提供一种实现FLASH芯片数据安全的方法,用于解决在系统出现掉电等异常情况时无法恢复物理扇区与逻辑扇区大小不一致的FLASH芯片数据的问题。为了实现上述目的,本专利技术提供了一种实现FLASH芯片数据安全的方法,其特征在于,包括步骤一,将FLASH芯片划分为用于存放有效标志结构的标志区、备用区和主用区,该有效标志结构包含主用区有效标志字段、主用区地址字段、数据长度字段和备用区有效标志字段;步骤二,将所述主用区当前的数据和待写的数据整合后的数据写入所述备用区,并改写所述有效标志结构的字段设置;及步骤三,将所述备用区当前的数据和待写的数据整合后的数据写入所述主用区,并改写所述有效标志结构的字段设置。所述的实现FLASH芯片数据安全的方法,其中,所述步骤一中,所述备用区有效标志字段为所述有效标志结构的最后一个字段。所述的实现FLASH芯片数据安全的方法,其中,所述步骤二中,还包括一备份所述主用区数据所在扇区数据的步骤,具体为备份从所述主用区扇区的开始到所述主用区扇区的结束区域内的数据。所述的实现FLASH芯片数据安全的方法,其中,所述步骤二中的改写所述有效标志结构的字段设置步骤具体为将所述主用区有效标志字段填无效,所述主用区地址字段填主用区的数据所占的第一个扇区的起始地址,所述数据长度字段填主用区的数据所占的最后一个扇区的下一个扇区的起始地址减去主用区的数据所占的第一个扇区的起始地址,所述备用区有效标志字段填有效。所述的实现FLASH芯片数据安全的方法,其中,在所述步骤三之前还包括一判断所述主用区有效标志字段是否为无效的步骤。所述的实现FLASH芯片数据安全的方法,其中,当所述主用区有效标志字段为无效时,还包括一判断所述备用区有效标志字段是否为有效的步骤,若为有效,则继续所述步骤三。所述的实现FLASH芯片数据安全的方法,其中,所述步骤三中,还包括一对所述主用区进行先擦除后写入的步骤。所述的实现FLASH芯片数据安全的方法,其中,所述步骤三中的将所述备用区当前的数据和待写的数据整合后的数据写入所述主用区的步骤又包括获取要写入数据至所述主用区的地址所在的扇区的数据;将该主用区的地址区域的数据替代为所述备用区中的数据,生成整合数据;写入所述整合数据至所述主用区。所述的实现FLASH芯片数据安全的方法,其中,所述步骤三中的改写所述有效标志结构的字段设置步骤具体为将所述主用区有效标志字段填有效,所述主用区地址字段填主用区的数据所占的第一个扇区的起始地址,所述数据长度字段填主用区的数据所占的最后一个扇区的下一个扇区的起始地址减去主用区的数据所占的第一个扇区的起始地址,所述备用区有效标志字段填无效。所述的实现FLASH芯片数据安全的方法,其中,所述标志区为一个或多个物理扇区。本专利技术是一种能够有效保证FLASH芯片数据安全的方法,该方法克服了现有技术对FLASH写操作存在的数据破坏的缺点,使得系统在出现掉电等异常情况时仍可恢复FLASH的数据。以下结合附图和具体实施例对本专利技术进行详细描述,但不作为对本专利技术的限定。附图说明图1为写FLASH芯片前的主用区的数据示意图;图2为写主用区扇区掉电时的主用区的数据示意图;图3为写主用区扇区掉电时的备用区的数据示意图;图4为写主用区扇区掉电恢复后的主用区的数据示意图;图5为本专利技术操作FLASH芯片前备份主用区所有数据后的备用区的数据示意图;图6为本专利技术实现FLASH芯片数据安全的方法流程示意图;图7为本专利技术实现数据安全性算法的流程示意图; 图8为本专利技术当发生异常时实现数据恢复的流程示意图。具体实施例方式请参阅图6所示,为本专利技术实现FLASH芯片数据安全的方法流程示意图,并结合图1-图5。图1描述了写FLASH芯片前的主用区的数据;图2描述了写主用区扇区掉电时的主用区的数据;图3描述了写主用区扇区掉电时的备用区的数据;图4描述了写主用区扇区掉电恢复后的主用区的数据;图5描述了本专利技术操作FLASH芯片前备份主用区所有数据后的备用区的数据。本专利技术的方法流程具体包括如下步骤步骤601,将FLASH划分为标志区、备用区和主用区;具体地,在FLASH中留出一个或多个物理扇区来存放有效标志结构,该物理扇区可称为标志区;留出一个足够大的区域作为备用区;剩下的区域作为主用区。划出一个或多个扇区来保存有效标志结构的原因在于如果将有效标志和数据放在同一个物理扇区中,当发生掉电等异常时候为刚写完有效标志结构时,将会导致数据不能恢复或恢复错误。因为此时有效标志是正常的,而数据是破坏的,这样在恢复数据时将导致恢复错误的数据。有效标志结构包含主用区有效标志、主用区地址、数据长度和备用区有效标志等几个字段。其中“备用区有效标志”字段是有效标志结构的最后一个字段,这样设置避免了当在写备用区的有效标志结构时发生掉电等异常时导致数据恢复的错误。如果“备用区有效标志”字段不是有效标志结构的最后一个字段,假如最后一个字段是“数据长度”字段,那么当掉电发生在刚刚写完“备用区有效标志”字段时,此时“备用区有效标志”字段有效,但“数据长度”字段是非法值,这将导致数据恢复错误。其中,当主用区的数据出现异常时,此时就需要通过备用区的数据来恢复主用区的数据,通过字段主用区地址可确定主用区的地址;字段数据长度则用于确定主用区需要恢复的数据的长度。步骤602,将数据写入备用区,即,将主用区当前的数据和待写的数据整合后的数据写入备用区;备用区的数据是主用区数据所在扇区的所有数据,而不仅仅是备份待写入的数据,从而避本文档来自技高网...
【技术保护点】
一种实现FLASH芯片数据安全的方法,其特征在于,包括:步骤一,将FLASH芯片划分为用于存放有效标志结构的标志区、备用区和主用区,该有效标志结构包含主用区有效标志字段、主用区地址字段、数据长度字段和备用区有效标志字段;步骤 二,将所述主用区当前的数据和待写的数据整合后的数据写入所述备用区,并改写所述有效标志结构的字段设置;及步骤三,将所述备用区当前的数据和待写的数据整合后的数据写入所述主用区,并改写所述有效标志结构的字段设置。
【技术特征摘要】
【专利技术属性】
技术研发人员:管冬根,李小伟,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:94[中国|深圳]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。