计量数据存储方法、装置、计算机设备及存储介质转让专利

申请号 : CN202310563981.X

文献号 : CN116301665B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张锋陈凡杨忠赵金奇彭博文吴军杨文勇

申请人 : 浙江正泰物联技术有限公司

摘要 :

本发明提供一种计量数据存储方法、装置、计算机设备及存储介质,方法包括:检测第一脉冲存储区中存储的能量脉冲的脉冲计数数据;若脉冲计数数据不小于预设计数值,则对第一脉冲存储区进行重置,并将第一程序存储区中未进行数据翻转的比特位确定为待翻转比特位,对待翻转比特位进行数据翻转,以对脉冲计数的能量脉冲对应的计量数据进行存储。将未进行数据翻转的一个待翻转比特位进行数据翻转,以实现一次写入操作,使得第一程序存储区中每个比特位在一个写入周期内只需完成一次写入操作,相对于随机选取的方式,能够避免比特位在一个写入周期内频繁被选取,进而提高第一程序存储区的写入次数,能够完整支持计量设备的使用寿命期间的数据写入。

权利要求 :

1.一种计量数据存储方法,其特征在于,包括:

检测第一脉冲存储区中存储的能量脉冲的脉冲计数数据;

若所述脉冲计数数据不小于预设计数值,则对所述第一脉冲存储区进行重置,并将第一程序存储区中未进行数据翻转的比特位确定为待翻转比特位,对所述待翻转比特位进行数据翻转,以对所述脉冲计数数据的能量脉冲对应的计量数据进行存储;

所述第一脉冲存储区开设于随机访问存储器中,所述第一程序存储区开设于程序存储器中;

将所述第一程序存储区中未进行数据翻转的比特位确定为待翻转比特位,对所述待翻转比特位进行数据翻转,包括:将所述第一程序存储区中与目标比特位连续的下一位未进行数据翻转的比特位确定为所述待翻转比特位,对所述待翻转比特位进行数据翻转,得到新的目标比特位。

2.根据权利要求1所述的计量数据存储方法,其特征在于,所述目标比特位的数值为第一数值,所述待翻转比特位的数值为第二数值;所述方法还包括:根据所述第一数值和所述第二数值,对所述第一程序存储区中的目标比特位进行连续性检测,得到检测结果;

若所述检测结果表征所述第一程序存储区中的目标比特位之间存在待翻转比特位,则对所述第一程序存储区中位于目标比特位之间的待翻转比特位进行异常标记。

3.根据权利要求1所述的计量数据存储方法,其特征在于,在对所述待翻转比特位进行数据翻转的步骤之后,所述方法还包括:在所述第一程序存储区中的全部比特位完成数据翻转后,根据所述第一程序存储区中的比特位的数量,对第二程序存储区中的第一计量数据进行数据更新;

对所述第一程序存储区进行重置。

4.根据权利要求1所述的计量数据存储方法,其特征在于,所述随机访问存储器中还开设有随机存储区,所述程序存储器中还开设有第二程序存储区;在检测第一脉冲存储区中存储的能量脉冲的脉冲计数数据的步骤之后,所述方法还包括:若所述脉冲计数数据不小于预设计数值,则对所述第一脉冲存储区进行重置,并根据所述脉冲计数数据,对所述随机存储区中的第二计量数据进行数据更新;

检测所述随机存储区中的第二计量数据;

若所述随机存储区中的第二计量数据不小于预设计量数值,则根据所述随机存储区中的第二计量数据,对第二程序存储区中的第一计量数据进行数据更新;

对所述第一程序存储区和所述随机存储区进行重置。

5.根据权利要求4所述的计量数据存储方法,其特征在于,所述方法还包括:根据所述随机存储区中与所述第二计量数据对应的校验位,对所述第二计量数据进行校验,得到校验结果;

若所述校验结果表征所述第二计量数据校验失败,则根据所述第一程序存储区中完成数据翻转的比特位的数量,得到校正计量数据;

根据所述校正计量数据,对所述随机存储区中的第二计量数据进行数据更新。

6.根据权利要求1所述的计量数据存储方法,其特征在于,所述第一脉冲存储区开设于随机访问存储器中,所述第一程序存储区开设于程序存储器中,所述程序存储器中还开设有第二脉冲存储区;在检测第一脉冲存储区中存储的能量脉冲的脉冲计数数据的步骤之后,所述方法还包括:在停电时在所述第二脉冲存储区中备份与所述第一脉冲存储区相同的脉冲计数数据;

在上电时在所述第一脉冲存储区中恢复与所述第二脉冲存储区相同的脉冲计数数据;

对所述第二脉冲存储区进行重置。

7.一种计量数据存储装置,其特征在于,包括:

计数检测模块,用于检测第一脉冲存储区中存储的能量脉冲的脉冲计数数据;

数据翻转模块,用于若所述脉冲计数数据不小于预设计数值,则对所述第一脉冲存储区进行重置,并将第一程序存储区中未进行数据翻转的比特位确定为待翻转比特位,对所述待翻转比特位进行数据翻转,以对所述脉冲计数数据的能量脉冲对应的计量数据进行存储;

所述第一脉冲存储区开设于随机访问存储器中,所述第一程序存储区开设于程序存储器中;

