[发明专利]在FLASH存储器上实现电表电量小数的按位存储的方法有效
申请号: | 201710957694.1 | 申请日: | 2017-10-13 |
公开(公告)号: | CN107861687B | 公开(公告)日: | 2020-09-11 |
发明(设计)人: | 朱宏斌;郜波;景程;顾小峰 | 申请(专利权)人: | 华立科技股份有限公司;中国电力科学研究院;国家电网公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 杭州杭诚专利事务所有限公司 33109 | 代理人: | 尉伟敏 |
地址: | 310023 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | flash 存储器 实现 电表 电量 小数 存储 方法 | ||
本发明公开了一种在FLASH存储器上实现电表电量小数的按位存储的方法,包括如下步骤:将电量小数的所有存储空间分为M页,每一页有I块,共有N块,其中,N=M×I;每一块为99个位,将电量的小数0.01到0.99分别分配给上述99个位;从第一块开始存储,每增加0.01度按从高位到低位的顺序写入1,写满99位即写完第一块;当第一块写完后换到第二块,第二块写完后换到第三块,直到写到第N块后换到第一块继续写。本发明具有如下有益效果:节省了存储空间,保证了累计精度;采用分页分块的方式擦除和写入,克服了FLASH需擦除后才能写的缺点,同时能够进行数据备份,提高了可靠性。
技术领域
本发明涉及电能表电能小数存储技术领域,尤其是涉及一种保证了电量小数0.01度的累计精度,节省了存储空间,同时具有数据备份作用的在FLASH存储器上实现电表电量小数的按位存储的方法。
背景技术
目前大多厂家都是把小数按字节存储在EEPROM中,但由于电表使用寿命10年以及0.01度的存储精度的原因,往往需要分配非常大的存储空间,这样就需要采用大容量的EEPROM,从而增加产品成本。也有个别厂家是把电量小数按字节存储在FLASH中,因FLASH存储器寿命较低以及整页擦写的原因,也无法得到减少存储空间的目的。
发明内容
本发明为了克服现有技术中保证电量小数0.01度累计精度存储需要的存储空间大的不足,提出了一种保证了电量小数0.01度的累计精度,节省了存储空间,同时具有数据备份作用的在FLASH存储器上实现电表电量小数的按位存储的方法。
为了实现上述目的,本发明采用了以下技术方案:
一种在FLASH存储器上实现电表电量小数的按位存储的方法,包括如下步骤:
(1-1)将电量小数的所有存储空间分为M页,每一页有I块,共有N块,其中,N=M×I;
(1-2)每一块为99个位,将电量的小数0.01到0.99分别分配给上述99个位;
(1-3)从第一块开始存储,每增加0.01度按从高位到低位的顺序写入1,写满99位即写完第一块;
(1-4)当第一块写完后换到第二块,第二块写完后换到第三块,直到写到第N块后转入(1-3)。
本发明通过为每0.01度分配一个位来存储电量小数,并通过分页分块的方式来进行写入和擦除,节省了空间,保证了0.01度的累计精度。
作为优选,还包括如下步骤:
(2-1)当写到第一页的第I块时,擦除第二页数据,当写到第二页的第I块时,擦除第三页数据,当写到第M页的第I块时,擦除第一页数据,当第M页的第I块写完后转入(1-3)。
作为优选,还包括如下步骤:
(3-1)当电量小数出现异常时,进行数据校验和恢复。
作为优选,数据校验和恢复的具体步骤如下:
(4-1)进行正向搜索,从第1位开始搜索,直到搜索到某位为0为止,得到值为1的位的个数为N1;
(4-2)进行反向搜索,从第99位开始搜索,直到搜索到某位为1为止,得到值为0的位的个数为N2;
(4-3)如果N1+N2=99时,认为数据有效,恢复数据记录;如果N1+N2≠99,则认为数据无效,将电量小数置为0。
作为优选,当进行电量数据写入时,根据当前小数X计算字节偏移量Y、位偏移量Z和当前写入的字节数据L,计算公式如下:
Y=(X×100-1)÷8,Y向上取整;
Z=(X×100)%8;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华立科技股份有限公司;中国电力科学研究院;国家电网公司,未经华立科技股份有限公司;中国电力科学研究院;国家电网公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710957694.1/2.html,转载请声明来源钻瓜专利网。