首页> 中国专利> 一种利用单片机内置FLASH程序存贮器进行实时数据记忆的方法

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

摘要

本发明公开了一种利用单片机内置FLASH程序存贮器进行实时数据记忆的方法,由FLASH型单片机、电源、输入输出设备构成,所述FLASH型单片机的内置FLASH程序存贮器分段进行数据写入操作。本发明将数据直接写入单片机的内置FLASH程序存贮器,这种数据记忆方法是实时的,通过输入输出设备发出的记忆请求所对应的数据,能够马上被记忆到单片机的FLASH程序存贮器,并且写入操作是分段进行的,从而大大延长了存储器的写入次数。

著录项

  • 公开/公告号CN102156668A

    专利类型发明专利

  • 公开/公告日2011-08-17

    原文格式PDF

  • 申请/专利号CN201110093631.9

  • 发明设计人 卢瑞东;徐丁英;

    申请日2011-04-14

  • 分类号G06F11/14(20060101);G06F12/02(20060101);

  • 代理机构杭州华鼎知识产权代理事务所(普通合伙);

  • 代理人韩洪

  • 地址 310018 浙江省杭州市经济技术开发区松乔街6号3幢-A

  • 入库时间 2023-12-18 03:00:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-06-25

    授权

    授权

  • 2011-09-28

    实质审查的生效 IPC(主分类):G06F11/14 申请日:20110414

    实质审查的生效

  • 2011-08-17

    公开

    公开

说明书

【技术领域】

本发明涉及一种数据记忆方法,尤其涉及利用单片机内置FLASH程序存贮器进行实时数据记忆的方法。

【背景技术】

当今家电产品中普遍使用了记忆功能,即掉电后运行相关数据也能被保存在ROM中。现有商品中使用的记忆功能大都是通过单片机数据I/O口连接外部专用记忆IC(EEPROM等)来实现的。这种方法的缺点是:一方面占用了单片机I/O口资源,另一方面增加了外部记忆IC的成本。

针对上述不足,公开号为CN101645014A的中国专利申请文件提出了利用单片机内置FLASH程序存贮器模拟EEPROM的数据存储方法,但是,这种方法在实现记忆功能时,仍需要借助外部专用记忆IC(eeprom等);单片机内置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(eeprom)擦写次数一般为10万回。而单片机内置FLASH程序存贮器一般的擦写次数为1000回,本发明采用分段写入、整体擦除的方法,使单片机内置FLASH程序存贮器一般的写入次数可达到10万回以上。例:一次写入11byte作为一个单元,8Kb的存储空间可写入73.4万回。本发明根据单片机内置FLASH程序存贮器容量大小将单片机内置FLASH程序存贮器划分为1至多个区域,每个区域称为一个sector(如图2)。通过软件在sector的首地址对当前sector的存储状态进行标识,称为sector的head。head分为使用中、写满、空白、和其他不正确头这四种情况。写入时将若干个byte的数据划分在一起同时写入,称为一个Packet(如图2)。Packet的头地址用于标识当前数据组的号码,尾地址用于标识当前数据组的存储状态。写入中如果发生断电,在尾地址中将不会做正常写入完毕的标识。因此这组数据将不会被采用。从而确保了数据的正确性。

本发明通过对写入过程的优化设计实现了写入时间的缩短。写入过程是这样实现的:首先将书写代码由单片机的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 head:0x01),不读出。图4中的E处是正确数据,读出。图4中的F处不是最新写入的数据,不读出。

数据写入寻址的流程如图5所示:

①如图5中A所示,各sector的head检出,使用中sector指定。

②如图5中B所示,使用中sector最新数据的下一个地址读出。前一个地址中内容为空,不读出。图5中的C所示是正规地址,读出。

寻址结束后是数据读出过程(SC3-03)。如果寻址失败或读出失败,程序将给各变量赋默认参数值。

开机后进行商品通常的处理(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(0xAA、0xFF)做成。如图6中的E所示,旧sector head变为(0xAA、0xAA)。

⑤如图6中的F所示,新sector上进行NO.2数据的写入。最后,如图6中的G所示,旧sector擦除(全部变为0xFF)。

上述实施例是对本发明的说明,不是对本发明的限定,任何对本发明简单变换后的方案均属于本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号