CN106648982A - 一种电能表掉电保护数据存贮方法 - Google Patents
一种电能表掉电保护数据存贮方法 Download PDFInfo
- Publication number
- CN106648982A CN106648982A CN201611159928.XA CN201611159928A CN106648982A CN 106648982 A CN106648982 A CN 106648982A CN 201611159928 A CN201611159928 A CN 201611159928A CN 106648982 A CN106648982 A CN 106648982A
- Authority
- CN
- China
- Prior art keywords
- data
- power down
- backup
- data block
- electric energy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1489—Generic software techniques for error detection or fault masking through recovery blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种电能表掉电保护数据存贮方法,在电能表的MCU的RAM中设置掉电保护数据块、指针PA、指针PB,将需要掉电保护的数据集中在一起并加上CRC校验,存入掉电保护数据块中;在电能表的非易失性存贮器中设置循环备份存贮区A和循环备份存贮区B,在循环备份存贮区A和循环备份存贮区B中均设置若干个用于存贮掉电保护数据块中数据的备份数据区块;当电能表MCU检测到掉电时,若在上次定时写入后有电量数据变化,也启动一次上述的数据备份的写操作,写完后,进入休眠模式;当重新上电后,电能表MCU从休眠模式唤醒,先从非易失性存贮器中恢复数据到掉电保护数据块。本发明在掉电时只写入了2个数据块,对整流电解电容的储能要求较低,容易满足要求。
Description
技术领域
本发明涉及一种电能表掉电保护数据存贮方法。
背景技术
在电能表的数据存贮中,关键数据掉电保存与上电恢复是产品可靠性的非常关键的一个指标,在现场运行过程中出现的非器件故障导致的数据错误,绝大部分与掉电数据保存与上电恢复有关。产生的原因包括很多方面,主要包括掉电检测与响应不及时、掉电/上电过程太频繁导致工作电源不稳、电池钝化、整流电解电容的储能性能下降等。
为了解决掉电/上电时的存贮问题,大多数电能表软件都会采用多备份的方式来提高可靠性,一般的做法是选择奇数个数据存贮区,掉电时将数据依次写入每个存贮区,上电时再读出进行比较,按少数服从多数的原则选取存贮区。但是,这种方式本身存在问题,就是掉电时存贮次数太多,本来掉电时就是靠整流电解电容的剩余电荷为写入存贮器的主要电源,之后由电池供电完成停电待机工作,而当要写入的存贮区数据太多时,电解电容的剩余电荷无法完成工作,需要电池来接续完成,而电能表使用的电池是锂电池,长时间不用会产生钝化,无法在短时间提供满足写入存贮器的工作电流,导致写入不正确,从而无法保证写入的可靠性。
发明内容
为了克服现有电能表掉电存贮的可靠性不足的缺陷,本发明提供一种写入可靠性高的电能表掉电保护数据存贮方法。
本发明解决其技术问题的技术方案是:一种电能表掉电保护数据存贮方法,在电能表的MCU的RAM中设置掉电保护数据块、指针PA、指针PB,将需要掉电保护的数据集中在一起并加上CRC校验,存入掉电保护数据块中;
在电能表的非易失性存贮器中设置循环备份存贮区A和循环备份存贮区B,在循环备份存贮区A和循环备份存贮区B中均设置若干个用于存贮掉电保护数据块中数据的备份数据区块;
在电能表的MCU中设置定时器,当定时时间到,且在这个定时间隔中有电量数据变化,就启动一次数据备份的写操作,写操作的过程如下:
先将要保存的掉电保护数据块中的数据写入循环备份存贮区A 中指针PA所指向的备份数据区块,然后读出进行比对,若写入不正确,再重复写入,若写入成功,则指针PA 指向后续一块备份数据区块;若重复三次都写入不成功,则放弃本次对循环备份存贮区A的写入;
按上述方法将要保存的掉电保护数据块中的数据写入循环备份存贮区B中;
当电能表MCU检测到掉电时,若在上次定时写入后有电量数据变化,也启动一次上述的数据备份的写操作,写完后,进入休眠模式;
当重新上电后,电能表MCU从休眠模式唤醒,先从非易失性存贮器中恢复数据到掉电保护数据块,恢复过程如下:
(1).读出循环备份存贮区A的各备份数据区块,若不存在CRC校验错的备份数据区块,则将总电量值最小的那个备份数据区块的位置作为下一次数据存贮指针PA;
若存在CRC校验错的备份数据区块,则舍弃CRC校验错的备份数据区块,并将该备份数据区块的位置作为下一次数据存贮指针PA;
在CRC校验正确的备份数据区块中找到总电量值最大的备份数据区块,作为循环备份存贮区A的当前块;
(2).用上述同样的方法再找到循环备份存贮区B的当前块和指针PB;
(3).将找到的循环备份存贮区A的当前块、循环备份存贮区B的当前块进行比较,总电量值大的当前块中的数据恢复至RAM中的掉电保护数据块内。
本发明的有益效果在于:1.在掉电时只写入了2个数据块,对整流电解电容的储能要求较低,容易满足要求;2.循环备份区的数据除了一个是在掉电时写入的外,其它区域是在正常工作时写入的,数据的可靠性有保证,因此,在极限情况下,即使掉电时写入的数据全部错误,也能用最近一次定时存贮的数据来恢复,电量偏差小于一个定时存贮间隔的用户用电量;3.当有CRC校验错的备份数据块时,使用该块作为下一次写入位置,因此,不论发生什么状况,每个循环备份区只会有一个写入不正确的备份数据块。
附图说明
图1是本发明的原理图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细说明。
参照图1,一种电能表掉电保护数据存贮方法,在电能表MCU的RAM中设置掉电保护数据块101、指针PA 104、指针PB 105,将需要掉电保护的数据集中在一起并加上CRC校验,存入掉电保护数据块101中。
在电能表的非易失性存贮器中设置循环备份存贮区A 102和循环备份存贮区B103,在循环备份存贮区A 102和循环备份存贮区B 103中分别有n和m个用于存贮掉电保护数据块101中数据的备份数据区块,n和m可以相同也可以不同。
电能表在生产或计量检定期间进行初始化或电量总清时,掉电保护数据块101、循环备份存贮区A 102、循环备份存贮区B 103的数据全部清零,指针PA 104和指针PB 105 也赋予初始值,指向两个循环备份存贮区的首部。
在电能表的MCU中设置定时器,当定时时间到,且在这个定时间隔中有电量数据变化,就启动一次数据备份的写操作,写操作的过程如下:
先将要保存的掉电保护数据块101中的数据写入循环备份存贮区A 102 中指针PA 104所指向的备份数据区块,然后读出进行比对,若写入不正确,再重复写入,若写入成功,则指针PA 104指向后续一块备份数据区块,若原PA 104指向循环备份存贮区A 102的尾部的备份An块,则指向首部的备份A1块;若3次写入不成功,放弃本次对循环备份存贮区A 102的写入操作;
按上述方法将要保存的掉电保护数据块101中的数据写入循环备份存贮区B 103中;
当电能表MCU检测到掉电时,若在上次定时写入后有电量数据变化,也启动一次上述的数据备份的写操作,写完后,进入休眠模式。
当重新上电后,电能表MCU从休眠模式唤醒,先从非易失性存贮器中恢复数据到掉电保护数据块101,恢复过程如下:
(1).读出循环备份存贮区A 102的各备份数据区块,若不存在CRC校验错的备份数据区块,则将总电量值最小的那个备份数据区块的位置作为下一次数据存贮指针PA;
若存在CRC校验错的备份数据区块,则舍弃CRC校验错的备份数据区块,并将该备份数据区块的位置作为下一次数据存贮指针PA;
在CRC校验正确的备份数据区块中找到总电量值最大的备份数据区块,作为循环备份存贮区A102的当前块;
(2).用上述同样的方法再找到循环备份存贮区B 103的当前块和指针PB 105;
(3).将找到的循环备份存贮区A 102的当前块、循环备份存贮区B 103的当前块进行比较,总电量值大的当前块中的数据恢复至RAM中的掉电保护数据块101内。
掉电保护数据恢复到RAM后,MCU就能进入正常的工作状态了。
在掉电保护数据恢复中,利用了总电量值作为判别依据,因为总电量总是不断递增的,因此,总电量最小的是最早保存的备份数据,总电量最大的就是最新的备份数据,因此,将指针指向总电量最小的数据块,就能做到先进先出,而用总电量最大值的数据块,就能确认用的是最后一次保存的有效值。
Claims (2)
1.一种电能表掉电保护数据存贮方法,其特征在于:在电能表的MCU的RAM中设置掉电保护数据块、指针PA、指针PB,将需要掉电保护的数据集中在一起并加上CRC校验,存入掉电保护数据块中;
在电能表的非易失性存贮器中设置循环备份存贮区A和循环备份存贮区B,在循环备份存贮区A和循环备份存贮区B中均设置若干个用于存贮掉电保护数据块中数据的备份数据区块;
在电能表的MCU中设置定时器,当定时时间到,且在这个定时间隔中有电量数据变化,就启动一次数据备份的写操作,写操作的过程如下:
先将要保存的掉电保护数据块中的数据写入循环备份存贮区A 中指针PA所指向的备份数据区块,然后读出进行比对,若写入不正确,再重复写入,若写入成功,则指针PA 指向后续一块备份数据区块;若重复三次都写入不成功,则放弃本次对循环备份存贮区A的写入;按上述方法将要保存的掉电保护数据块中的数据写入循环备份存贮区B中;
当电能表MCU检测到掉电时,若在上次定时写入后有电量数据变化,也启动一次上述的数据备份的写操作,写完后,进入休眠模式;
当重新上电后,电能表MCU从休眠模式唤醒,先从非易失性存贮器中恢复数据到掉电保护数据块,恢复过程如下:
(1).读出循环备份存贮区A的各备份数据区块,若不存在CRC校验错的备份数据区块,则将总电量值最小的那个备份数据区块的位置作为下一次数据存贮指针PA;
若存在CRC校验错的备份数据区块,则舍弃CRC校验错的备份数据区块,并将该备份数据区块的位置作为下一次数据存贮指针PA;
在CRC校验正确的备份数据区块中找到总电量值最大的备份数据区块,作为循环备份存贮区A的当前块;
(2).用上述同样的方法再找到循环备份存贮区B的当前块和指针PB;
(3).将找到的循环备份存贮区A的当前块、循环备份存贮区B的当前块进行比较,总电量值大的当前块中的数据恢复至RAM中的掉电保护数据块内。
2.如权利要求1所述的一种电能表掉电保护数据存贮方法,其特征在于:步骤(3):将找到的循环备份存贮区A的当前块、循环备份存贮区B的当前块进行比较,总电量值大的当前块中的数据恢复至RAM中的掉电保护数据块内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611159928.XA CN106648982B (zh) | 2016-12-15 | 2016-12-15 | 一种电能表掉电保护数据存贮方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611159928.XA CN106648982B (zh) | 2016-12-15 | 2016-12-15 | 一种电能表掉电保护数据存贮方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106648982A true CN106648982A (zh) | 2017-05-10 |
CN106648982B CN106648982B (zh) | 2019-12-20 |
Family
ID=58822836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611159928.XA Active CN106648982B (zh) | 2016-12-15 | 2016-12-15 | 一种电能表掉电保护数据存贮方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106648982B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108413A (zh) * | 2017-12-12 | 2018-06-01 | 宁波三星医疗电气股份有限公司 | 一种基于存储数据自动生成数据指针的方法及系统 |
CN108226590A (zh) * | 2017-12-27 | 2018-06-29 | 深圳市科陆电子科技股份有限公司 | 一种结算电能表掉电数据的方法及系统 |
CN109239426A (zh) * | 2018-08-30 | 2019-01-18 | 宁波迦南智能电气股份有限公司 | 电能表日历时钟异常的数据记录与冻结数据恢复方法 |
CN110083479A (zh) * | 2018-01-25 | 2019-08-02 | 宁波三星医疗电气股份有限公司 | 一种智能电能表的eeprom数据保护方法 |
CN110333387A (zh) * | 2019-06-13 | 2019-10-15 | 宁波三星医疗电气股份有限公司 | 一种电能表的电量计量方法 |
CN110400422A (zh) * | 2019-06-26 | 2019-11-01 | 青岛乾程科技股份有限公司 | 一种电能表扣费方法 |
CN112433884A (zh) * | 2020-11-12 | 2021-03-02 | 苏州长风航空电子有限公司 | 防写时掉电数据破坏的双备份交叉存储方法 |
CN112527566A (zh) * | 2020-12-24 | 2021-03-19 | 广东芬尼科技股份有限公司 | 设备掉电运行参数读写异常保护方法、系统和存储介质 |
CN113267673A (zh) * | 2021-04-10 | 2021-08-17 | 煜邦电力智能装备(嘉兴)有限公司 | 一种解决电子式电能表电量丢失的有效方法 |
CN113791931A (zh) * | 2021-09-22 | 2021-12-14 | 宁波迦南智能电气股份有限公司 | 一种电表掉电数据快速存储方法 |
WO2023024863A1 (zh) * | 2021-08-24 | 2023-03-02 | 厦门紫光展锐科技有限公司 | 系统芯片和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101482840A (zh) * | 2009-01-13 | 2009-07-15 | Tcl通力电子(惠州)有限公司 | 掉电记忆保护方法 |
CN101923112A (zh) * | 2010-07-26 | 2010-12-22 | 珠海中慧微电子有限公司 | 电能计量数据高可靠性管理方法 |
CN102541690A (zh) * | 2011-12-23 | 2012-07-04 | 北京握奇数据系统有限公司 | 一种智能卡及其恢复数据方法 |
CN105653208A (zh) * | 2015-12-31 | 2016-06-08 | 无锡华润矽科微电子有限公司 | 数据存储系统及基于该系统的数据读写方法 |
CN106227680A (zh) * | 2016-07-26 | 2016-12-14 | 成都三零嘉微电子有限公司 | 一种数据处理及防掉电数据保护方法 |
-
2016
- 2016-12-15 CN CN201611159928.XA patent/CN106648982B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101482840A (zh) * | 2009-01-13 | 2009-07-15 | Tcl通力电子(惠州)有限公司 | 掉电记忆保护方法 |
CN101923112A (zh) * | 2010-07-26 | 2010-12-22 | 珠海中慧微电子有限公司 | 电能计量数据高可靠性管理方法 |
CN102541690A (zh) * | 2011-12-23 | 2012-07-04 | 北京握奇数据系统有限公司 | 一种智能卡及其恢复数据方法 |
CN105653208A (zh) * | 2015-12-31 | 2016-06-08 | 无锡华润矽科微电子有限公司 | 数据存储系统及基于该系统的数据读写方法 |
CN106227680A (zh) * | 2016-07-26 | 2016-12-14 | 成都三零嘉微电子有限公司 | 一种数据处理及防掉电数据保护方法 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108413A (zh) * | 2017-12-12 | 2018-06-01 | 宁波三星医疗电气股份有限公司 | 一种基于存储数据自动生成数据指针的方法及系统 |
CN108108413B (zh) * | 2017-12-12 | 2022-04-26 | 宁波三星医疗电气股份有限公司 | 一种基于存储数据自动生成数据指针的方法及系统 |
CN108226590A (zh) * | 2017-12-27 | 2018-06-29 | 深圳市科陆电子科技股份有限公司 | 一种结算电能表掉电数据的方法及系统 |
CN110083479A (zh) * | 2018-01-25 | 2019-08-02 | 宁波三星医疗电气股份有限公司 | 一种智能电能表的eeprom数据保护方法 |
CN109239426B (zh) * | 2018-08-30 | 2020-08-25 | 宁波迦南智能电气股份有限公司 | 电能表日历时钟异常的数据记录与冻结数据恢复方法 |
CN109239426A (zh) * | 2018-08-30 | 2019-01-18 | 宁波迦南智能电气股份有限公司 | 电能表日历时钟异常的数据记录与冻结数据恢复方法 |
CN110333387A (zh) * | 2019-06-13 | 2019-10-15 | 宁波三星医疗电气股份有限公司 | 一种电能表的电量计量方法 |
CN110333387B (zh) * | 2019-06-13 | 2021-08-31 | 宁波三星医疗电气股份有限公司 | 一种电能表的电量计量方法 |
CN110400422A (zh) * | 2019-06-26 | 2019-11-01 | 青岛乾程科技股份有限公司 | 一种电能表扣费方法 |
CN112433884A (zh) * | 2020-11-12 | 2021-03-02 | 苏州长风航空电子有限公司 | 防写时掉电数据破坏的双备份交叉存储方法 |
CN112433884B (zh) * | 2020-11-12 | 2022-10-21 | 苏州长风航空电子有限公司 | 防写时掉电数据破坏的双备份交叉存储方法 |
CN112527566A (zh) * | 2020-12-24 | 2021-03-19 | 广东芬尼科技股份有限公司 | 设备掉电运行参数读写异常保护方法、系统和存储介质 |
CN112527566B (zh) * | 2020-12-24 | 2023-11-21 | 广东芬尼科技股份有限公司 | 设备掉电运行参数读写异常保护方法、系统和存储介质 |
CN113267673A (zh) * | 2021-04-10 | 2021-08-17 | 煜邦电力智能装备(嘉兴)有限公司 | 一种解决电子式电能表电量丢失的有效方法 |
WO2023024863A1 (zh) * | 2021-08-24 | 2023-03-02 | 厦门紫光展锐科技有限公司 | 系统芯片和电子设备 |
CN113791931A (zh) * | 2021-09-22 | 2021-12-14 | 宁波迦南智能电气股份有限公司 | 一种电表掉电数据快速存储方法 |
CN113791931B (zh) * | 2021-09-22 | 2022-05-17 | 宁波迦南智能电气股份有限公司 | 一种电表掉电数据快速存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106648982B (zh) | 2019-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106648982A (zh) | 一种电能表掉电保护数据存贮方法 | |
US11914441B2 (en) | Systems and methods for power outage protection of storage device | |
CN102521084B (zh) | 一种电动汽车电池管理系统的数据存储以及读取方法 | |
KR101885228B1 (ko) | 데이터 저장 디바이스에 대한 전력 강하 방지 | |
CN102033814B (zh) | 存取一闪存的方法以及相关的记忆装置 | |
CN106021002B (zh) | 一种嵌入式设备数据读写方法及装置 | |
CN102541690B (zh) | 一种智能卡及其恢复数据方法 | |
CN108318851A (zh) | 一种双芯电能表时钟安全管理方法 | |
CN102804146A (zh) | 跟踪存储器件内的错误数据的系统和方法 | |
CN105224425B (zh) | 一种存储芯片的数据保护电路及其方法 | |
CN101567220A (zh) | 闪存的损坏区块辨识方法、储存系统及其控制器 | |
JP3667920B2 (ja) | Icカード | |
EP4031971A1 (en) | Incrementally updating recovery map data for a memory system | |
CN103631677B (zh) | 一种plc设备数据掉电保持的方法 | |
CN104332174A (zh) | 应用于安防产品的存储芯片写保护电路及其方法 | |
CN101324858A (zh) | 一种数据恢复方法、系统及终端 | |
CN109885342B (zh) | 一种执法记录仪的系统程序修复方法 | |
CN103777902B (zh) | 基于data flash的终端停电时间的记录方法 | |
CN103744746A (zh) | 一种基于索引的智能卡记录备份与恢复方法 | |
CN107957921B (zh) | 一种均衡磨损的智能卡掉电数据保护方法 | |
CN107608824B (zh) | 一种非易失性计算装置及其工作方法 | |
CN107918569B (zh) | 监测rtc芯片掉电、晶振停振的方法和装置 | |
CN205004821U (zh) | 一种后备电源系统 | |
CN103489485A (zh) | 一种闪存质量检测方法及装置 | |
CN103198861A (zh) | 存储器储存装置、存储器控制器与控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |