一种保护用量数据的存储处理方法及装置的制造方法_2

文档序号:9564542阅读:来源:国知局
施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0043]图1为本发明实施例1提供的一种保护用量数据的存储处理方法的原来框图;
[0044]图2为本发明实施例1提供的一种保护用量数据的存储处理方法的流程图;
[0045]图3为本发明实施例1提供的一种保护用量数据的存储处理方法中在存储用量数据到存储区时的流程图;
[0046]图4为本发明实施例1提供的一种保护用量数据的存储处理装置的结构示意图。
【具体实施方式】
[0047]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。并且,以下各实施例均为本发明的可选方案,实施例的排列顺序及实施例的编号与其优选执行的顺序无关。
[0048]实施例1
[0049]本实施例提供的方法适合部署在智能化电子计量仪表上,特别是其中的单片机MCU中,如图1所示,该计量仪表上的MCU采集用量计量电路的用量数据(本实施例中该用量数据包括计量仪表采集和整理的数据),当用量数据发生变化时,MCU开启存储的读写允许,运用本实施例提供的保护用量数据的存储处理方法,把新的用量数据保存到存储器中。
[0050]为确保用量数据的可靠性及准确性,减少数据存储器的读写操作,降低数据存储器被破坏的概率,数据存储器平时处于保护状态或断电状态,仅在发生用量数据更新需要进行存储或恢复MCU缓冲区被破坏的数据时开启数据存储器的读写操作允许。
[0051]智能化电子计量仪表在正常工作时,根据缓冲区的保护数据与外界进行交互,其中,MCU通过采集用量计量电路的用量数据进行统计,当用量数据发生最小分辨率或约定步进量(每个智能化电子计量仪表都有最小分辨率,也称单位步进量,如水表最小分辨率是0.0lkffh)的单位数据变化,需要进行数据存储时,开启数据存储器读写允许,使用步进控制方法,对需保存的用量数据或重要数据存储进行保护操作。
[0052]下面具体描述本实施提供的一种保护用量数据的存储处理方法,如图2所示,该方法主要包括两个阶段。
[0053]101,在用量数据更新时,需要将更新/刷新的用量数据存储到存储区(位于存储器)上时,即在存储用量数据到存储区时,该阶段主要包括:为存储用量数据的每一流程设置步进控制字;
[0054]102,在需要将该存储区上的用量数据恢复到缓存区(位于MCU)上时,即在恢复用量数据到缓存区时,该阶段主要包括:读取步进控制字,并根据读取的步进控制字判断用量数据存入存储区的过程是否有中断,再根据判断的结果恢复用量数据。
[0055]具体而言,本实施例提供的方法中在完全完成用量数据的存储后会将步进控制字的值设置为0,在将刷新的源用量数据存入存储区前,会先将步进控制字设置为1,并且每执行一个流程都将对步进控制字加1。执行的存储流程按先后顺序分别为开始存储源数据,源数据存储校验,开始存储备份数据,备份数据校验。相应地,上述101中的为存储用量数据的每一流程设置步进控制字,具体包括:
[0056]初始状态时,设置步进控制字的值为第一状态值,如0 ;
[0057]开始存储源用量数据时,设置步进控制字的值为第二状态值,如1 ;
[0058]源用量数据存储校验时,设置步进控制字的值为第三状态值;
[0059]开始存储源用量数据的备份数据时,设置步进控制字的值为第四状态值;
[0060]备份数据校验时,设置步进控制字的值为第五状态值。
[0061]例如:设rStep_state为步进控制字,则有:
[0062]rStep_state = 0:无存储数据操作;
[0063]rStep_state = 1:开始存储源数据;
[0064]rStep_state = 2:源数据存储校验;
[0065]rStep_state = 3:开始存储备份数据;
[0066]rStep_state = 4:备份数据校验。
[0067]那么,在101阶段中将用量数据存储到存储区的过程,如图3所示,包括:
[0068]201、初始状态,即步进控制字rSkp_State = 0,说明目前存储器没有进行数据存储操作;
[0069]202、步进控制字rStep_state = 1,说明计量仪表发生用量数据刷新,开始进入刷新用量数据的存储操作;步进控制字状态首先保存到存储器中,记录数据存储目前进行的步骤;开始进入刷新用量数据的存储操作;
[0070]203、步进控制字+1,即rStep_state = 2,说明目前进行的流程是对刷新用量数据在源数据区域存储是否准确、可靠,是否需要重新进行写入保存的操作;
[0071]204、步进控制字+1,即rStep_State = 3,此时进行的流程是在完成了源数据区域的源用量数据保存后,对源用量数据进行备份存储,确保当源数据区域被破坏后,还可以可靠准确的恢复用量数据,减少因用量数据丢失而造成的经济损失;
[0072]205、步进控制字继续+1,即rStep_state = 4,表示正在进行备份数据在备份数据区域存储操作的正确性验证,与源用量数据保存验证操作处理流程一致;
[0073]206、当备份数据存储操作验证结束后,步进控制字恢复到初始状态,证明此次刷新的用量数据存储操作完整结束,同时关闭存储器读写允许。
[0074]本实施例提供的上述方法中由于用量数据保存过程由步进控制字进行控制,在用户数据存储的任意过程中遭受外界干扰意外中断时,如程序跑飞或掉电,在恢复MCU缓冲区数据时,可根据控制字rStep_state的值,准确定位中断出现的步骤,以便采取相应的用量数恢复手段,并可继续完成存储的完整操作。
[0075]具体而言,102中的根据读取的步进控制字判断用量数据存入存储区的过程是否有中断,再根据判断的结果恢复用量数据,具体包括:
[0076]如果读取的步进控制字的值是第一状态值,则判定用量数据存入存储区的过程没有中断,恢复用量数据到缓存区;
[0077]在智能化电子计量仪表重新上电或MCU复位,缓冲区的用量数据需要重新恢复时,通过读取步进控制字的值,了解是否在意外出现时存在数据存储操作,如果没有数据操作被中断或干扰,即读取的步进控制字的值是0时,则只需完成存储器内的用量数据的合法性检查,恢复到MCU缓冲区即可,
[0078]如果设置的步进控制字的值不是第一状态值,则判定用量数据存入存储区的过程有中断,并根据读取的步进控制字的值对用量数据的进行合法性处理以便恢复用量数据到缓存区。
[0079]也就是说,当存储时存储的操作被中断,可根据步进控制字的值,重新执行数据存储操作,并恢复缓冲区的数据。
[0080]其中,上述根据读取的步进控制字的值对用量数据的进行合法性处理以便恢复用量数据到缓存区,具体包括:
[0081]当读取的步进控制字的值是
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1