本发明涉及工业仪表医疗设备领域,具体地讲,涉及一种工业仪表数据安全存储方法。
背景技术:
在工业应用中仪表的存储器故障是仪表损坏的重要因素之一,仪表的外置存储器通常为IIC或SPI总线,读写操作的指令和地址信息都是通过位标志识别,当出现外部电磁干扰时个别位信息干扰,而导致存储区读写颠倒、地址错误、扇区错误等。此为现有技术的不足之处。
技术实现要素:
本发明要解决的技术问题是提供一种工业仪表数据安全存储方法,该方法能够极大的提高仪表数据的安全性和可靠性,。
本发明采用如下技术方案实现发明目的:
一种工业仪表数据安全存储方法,其特征是,包括如下步骤:
(1)建立分别带校验码的主存储区、轮值副区和备用副区;
(2)CPU初始化,完成存储操作前准备,读取轮值副区标识,确定轮值副区;
(3)判断当前RAM存储器中的累积前的数据是否正确,如果数据错误,转步骤(4),如果数据正确,转步骤(5);
(4)分别对主存储区、轮值副区或备用副区内的数据进行校验,将主存储区、轮值副区或备用副区内校验正确的数据载入到RAM存储器,转步骤(5);如果主存储区、轮值副区或备用副区内数据校验全部错误,重新启动或者提示错误,终止操作;
(5)在RAM存储器中进行累积计算,将RAM存储器中的累积值存入主存储区;
(6)轮值副区和备用副区进行切换,;
(7)将RAM存储器中的累积值存入轮值副区,完成一次存储操作。
作为对本技术方案的进一步限定,所述步骤(4)的具体流程为:
(4.1)读主存储区的校验码判断校验是否正确,如果校验正确,将主存储区的数据载入RAM存储器,如果校验错误,延时设定时间错开工频干扰,如果主存储区校验没有超过3次,重复进行主存储区的校验,如果主存储区校验超过3次,转步骤(4.2);
(4.2)读轮值副区的校验码判断校验是否正确,如果校验正确,将轮值副区的数据载入RAM存储器,如果校验错误,延时设定时间错开工频干扰,如果轮值副区校验没有超过3次,重复进行轮值副区的校验,如果轮值副区校验超过3次,转步骤(4.3);
(4.3)读备用副区的校验码判断校验是否正确,如果校验正确,将备用副区的数据载入RAM存储器,如果校验错误,延时设定时间错开工频干扰,如果备用副区校验没有超过3次,重复进行备用副区的校验,如果备用副区校验超过3次,重新启动或者提示错误。
作为对本技术方案的进一步限定,所述主存储区、轮值副区和备用副区数据块的地址均不连续,并且分布在不同的存储芯片上。存储块地址的错开和多芯片存储对于解决仪表总线收到干扰时或芯片部分空间寿命是有效的解决办法。
与现有技术相比,本发明的优点和积极效果是:本发明提出1个主存储区、轮值副区和备用副区进行数据存储,轮值副区和备用副区交替存储的方法,节省了仪表数据存储和判断数据有效的执行时间,又有效的确保的数据安全;将同一数据的多个相同存储空间定义到不同的位置,用来消除总线出差或芯片出差而可能导致的数据误清除;存储块地址的错开和多芯片存储对于解决仪表总线收到干扰时或芯片部分空间寿命是有效的解决办法。每次操作1个住区和一个副区,保留1个副区的方式,通过保留1个副区而为仪表保留1个安全的空间。
每次操作前先判断仪表RAM存储器内的数据的正确性,当校验错误时则按主存储区、轮值副区、备用副区的顺序读取,将第一组校验正确的数据载入RAM存储器,其操作保证了存入存储空间的数据是正确的,防止非法数据写入存储器中;将轮值副区和备用副区进行存储的交叉管理,2个副区交替参与读写,确保2个副区都为正确数据,即使某次操作出现错误,在下一次交替存储时其数据将得到校正。
附图说明
图1为本发明的数据上电读取操作流程图。
图2为本发明的数据累积操作流程图。
具体实施方式
下面结合附图,对本发明的一个具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
如图1和图2所示,本发明包括如下步骤:
(1)建立分别带校验码的主存储区、轮值副区和备用副区;
(2)CPU初始化,完成存储操作前准备,读取轮值副区标识,确定轮值副区;
(3)判断当前RAM存储器中的累积前的数据是否正确,如果数据错误,转步骤(4),如果数据正确,转步骤(5);
(4)分别对主存储区、轮值副区或备用副区内的数据进行校验,将主存储区、轮值副区或备用副区内校验正确的数据载入到RAM存储器,转步骤(5);如果主存储区、轮值副区或备用副区内数据校验全部错误,重新启动或者提示错误,终止操作;
(5)在RAM存储器中进行累积计算,将RAM存储器中的累积值存入主存储区;
(6)轮值副区和备用副区进行切换,轮值副区和备用副区进行切换即是将轮值副区和备用副区的标识进行切换;
(7)将RAM存储器中的累积值存入轮值副区,完成一次存储操作。
所述步骤(4)的具体流程为:
(4.1)读主存储区的校验码判断校验是否正确,如果校验正确,将主存储区的数据载入RAM存储器,如果校验错误,延时设定时间错开工频干扰,一般延时23毫秒,如果主存储区校验没有超过3次,重复进行主存储区的校验,如果主存储区校验超过3次,转步骤(4.2);
(4.2)读轮值副区的校验码判断校验是否正确,如果校验正确,将轮值副区的数据载入RAM存储器,如果校验错误,延时设定时间错开工频干扰,一般延时23毫秒,如果轮值副区校验没有超过3次,重复进行轮值副区的校验,如果轮值副区校验超过3次,转步骤(4.3);
(4.3)读备用副区的校验码判断校验是否正确,如果校验正确,将备用副区的数据载入RAM存储器,如果校验错误,延时设定时间错开工频干扰,一般延时23毫秒,如果备用副区校验没有超过3次,重复进行备用副区的校验,如果备用副区校验超过3次,重新启动或者提示错误。
所述主存储区、轮值副区和备用副区数据块的地址均不连续,并且分布在不同的存储芯片上。存储块地址的错开和多芯片存储对于解决仪表总线收到干扰时或芯片部分空间寿命是有效的解决办法。
仪表的外置存储器通常为IIC或SPI总线,读写操作的指令和地址信息都是通过位标志识别,当出现外部电磁干扰时个别位信息干扰,而导致存储区读写颠倒、地址错误、扇区错误等,本方法的主存储区数据块和2个副区数据块的地址不连续,并且分布在不同的存储芯片上,避免由于芯片或总线错误导致数据误改写行为,这是其他方法没有涉及到的关键点之一。
从仪表数据的可靠性出发,应避免出现数据丢失,过去专利方法提出了2区或备份时,不可避免出现单区的信息的丢失;而本方法提出的1主存储区和2个副区交替操作方式,一直保持2个区(1主1副)的信息是最新的,在逻辑上增加数据的稳定和可靠,这是其他方法没有涉及到的关键点之一。
从仪表存储操作的效率和安全角度出发,仪表每次对存储器操作的时间越短越好,其可能受到的干扰风险也越低,因此本方法对两个副区采用交替操作方式,而不是对所有存储区进行存储。
本方法提出了在仪表存储数据前,进行RAM存储的数据有效性判断的步骤,确保预存储数据的安全,这个步骤是仪表数据安全的基础,也是其他方法没有涉及到的关键点之一。
以上公开的仅为本发明的一个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。