数据翻转模块具体用于将所述第一程序存储区中与目标比特位连续的下一位未进行数据翻转的比特位确定为所述待翻转比特位,对所述待翻转比特位进行数据翻转,得到新的目标比特位。

8.一种计算机设备,其特征在于,包括存储器和处理器;所述存储器存储有计算机程序,所述处理器用于运行所述存储器内的所述计算机程序,以执行权利要求1至6中的任一项所述的计量数据存储方法中的步骤。

9.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器进行加载,以执行权利要求1至6任一项所述的计量数据存储方法中的步骤。

说明书 :

计量数据存储方法、装置、计算机设备及存储介质

技术领域

[0001] 本发明涉及存储技术领域,具体涉及一种计量数据存储方法、装置、计算机设备及存储介质。

背景技术

[0002] 生活中有需要地方需要进行数据计量,比如电力、燃气、供水等;以电力为例,电能数据是电力计量仪表基础数据项,电能数据具有数据记录频繁,数据保存实时性要求较高的特点。通常在仪表的使用寿命期间,数据的写入次数会非常大,然而在采用程序存储器(包括EEPROM和闪存等)进行电能数据的写入时,是采用随机选取比特位的方式,即在程序存储器中提供的全部比特位中,随机选取对应数量的比特位(比特位数量取决于电能数据的大小,比如电能数据为1000以内的十进制数据,则需要十位比特位),最终基于选取的比特位并基于二进制的方式写入电能数据。
[0003] 由于选取比特位的方式为随机,具有不可控的性质,可能导致某个或某几个比特位频繁被选取,而每个比特位的存储寿命都是独立的,以EEPROM或闪存为例,每个比特位能够承受的写入次数都小于电能数据所需要的写入次数,最终导致整个程序存储器能够承受的写入次数小于电能数据所需要的写入次数,使得程序存储器无法完整支持仪表的使用寿命期间的数据写入。

发明内容

[0004] 针对现有技术中所存在的不足,本发明提供一种计量数据存储方法、装置、计算机设备及存储介质。
[0005] 第一方面,在一个实施例中,本发明提供一种计量数据存储方法,包括:
[0006] 检测第一脉冲存储区中存储的能量脉冲的脉冲计数数据;
[0007] 若脉冲计数数据不小于预设计数值,则对第一脉冲存储区进行重置,并将第一程序存储区中未进行数据翻转的比特位确定为待翻转比特位,对待翻转比特位进行数据翻转,以对脉冲计数数据的能量脉冲对应的计量数据进行存储。
[0008] 在一个实施例中,将第一程序存储区中未进行数据翻转的比特位确定为待翻转比特位,对待翻转比特位进行数据翻转,包括:
[0009] 将第一程序存储区中与目标比特位连续的下一位未进行数据翻转的比特位确定为待翻转比特位,对待翻转比特位进行数据翻转,得到新的目标比特位。
[0010] 在一个实施例中,目标比特位的数值为第一数值,待翻转比特位的数值为第二数值;方法还包括:
[0011] 根据第一数值和第二数值,对第一程序存储区中的目标比特位进行连续性检测,得到检测结果;
[0012] 若检测结果表征第一程序存储区中的目标比特位之间存在待翻转比特位,则对第一程序存储区中位于目标比特位之间的待翻转比特位进行异常标记。
[0013] 在一个实施例中,在对待翻转比特位进行数据翻转的步骤之后,方法还包括:
[0014] 在第一程序存储区中的全部比特位完成数据翻转后,根据第一程序存储区中的比特位的数量,对第二程序存储区中的第一计量数据进行数据更新;
[0015] 对第一程序存储区进行重置。
[0016] 在一个实施例中,第一脉冲存储区开设于随机访问存储器中,随机访问存储器中还开设有随机存储区,第一程序存储区开设于程序存储器中,程序存储器中还开设有第二程序存储区;在检测第一脉冲存储区中存储的能量脉冲的脉冲计数数据的步骤之后,方法还包括:
[0017] 若脉冲计数数据不小于预设计数值,则对第一脉冲存储区进行重置,并根据脉冲计数数据,对随机存储区中的第二计量数据进行数据更新;
[0018] 检测随机存储区中的第二计量数据;
[0019] 若随机存储区中的第二计量数据不小于预设计量数值,则根据随机存储区中的第二计量数据,对第二程序存储区中的第一计量数据进行数据更新;
[0020] 对第一程序存储区和随机存储区进行重置。
[0021] 在一个实施例中,方法还包括:
[0022] 根据随机存储区中与第二计量数据对应的校验位,对第二计量数据进行校验,得到校验结果;
[0023] 若校验结果表征第二计量数据校验失败,则根据第一程序存储区中完成数据翻转的比特位的数量,得到校正计量数据;
[0024] 根据校正计量数据,对随机存储区中的第二计量数据进行数据更新。
[0025] 在一个实施例中,第一脉冲存储区开设于随机访问存储器中,第一程序存储区开设于程序存储器中,程序存储器中还开设有第二脉冲存储区;在检测第一脉冲存储区中存储的能量脉冲的脉冲计数数据的步骤之后,方法还包括:
[0026] 在停电时在第二脉冲存储区中备份与第一脉冲存储区相同的脉冲计数数据;
[0027] 在上电时在第一脉冲存储区中恢复与第二脉冲存储区相同的脉冲计数数据;
[0028] 对第二脉冲存储区进行重置。
[0029] 第二方面,在一个实施例中,本发明提供一种计量数据存储装置,包括:
[0030] 计数检测模块,用于检测第一脉冲存储区中存储的能量脉冲的脉冲计数数据;
[0031] 数据翻转模块,用于若脉冲计数数据不小于预设计数值,则对第一脉冲存储区进行重置,并将第一程序存储区中未进行数据翻转的比特位确定为待翻转比特位,对待翻转比特位进行数据翻转,以对脉冲计数数据的能量脉冲对应的计量数据进行存储。
[0032] 第三方面,在一个实施例中,本发明提供一种计算机设备,包括存储器和处理器;存储器存储有计算机程序,处理器用于运行存储器内的计算机程序,以执行上述任一种实施例中的计量数据存储方法中的步骤。
[0033] 第四方面,在一个实施例中,本发明提供一种存储介质,存储介质存储有计算机程序,计算机程序被处理器进行加载,以执行上述任一种实施例中的计量数据存储方法中的步骤。
[0034] 通过上述计量数据存储方法、装置、计算机设备及存储介质,充分利用第一程序存储区中的比特位,当需要对第一程序存储区进行数据更新时,将未进行数据翻转的一个待翻转比特位进行数据翻转,以实现一次写入操作,使得第一程序存储区中的每个比特位在一个写入周期内只需要完成一次写入操作,相对于随机选取的方式,能够避免某个或多个比特位在一个写入周期内频繁被选取,进而提高了第一程序存储区的写入次数,也即提高了第一程序存储区的存储寿命,能够完整支持计量设备的使用寿命期间的数据写入。

