一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种多重看门狗控制方法及其控制系统与流程

2021-10-24 08:32:00 来源:中国专利 TAG:控制系统 通信 看门狗 控制 方法


1.本发明涉及安全控制系统通信领域,具体的说是涉及一种多重看门狗控制方法及其控制系统。


背景技术:

2.看门狗系统广泛应用于硬件和软件当中,看门狗系统本身不是用来解决系统出现的问题,加入看门狗系统的目的是,对于一些程序的潜在错误和恶劣环境干扰等因素而导致的系统死机、且在无人干预的情况下能自动恢复系统正常工作状态。随着计算机和互联网的高速发展,各应用服务和互联网业务的使用也越来越广泛,而这些服务是需要一直提供服务的,这是就需要使用看门狗系统保证其能长期稳定可靠的运行。
3.安全控制系统的模块中设置了看门狗,其作用是诊断控制系统中的软件故障,当检测到这些错误的时候对软件进行复位,保证系统的安全运行,因此看门狗在安全控制系统中的作用十分重要。但是看门狗本身也会失效,失效后无法检测软件故障。因此,功能安全系统中需要对看门狗进行诊断。
4.现有技术中的设计方案一般只设有一个看门狗,在对看门狗功能进行诊断时,诊断动作会导致系统复位、控制过程中断和重启过程会导致数据丢失和时序错误,是对控制系统的一致性和完整性产生危害。在某些安全应用中甚至不允许重启。因此,现有方案的可用性较差。


技术实现要素:

