单机工作时间的记录装置及记录方法

文档序号:6546322阅读:174来源:国知局
单机工作时间的记录装置及记录方法
【专利摘要】本发明的单机工作时间的记录装置,包括FRAM存储器,所述FRAM存储器通过SPI通讯总线与处理器建立第一数据连接,通过CAN通讯总线与上位系统建立第二数据连接,FRAM存储器中建立存储单机工作时间数据的记录装置,上位系统通过CAN通讯总线查询工作时间数据,处理器通过SPI通讯总线存储单机工作时间数据。本发明单机工作时间记录装置,通过非易失存储器实现单机工作时间记录的方法,能够实现对单机工作时间的可靠记录。同时降低单机的成本,并且不影响单机的可靠性。还包括单机工作时间的记录方法。
【专利说明】单机工作时间的记录装置及记录方法
【技术领域】
[0001]本发明涉及一种数据存储装置及方法,特别是涉及一种长期数据的存储装置及存储方法。
【背景技术】
[0002]单机工作时间数据对系统地开机、重启、开机意义重大,通常单机工作时间的保存采用传统的硬件计时器,需要给计时器供电,并需要安装在单机壳体表面,增加硬件成本,降低了单机的可靠性。而现有单机都具有非易失存储器,借助单机具有的非易失存储器实现单机工作时间记录功能不用更改现有单机增加硬件计时器就能够实现工作时间记录功倉泛。
[0003]非易失存储器是掉电后能保存数据的一系列存储器的简称,包括EEPROM、Flash、FRAM等存储器。EEPROM、Flash写入数据时需要的时间长,总擦写次数低,写数据功耗大等特点。而FRAM提供一种和RAM—致的性能,但又具有与ROM—样的非易失性。FRAM可以兼顾以上二种记忆体的优点。
[0004]但是由于非易失存储器需要与处理器直接通信获取数据,一旦处理器故障或处于挂起、假死机状态,就会造成工作时间记录混乱或缺失,单机工作时间的数据不能可靠记录。而且受处理器寻址机制所限,大部分存储器空间往往不能利用。

【发明内容】

