前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AutoSAR专题(四)Watchdog Manager

AutoSAR专题(四)Watchdog Manager

作者头像
xbai921031
发布2024-06-21 16:56:43
830
发布2024-06-21 16:56:43
举报

AutoSAR Watchdog Stack由三个软件模块组成,分别是:

  • • Watchdog Manager(WdgM,Watchdog管理器)
  • • Watchdog Interface(WdgIf,Watchdog接口)
  • • Watchdog Driver(Wdg,Watchdog驱动)

Watchdog Manager是AutoSAR架构中位于服务层的模块,通过监控可配置的被监控实体(Supervised Entities)来监控程序流中功能安全相关的逻辑和时间行为等。当它检测到程序执行过程中违反了配置的时间或者逻辑约束时,会执行一系列可配置的操作来从故障中恢复。

Watchdog Manager提供三种监测机制:

  • Alive Supervision

用于监测周期性软件,在一定时间内被监测到的次数必须满足预定值。

  • Deadline Supervision

对于非周期软件,必须满足一个截止时间。

  • Logical Supervision

用于监测软件执行时序的正确性。

被监控实体(Supervised Entity)和检查点(Checkpoint)

  • • Supervised Entity

WdgM监控的逻辑单元

  • • Checkpoint

当到达检查点时,Supervised Entity会调用函数WdgM_CheckpointReached()来向WdgM发出报告。每个Supervised Entity有一个或多个Checkpoint。

Alive Supervision

周期性的Supervised Entity在给定时间范围的执行次数受到限制。通过实时监控,WdgM周期性地检查Supervised Entity的Checkpoint是否在给定时间限制内到达,以此来检查Supervised Entity的运行频率不会太高或者太低。

Alive Supervision配置参数

  • WdgMExpectedAliveIndications

定义一个监测周期有多少个活动指示(Checkpoint到达次数)

  • WdgMSupervisionReferenceCycle

监测周期数

  • WdgMMinMargin

预期活动指示个数的下限

  • WdgMMaxMargin

预期活动指示个数的上限

因此,允许的活动指示个数范围为:

[WdgMExpectedAliveIndications - WdgMMinMargin, WdgMExpectedAliveIndications + WdgMMaxMargin]

Alive Supervision的实现

为了发送活动指示,Supervised Entity会调用函数WdgM_CheckpointReached(),每调用一次,Alive Counter自增1。

Alive Supervision就是通过统计Alive Counter计数来监控是否达到预期的活动指示个数。

此监控由函数WdgM_Main Function()来执行,在WdgMSupervisionReferenceCycle周期内来监测Supervised Entity的Checkpoint的到达数量。

示例

假设监控函数WdgM_Main Function()周期为20ms,Alive Supervision配置参数如下:

WdgMExpectedAliveIndications = 2

WdgMSupervisionReferenceCycle = 2

WdgMMinMargin = 1

WdgMMaxMargin = 0

根据上述配置,WdgM期望在40ms内要检测到一个或两个活动指示。

Deadline Supervision

Deadline Supervision检查非周期性Supervised Entity的时间约束。在这些Supervised Entity中,某个事件的发生及其随后的事件在给定时间间隔内发生,这个时间间隔有最大和最小截止期限(时间窗口)。

Deadline Supervision配置参数

  • WdgMDeadlineMin

最小Deadline

  • WdgMDeadlineMax

最大Deadline

  • WdgMDeadlineStartRef

Deadline开始检查点(Checkpoint)

  • WdgMDeadlineStoptRef

Deadline结束检查点(Checkpoint)

Deadline Supervision的实现

对于Deadline开始和结束的检查点,WdgM有一个时间戳来存储Checkpoint到达的时间。时间戳是通过读取OS Tick来获得的。

目标检查点(Checkpoint)应该在WdgMDeadlineMin和WdgMDeadlineMax之间到达,否则WdgM会检测到当前软件运行违反了Deadline要求。

示例

假设

Checkpoint1的WdgMDeadlineMin = 0

Checkpoint1的WdgMDeadlineMax = 2

Checkpoint2的WdgMDeadlineMin = 1

Checkpoint2的WdgMDeadlineMax = 3

Checkpoint0初始时间点0到达,Checkpoint1,Checkpoint2随后按照先后顺序到达,Checkpoint1和2的到达Deadline窗口如下图所示:

Logical Supervision

Logical Supervision检查Supervised Entity的代码是否按照正确的顺序执行。

示例

假设有一个温度控制模块,执行流程图如下:

上述逻辑中设置了5个Checkpoint,且Checkpoint必须按照如下顺序到达才认为是软件逻辑正确执行,否则检测出程序逻辑错误:

1)Checkpoint0 -> Checkpoint1 -> Checkpoint3

2)Checkpoint0 -> Checkpoint1 -> Checkpoint4 -> Checkpoint5

3)Checkpoint0 -> Checkpoint2 -> Checkpoint5

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 进击的程序喵 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 被监控实体(Supervised Entity)和检查点(Checkpoint)
  • Alive Supervision
    • Alive Supervision配置参数
      • Alive Supervision的实现
        • 示例
    • Deadline Supervision
      • Deadline Supervision配置参数
        • Deadline Supervision的实现
          • 示例
          • 示例
      • Logical Supervision
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档