5.为解决现有技术中看门狗难以处理系统的复杂故障以及共因失效的看门狗失效导致系统误操作的问题,本发明提供了一种具有多样性的多重看门狗,它能够通过逻辑控制单元接收多种看门狗信号并进行判断和处理故障,同时逻辑控制单元还带有复位诊断功能,切换不同看门狗复位,有效避免了单一类型看门狗引起的共因失效问题,主控系统不需要对看门狗功能进行检测,避免检测动作导致的系统故障重启。
6.为实现上述目的,本发明采用以下技术方案:
7.首先,本发明公开了一种多重看门狗控制方法,适用于包含多个处理器的嵌入式系统,该方法包括:
8.s1:对硬件看门狗、软件看门狗组、主控处理器中通讯看门狗以及逻辑控制单元进行初始化;所述硬件看门狗、软件看门狗组和通讯看门狗均与逻辑控制单元通信连接;步骤s1是对不同类型看门狗和与它们连接的逻辑控制单元初始化。
9.s2:看门狗进入溢出中断程序,判断看门狗是否未收到对应的喂狗信号,若是,则执行s3,若否,则执行s4;步骤s2为判断看门狗在溢出时是否按时接收到喂狗信号,若是,则所述看门狗监控的任务工作正常,若否,则说明出现故障执行步骤s4。
10.s3:将对应的看门狗定时器清零,返回s2;步骤s3为正常运行的清零操作。
11.s4:所述看门狗向逻辑控制单元发送对应的复位请求信号,再由逻辑控制单元向
对应的处理器发送复位指令,复位成功,则执行s3,复位失败,则执行s5;步骤s4表示的是看门狗发送复位请求信号至逻辑控制单元,再由所述逻辑控制单元进行判断处理并发送对应复位指令。
12.s5:系统死机处理,同时逻辑控制单元对复位失败次数进行计数,并判断复位失败次数是否超限,若是,则执行s6,若否,则返回s4继续复位;步骤s5表示判断对应看门狗控制的复位失败次数是否达到预设阈值,其中所述对复位失败次数的计数既可以是递增式计数也可以是递减式计数。
13.s6:复位失败次数超限后,逻辑控制单元根据看门狗复位等级切换至更高等级的复位操作。步骤s6表示在原看门狗监控任务复位失败达到预设失败次数阈值后,逻辑控制单元会进行复位等级和复位程度更高的操作,例如复位等级最低的通讯看门狗发出复位信号需要复位,但是逻辑控制单元判断复位失败次数达到预设失败次数阈值后,所述逻辑控制单元开始对次高级的软件看门狗组进行复位,所述软件看门狗组的监控信息为主控处理器的各项任务工作状态,同时对主控处理器的所有工作状态进行软件复位,当软件复位失败次数仍然超限后,逻辑控制单元就会对主控处理器进行硬件复位。
14.作为优选,所述步骤s1中的初始化包括根据不同的任务需求初始化不同的看门狗溢出时间以及逻辑控制单元中对应看门狗的复位失败次数阈值。所述看门狗的溢出时间可以根据看门狗类型以及监控的任务类型选择,其中复位等级越高的看门狗其溢出时间也越长,其中所述软件看门狗组用于判断复位指令的总溢出时间比其内部所有的软件看门狗溢出时间都要长。
15.作为优选,所述步骤s1中的软件看门狗组为低效能处理器,包括多个不同任务的软件看门狗,用于监测主控处理器的各项任务运行状态,所述多个软件看门狗喂狗操作由低效能处理器处理,所有软件看门狗中存在任意一个喂狗失败就向逻辑控制单元发送复位指令。具体来说,所述软件看门狗组为低效能处理器,通过spi通讯实现主控处理器发送喂狗信号,所述软件看门狗组检测到异常后会发送对应的软件复位信号;所述通讯看门狗为主控处理器内部自带的看门狗,放在主控处理器通讯模块的最高级中断中进行喂狗,用于诊断主控处理器的通讯状态是否异常。所述硬件看门狗为外围看门狗电路,所述硬件看门狗的喂狗操作放在主控处理器主程序循环中,用于根据主控处理器的时间戳定时发送喂狗信号,诊断主控处理器是否正常。
16.作为优选,所述步骤s5中的死机处理包括读取看门狗复位失败信息,保存系统死机信息,所述读取看门狗复位失败信息为获取复位失败的看门狗复位等级以及对应看门狗的复位失败次数。所述看门狗复位失败信息由主控处理器对系统状态进行判断,为判断看门狗复位成功与否以及实现死机数据读取,具体的实现方式是当系统正常运行过程中,软件会持续更新当前的栈指针到预存的内存地址,在进行各种重启复位操作时,可以查看死机时刻的栈指针进行栈回溯等操作,判断分析问题类型,如果仅是正常重启,则在boot阶段执行喂狗函数入栈时,所述栈指针就会被不断更新到固定预存的内存地址中,若是异常复位操作,则栈指针指向位置与复位前相同。
17.作为优选,所述死机信息包括所述嵌入式系统的一个或多个寄存器数据以及主控处理器内存的镜像信息,看门狗复位失败后,主控处理器将死机信息保存至闪存中,若硬件看门狗复位失败次数也超限,则放弃对硬件复位。死机信息对分析故障原因有非常重要的
作用,当系统死机比较严重,需要将主控处理器的死机信息保存至闪存中。将死机信息保存至闪存的过程可以包括:确定是否为硬件看门狗复位模式,将死机信息保存至闪存中;在未成功的情况下,重新调用硬件复位程序将死机信息保存至闪存中;若硬件看门狗复位失败次数也超限,则放弃对硬件复位。
18.作为优选,所述步骤s6中所述逻辑控制单元执行比原看门狗复位等级高一级的复位操作后,对逻辑控制单元中保存的原看门狗复位失败次数和对原看门狗进行初始化。
19.作为优选,所述步骤s6中所述看门狗复位等级包括最高级的硬件看门狗、次高级的软件看门狗组以及低级的通讯看门狗。从复位等级来看,硬件看门狗的复位操作更彻底,其次是低效能处理器中的软件看门狗组,最低的是主控处理器中的通讯看门狗;从看门狗喂狗信号中断优先级来看,当系统正常运转时,先对硬件看门狗进行喂狗,再根据不同的类型向软件看门狗组发送喂狗信号,通讯看门狗在通讯模块调用的程序循环中进行喂狗操作。总的来说,在相同时间内,所述看门狗的复位等级越高,其喂狗周期越长,喂狗操作次数越少。
20.一种多重看门狗控制系统,其特征在于,所述控制系统包括主控处理器、硬件看门狗、软件看门狗组和逻辑控制单元,所述软件看门狗组为低效能处理器,支持多任务软件看门狗模式,每个任务分别配置一个对应的软件看门狗,其输入端连接主控处理器,输出端连接逻辑控制单元;所述硬件看门狗输入端与主控处理器相连,其输出端连接逻辑控制单元,所述硬件看门狗由主控处理器定期提供喂狗信号,通过时间戳诊断主控处理器;所述主控处理器内部还设有通讯看门狗,所述通讯看门狗为软件看门狗,由主控处理器通讯模块提供喂狗信号,其输出端连接逻辑控制单元;所述逻辑控制单元与主控处理器、硬件看门狗和软件看门狗组连接,当接收到看门狗发出的复位请求后,所述逻辑控制单元经过逻辑判断处理执行对应操作。
21.作为优选,所述逻辑控制单元中执行的步骤为s4、s5和s6,接收看门狗发出的复位请求,执行对应的复位操作;对不同复位等级的看门狗进行复位失败计数,判断复位失败次数是否达到阈值,若达到阈值,则所述逻辑控制单元执行比原看门狗复位等级更高的复位判断流程。
22.作为优选,所述软件看门狗组由看门狗队列单元和看门狗监管单元组成,所述看门狗队列包括多个与主控处理器运行状态对应的具有不同预设溢出时间的软件看门狗,所述看门狗队列还能根据不同预设溢出时间长短进行排序,当看门狗发生变化时重复排序操作;所述看门狗监管单元用于对看门狗队列单元进行监管操作,所述监管操作包括监视、创建或删除看门狗,修改预设溢出时间。所述软件看门狗组中的看门狗监管单元包括一个优先级最高的监管任务,所述看门狗队列单元中的其他软件看门狗对应的任务均要定期发送事件信号给监管任务以表示对应的软件看门狗运行正常。其中最高优先级的监管任务的复位时间需要大于看门狗队列单元中的最大发送事件的时间间隔;所述的喂狗操作统一选择在最高优先级的监管任务里面实现,确保所有任务均已经发送了正常运行的事件后再进行喂狗。
23.本发明的有益效果包括:1、采用多样化看门狗,有效解决了单一类型看门狗无法处理复杂故障的问题。
24.2、多样化看门狗还可以避免同类型看门狗导致的共因失效问题。
25.3、采用逻辑控制单元根据复位失败次数采用多种复位方式。
26.4、采用额外的低效能处理器监测主控处理器各项工作状态,减少了主控系统对看门狗功能的检测,避免检测动作导致的系统故障重启。
附图说明
27.图1本发明的一种多重看门狗控制方法流程图。
28.图2本发明的一种多重看门狗控制系统原理示意图。
29.图中:1

