一种利用单片机内置flash程序存贮器进行实时数据记忆的方法

文档序号:6358031阅读:978来源:国知局
专利名称:一种利用单片机内置flash程序存贮器进行实时数据记忆的方法
一种利用单片机内置FLASH程序存贮器进行实时数据记忆
的方法
技术领域
本发明涉及一种数据记忆方法,尤其涉及利用单片机内置FLASH程序存贮器进行实时数据记忆的方法。
背景技术
当今家电产品中普遍使用了记忆功能,即掉电后运行相关数据也能被保存在 ROM中。现有商品中使用的记忆功能大都是通过单片机数据I/O 口连接外部专用记忆 IC(EEPR0M等)来实现的。这种方法的缺点是一方面占用了单片机I/O 口资源,另一方面增加了外部记忆IC的成本。针对上述不足,公开号为CN101645014A的中国专利申请文件提出了利用单片机内置FLASH程序存贮器模拟EEPROM的数据存储方法,但是,这种方法在实现记忆功能时, 仍需要借助外部专用记忆IC(e印rom等);单片机内置FLASH程序存贮器进行存储不是实时的,掉电时才能进行;单片机内置FLASH程序存贮器进行存储写入次数有限;单片机内置 FLASH程序存贮器进行存储写入时间长、记忆中无法进行其他操作。

