为了使系统在断电后可以恢复到断电以前的状态继续运行。如果运行状态不停的改变,那就必须持续不断的保存运行状态。这样在断电后再恢复供电系统即可恢复到最后一次保存的状态。
在过去的一次项目中尤为同事提出了一个可行的解决方案。使用24AA16即可解决该问题。系统每隔2秒保存一次运行状态,大约13个字节。24AA16是16千位的存储器,根据产品的资料可以获得,24AA16存储数据可以保存200年,擦写次数在1,000,000以上。
如果两秒保存一次运行状态,那么同一隔物理地址按照擦写1,000,000以上,为了保证系统可靠性,我们假设可以安全可靠的擦写次数是800,000。那么同一块物理地址开始使用18.5天。
800000/(24*60*(60/2))=18.5
18.5时间还很短的,因为一个产品连续使用的寿命必须超过3年。因为24AA16有16K位的存储空间。我们可以在一个物理位置存储600,000后,将存储物理位置向下移动13个字节继续存储600,000次以上。这样的话我们来估计一下这个存储芯片的使用寿命。
(16*1024/8/13)*18.5=2914.46天,大约7.98年。如果系统7*24工作,一个24AA16可以可靠工作8年左右。基本满足了产品使用年限。
但是为了获得信息存储位置,我们必须在一个固定的位置存储信息的地址。当存储信息地址变化,必须更新该地址的数据。
具体使用流程如下:
系统上电后,在信息存储位置读取系统上一次的运行状态就可以恢复得到上一次的运行状态点,继续运行。