对产品中闪存数据的防错、纠错方法技术

技术编号:2918590 阅读:203 留言:0更新日期:2012-04-11 18:40
一种对产品中的闪存数据的防错、纠错方法,包括TTPCOM方案中的初始化程序和记录数据写入闪存的状态机程序,特点是甲.设步骤a↓[0],开始写数据以链接S↓[12]、a↓[1];乙.在闪存初始化程序S↓[8]与S↓[2]之间及S↓[8]与S↓[12]之间分别插入步骤S↓[8-2]和S↓[8-1]、S↓[9]、S↓[10]与S↓[11];其中:S↓[8-1]“上一记录的地址”处于预设范围?如果不是,执行S↓[8-2],擦除活性段数据,跳回S↓[2];若是,执行S↓[9].检查备用段数据,执行S↓[10].判断备用段数据是全“1”?若不是,执行S↓[11]擦除备用数据段数据,执行S↓[12];否则直接执行S↓[12];丙.在TPPCOM状态机方案中,在步骤c.和e.之间插入步骤d.检查闪存中将要写入的区间数据是否全为“1”?以及在步骤f.与h.之间插入步骤g.检查闪存中写入数据前、后的校验和是否相等。本发明专利技术使闪存数据出错率由40%降至1%。

【技术实现步骤摘要】

本专利技术涉及一种防止产品存储元器件闪存中保存的数据由外界影响而出错的方法,更具体地说,是关于提高产品中闪存的抗干扰能力,对其存储数据的防错、纠错的方法。
技术介绍
在工业级产品的运行过程中,产品存储元器件(Memory)闪存(FLASH)中所保存的数据常常由于外界环境的影响而出错(也就是常见的“跑飞”)现象。这些外界环境包括电磁辐射、温度变化、电压冲击以及频繁的通电、断电等因素,导致FLASH中的某些“位”(bit)由“1”变成“0”,从而引起产品不能正常运行。严重的还会导致产品不能开机,形成“废品”,增加了返修率,影响产品的声誉。现以应用于GSM通讯模块(GSM Wireless Module)中的存储器元件(FLASH,闪存)为例,该系列产品的解决方案如下a.硬件方案采用美国模拟器件公司(Analog Deviec Incorporstian ADI)的芯片组,其中数字器件采用AD6525+ARM7TDMI模拟器件采用AD6533,存储器件部分采用Inte MCP(Intel3208);b.软件方案采用英国TTPCOM公司提供的基于KADAK嵌入式操作系统的平台。在对产品的解决方案中,对FLASH的操作概括为以下两点1、系统把FLASH逻辑映射为四个不同的区域程序代码区(CODEAPEA)11、文件系统区12(FILESYSTEM)、用户数据区(NVRAMDATA)13,保留区(RESERVATIONAPEA)14。每个区域都有一定的空间,比如文件系统区12为64kb,用户数据区13为512kb等,FLASH的起始地址是0x01000000,如图1-1所示2、进行在图1-1的逻辑映射结构中,用户数据区(NVRAMDATA)13是通讯模块工作过程中需要频繁进行读、写和擦除操作的区域。为了延长FLASH的读、写的次数以及秉承“用户数据区的空间不能尽耗”的原则,英国TTPCOM公司将NVRAM区域的闪存储器件FLASH在逻辑上再分成了四个不同段(SEGMENG),每个段包含相同大小的扇区(BLOK),详细的结构如图1-2所示。其中,活性数据段(ACTIVE SEGMENT)131与备用数据段(AVAILABLESEGMENT)132的数据会进行互换。其中,ACTIVE SEGMENT是程序正在使用的数据段,而ACTIVE SEGMENT是用于数据备份的段当ACTIVESEGMENT的数据已经填满了整个段的空间之后,程序会将有效的数据拷贝到AVAILABLE SEGMENT,其过程如图1-3所示。图1-3中的彩条所代表的是英国TTPCOM公司所定义的一笔数据记录,其数据结构如图1-4所示。所有的数据记录都是按照图1-5所示的状态机(State Machine)写入用户区13内。上述的FLASH逻辑结构与操作流程在正常情况下不会出现问题。但是,从本专利技术专利申请人所使用的产品手机的应用结果来看,“FLASH跑飞”的现象比较严重(比例为返修产品的40%左右)。FLASH中保存的出错数据大致可以归纳为图1-6与图1-7所示。为什么会出现这样的情况呢?经过反复研究后发现,这些出错的数据(位)都是由“1”变成了“0”,而在恶劣的工业控制环境中,FLASH元器件的电气性能没有办法得到保证,出现这样的情况正如Intel售后支持工程师所说“也是可以理解的”。下面,再进一步分析英国TTPCOM公司在FLASH初始化过程中的方案,如图1-8所示。该初始化流程没有对备用数据段131进行检查,如此,会造成什么样的结果呢?因为FLASH(闪存)中的数据(位)在“写”操作的时候,PROGRAMME只能由“1”写成“0”,却不能由“0”写成“1”,因此,如果该区域由“1”变成了“0”,在“写”操作时就没有办法再写成“1”。
技术实现思路
综上所述,如何克服现有产品中使用闪存(FLASH)作为存储元器件常因运行过程中受外界环境的影响而出错的困扰,乃是本专利技术所要解决的技术问题,为此,本专利技术的目的在于提供一种。实现本专利技术的目的技术构思是依据闪存中的数据位在“写”操作时,只能由“1”写成“0”而不能由“0”写成“1”的特性来制定技术方案,并据此,对现有由英国TTPCOM公司设计的对闪存进行初始化程序,以及写入闪存的数据记录结构所使用的状态机程序的改进。概况起来,本专利技术的技术方案为1、根据本专利技术的一种对产品中的闪存数据防错进行闪存初始化方法,其步骤包括执行TTPCOM方案之S1.硬件重新启动,S2.初始化闪存,S3.判断闪存的用户数据区的第一个数据段的标志位是ACTIVE?如果标志位是ACTIVE,执行S4;否则执行S5,S4.将第二个数据段置为AVAILABLE,执行S8,S5.判断闪存的用户数据区的第二个数据段的标志位是ACTIVE?如果标志位是ACTIVE,执行S6;否则执行S7,S6.将第一个数据段置为AVAILABLE,执行S8,S7.将第一个数据段设置成ACTIVE,第二个数据段设置成AVAILABLE,并擦除ACTIVE数据段的数据,S8.遍历ACTIVE数据段的所有数据,以及S12.闪存初始化结束,特点是,在S8,和S12间插入S9.检查AVAILABLE段的数据,S10.判断AVAILABLE段的数据是否为全“1”?如果是全“1”,直接执行S12;否则执行S11,S11.擦除AVAILABLE段的数据,之后执行S12。2、根据本专利技术的一种对产品中的闪存数据防错的将数据记录写入闪存的状态机,包括依次链接,并首尾闭合,形成闭环运作的TTPCOM的方案具有步骤a.初始化状态,b.写入记录头信息,c.写入记录状态位,e.写入记录数据,f.写入记录结束标记,h.标记原有失效,链接步骤a,其特点是,还有链接步骤c、e的步骤d.检查闪存中将要写入的区间是否全“1”以及链接步骤f、h的步骤g.检查闪存的写数据前、后的校验和是否相等。3、根据同一个总的专利技术构思,将原有TTPCOM之对闪存进行初始化方案和对闪存写入数据记录的状态机运行方案合并成一个总体方案,并对之进行改进,形成本专利技术的一种对产品中的闪存数据进行防错、纠错的方法,其步骤包括TTPCOM闪存初始化方案,该方案具有步骤S1.硬件重新启动,S2.初始化闪存,S3.判断闪存的用户数据区的第一个数据段的标志位是ACTIVE?如果标志位是ACTIVE,执行S4;否则执行S5,S4.将第一个数据段置为AVAILABLE,执行S8,S5.判断闪存的用户数据区的第二个数据的标志位是ACTIVE?如果标志位是ACTIVE,执行S6;否则执行S7,S6.将第一个的数据段是为AVAILABLE,执行S8,S7.将第一个数据段设置成ACTIVE,第二个数据设置成AVAILABLE,并擦除ACTIVE数据段的数据,S8.遍历ACTIVE数据段的所有数据,以及S12.闪存初始化结束,和TTPCOM闪存写入数据记录的状态机方案,该方案具有依次链接,并首尾闭合链接的步骤a.初始化状态,b.写入记录头信息;e.写入记录数据,f.写入记录结束标记,h.标记原有记录失效,链接步骤a,特点是,甲.在闪存TTPCOM初始化方案与闪存TTPCOM状态机方案之间设有步骤a0.开始写数据记录,以链接步骤S12.闪存初始化本文档来自技高网
...

