用于长期加电设备健康检测的处理器负载检测方法与流程

    专利查询2022-07-08  156



    1.本发明属于负载计算技术领域,特别涉及一种用于长期加电设备健康检测的处理器负载检测方法。


    背景技术:

    2.随着对动力测控系统嵌入式测控设备系统重启问题进行排查,发现是8259中断控制器不复位造成,而其中原有的负载检测方法采用中断计数,需要用到该控制器,当其不复位时,该方法失效,采用非中断式负载检测算法有效的弥补了负载检测对硬件环境依赖的问题,独立的空循环任务满足剥离8259芯片的需求,运用高精度时钟保证检测的精准度,该方法适用于对测控系统有硬件环境限制的特殊测控场合。目前用于动力测控系统嵌入式测控设备采用 spy中断方式进行负载检测,当依靠的8259芯片中断信号不复位的情况,会导致方法失效,满足不了需要长时间无人值守、需要维持系统高可靠性的测控场合。为实现环境依赖性弱的目标,设计采用非中断式负载检测方法,以实时稳定的持续占有的任务形式保证了系统的高可靠性。


    技术实现要素:

    3.有鉴于此,本发明提供了一种用于长期加电设备健康检测的处理器负载检测方法,能够实现降低动力测控系统嵌入式测控设备中负载检测方法对硬件环境的依赖性。
    4.为实现上述目的,本发明技术方案如下:
    5.本发明的一种用于长期加电设备健康检测的处理器负载检测方法,包括如下步骤:
    6.建立一个最低优先级的空循环任务;
    7.在该任务切出和切出时挂载钩子函数,在其中用处理器的时钟完成空闲任务占用时间的计时;并且累加在空闲总计时变量上;
    8.根据不同计时器的频率从计数推导为以秒为单位的计时占比以演算出负载所占时间,计算公式如下:
    [0009][0010]
    其中,在计算完成后,将循环周期、空闲总计时变量清零,开始新的周期。
    [0011]
    其中,根据vxworks操作系统的任务调度机制。
    [0012]
    其中,拓展系统本身的时钟中断服务函数根据操作系统的时钟每1/60秒调用一次,每次调用将循环计数 1,当循环到预先设定好的数值时,进行负载计算。
    [0013]
    其中,采用长期加电设备健康检测的处理器负载检测结构进行检测,所述结构包括自定义的空闲任务和延展的系统时钟中断程序,两者通过空闲时间全局变量交互;空闲任务完成处理器空闲状态的计时,延展的系统时钟中断程序在进行负载计算。
    [0014]
    有益效果
    [0015]
    本发明是一种非中断式的检测算法,降低动力测控系统嵌入式测控设备中负载检测方法对硬件环境的依赖性。具体地,本方明根据vxworks操作系统的任务调度机制,采用非中断式的负载检测方法,以达到解决原有中断检测方法因8259中断控制器不复位导致方法失效的问题。实时性系统本身在空闲状态会进行自身的空循环,而用自定义的空循环任务占有系统的空循环状态,不会增加处理器的负载。本发明所用钩子函数方法,将切入和切出时间利用高精度计时器计数,并将差值累加在空闲总计时全局变量上。拓展系统的时钟中断服务函数,在达到计算周期时进行计算,以系统的时钟中断服务函数周期为一个计算周期的基本单位,因该中断服务函数根据时钟沿触发,周期统一,因此可以保证计算周期的一致性。
    附图说明
    [0016]
    图1为本发明所用的长期加电设备健康检测的处理器负载检测结构示意图。
    [0017]
    图2为本发明负载检测算法结构示意图。
    具体实施方式
    [0018]
    下面结合附图并举实施例,对本发明进行详细描述。
    [0019]
    图1是本发明所用的长期加电设备健康检测的处理器负载检测结构示意图,包括自定义的空闲任务和延展的系统时钟中断程序,两者通过空闲时间全局变量交互。空闲任务完成处理器空闲状态的计时,延展的系统时钟中断程序在进行负载计算。
    [0020]
    图2是本发明负载检测算法结构示意图。如图2所示空闲任务的创建意味着周期开始,钩子函数会一直记录当前周期内空闲任务的运行时间,当判定时间到达计算时间时,周期结束,进行负载计算,清零所有状态量。
    [0021]
    本方明根据vxworks操作系统的任务调度机制,采用非中断式的负载检测方法,以达到解决原有中断检测方法因8259中断控制器不复位导致方法失效的问题,具体方法如下:
    [0022]
    首先建立一个最低优先级的空循环任务,这样当系统空闲时,该任务会占满所有空闲时间。
    [0023]
    在该任务切出和切出时挂载钩子函数,在其中用处理器的高精度时钟(200mhz)进行计数,并且累加在空闲总计时变量上。
    [0024]
    拓展系统本身的时钟中断服务函数根据操作系统的时钟每1/60秒调用一次,每次调用将循环计数 1,当循环到预先设定好的数值(也称循环周期)时,进行负载计算,计算公式为:
    [0025][0026]
    在计算完成后,将循环周期、空闲总计时变量清零,开始新的周期,,避免长期运行导致数值越界的情况。
    [0027]
    综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。


    技术特征:
    1.一种用于长期加电设备健康检测的处理器负载检测方法,其特征在于,包括如下步骤:建立一个最低优先级的空循环任务;在该任务切出和切出时挂载钩子函数,在其中用处理器的时钟完成空闲任务占用时间的计时;并且累加在空闲总计时变量上;根据不同计时器的频率从计数推导为以秒为单位的计时占比以演算出负载所占时间,计算公式如下:2.如权利要求1所述的方法,其特征在于,在计算完成后,将循环周期、空闲总计时变量清零,开始新的周期。3.如权利要求1或2所述的方法,其特征在于,根据vxworks操作系统的任务调度机制。4.如权利要求3所述的方法,其特征在于,拓展系统本身的时钟中断服务函数根据操作系统的时钟每1/60秒调用一次,每次调用将循环计数 1,当循环到预先设定好的数值时,进行负载计算。5.如权利要求1所述的方法,其特征在于,采用长期加电设备健康检测的处理器负载检测结构进行检测,所述结构包括自定义的空闲任务和延展的系统时钟中断程序,两者通过空闲时间全局变量交互;空闲任务完成处理器空闲状态的计时,延展的系统时钟中断程序在进行负载计算。

    技术总结
    本发明公开一种用于长期加电设备健康检测的处理器负载检测方法,其特点主要包括对鲁棒性强、系统影响小、误差小、免维护四大环节。由搭载钩子函数的空闲任务和拓展的系统时钟中断服务函数组成,钩子函数使用处理器的高精度时钟记录每次空闲任务调用时长后,传递给系统时钟中断服务函数中,该函数在达到计算周期时进行计算。采用非中断式负载检测算法有效的解决了依赖硬件环境的问题、鲁棒性强,最低优先级的空循环任务保证其占有全部的系统空闲时间且处于低功耗运行,对系统影响小且误差小,所有状态量都会在周期结束清零,满足长期运行、免维护的需求。该方法适用于对测控系统有维护条件限制、硬件环境有限制的特殊测控场合。合。合。


    技术研发人员:荆瀚谊 解梦迪 贾凡
    受保护的技术使用者:北京航天测控技术有限公司
    技术研发日:2021.12.31
    技术公布日:2022/5/25
    转载请注明原文地址:https://tc.8miu.com/read-2089.html

    最新回复(0)