[0005]是提供一种单机工作时间的记录装置,解决FRAM存储器直接存储单机工作时间数据可靠性没有保证的技术问题。
[0006]本发明的目的是提供一种单机工作时间的记录方法,解决利用硬件计时器系统可靠性下降,制造成本上升的技术问题。
[0007]本发明的的单机工作时间的记录装置,包括FRAM存储器,所述FRAM存储器通过SPI通讯总线与处理器建立第一数据连接,通过CAN通讯总线与上位系统建立第二数据连接,FRAM存储器中建立存储单机工作时间数据的记录装置,上位系统通过CAN通讯总线查询工作时间数据,处理器通过SPI通讯总线存储单机工作时间数据。
[0008]所述记录装置中包括单机工作时间存储区、单机工作时间存储区副本和单机上电次数存储区,所述单机工作时间存储区由第一存储单元、第二存储单元和第三存储单元组成,每个存储单元由四个8位字节组成,所述单机上电次数存储区由第一计数单元、第二计数单元和第三计数单元组成,每个计数单元由四个8位字节组成,所述上电次数存储区成对设置,单机工作时间存储区相邻一侧的单机工作时间存储区011作为其单机工作时间存储区副本。
[0009]本发明的单机工作时间的记录方法,包括以下步骤:
[0010]FRAM存储器与处理器间连接SPI通讯总线,与上位系统间建立CAN通讯总线;
[0011]在FRAM存储器中设置若干个单机工作时间存储区、单机工作时间存储区副本和单机上电次数存储区,所述单机工作时间存储区设置第一存储单元、第二存储单元和第三存储单元,每个存储单元设置四个8位字节,所述单机上电次数存储区设置第一计数单元、第二计数单元和第三计数单元组成,每个计数单元设置四个8位字节,所述上电次数存储区成对设置,设置单机工作时间存储区Oll相邻一侧的单机工作时间存储区作为其单机工作时间存储区副本;
[0012]通过SPI通讯总线将单机工作时间数据存储至当前单机工作时间存储区和单机工作时间存储区副本各存储单元,将单机上电次数存储至单机上电次数存储区各计数单元;
[0013]通过CAN通讯总线将单机工作时间数据从当前单机工作时间存储区或单机工作时间存储区副本中读取,将单机上电次数从单机上电次数存储区中读取。
[0014]所述将单机工作时间数据存储,所述单机上电次数存储包括以下步骤:
[0015]s61、处理器产生一个单机工作时间数据通过SPI通讯总线向FRAM存储器写入;
[0016]s62、处理器通过读取模块从一个单机上电次数存储区中读取单机上电次数;
[0017]s63、判断读取模块是否报错,是则执行步骤s64,否则执行步骤s67 ;
[0018]s64、处理器通过读取模块从另一个单机上电次数存储区中读取单机上电次数;
[0019]s65、判断读取模块是否报错,是则执行步骤s66,否则执行步骤s67 ;
[0020]s66、处理器进行故障排除程序;
[0021]s67、处理器通过单机上电次数和单机工作时间存储区数量进行模运算,根据余数选定相应的单机工作时间存储区,确定寻址地址标记;
[0022]s68、处理器向一个单机上电次数存储区的三个计数单元分别作加I赋值操作;
[0023]s69、处理器向另一个单机上电次数存储区的三个计数单元分别作加I后的赋值操作;
[0024]s70、处理器在分钟时间间隔的奇数次向当前单机工作时间存储区发送累进单机工作时间数据,在分钟时间间隔的偶数次向单机工作时间存储区副本发送累进单机工作时间数据;
[0025]s71、处理器终止。
[0026]所述单机工作时间查询、单机上电次数查询包括以下步骤:
[0027]s81、上位系统通过CAN总线向处理器请求读取单机工作时间数据和单机上电次数;
[0028]s82、处理器通过读取模块从FRAM存储器的一个单机上电次数存储区中读取单机上电次数;
[0029]s83、判断读取模块是否报错,是则执行步骤s84,否则执行步骤s87 ;
[0030]s84、处理器通过读取模块从FRAM存储器的另一个单机上电次数存储区中读取单机上电次数
[0031]s85、判断读取模块是否报错,是则执行步骤s86,否则执行步骤s87、步骤s88 ;
[0032]s86、处理器进行故障排除程序;
[0033]s87、处理器通过CAN总线将单机上电次数反馈给上位系统;
[0034]s88、上位系统通过CAN总线请求读取单机工作时间,处理器根据寻址地址标记确定当前单机工作时间存储区,或者处理器将单机上电次数减去偏移量,并与单机工作时间存储区数量进行模运算,确定当前单机工作时间存储区;
[0035]s89、上位系统通过读取模块从当前单机工作时间存储区中读取单机工作时间数据;
[0036]s90、判断读取模块是否报错,是则执行步骤s91,否则执行步骤s94 ;
[0037]s91、上位系统通过读取模块从单机工作时间存储区副本中读取单机工作时间数据;
[0038]s92、判断读取模块是否报错,是则执行步骤s93,否则执行步骤s94 ;
[0039]s93、处理器进行故障排除程序;
[0040]s94、处理器通过CAN总线将单机工作时间反馈给上位系统;
[0041]s%、处理器终止。
[0042]所述读取模块包括以下步骤:
[0043]s51、分别读取第一单元、第二单元和第三单元的数据,形成数据A、数据B和数据C进行比较;
[0044]s52、判断数据A、数据B和数据C是否完全相同,是则执行步骤s54,否则执行步骤s53 ;
[0045]s53、判断数据A、数据B和数据C中是否两组相同,是则执行步骤s55,否则执行步骤 s56 ;
[0046]s54、数据有效,输出该数据;
[0047]s55、数据有效,输出相同的数据,将相同的数据写入另一组数据不同的单元。
[0048]s56、数据无效,输出报错数据。
[0049]所述CAN通讯总线用于将单机调试期间的上电次数、工作时间,作为单机上电次数和单机工作时间的初始修正数据配置给处理器(01),处理器(01)通过SPI通讯总线存储在当前的单机工作时间存储区(011)、单机工作时间存储区副本(Ilb)和单机上电次数存储区(012)中。
[0050]本发明单机工作时间记录方法及记录装置,通过非易失存储器实现单机工作时间记录的方法,能够实现对单机工作时间的可靠记录。同时降低单机的成本,并且不影响单机的可靠性。
[0051]下面结合附图对本发明的实施例作进一步说明。
【专利附图】