【技术保护点】
一种对产品中的闪存数据防错的闪存初始化方法,其依次步骤包括:S↓[1].硬件重新启动,S↓[2].初始化闪存,S↓[3].判断闪存的用户数据区的第一个数据段的标志位是ACTIVE?如果标志位是ACTIVE,执行S↓[ 4];否则执行S↓[5],S↓[4].将第二个数据段置为AVAILABLE,执行S↓[8],S↓[5].判断闪存的用户数据区的第二个数据段的标志位是ACTIVE?如果标志位是ACTIVE,执行S↓[6];否则执行S↓[7], S↓[6].将第一个数据段置为AVAILABLE,执行S↓[8],S↓[7].将第一个数据段设置成ACTIVE,第二个数据段设置成AVAILABLE,并擦除ACTIVE数据段的数据,S↓[8].遍历ACTIVE数据段 的所有数据,以及S↓[12].闪存初始化结束,其特征在于,还有:S↓[9].检查AVAILABLE段的数据,S↓[10].判断AVAILABLE段的数据是全“1”?如果是全“1”,直接执行S↓[12];否则执行S↓[ 11],S↓[11].擦除AVAILABLE段的数据,之后执行S↓[12]。...

【技术特征摘要】

【专利技术属性】
技术研发人员:刘珺
申请(专利权)人:上海思必得通讯技术有限公司
类型:发明
国别省市:31[中国|上海]

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

1