主控处理器,2

硬件看门狗,3

软件看门狗组,31

看门狗队列单元,32

看门狗监管单元,4

逻辑控制单元。
具体实施方式
30.下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
31.对于由软件原因引起的软件复位,主控处理器只进行部分复位,保证软件复位时不断正常任务。当系统在预定时间内多次软件复位就可能会引起整个系统紊乱,使得软件复位无法解决问题。此时执行硬件复位,然而硬件复位会对系统或单板上所有的执行器件芯片进行复位,中断系统任务,产生不良影响,因此不要非常时刻不会采用硬件整板复位。本发明的实施例中采用多重软件看门狗和硬件看门狗结合,根据复位信号产生条件的不同进行不同的复位操作,在必要时刻进行复位程度更彻底的复位操作,与此同时在硬件复位时,系统还会将相关死机信息转移保存,有利于分析故障原因。
32.实施例1:如图1所示,本实施例为一种多重看门狗控制方法,适用于包含多个处理器的嵌入式系统,该方法包括:
33.s1:对硬件看门狗2、软件看门狗组3、主控处理器1中通讯看门狗11以及逻辑控制单元4进行初始化;所述硬件看门狗2、软件看门狗组3和通讯看门狗11均与逻辑控制单元4通信连接。本发明实施例中的嵌入式系统同时配置有多重看门狗,具体包括硬件看门狗2、软件看门狗组3以及主控处理器1中通讯看门狗11,所述各个看门狗包括对应的内部定时器和清零装置,所述步骤s1为对不同类型看门狗和与它们连接的逻辑控制单元初始化,即将不同类型看门狗的内部定时器以及逻辑控制单元对应的复位失败次数清零。其中较为特殊的是软件看门狗组3,所述软件看门狗组3为低效能处理器,支持多任务模式,每个任务分别配置有对应的软件看门狗,用于监测主控处理器1的各项工作状态,所述通讯看门狗11为主控处理器1内部的软件看门狗。
34.s2:看门狗进入溢出中断程序,判断看门狗是否未收到对应的喂狗信号,若是,则执行s3,若否,则执行s4。步骤s2为判断看门狗在溢出时是否按时接收到喂狗信号,若是,则所述看门狗监控的任务工作正常,若否,则说明出现故障执行步骤s4。看门狗进入溢出中断程序表示看门狗的计时时间值达到对应看门狗的预设溢出时间,其中预设溢出时间可以根据看门狗类型或者监控的任务类型选择时间。
35.s3:将对应的看门狗定时器清零,返回s2;清零操作通过调用对应的看门狗内清零装置实现。
36.s4:所述看门狗向逻辑控制单元4发送对应的复位请求信号,再由逻辑控制单元4向对应的处理器发送复位指令,复位成功,则执行s3,复位失败,则执行s5;步骤s4表示当需
要对应看门狗发出复位请求时,所述复位信号先传至逻辑控制单元,由逻辑控制单元进行判断和处理,再向对应的复位接收端发送信号,其中判断和处理操作在步骤s5和s6中实现。与原有的复位操作相比,逻辑控制单元起到了调节控制复位信号,对复位失败操作进行计数并切换复位模式的作用。
37.s5:系统死机处理,同时逻辑控制单元4对复位失败次数进行计数,并判断复位失败次数是否超限,若是,则执行s6,若否,则返回s4继续复位;步骤s5表示判断对应看门狗控制的复位失败次数是否达到预设阈值,其中所述对复位失败次数的计数既可以是递增式计数也可以是递减式计数。若为递增式计数方式时,则溢出条件为:看门狗计数器的数值大于预设的溢出值,若为递减式计数方式,则溢出条件为:看门狗计数器的数值小于预设的溢出值。
38.s6:复位失败次数超限后,逻辑控制单元4根据看门狗复位等级切换至更高等级的复位操作。步骤s6表示在原看门狗监控任务复位失败次数超限后,逻辑控制单元会进行复位等级和复位程度更高的操作,例如复位等级最低的通讯看门狗发出复位信号需要复位,当判断复位失败次数达到预设失败次数阈值后,所述逻辑控制单元4开始对次高级的软件看门狗组3进行复位,所述软件看门狗组3用于监控主控处理器的各项任务的运行状态,软件看门狗组3发送复位指令给逻辑控制单元4,由逻辑控制单元4统一对所述主控处理器1的所有工作状态进行软件复位,当软件复位失败次数仍然达到预设失败次数阈值后,逻辑控制单元4对主控处理器1进行硬件复位。
39.如图1所示,本实施例中所述步骤s1中的初始化包括根据不同的任务需求初始化不同的看门狗溢出时间以及逻辑控制单元4中对应看门狗的复位失败次数阈值。所述看门狗的溢出时间可以根据看门狗类型以及监控的任务类型选择,其中复位等级越高的看门狗其溢出时间也越长,其中所述软件看门狗组3用于判断复位指令的总溢出时间比其内部所有的软件看门狗溢出时间都要长。
40.本实施例中所述步骤s1中的软件看门狗组3为低效能处理器,包括多个不同任务的软件看门狗,用于监测主控处理器1的各项任务运行状态,所述多个软件看门狗喂狗操作由低效能处理器处理,所有软件看门狗中存在任意一个喂狗失败就向逻辑控制单元4发送复位指令。所述通讯看门狗为主控处理器内部自带的看门狗,放在主控处理器通讯模块的最高级中断中进行喂狗,用于诊断主控处理器的通讯状态是否异常。所述硬件看门狗为外围看门狗电路,所述硬件看门狗的喂狗操作放在主控处理器主程序循环中,用于根据主控处理器的时间戳定时发送喂狗信号,诊断主控处理器是否正常。
41.本实施例中所述步骤s5中的死机处理包括读取看门狗复位失败信息,保存系统死机信息,所述读取看门狗复位失败信息为获取复位失败看门狗的复位等级以及对应看门狗的复位失败次数。所述看门狗复位失败信息由主控处理器对系统状态进行判断,为判断看门狗复位成功与否以及实现死机数据读取,具体的实现方式是当系统正常运行过程中,软件会持续更新当前的栈指针到预存的内存地址,在进行各种重启复位操作时,可以查看死机时刻的栈指针进行栈回溯等操作,判断分析问题类型,如果仅是正常重启,则在boot阶段执行喂狗函数入栈时,所述栈指针就会被不断更新到固定预存的内存地址中,若是异常复位操作,则栈指针指向位置与复位前相同。
42.本实施例中所述死机信息包括所述嵌入式系统的一个或多个寄存器数据以及主
控处理器1内存的镜像信息,当使用硬件看门狗2时,主控处理器1将死机信息保存至闪存中,若硬件看门狗复位失败次数也超限,则放弃对硬件复位。死机信息对分析故障原因有非常重要的作用,当系统死机比较严重,硬件复位依旧无法对系统进行复位时,将主控处理器的死机信息保存至闪存中。具体地说,所述逻辑控制单元内部设有多个寄存器,用于记录看门狗复位数据,根据所述复位数据通过主控处理器与逻辑控制单元配合可以判断系统的复位重启模式。当确定系统为异常复位时,主控处理器因为死机可能出现逻辑紊乱,为避免系统一直重复保存信息操作,但又因为逻辑紊乱一直失败,因此设置一个预设重试失败次数,在重试失败次数递减清零或递增达到预设重试失败次数时,主控处理器放弃上述保存死机信息操作,减少占用主控处理运行内存。
43.本实施例中所述步骤s6中所述逻辑控制单元4执行比原看门狗复位等级高一级的复位操作后,对逻辑控制单元4中保存的原看门狗复位失败次数和对原看门狗进行初始化。步骤s6中所述逻辑控制单元4执行比原看门狗复位等级高一级的复位操作后,对逻辑控制单元4中保存的原看门狗复位失败次数和原看门狗中计时时间值进行清零操作。
44.本实施例中所述步骤s6中所述看门狗复位等级包括最高级的硬件看门狗2、次高级的软件看门狗组3以及低级的通讯看门狗11。具体来说,所述软件看门狗组3为低效能处理器,通过spi通讯实现主控处理器发送喂狗信号,所述软件看门狗组3检测到主控处理器状态异常后会发送对应的软件复位信号;所述通讯看门狗11为主控处理器1内部自带的看门狗,放在主控处理器1通讯模块的最高级中断中进行喂狗,用于诊断主控处理器1的通讯状态是否异常。所述硬件看门狗2为外围看门狗电路,所述硬件看门狗2的喂狗操作放在主控处理器1主程序循环中,用于根据主控处理器1的时间戳定时发送喂狗信号,诊断主控处理器1是否正常。从复位等级来看,硬件看门狗2的复位操作更彻底,其次是低效能处理器中的软件看门狗组3,最低的是主控处理器1中的通讯看门狗11;从看门狗喂狗信号中断优先级来看,当系统正常运转时,先对硬件看门狗2进行喂狗,再根据不同的类型向软件看门狗组发送喂狗信号,通讯看门狗11在通讯模块调用的程序循环中进行喂狗操作。在相同时间内,所述看门狗喂狗信号中断优先级越高,其喂狗周期越长,喂狗操作次数越少;而所述看门狗的复位等级越高,其对应复位操作优先级越高,复位操作更彻底。
45.如图2所示,本实施例包括以下的一种多重看门狗控制系统,所述控制系统包括主控处理器1、硬件看门狗2、软件看门狗组3和逻辑控制单元4,所述软件看门狗组3为低效能处理器,支持多任务软件看门狗模式,每个任务分别配置一个对应的软件看门狗,其输入端连接主控处理器1,其输出端连接逻辑控制单元4,所述软件看门狗组3用于监测主控处理器1具体的各项运行状态。
46.所述硬件看门狗2输入端与主控处理器1相连,其输出端连接逻辑控制单元4,所述硬件看门狗2由主控处理器1定期提供喂狗信号,通过时间戳诊断主控处理器1。
47.所述主控处理器1内部还设有通讯看门狗11,所述通讯看门狗11为软件看门狗,其输入端由主控处理器1通讯模块提供喂狗信号,其输出端连接逻辑控制单元4,所述通讯看门狗11用于诊断主控处理器1的通讯状态。
48.所述逻辑控制单元4与主控处理器1、硬件看门狗2和软件看门狗组3连接,当接收到看门狗发出的复位请求后,所述逻辑控制单元4经过逻辑判断处理执行相关的复位指令。
49.本实施例中所述逻辑控制单元4中执行的步骤为s4、s5和s6,接收看门狗发出的复
位请求,执行对应的复位操作;对不同复位等级的看门狗进行复位失败计数,若复位失败次数是否达到阈值,则所述逻辑控制单元4执行比原看门狗复位等级更高的复位判断流程。
50.如图2所述,本实施例中所述软件看门狗组3由看门狗队列单元31和看门狗监管单元32组成,所述看门狗队列31包括多个与主控处理器1运行状态对应的具有不同预设溢出时间的软件看门狗,所述看门狗队列31还能根据不同预设溢出时间长短进行排序,当看门狗31发生变化时重复排序操作;所述看门狗监管单元32用于对看门狗队列单元31进行监管操作,所述监管操作包括监视、创建或删除看门狗,修改预设溢出时间。所述看门狗队列单元31可以按照看门狗的预设溢出时间进行排序,将所述看门狗队列单元31作为一个有序的时间队列,同时为了确保看门狗监管单元32在进行操作时始终保持预设溢出时间是有序排列可以采用互锁、互斥逻辑对看门狗队列单元31进行处理。
51.所述看门狗监管单元32用于对看门狗队列单元进行监管操作,所述监管操作包括监视、创建或删除看门狗,修改预设溢出时间。所述软件看门狗组中的看门狗监管单元32包括一个优先级最高的监管任务,所述看门狗队列单元31中的其他软件看门狗对应的任务均要定期发送事件信号给监管任务以表示对应的软件看门狗运行正常。其中最高优先级的监管任务的复位时间需要大于看门狗队列单元31中的最大发送事件的时间间隔;所述喂狗操作统一选择在最高优先级的监管任务里面实现,确保所有任务均已经发送了正常运行的事件后再进行喂狗。
52.本发明采用多重看门狗组合,并且使用逻辑控制单元4来根据复位信号判断具体的复位操作,根据复位情况采取不同的操作,同时还能在复位重启时保存死机信息。总的来说,采用多样化看门狗,有效解决了单一类型看门狗无法处理复杂故障的问题和同类型看门狗导致的共因失效问题;采用逻辑控制单元根据复位失败次数采用多种复位方式;采用额外的低效能处理器监测主控处理器各项工作状态,减少了主控系统对看门狗功能的检测,避免检测动作导致的系统故障重启。
53.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