发明内容本发明的目的就是解决现有技术中的问题,提出一种利用单片机内置FLASH程序存贮器进行实时数据记忆的方法,能够延长存储器的写入次数,数据记忆过程中仍可以通过中断处理与记忆无关的其他操作,并且,记忆请求能够马上被记忆到单片机FLASH存储区域。为实现上述目的,本发明提出了一种利用单片机内置FLASH程序存贮器进行实时数据记忆的方法,由FLASH型单片机、电源、输入输出设备构成,所述FLASH型单片机的内置 FLASH程序存贮器分段进行数据写入操作。作为优选,分段写入内置FLASH程序存贮器的每段数据均包含头信息和尾信息, 头信息表示数据段的号码,尾信息表示数据的合法性。作为优选,所述FLASH型单片机在开机时就进行数据写入前的寻址和传送,从而实现了书写时间的大幅缩短,适应了实时性要求较高的商品。作为优选,数据写入内置FLASH程序存贮器的过程中,可以通过中断处理与记忆无关的操作,克服了现有技术记忆中无法进行其他操作的缺点。作为优选,数据写入操作一次性完成。作为优选,数据写入操作分数次完成,采用轮询方式分段进行,整个写入过程未完毕的情况下,如果有新的记忆请求产生,新的记忆请求也将被排序后自动延后处理,而不会被遗漏。本发明的有益效果本发明将数据直接写入单片机的内置FLASH程序存贮器,这种数据记忆方法是实时的,通过输入输出设备发出的记忆请求所对应的数据,能够马上被记忆到单片机的FLASH程序存贮器,并且写入操作是分段进行的,从而大大延长了存储器的写入次数。本发明的特征及优点将通过实施例结合附图进行详细说明。
图1是本发明方法所涉及的硬件结构示意图。图2是分段存储的控制框图。图3是本发明的控制流程图。图4是数据读出的控制框图。图5是数据写入的控制框图。图6是数据传送的控制框图。图7是数据写入的控制流程图。
具体实施方式利用单片机内置FLASH程序存贮器进行实时数据记忆的方法,如图1所示,硬件部分由FLASH型单片机1、电源2、输入输出设备3构成,所述FLASH型单片机1的内置FLASH 程序存贮器分段进行数据写入操作。分段写入内置FLASH程序存贮器的每段数据均包含头信息和尾信息,头信息表示数据段的号码,尾信息表示数据的合法性。所述FLASH型单片机 1在开机时就进行数据写入前的寻址和传送,从而实现了书写时间的大幅缩短,适应了实时性要求较高的商品。数据写入内置FLASH程序存贮器的过程中,可以通过中断处理与记忆无关的操作,克服了现有技术记忆中无法进行其他操作的缺点。数据写入操作可以一次性完成或分数次完成,采用轮询方式分段进行,整个写入过程未完毕的情况下,如果有新的记忆请求产生,新的记忆请求也将被排序后自动延后处理,而不会被遗漏。外部专用记忆IC(^prom)擦写次数一般为10万回。而单片机内置FLASH程序存贮器一般的擦写次数为1000回,本发明采用分段写入、整体擦除的方法,使单片机内置 FLASH程序存贮器一般的写入次数可达到10万回以上。例一次写入Ilbyte作为一个单元,8Kb的存储空间可写入73. 4万回。本发明根据单片机内置FLASH程序存贮器容量大小将单片机内置FLASH程序存贮器划分为1至多个区域,每个区域称为一个sector (如图2)。 通过软件在sector的首地址对当前sector的存储状态进行标识,称为sector的head。 head分为使用中、写满、空白、和其他不正确头这四种情况。写入时将若干个byte的数据划分在一起同时写入,称为一个I^acket (如图2)。I^cket的头地址用于标识当前数据组的号码,尾地址用于标识当前数据组的存储状态。写入中如果发生断电,在尾地址中将不会做正常写入完毕的标识。因此这组数据将不会被采用。从而确保了数据的正确性。本发明通过对写入过程的优化设计实现了写入时间的缩短。写入过程是这样实现的首先将书写代码由单片机的ROM传送到RAM,称为代码传送。然后寻找到书写地址(内容为空的地址),称为寻址。再从RAM执行对ROM的书写。本发明将传送过程和寻址过程放在开机时处理。程序运行中可直接在寻找到的地址写入数据。从而实现了写入时间少于外部EEPROM书写时间的1/300。是通常单片机内置FLASH程序存贮器写入时间的1/30。本发明所涉及的写入过程可以是一次性完成的,也可以是采用轮询方式分段完成的。如图7所示,采用轮询方式分段完成时,整个写入过程未完毕的情况下,如果有新的记忆请求产生,新的记忆请求也将会被排序后自动延后处理,而不会被遗漏。本发明所涉及的记忆方法,可以在记忆的同时通过中断处理记忆以外的其他程序,从而保证了记忆中其他程序的正常执行。本发明的控制流程图如图3所示单片机上电时,首先将执行擦写的程序代码从单片机的ROM中复制到RAM(SC3-00)。接下来在RAM中进行中断向量表的设定(SC3-01)。 接下来是寻址过程(SC3-02),包括读出寻址和写入寻址。数据读出寻址的流程如图4所示①如图4中的A所示,各sector的head检出,找到使用中的sector。②使用中sector最新写入的数据(相同packet头的地址最大的数据)读出。图 4中的B处是未写入的区域(packet head :0xff),不读出。图4中的C处是未写入完毕的场合(packet foot :0xff),不读出。图4中的D处是数据号码不想读出的数据号(packet heachOxOl),不读出。图4中的E处是正确数据,读出。图4中的F处不是最新写入的数据,不读出。数据写入寻址的流程如图5所示①如图5中A所示,各sector的head检出,使用中sector指定。②如图5中B所示,使用中sector最新数据的下一个地址读出。前一个地址中内容为空,不读出。图5中的C所示是正规地址,读出。寻址结束后是数据读出过程(SC3-0;3)。如果寻址失败或读出失败,程序将给各变量赋默认参数值。开机后进行商品通常的处理(SC3-04)。此时如果检测到写入请求,写入请求标志将设定。在(SC3-06)中判断是否需要在单片机内置FLASH存储空间中写入(例记忆区间写满时不允许写入、无写入请求标志设定时不写入)。写入处理过程如图7所示,首先在写入初始模式下将写入请求赋值给写入命令 (SC7-00),然后写入请求清零(SC7-01),这样在接下来的写入过程中如果产生新的写入请求,也不会被遗漏。接下来转到写入中模式(SC7-02)。在写入中模式进行单个packet 的写入(SC7-03)。单个packet的写入是从RAM执行对ROM改写的过程,在此过程中如果发生中断,程序会在RAM中执行对中断的响应。如果写入成功则当前packet写入命令清零 (SC7-04),如果全部packet写入命令都已清零则写入模式复位到写入初始模式。如果写如不成功则判断当前sector是否写满,如果写满则转到传送模式,否则转到写入失败模式进行写入失败的处理。传送模式(SC7-06)是指写入过程中记忆区间(sector)写满时,写满的sector 擦除前将记忆最新数据由旧的sector传送到新的sector上。此过程也在(SC3-06)中处理。数据传送的流程如图6所示①如图6中的A所示,各sector的head检出,使用中sector找出。②如图6中的B所示,使用中sector没有空间再写入。③如图6中的C所示,各packet最新数据传送到空的sector上。④如图6中的D所示,全部数据传送结束后,使用中sector head(OxAA,OxFF)做
5成。如图6中的E所示,旧sector head变为(0xAA、0xAA)。⑤如图6中的F所示,新sector上进行NO. 2数据的写入。最后,如图6中的G所示,旧sector擦除(全部变为OxFF)。上述实施例是对本发明的说明,不是对本发明的限定,任何对本发明简单变换后的方案均属于本发明的保护范围。
权利要求
1.一种利用单片机内置FLASH程序存贮器进行实时数据记忆的方法,其特征在于由 FLASH型单片机、电源、输入输出设备构成,所述FLASH型单片机的内置FLASH程序存贮器分段进行数据写入操作。
2.如权利要求1所述的一种利用单片机内置FLASH程序存贮器进行实时数据记忆的方法,其特征在于分段写入内置FLASH程序存贮器的每段数据均包含头信息和尾信息,头信息表示数据段的号码,尾信息表示数据的合法性。
3.如权利要求1所述的一种利用单片机内置FLASH程序存贮器进行实时数据记忆的方法,其特征在于所述FLASH型单片机在开机时就进行数据写入前的寻址和传送。
4.如权利要求1所述的一种利用单片机内置FLASH程序存贮器进行实时数据记忆的方法,其特征在于数据写入内置FLASH程序存贮器的过程中,可以通过中断处理与记忆无关的操作。
5.如权利要求1所述的一种利用单片机内置FLASH程序存贮器进行实时数据记忆的方法,其特征在于数据写入操作一次性完成。
6.如权利要求1所述的一种利用单片机内置FLASH程序存贮器进行实时数据记忆的方法,其特征在于数据写入操作分数次完成,采用轮询方式分段进行,整个写入过程未完毕的情况下,如果有新的记忆请求产生,新的记忆请求也将被排序后自动延后处理,而不会被遗漏。
全文摘要
本发明公开了一种利用单片机内置FLASH程序存贮器进行实时数据记忆的方法,由FLASH型单片机、电源、输入输出设备构成,所述FLASH型单片机的内置FLASH程序存贮器分段进行数据写入操作。本发明将数据直接写入单片机的内置FLASH程序存贮器,这种数据记忆方法是实时的,通过输入输出设备发出的记忆请求所对应的数据,能够马上被记忆到单片机的FLASH程序存贮器,并且写入操作是分段进行的,从而大大延长了存储器的写入次数。
文档编号G06F12/02GK102156668SQ20111009363
公开日2011年8月17日 申请日期2011年4月14日 优先权日2011年4月14日
发明者卢瑞东, 徐丁英 申请人:杭州松下家用电器有限公司, 松下家电研究开发(杭州)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1