附图说明

[0035] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0036] 图1为本发明一个实施例中计量数据存储方法的应用场景示意图;
[0037] 图2为本发明一个实施例中电能数据存储方法的流程示意图;
[0038] 图3为本发明一个实施例中程序存储器和随机访问存储器的存储区划分示意图;
[0039] 图4为本发明一个实施例中电能数据存储方法的流程示意图;
[0040] 图5为本发明一个实施例中计量数据存储装置的结构示意图;
[0041] 图6为本发明一个实施例中计算机设备的结构示意图。

具体实施方式

[0042] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043] 在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。在本申请中,“示例性”一词用来表示“用作例子、例证或说明”。本申请中被描述为“示例性”的任何实施例不一定被解释为比其它实施例更优选或更具优势。为了使本领域任何技术人员能够实现和使用本发明,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本发明。在其它实例中,不会对公知的结构和过程进行详细阐述,以避免不必要的细节使本发明的描述变得晦涩。因此,本发明并非旨在限于所示的实施例,而是与符合本申请所公开的原理和特征的最广范围相一致。
[0044] 本发明实施例中的计量数据存储方法应用于计量数据存储装置,计量数据存储装置设置于计算机设备;计算机设备可以是终端,例如,手机或平板电脑,计算机设备还可以是一台服务器,或者多台服务器组成的服务集群。
[0045] 如图1所示,图1为本发明实施例中计量数据存储方法的应用场景示意图,本发明实施例中计量数据存储方法的应用场景中包括计算机设备100(计算机设备100中集成有计量数据存储装置),计算机设备100中运行计量数据存储方法对应的计算机可读存储介质,以执行计量数据存储方法的步骤。
[0046] 可以理解的是,图1所示计量数据存储方法的应用场景中的计算机设备,或者计算机设备中包含的装置并不构成对本发明实施例的限制,即,计量数据存储方法的应用场景中包含的设备数量、设备种类,或者各个设备中包含的装置数量、装置种类不影响本发明实施例中技术方案整体实现,均可以算作本发明实施例要求保护技术方案的等效替换或衍生。
[0047] 本发明实施例中计算机设备100可以是独立的设备,也可以是设备组成的设备网络或设备集群,例如,本发明实施例中所描述的计算机设备100,其包括但不限于电脑、网络主机、单个网络设备、多个网络设备集或多个设备构成的云设备。其中,云设备由基于云计算(Cloud Computing)的大量电脑或网络设备构成。
[0048] 本领域技术人员可以理解,图1中示出的应用场景,仅仅是与本发明的技术方案对应的一种应用场景,并不构成对本发明的技术方案的应用场景的限定,其他的应用场景还可以包括比图1中所示更多或更少的计算机设备,或者计算机设备网络连接关系,例如图1中仅示出1个计算机设备,可以理解的,该计量数据存储方法的场景还可以包括一个或多个其他计算机设备,具体此处不作限定;该计算机设备100中还可以包括存储器,用于存储计量数据存储方法相关的信息。
[0049] 此外,本发明实施例中的计量数据存储方法的应用场景中计算机设备100可以设置显示装置,或者计算机设备100中不设置显示装置并与外接的显示装置200通讯连接,显示装置200用于输出计算机设备中计量数据存储方法执行的结果。计算机设备100可以访问后台数据库300(后台数据库300可以是计算机设备100的本地存储器,后台数据库300还可以设置在云端),后台数据库300中保存有计量数据存储方法相关的信息。
[0050] 需要说明的是,图1所示的计量数据存储方法的应用场景仅仅是一个示例,本发明实施例描述的计量数据存储方法的应用场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定。
[0051] 基于上述计量数据存储方法的应用场景,提出了计量数据存储方法的实施例。
[0052] 第一方面,如图2所示,在一个实施例中,本发明提供一种计量数据存储方法,包括:
[0053] 步骤201,检测随机访问存储器的第一脉冲存储区中存储的能量脉冲的脉冲计数数据;
[0054] 其中,需要注意的是,计量数据包括各个场景中的数据,包括电能数据、燃气数据、供水数据等,为了使本发明的表述更加具体,本实施例以及后续实施例皆采用电能数据进行描述,能量脉冲也采用电能脉冲进行描述;
[0055] 其中,电能脉冲由随机访问存储器(RAM,Random Access Memory)进行接收,然后在随机访问存储器的第一脉冲存储区中记录对应的脉冲计数数据;
[0056] 其中,第一脉冲存储区只记录一个脉冲接收批次中的脉冲计数数据,当第一脉冲存储区记录的脉冲计数数据达到预设计数值时,第一脉冲存储区会进行重置,然后再开始进行下一个脉冲接收批次中的脉冲计数数据;
[0057] 其中,通常情况下,一个电能脉冲对应0.001千瓦时的电能数据,从而可以根据电能脉冲的计数来确定消耗的电能数据;当然,在其他实施例中,一个电能脉冲还可以对应其他大小的电能数据;
[0058] 步骤202,若脉冲计数数据不小于预设计数值,则将第一程序存储区中与目标比特位连续的下一位未进行数据翻转的比特位确定为待翻转比特位,对待翻转比特位进行数据翻转,得到新的目标比特位并对第一脉冲存储区进行重置;
[0059] 其中,待翻转比特位表征未进行数据翻转的比特位;此处的“目标比特位”与后续的“新的目标比特位”前后呼应,表征的是循环过程中的一个子循环;从“新的目标比特位”的得到途径可知,是通过对待翻转比特位进行数据翻转后得到的比特位,即目标比特位是指进行数据翻转的比特位;比如目前第一程序存储区中的数据情况为“00001111”,若0表示进行了数据翻转的目标比特位,1表示未进行数据翻转的待翻转比特位,则该步骤中限定的“与目标比特位连续的下一位未进行数据翻转的比特位”只能是第5位的1;
[0060] 其中,程序存储器与上述随机访问存储器的区别在于,程序存储器能够在掉电时保证存储的数据不丢失,此外,由于本实施例中的程序存储器需要完成电能数据的写入,随着电能数据的更新,程序存储器需要不断的擦写,因此本实施例中的程序存储器为可擦写的程序存储器,比如可以是(EEPROM,可擦除可编程只读存储器);随机访问存储器和程序存储器的具体类型可参照现有技术中的电力计量仪表,只能能够实现其正常功能即可,在此不再赘述;
[0061] 其中,在记录的脉冲计数数据达到预设计数值时,会对程序存储器的第一程序存储区进行数据更新,也即第一程序存储区中的电能数据最小单位与预设计数值的电能脉冲的电能数据对应,比如预设计数值为1,则说明每接收一个电能脉冲都需要在第一程序存储区中进行数据更新以实现记录,对应的,若一个电能脉冲对应0.001千瓦时的电能数据,则第一程序存储区中的电能数据最小单位为0.001千瓦时;
[0062] 其中,预设计数值可以根据实际需求进行设置,比如在本实施例中可按照十进制的方式设置为10,即第一程序存储区中的电能数据最小单位为0.01千瓦时,第一程序存储区用于记录精度为0.01千瓦时的电能数据;在其他实施例中,还可以将预设计数值设置为100,即第一程序存储区用于记录精度为0.1千瓦时的电能数据;
[0063] 其中,当脉冲计数数据达到预设计数值,说明新增的电能数据达到第一程序存储区中电能数据的最小单位,从而需要对第一程序存储区进行数据更新;
[0064] 其中,数据翻转是指将比特位中的数值从0写为1或者从1写为0,目标比特位表征完成了数据翻转的比特位,每一次数据翻转都对应一次数据更新,从而能够根据数据翻转次数来确定第一程序存储区记录的电能数据,比如当前第一程序存储区中完成了10次数据翻转,且预设计数值为10,则说明第一程序存储区记录了0.1千瓦时的电能数据;需要注意的是,数据翻转需要按照一定规则,避免出现最终无法确定数据翻转次数的情况发生,比如采用随机翻转,针对某一个比特位,若将其翻转了2n(n为自然数)次,则对应的数值未发生改变,从而无法确定该比特位未发生翻转,还是翻转了两次或更多,导致最终无法确定第一程序存储区的数据翻转次数;因此,在本实施例中,可按照位置关系进行依次翻转,比如在检测到上一个脉冲接收批次中脉冲计数数据达到预设计数值后,已经将第一个比特位确定为待翻转比特位并进行了数据翻转,则在检测到当前脉冲接收批次中脉冲计数数据达到预设计数值后,将与第一个比特位相邻的第二个比特位确定为新的待翻转比特位并进行数据翻转,以此类推,从而避免了比特位重复翻转的情况发生,既提高了第一程序存储区的写入次数,也保障了记录的电能数据的准确性;此外,上述数据翻转规则的本质是在于避免某个比特位重复翻转,因此只要保证在一个写入周期内,每个比特位不会重复翻转即可,比如除了上述按照位置顺序依次翻转的方式外,还可以采用以一定位置间隔依次翻转,虽然该方式会浪费部分比特位,但其仍然能够实现上述技术效果;在其他实施例中,还可以采用其他方式的翻转,在此不再赘述;
[0065] 其中,若第一程序存储区一共有8个比特位,且预设计数值为10,则按照本实施例的写入方式,最大能够写入0.01*8=0.08千瓦时的电能数据,且每个比特位仅完成了一次写入操作;若按照现有技术中的二进制方式,虽然只需用到4个比特位,但由于其随机选取的方式,会导致某个比特位或某几个比特位完成了不止一次写入操作,比如每次都选取前4个比特位,第一个比特位在每一次更新都会完成一次写入操作,则在写入0.08千瓦时的电能数据中,第一个比特位完成了八次写入操作;由此可见,本实施例的写入方式提够极大的提高第一程序存储区的写入次数,以第一程序存储区一共有8个比特位为例,其写入次数最大可以提高至现有技术中的写入方式的八倍;
[0066] 在现有技术中,针对上述情况通常采用写入次数较大的铁电存储器来代替EEPROM或闪存,但铁电存储器的成本很高。此外,还有采用分区的方式,即在EEPROM或闪存中将全部比特位划分为三个存储区,包括尾数存储区、小数存储区和整数存储区,从而在写入电能数据时,优先对尾数存储区进行写入,然而该方式虽然采用分区方式,但其本质仍然是采用随机选取,因此该方式在提高程序存储器的写入次数这一需求上,技术效果不明显;
[0067] 其中,当脉冲计数数据达到预设计数值后,第一脉冲存储区存储的脉冲计数数据对应的电能数据已经转移至第一程序存储区,因此可将第一脉冲存储区进行重置,以便于下一次存储;
[0068] 步骤203,在第一程序存储区中的最后一位比特位完成数据翻转后,根据第一程序存储区中比特位的数量,对程序存储器的第二程序存储区中的第一计量数据进行数据更新并对第一程序存储区进行重置;
[0069] 其中,第一程序存储区的存储空间大小也可以根据实际需求进行设定;由于在第一程序存储区中的最后一位比特位完成数据翻转后,会对第二程序存储区进行数据更新,因此第一程序存储区的存储空间同上述预设计数值相似,第一程序存储区的存储空间与第二程序存储区中电能数据的最小单位对应,比如第一程序存储区一共有1000个比特位,且预设计数值为10,则第二程序存储区中电能数据的最小单位为0.01*1000=10千瓦时;当然,在其他实施例中,第一程序存储区一共有100个比特位,则第二程序存储区中电能数据的最小单位为1千瓦时;
[0070] 其中,当第一程序存储区中的最后一位比特位完成数据翻转后,第一程序存储区存储的电能数据已经转移至第二程序存储区,因此可将第一程序存储区进行重置,以便于下一次存储;
[0071] 其中,第二程序存储区可以设有多个,且相互作为备份,当需要对第二程序存储区进行数据更新时,同时对多个第二程序存储区进行数据更新,从而当某一个第二程序存储区出现损坏或者干扰时,还能够通过其他第二程序存储区实现第一电能数据的可靠性存储;
[0072] 其中,在本实施例中,程序存储器被划分为第一程序存储区和第二程序存储区,第一程序存储区采用数据翻转的方式来记录低位的电能数据,是考虑到低位的电能数据相对于高位的电能数据需要极大的写入次数,若采用数据翻转的方式来记录高位的电能数据,其提高存储区写入次数的效果不明显(对于高位的电能数据,传统的写入次数已经完全能够满足需求);此外,只对一部分电能数据采用数据翻转,是考虑到数据翻转的方式在单位比特位下能够记录的数据量有限,若全部电能数据(包括低位和高位)都采用数据翻转的方式,会严重超出程序存储器的存储空间,导致无法完整写入,也会影响后续读取或查看的效率。
[0073] 通过上述计量数据存储方法,在对程序存储器进行分区的基础上,充分利用第一程序存储区中的比特位,当需要对第一程序存储区进行数据更新时,按照比特位的位置顺序,将第一程序存储区中与目标比特位连续的下一位确定为新的目标比特位,并对新的目标比特位进行数据翻转,从而实现了第一程序存储区中的电能数据写入操作,并且在第一程序存储区中的最后一位比特位完成数据翻转后,对第一程序存储区进行重置,使得第一程序存储区中的每个比特位在一个写入周期内只需要完成一次写入操作,相对于随机选取的方式,能够避免某个或多个比特位在一个写入周期内频繁被选取,进而提高了第一程序存储区的写入次数,最终提高了程序存储器的写入次数,也即提高了程序存储器的存储寿命,能够完整支持仪表的使用寿命期间的数据写入。
[0074] 在一个实施例中,程序存储器包括闪存,待翻转比特位的数值为第一数值,即为1,目标比特位的数值为第二数值,即为0;方法还包括:
[0075] 根据第一数值和第二数值,对第一程序存储区中的目标比特位进行连续性检测,得到检测结果;
[0076] 其中,闪存相对于上述实施例中的EEPROM,体积更小,成本更低;
[0077] 其中,闪存中的比特位其默认值为1,因此在对其进行翻转时,是从1写为0;
[0078] 其中,上述实施例已经提到,对第一程序存储区中的比特位进行写入操作时,是按照位置顺序依次进行,数值为0的比特位在正常情况下应当是连续的,因此可对数值为0的比特位进行连续性检测,根据检测结果来确定写入是否正常;
[0079] 若检测结果表征第一程序存储区中的目标比特位之间存在待翻转比特位,则对第一程序存储区中位于目标比特位之间的待翻转比特位进行异常标记;
[0080] 其中,当出现不连续时,必然存在导致不连续这一情况的空洞位,也即位于数值为0的比特位之间的数值为1的比特位,空洞位的数值也可以理解为非法数据,因此,也可以将位于数值为0的比特位之间的数值为1的比特位理解为非法比特位,进而进行异常标记;确定出的非法比特位需要进行纠错,比如可能是非法比特位出现故障,导致其无法进行擦写。
[0081] 通过连续性检测,能够确定出是否存在需要纠错的非法比特位,从而实现第一程序存储区中的电能数据的自查。
[0082] 在一个实施例中,在检测随机访问存储器的第一脉冲存储区中存储的电能脉冲的脉冲计数数据的步骤之后,上述电能数据存储方法还包括:
[0083] 若脉冲计数数据不小于预设计数值,则对随机访问存储器的随机存储区中的第二电能数据进行数据更新并对第一脉冲存储区进行重置;
[0084] 其中,随机存储区可以理解为第一程序存储区的备份,由于随机访问存储器没有次数的限制,因此可以使用其优先作为电能数据读取的数据来源,从而进一步提高程序存储器的寿命。
[0085] 在一个实施例中,在对随机访问存储器的随机存储区中的第二电能数据进行数据更新的步骤之后,上述电能数据存储方法还包括:
[0086] 检测随机存储区中的第二电能数据;
[0087] 若随机存储区中的第二电能数据不小于预设电能数值,则根据随机存储区中的第二电能数据,对程序存储器的第二程序存储区中的第一电能数据进行数据更新并对第一程序存储区和随机存储区进行重置;
[0088] 其中,预设电能数值和上述实施例中的第一程序存储区的存储空间大小相似,都用于表征存储区在一个周期内能够存储的电能数据大小;具体的,预设电能数值可以为10千瓦时,这与第一程序存储区一共有1000个比特位对应;
[0089] 其中,基于随机存储区的存在,无需再检测第一程序存储区中的比特位是否全部完成翻转,直接读取随机存储区中的数值即可,操作更加简单;需要注意的是,第一程序存储区的存储空间是指用于写入电能数据的存储空间,而不限定为第一程序存储区的实际存储空间,实际存储空间可以大于用于写入电能数据的存储空间,比如为2000个比特位,若需要检测第一程序存储区中的比特位是否全部完成翻转,则需要先定位到用于写入电能数据的比特位中的最后一位,然后再检测该比特位的数值是否为0,在操作上会相对繁琐;此外,直接读取随机存储区中的数值来对第二程序存储区进行数据更新,在该过程中,无需访问第一程序存储区,进一步提高程序存储器的寿命;
[0090] 其中,需要说明的是,当检测到随机存储区中的第二电能数据不小于预设电能数值时,在正常情况下,第一程序存储区中的最后一位比特位也完成了数据翻转,因此上述实施例中的“步骤203,在第一程序存储区中的最后一位比特位完成数据翻转后,对程序存储器的第二程序存储区中的第一电能数据进行数据更新”中对于数据翻转的限定,仅表示满足“第一程序存储区中的最后一位比特位完成数据翻转”这一状态,而非必须通过检测第一程序存储区等方式来确定,也即在本实施例中,在检测到随机存储区中的第二电能数据不小于预设电能数值时,也可以直接认为满足“第一程序存储区中的最后一位比特位完成数据翻转”这一状态。
[0091] 在一个实施例中,上述电能数据存储方法还包括:
[0092] 根据随机存储区中与第二计量数据对应的校验位,对第二计量数据进行校验,得到校验结果;
[0093] 其中,随机访问存储器容易受到干扰,从而导致其存储的数据出现错误;因此在本实施例中,针对该情况可在对随机存储区进行第二电能数据的写入时添加对应的校验位,并且在每次对第二电能数据进行更新时,同步对校验位进行更新,从而在需要根据第二电能数据对第二程序存储区进行数据更新之前,先根据检验位对第二电能数据进行校验,得到对应的校验结果;具体的,校验可采用CRC(循环冗余校验)的方式;
[0094] 若校验结果表征第二电能数据校验失败,则根据第一程序存储区中完成数据翻转的比特位,得到校正电能数据;
[0095] 其中,校验失败,说明第二电能数据是错误的,而程序存储器不易受到干扰,其存储的数据不易出现错误,因此可根据程序存储器存储的电能数据来对随机存储区进行校正;具体的,第一程序存储区是采用数据翻转的方式来实现电能数据的写入,因此需要统计第一程序存储区中完成数据翻转的比特位的数量,比如统计到的数量为950,若按照0.01千瓦时为最小单位,则第一程序存储区写入的电能数据为9.5千瓦时,从而将该电能数据作为校正电能数据;
[0096] 根据校正电能数据,对随机存储区中的第二电能数据进行数据更新;
[0097] 其中,第二电能数据的校验和校正可以应用在各个流程,比如当检测到第二电能数据达到预设电能数值时,在对第二程序存储区进行数据更新之前,先对第二电能数据进行校验,校验成功后才对第二程序存储区进行数据更新;具体的,校验成功,说明第二电能数据是准确的,因此第二电能数据达到预设电能数值这一判定也是准确的,从而能够对第二程序存储区进行数据更新;
[0098] 再比如需要读取当前存储的完整的目标电能数据时,先对第二电能数据进行校验,校验成功后才根据第一电能数据和第二电能数据得到目标电能数据,否则需要根据第一电能数据和校正后的第二电能数据来得到目标电能数据;
[0099] 其中,同理的,第二程序存储区中的第一电能数据也可以带有校验位,从而保证在读取目标电能数据时,分别对第一电能数据和第二电能数据进行校验,提高准确性。
[0100] 在一个实施例中,在检测随机访问存储器的第一脉冲存储区中存储的电能脉冲的脉冲计数数据的步骤之后,上述电能数据存储方法还包括:
[0101] 在停电时在程序存储区的第二脉冲存储区中备份与第一脉冲存储区相同的脉冲计数数据;
[0102] 其中,随机访问存储器由于不具有掉电存储的功能,因此在掉电以后其存储的数据会丢失,并且在上电后处于重置状态;从而导致新增的电能数据(即脉冲计数数据对应的电能数据)在转移至第一程序存储区之前就已经丢失;因此,针对该情况,本实施例在掉电时,将第一脉冲存储区中存储的脉冲计数数据备份至程序存储器的第二脉冲存储区中,保证脉冲计数数据不丢失;
[0103] 在上电时在第一脉冲存储区中恢复与第二脉冲存储区相同的脉冲计数数据;
[0104] 其中,上电时,即可根据第二脉冲存储区中的脉冲计数数据来对第一脉冲存储区进行数据恢复;
[0105] 对第二脉冲存储区进行重置;
[0106] 其中,在完成第一脉冲存储区的数据恢复后,第二脉冲存储区中的脉冲计数数据没有存在的必要,因此可以直接重置;第二脉冲存储区仅作为第一脉冲存储区掉电时的备份,在其他过程中处于重置状态,从而在保证第一脉冲存储区的数据恢复基础上,降低了第二脉冲存储区的写入次数,进而提高了程序存储器的存储寿命;
[0107] 其中,随机存储区中的第二电能数据在掉电后也会丢失,因此同上述脉冲计数数据相似,在上电后,也可以根据第一程序存储区中的电能数据来对随机存储区进行数据恢复。
[0108] 如图3所示,在一个实施例中,程序存储器包括第一程序存储区、第二程序存储区和第二脉冲存储区,随机访问存储器(即图中的RAM)包括随机存储区和第一脉冲存储区,随机访问存储器与用户接口连接;
[0109] 其中,如图4所示,在上电后,先恢复随机存储区中的第二电能数据(即小数电能数据)和第一脉冲存储区中的脉冲计数数据;随着电能脉冲的增加,当脉冲计数数据不小于10时,更新随机存储区和第一程序存储区;当随机存储区中的第二电能数据(即小数电能数据)不小于10千瓦时,更新第二程序存储区(即存储整数电能数据)并重置第一程序存储区和随机存储区;通过用户接口更新对应的BCD数据(用于输出显示);若检测到掉电,则在第二脉冲存储区中备份第一脉冲存储区存储的脉冲计数数据。
[0110] 第二方面,如图5所示,在一个实施例中,本发明提供一种计量数据存储装置,包括:
[0111] 计数检测模块301,用于检测第一脉冲存储区中存储的能量脉冲的脉冲计数数据;
[0112] 数据翻转模块302,用于若脉冲计数数据不小于预设计数值,则对第一脉冲存储区进行重置,并将第一程序存储区中未进行数据翻转的比特位确定为待翻转比特位,对待翻转比特位进行数据翻转,以对脉冲计数数据的能量脉冲对应的计量数据进行存储。
[0113] 通过上述计量数据存储装置,充分利用第一程序存储区中的比特位,当需要对第一程序存储区进行数据更新时,将未进行数据翻转的一个待翻转比特位进行数据翻转,从而实现了一次写入操作,使得第一程序存储区中的每个比特位在一个写入周期内只需要完成一次写入操作,相对于随机选取的方式,能够避免某个或多个比特位在一个写入周期内频繁被选取,进而提高了第一程序存储区的写入次数,也即提高了第一程序存储区的存储寿命,能够完整支持计量设备的使用寿命期间的数据写入。
[0114] 在一个实施例中,将第一程序存储区中未进行数据翻转的比特位确定为待翻转比特位,对待翻转比特位进行数据翻转,包括:
[0115] 将第一程序存储区中与目标比特位连续的下一位未进行数据翻转的比特位确定为待翻转比特位,对待翻转比特位进行数据翻转,得到新的目标比特位。
[0116] 在一个实施例中,目标比特位的数值为第一数值,待翻转比特位的数值为第二数值;装置还包括:
[0117] 数据检测模块,用于根据第一数值和第二数值,对第一程序存储区中的目标比特位进行连续性检测,得到检测结果;若检测结果表征第一程序存储区中的目标比特位之间存在待翻转比特位,则对第一程序存储区中位于目标比特位之间的待翻转比特位进行异常标记。
[0118] 在一个实施例中,装置还包括:
[0119] 第一数据更新模块,用于在对待翻转比特位进行数据翻转的步骤之后,在第一程序存储区中的全部比特位完成数据翻转后,根据第一程序存储区中的比特位的数量,对第二程序存储区中的第一计量数据进行数据更新;对第一程序存储区进行重置。
[0120] 在一个实施例中,第一脉冲存储区开设于随机访问存储器中,随机访问存储器中还开设有随机存储区,第一程序存储区开设于程序存储器中,程序存储器中还开设有第二程序存储区;装置还包括:
[0121] 第二数据更新模块,用于在检测第一脉冲存储区中存储的能量脉冲的脉冲计数数据的步骤之后,若脉冲计数数据不小于预设计数值,则对第一脉冲存储区进行重置,并根据脉冲计数数据,对随机存储区中的第二计量数据进行数据更新;检测随机存储区中的第二计量数据;若随机存储区中的第二计量数据不小于预设计量数值,则根据随机存储区中的第二计量数据,对第二程序存储区中的第一计量数据进行数据更新;对第一程序存储区和随机存储区进行重置。
[0122] 在一个实施例中,装置还包括:
[0123] 数据校验模块,用于根据随机存储区中与第二计量数据对应的校验位,对第二计量数据进行校验,得到校验结果;若校验结果表征第二计量数据校验失败,则根据第一程序存储区中完成数据翻转的比特位的数量,得到校正计量数据;根据校正计量数据,对随机存储区中的第二计量数据进行数据更新。
[0124] 在一个实施例中,第一脉冲存储区开设于随机访问存储器中,第一程序存储区开设于程序存储器中,程序存储器中还开设有第二脉冲存储区;装置还包括:
[0125] 脉冲备份模块,用于在检测第一脉冲存储区中存储的能量脉冲的脉冲计数数据的步骤之后,在停电时在第二脉冲存储区中备份与第一脉冲存储区相同的脉冲计数数据;在上电时在第一脉冲存储区中恢复与第二脉冲存储区相同的脉冲计数数据;对第二脉冲存储区进行重置。
[0126] 第三方面,在一个实施例中,本发明提供一种计算机设备,如图6所示,其示出了本发明所涉及的计算机设备的结构,具体来讲:
[0127] 该计算机设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图6中示出的计算机设备的结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
[0128] 处理器401是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和计算机程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
[0129] 存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的计算机程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
[0130] 计算机设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
[0131] 该计算机设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
[0132] 尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,当计算机设备为主站时,计算机设备中的处理器401会按照如下的指令,将一个或一个以上的计算机程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的计算机程序,以执行如下步骤:
[0133] 检测第一脉冲存储区中存储的能量脉冲的脉冲计数数据;
[0134] 若脉冲计数数据不小于预设计数值,则对第一脉冲存储区进行重置,并将第一程序存储区中未进行数据翻转的比特位确定为待翻转比特位,对待翻转比特位进行数据翻转,以对脉冲计数数据的能量脉冲对应的计量数据进行存储。
[0135] 通过上述计算机设备,充分利用第一程序存储区中的比特位,当需要对第一程序存储区进行数据更新时,将未进行数据翻转的一个待翻转比特位进行数据翻转,从而实现了一次写入操作,使得第一程序存储区中的每个比特位在一个写入周期内只需要完成一次写入操作,相对于随机选取的方式,能够避免某个或多个比特位在一个写入周期内频繁被选取,进而提高了第一程序存储区的写入次数,也即提高了第一程序存储区的存储寿命,能够完整支持计量设备的使用寿命期间的数据写入。
[0136] 本领域普通技术人员可以理解,上述实施例的任一种方法中的全部或部分步骤可以通过计算机程序来完成,或通过计算机程序控制相关的硬件来完成,该计算机程序可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
[0137] 第四方面,在一个实施例中,本发明提供一种存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行如下步骤:
[0138] 检测第一脉冲存储区中存储的能量脉冲的脉冲计数数据;
[0139] 若脉冲计数数据不小于预设计数值,则对第一脉冲存储区进行重置,并将第一程序存储区中未进行数据翻转的比特位确定为待翻转比特位,对待翻转比特位进行数据翻转,以对脉冲计数数据的能量脉冲对应的计量数据进行存储。
[0140] 通过上述存储介质,充分利用第一程序存储区中的比特位,当需要对第一程序存储区进行数据更新时,将未进行数据翻转的一个待翻转比特位进行数据翻转,从而实现了一次写入操作,使得第一程序存储区中的每个比特位在一个写入周期内只需要完成一次写入操作,相对于随机选取的方式,能够避免某个或多个比特位在一个写入周期内频繁被选取,进而提高了第一程序存储区的写入次数,也即提高了第一程序存储区的存储寿命,能够完整支持计量设备的使用寿命期间的数据写入。
[0141] 本领域普通技术人员可以理解,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)、DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0142] 由于该存储介质中所存储的计算机程序,可以执行本发明所提供的任一种实施例中的计量数据存储方法中的步骤,因此,可以实现本发明所提供的任一种实施例中的计量数据存储方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
[0143] 以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
[0144] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对其他实施例的详细描述,此处不再赘述。
[0145] 以上对本发明所提供的一种计量数据存储方法、装置、计算机设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
[0146] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。