AUTOSAR中WDG的作用及实现原理(二)

看门狗(WDG)的作用是提供安全功能以确保软件按计划执行,并且CPU不会陷入无限循环或执行意外的代码。如果Wdg模块在一定时间内未被刷新,它将复位CPU。

一、在WdgM模块里,SE(Supervision Entity:监督实体)是执行功能的最小单位,其位于SWC中,监督软件组件的运行状态。每个SE的组成都包括CP(Check Point),CP相当于在程序中设置的检查点,无论哪种判断逻辑,都需要它的存在。

SE模块在SWC中放置CP,通过调用已放置的这些CP,就可以实现判断并进行复位。判断程序是否需要复位,有以下三种方式:

  • Alive Supervision:

组成:Ref Checkpoint、Expected Alive Indication(EAI)、Min&Max Margin、Ref Supervision Cycle(SRC)

原理:通过计算程序运行时检查点出现的个数,然后与期望值进行比较,如果超出容差范围,就报错,对CPU进行刷新。计数的方式有两种,可以是对多段程序内的总检查点数进行统计,也可以是对一段程序多次运行时出现的总检查点数进行统计。

  • Deadline Supervision:

组成:StartRef、StopRef、Min&Max Margin

原理:对起始点和终止点之间程序所花费的时间进行计算,超出容差范围,就报错,对CPU进行刷新。

  • Logical Supervision:

组成:IntialRef、FinalRef、Transition(SourceRef、DestRef)

原理:对程序的执行顺序进行监测,基于检查点出现的顺序。如果顺序不对就报错,对CPU进行刷新。并且存在两种Logical,分为内部和外部,如果检查点全部位于同一个SWC中,就是内部Logical,如果检查点位于多个SWC中,就是外部Logical。

二、WDG模块主要提供以下服务/API:

  • 初始化:Wdg_Init
  • 设置模式:Wdg_SetMode
  • 设置触发条件(设置超时时间/喂狗):Wdg_SetTriggerCondition

你可能感兴趣的:(autosar)