Autosar模式管理系列介绍03-WdgM

本文框架

  • 1.概述
    • 1.1 WDG架构概述
  • 2.WdgM介绍
    • 2.1校验的三种方式
      • 2.1.1 Alive Supervision
      • 2.1.2 Deadline Supervision
      • 2.1.3 Program Flow Supervision
    • 2.2 WdgM配置
    • 2.3 多核WdgM
  • 3.Wdg_If介绍
  • 4.Wdg(内狗)介绍
    • 4.1 Wdg配置
    • 4.2 内狗的喂狗时机
  • 5.Wdg_Sbc(外狗)介绍
  • 6.模式管理系列文章汇总

1.概述

在嵌入式系统中,常通过看门狗来监测芯片内部运行情况,一旦发生错误就向芯片发出重启信号的电路,防止程序跑飞,也可以防止程序在线运行时出现死循环。
WdgM是AUTOSAR服务层的一个基本软件模块,用于满足软件的功能安全需求,简单讲就是看门狗抽象出来的一个管理模块。WdgM通过检查安全相关功能的逻辑顺序或程序流的执行时间(timeout时间)来判断喂狗条件是否满足,条件满足则喂狗,并重置校验的timeout时间,否则判定超时。

1.1 WDG架构概述

WdgM在Autosar架构中的层级如下:Autosar模式管理系列介绍03-WdgM_第1张图片
即WdgM通过WdgIf和Wdg控制硬件实现看门狗功能,此处的看门狗可以是一个或多个内部或外部看门狗。
Autosar模式管理系列介绍03-WdgM_第2张图片

2.WdgM介绍

2.1校验的三种方式

WdgM有三种校验方式,分别如下:
Alive Supervision:检查监测点执行的频率,即是否有停止执行或执行频率过快情况;
Daedline Supervision:检查相邻任务执行之间的最大时间;
Program Flow Supervision:检查任务执行的逻辑顺序是否正确,如先A后B等。
如下将分别对三种校验方式进行详细介绍:

2.1.1 Alive Supervision

检查监测点执行的频率,例如某算法需要传感器定期报告其测量值,并且某些特定的程序会定期处理这些数据,如果任务停止报告或报告太频繁,则该任务的有效性将受到侵犯。

2.1.2 Deadline Supervision

限期监督的截止期限通过最大截止期限(WdgDeadlineMax)和最小截止期限(WdgDeadlineMin)来定义,系统不应该在最小截止期限前或最大截止期限后执行监测点所在的受监督实体。该监督方式有利于发现任务崩溃或任务无限循环情况。
如下给出了限期监督的实例:
第一个截止时间定义的最小值为0,最大值为2s,因此CP1必须在CP0之后不晚于2s到达。第二个截止时间意味着CP1之后不早于1s且不晚于3s到达CP2,否则将检测到违反截止期限。
Autosar模式管理系列介绍03-WdgM_第3张图片

2.1.3 Program Flow Supervision

程序流监督,ISO 26262-6(7.4.14)强烈推荐该监督方式,该监测方法除监控算法中的逻辑顺序外,还检测整个系统内法非法程序计数器跳转的概率。
如下给出了一个称为temperature_control的程序流监督的实例:
1)在temperature_control实体中有六个检查点,其执行顺序通过箭头连接;
2)如下图,可在read_temperature后到达tempetature_needs_correction;
3)但如果在read_temperature后直接到达heater_adjusted_successfully则将违反程序流监督原则。
Autosar模式管理系列介绍03-WdgM_第4张图片
受监督实体在被检测到程序流违规后,状态将从‘OK’转换到‘FAILED’,在架构设计中运行配置一定数量的程序流违规,即定义程序流参考周期(WdgM监视周期的倍数)和一个容差,该容差是程序流引用周期的倍数,在此误差期间允许程序流违规。但当检测到超过该误差的程序流违规次数后,监管实体状态将从‘FAILED’变为‘EXPIRED’。
容忍程序流监督必要的配置:
WdgMFailedProgramFlowRefCycleTol:受监督实体可接受的程序流违规次数;
WdgMFailedProgramFlowRefCycle:受监督实体的程序流参考周期。

2.2 WdgM配置

实际使用中一般在Davinci Configurator中进行配置,配置的主要参数如下:
监控模式:Alive/Deadline/Program Flow
Check Point:测点
Watchdog Mode(喂狗方式):Fast/Slow/Off Mode
关联WdgIf Device
关联Trigger Device
关联Core:与所在的核关联起来;

2.3 多核WdgM

WdgM可应用于单核或多核系统,如应用于多核系统则需求每个被监控的核都运行一个单独的WdgM Instance,每个WdgM Instance都独立于其他核,有自己的时基去并分别调用WdgM_MaiFunction。

3.Wdg_If介绍

在WdgM_MainFunction()中周期性的被调用WdgIf_SetTriggerCondition(),向下关联Wdg Driver驱动函数,即:
内狗:Wdg_17_Scu_SetTriggerCondition()
外狗:Wdg_30_Sbc_SetTriggerCondition()
关联后会对喂狗的条件进行干预,满足条件才能喂狗。

4.Wdg(内狗)介绍

4.1 Wdg配置

一般对于AUTOSAR架构,在EB中进行配置,需要关联内狗的定时器,如GTM或GPT通道。

4.2 内狗的喂狗时机

对于当前本人遇到的项目,内狗喂狗发生在两处:
一处为在Wdg_17_Scu_SetTriggerCondition()周期性的调用中喂狗,
另一处在Wdg_17_Scu_SetTriggerCondition()函数执行后会初始化定时器开始定时,达到设定时间后会进中断,在中断函数中再喂一次狗。

5.Wdg_Sbc(外狗)介绍

外狗喂狗的逻辑为:GPT设置为Continuous模式(即在达到计时时间后自动再从0开始计时),在到达GPT设置时间进中断后判断WdgM校验的喂狗条件是否满足,满足才喂狗,否则本次不喂狗。

6.模式管理系列文章汇总

1)Autosar架构下的EcuM介绍

2)Autosar架构下的BswM介绍

3)Autosar架构下BswM模式切换详细介绍

4)Autosar架构下的WdgM-实战总结

你可能感兴趣的:(Autosar扫盲系列,autosar,嵌入式)