【附图说明】
[0052]图1为本发明单机工作时间记录方法利用的记录装置的硬件结构示意图;
[0053]图2为本发明单机工作时间记录方法中设置的单机工作时间存储区的结构示意图;
[0054]图3为本发明单机工作时间记录方法中设置的单机工作时间存储区队列的结构示意图;
[0055]图4为本发明单机工作时间记录方法中设置的单机上电次数存储区的结构示意图;
[0056]图5为本发明单机工作时间记录方法中设置单机工作时间存储区轮换的流程示意图;[0057]图6为本发明单机工作时间记录方法中为满足单机写入时长设置的单机工作时间存储区副本的结构示意图;
[0058]图7为本发明单机工作时间记录方法中读取模块的步骤流程图;
[0059]图8为本发明单机工作时间记录方法中写入单机工作时间的步骤流程图;
[0060]图9为本发明单机工作时间记录方法中单机工作时间查询的步骤流程图。
【具体实施方式】
[0061]本实施例基于与CPU建立数据连接的FRAM形成单机工作时间的记录装置。
[0062]如图1所示,处理器01与FRAM存储器02间通过SPI通讯总线03连接,在FRAM存储器02中设置记录装置。FRAM存储器02和处理器01之间设置用于时间信息查询的CAN总线接口。
[0063]如图2所示,记录装置包括在FRAM存储器02中设置单机工作时间存储区011,单机工作时间存储区011由第一存储单元111、第二存储单元112和第三存储单元113组成,每个存储单元由四个8位字节B组成。
[0064]如图3所示,在FRAM存储器02中设置若干个单机工作时间存储区011,形成单机工作时间存储区(寻址指针逻辑结构呈环形)队列,处理器01通过SPI通讯总线03完成对FRAM存储器02中单机工作时间存储区011的寻址、读操作和写操作。
[0065]如图4所示,在FRAM存储器02中设置单机上电次数存储区012,单机上电次数存储区012由第一计数单元121、第二计数单元122和第三计数单元123组成,每个计数单元由四个8位字节B组成,在FRAM存储器02中单机上电次数存储区012成对设置。
[0066]如图5所示,处理器01设置单机工作时间存储区011数量作为除数整数值,设置单机上电次数存储区012中的数据为被除数整数值,处理器01进行模运算,形成的余数数值作为单机工作时间存储区队列中选定当前单机工作时间存储区011的索引值。
[0067]如图6所示,在FRAM存储器02中设置与当前(选定的)单机工作时间存储区011相邻一侧的单机工作时间存储区011作为单机工作时间存储区副本lib。按分钟时间间隔的奇次数和偶次数分别向当前单机工作时间存储区011和单机工作时间存储区副本Ilb中写入单机工作时间。
[0068]如图7所示,当需要从单机工作时间存储区011或单机上电次数存储区012读取数据时,执行读取模块,读取模块包括以下步骤:
[0069]s51、分别读取第一单元、第二单元和第三单元的数据,形成数据A、数据B和数据C进行比较;
[0070]s52、判断数据A、数据B和数据C是否完全相同,是则执行步骤s54,否则执行步骤s53 ;
[0071]s53、判断数据A、数据B和数据C中是否两组相同,是则执行步骤s55,否则执行步骤 s56 ;
[0072]s54、数据有效,输出该数据;
[0073]s55、数据有效,输出相同的数据,将相同的数据写入另一组数据不同的单元;
[0074]s56、数据无效,输出报错数据。
[0075]通过上电次数(Timel、...、TimelO、...)与单机工作时间存储区011数量可以准确定位当前单机工作时间存储区Oll和单机工作时间存储区副本Ilb的地址范围。
[0076]如图8所述,本实施例中单机工作时间记录方法中写入单机工作时间包括以下步骤:
[0077]s61、处理器01产生一个单机工作时间数据通过SPI通讯总线03向FRAM存储器与入;
[0078]s62、处理器01通过读取模块从一个单机上电次数存储区012中读取单机上电次数;
[0079]s63、判断读取模块是否报错,是则执行步骤s64,否则执行步骤s67 ;
[0080]s64、处理器01通过读取模块从另一个单机上电次数存储区012中读取单机上电次数;
[0081]s65、判断读取模块是否报错,是则执行步骤s66,否则执行步骤s67 ;
[0082]s66、处理器01进行故障排除程序;
[0083]s67、处理器01通过单机上电次数和单机工作时间存储区011数量进行模运算,根据余数选定相应的单机工作时间存储区011,确定寻址地址标记;
[0084]s68、处理器01向一个单机上电次数存储区012的三个计数单元分别作加I赋值操作;
[0085]s69、处理器01向另一个单机上电次数存储区012的三个计数单元分别作加I后的赋值操作;
[0086]s70、处理器01在分钟时间间隔的奇数次向当前单机工作时间存储区011发送累进单机工作时间数据,在分钟时间间隔的偶数次向单机工作时间存储区副本Ilb发送累进单机工作时间数据;
[0087]s71、处理器OI终止。
[0088]采用本实施例方法,可以实现单机工作时间记录技术需要解决工作时间的可靠存储问题,保证数据不能丢失及被破坏;保证记录过程不影响单机的正常工作;采用本实施例装置还能提供单机工作时间的查询接口及累积调试期间工作时间的接口。
[0089]本实施例方法结合本实施例装置,充分满足单机工作时间记录的存储空间,以及记录单机工作时间过程中避免影响单机正常工作。
[0090]单机工作时间记录需要记录20年的时间,而单机工作时间单位精确到分钟即可。在假定单机连续开机20年,每年366天计算,需要记录的时间为10540800分钟,因此需要为每个记录的单机工作时间开辟32位的存储空间。
[0091]记录单机工作时间需要向非易失存储器中写数据,写数据花费的时间越短对单机的正常工作影响越小。经分析,写一份单机工作时间控制在500us以下则对单机的正常工作无影响。
[0092]经过分析计算,单机中采用的铁电存储器(FRAM)读写速度快,写32位的存储区需要的时间不超过lOOus,因此,一次写32位的单机工作时间的次数不超过5次则不会影响单机的正常工作。
[0093]如图9所述,本实施例中单机工作时间记录方法中单机工作时间查询包括以下步骤:
[0094]s81、上位系统通过CAN总线向处理器01请求读取单机工作时间数据和单机上电次数;
[0095]s82、处理器01通过读取模块从FRAM存储器02的一个单机上电次数存储区012中读取单机上电次数;
[0096]s83、判断读取模块是否报错,是则执行步骤s84,否则执行步骤s87 ;
[0097]s84、处理器01通过读取模块从另一个单机上电次数存储区012中读取单机上电次数
[0098]s85、判断读取模块是否报错,是则执行步骤s86,否则执行步骤s87、步骤s88 ;
[0099]s86、处理器01进行故障排除程序;
[0100]s87、处理器01通过CAN总线将单机上电次数反馈给上位系统;
[0101]s88、上位系统通过CAN总线请求读取单机工作时间,处理器01根据寻址地址标记确定当前单机工作时间存储区011,或者处理器01将单机上电次数减去偏移量(本实施例中为I),并与单机工作时间存储区011数量进行模运算,确定当前单机工作时间存储区011 ;
[0102]s89、上位系统通过读取模块从当前单机工作时间存储区011中读取单机工作时间数据;
[0103]s90、判断读取模块是否报错,是则执行步骤s91,否则执行步骤s94 ;
[0104]s91、上位系统通过读取模块从单机工作时间存储区副本Ilb中读取单机工作时间数据;
[0105]s92、判断读取模块是否报错,是则执行步骤s93,否则执行步骤s94 ;
[0106]s93、处理器01进行故障排除程序;
[0107]s94、处理器01通过CAN总线将单机工作时间反馈给上位系统;
[0108]s95、处理器01终止。
[0109]在本实施例写操作的基础上,单机调试期间的上电次数、单机调试期间的工作时间作为单机上电次数和单机工作时间的初始修正数据配置给处理器01,处理器01通过SPI通讯总线作为写操作的初始修正数据存储到当前的单机工作时间存储区011、单机工作时间存储区副本Ollb和单机上电次数存储区012中。
[0110]以上所述的实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案作出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。
【权利要求】
1.一种单机工作时间的记录装置,包括FRAM存储器(02),其特征在于:所述FRAM存储器(02)通过SPI通讯总线(03)与处理器(01)建立第一数据连接,通过CAN通讯总线与上位系统建立第二数据连接,FRAM存储器(02)中建立存储单机工作时间数据的记录装置,上位系统通过CAN通讯总线查询工作时间数据,处理器(01)通过SPI通讯总线(03)存储单机工作时间数据。
2.根据权利要求1所述的单机工作时间的记录装置,其特征在于:所述记录装置中包括单机工作时间存储区(011)、单机工作时间存储区副本(Ilb)和单机上电次数存储区(012),所述单机工作时间存储区(011)由第一存储单元(111)、第二存储单元(112)和第三存储单元(113)组成,每个存储单元由四个8位字节组成,所述单机上电次数存储区(012)由第一计数单元(121)、第二计数单元(122)和第三计数单元(123)组成,每个计数单元由四个8位字节组成 ,所述上电次数存储区(012)成对设置,单机工作时间存储区(011)相邻一侧的单机工作时间存储区011作为其单机工作时间存储区副本(Ilb)。
3.一种单机工作时间的记录方法,其特征在于,包括以下步骤: FRAM存储器(02)与处理器(01)间连接SPI通讯总线(03),与上位系统间建立CAN通讯总线; 在FRAM存储器(02)中设置若干个单机工作时间存储区(011)、单机工作时间存储区副本(Ilb)和单机上电次数存储区(012),所述单机工作时间存储区(011)设置第一存储单元(111)、第二存储单元(112)和第三存储单元(113),每个存储单元设置四个8位字节,所述单机上电次数存储区(012)设置第一计数单元(121)、第二计数单元(122)和第三计数单元(123)组成,每个计数单元设置四个8位字节,所述上电次数存储区(012)成对设置,设置单机工作时间存储区011相邻一侧的单机工作时间存储区(011)作为其单机工作时间存储区副本(Ilb); 通过SPI通讯总线(03)将单机工作时间数据存储至当前单机工作时间存储区(011)和单机工作时间存储区副本(Ilb)各存储单元,将单机上电次数存储至单机上电次数存储区(012)各计数单元; 通过CAN通讯总线将单机工作时间数据从当前单机工作时间存储区(011)或单机工作时间存储区副本(Ilb)中读取,将单机上电次数从单机上电次数存储区(012)中读取。
4.根据权利要求3所述的记录方法,其特征在于:所述将单机工作时间数据存储,所述单机上电次数存储包括以下步骤: s61、处理器(01)产生一个单机工作时间数据通过SPI通讯总线(03)向FRAM存储器与入; s62、处理器(01)通过读取模块从一个单机上电次数存储区(012)中读取单机上电次数; s63、判断读取模块是否报错,是则执行步骤s64,否则执行步骤s67 ; s64、处理器(01)通过读取模块从另一个单机上电次数存储区(012)中读取单机上电次数; s65、判断读取模块是否报错,是则执行步骤s66,否则执行步骤s67 ; s66、处理器(01)进行故障排除程序; s67、处理器(01)通过单机上电次数和单机工作时间存储区(011)数量进行模运算,根据余数选定相应的单机工作时间存储区(011),确定寻址地址标记; s68、处理器(01)向一个单机上电次数存储区(012)的三个计数单元分别作加I赋值操作; s69、处理器(01)向另一个单机上电次数存储区(012)的三个计数单元分别作加I后的赋值操作; s70、处理器(01)在分钟时间间隔的奇数次向当前单机工作时间存储区(011)发送累进单机工作时间数据,在分钟时间间隔的偶数次向单机工作时间存储区副本(Ilb)发送累进单机工作时间数据; s71、处理器(01)终止。
5.根据权利要求4所述的记录方法,其特征在于:所述单机工作时间查询、单机上电次数查询包括以下步骤: s81、上位系统通过CAN总线向处理器(01)请求读取单机工作时间数据和单机上电次数; s82、处理器(01)通过读取模块从FRAM存储器(02)的一个单机上电次数存储区(012)中读取单机上电次数; s83、判断读取模块是否报错,是则执行步骤s84,否则执行步骤s87 ; s84、处理器(01)通过读 取模块从FRAM存储器(02)的另一个单机上电次数存储区(012)中读取单机上电次数 s85、判断读取模块是否报错,是则执行步骤s86,否则执行步骤s87、步骤s88 ; s86、处理器(01)进行故障排除程序; s87、处理器(01)通过CAN总线将单机上电次数反馈给上位系统;s88、上位系统通过CAN总线请求读取单机工作时间,处理器(01)根据寻址地址标记确定当前单机工作时间存储区(011),或者处理器(01)将单机上电次数减去偏移量,并与单机工作时间存储区(011)数量进行模运算,确定当前单机工作时间存储区(011); s89、上位系统通过读取模块从当前单机工作时间存储区(011)中读取单机工作时间数据; s90、判断读取模块是否报错,是则执行步骤s91,否则执行步骤s94 ;s91、上位系统通过读取模块从单机工作时间存储区副本(Ilb)中读取单机工作时间数据; s92、判断读取模块是否报错,是则执行步骤s93,否则执行步骤s94 ; s93、处理器(01)进行故障排除程序; s94、处理器(01)通过CAN总线将单机工作时间反馈给上位系统; s95、处理器(01)终止。
6.根据权利要求5或6所述的记录方法,其特征在于:所述读取模块包括以下步骤: s51、分别读取第一单元、第二单元和第三单元的数据,形成数据A、数据B和数据C进行比较; s52、判断数据A、数据B和数据C是否完全相同,是则执行步骤s54,否则执行步骤s53 ; s53、判断数据A、数据B和数据C中是否两组相同,是则执行步骤s55,否则执行步骤s56 ;s54、数据有效,输出该数据; s55、数据有效,输出相同的数据,将相同的数据写入另一组数据不同的单元。 s56、数据无效,输出报错数据。
7.根据权利要求6所述的记录方法,其特征在于:所述CAN通讯总线用于将单机调试期间的上电次数、工作时间,作为单机上电次数和单机工作时间的初始修正数据配置给处理器(01),处理器(01)通过SPI通讯总线存储在当前的单机工作时间存储区(011)、单机工作时间存储区副本(Ilb)和单机上电次数存储区(012)中。
【文档编号】G06F13/16GK104008039SQ201410198981
【公开日】2014年8月27日 申请日期:2014年5月13日 优先权日:2014年5月13日
【发明者】李向阳, 张向文, 张洪彬, 刘显勤, 王小军 申请人:北京航天发射技术研究所, 中国运载火箭技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1