【AutoSar_功能安全】Wdg功能和实现方案总结

1. 术语解释

1.1 缩写表

缩写 描述 解释
SC Supervision Cycle 监控周期
SE Supervised Entity 受监控实体
CP Check Point 程序检查点
Transition - CP至另一个CP的迁移路径
Graph - 由Transition组成的程序流,WdgM 会监控其中的 路径

2.前言

在功能安全中,看门狗是一个不可或缺的功能模块;那么,看门狗是什么呢?看门狗有几种?在什么情况下喂狗?看门狗喂狗方式分几种?喂狗的频率如何控制?

2.1 喂狗

在嵌入式程序中,看门狗是用来监测一旦发生错误就向芯片发出重启信号的电路,防止程序跑飞,也可以防止程序在线运行时出现死循环。AutoSar的看门狗功能中,喂狗即Trigger Watchdog,当触发看门狗后,计时counter会被刷新重新开始计算,通过判断喂狗的时机或间隔来判断程序是否在正常运行。

1.2 内狗/外狗

Wdg通常有两种:一种是芯片内部自带的片内看门狗,另一种是在芯片外部通过SPI这种接口连接的片外看门狗。

  • 内狗:MCAL只负责常用的有MCU内部看门狗,片内看门狗的特点是Wdg模块是直接访问相关硬件寄存器。
  • 外狗:片外看门狗属于板级设备抽象层负责,通常需要使用MCAL提供的其他模块(比如SPI,DIO,PWM等)来访问/控制外扩看门狗芯片。这种不能直接访问硬件寄存器。

由于其特殊性,该模块的代码除了可以在ROM里面运行外,也可能会在RAM里面运行。比如在Bootloader刷写Flash时,Wdg模块可能作为二进制文件里面的一部分在RAM上运行。

1.3 超时狗/窗口狗

按喂狗时机又能将看门狗分为超时狗(Timeout Wdg)和窗口狗(Window Wdg)。

1.3.1 超时狗

超时狗喂狗很简单,即采用Timeout模式计时,在Timeout时间内都可以喂狗,当检测到超过设定的Timeout时间仍未喂狗则会触发进一步安全保护措施。

1.3.2 窗口狗

窗口狗需要在某个特定的窗口周期在open window内才能喂狗,在窗口期外喂狗都无效,例如下图中在(0.72-1.2)*twD范围内喂狗有效。
在这里插入图片描述
相较而言,窗口狗的喂狗时机要求更加严格,安全等级也更高。

3.Wdg架构

在AutoSar架构中,作为功能安全中至关重要的一个功能,看门狗系统架构相对简单,如下图:
引用
服务层有WdogM(Wdog Manager)模块,主要为软件状态机,通过软件策略来实现一些监测功能,对上可汇报当前错误状态,对下可调用抽象层接口进行一系列不同类型的复位操作。ECU抽象层则有WdogIf模块,主要将各种看门狗模块进行抽象化管理。MCAL层则就是各种类型看门狗的WdgDriver了。

4.相关模块

Module 相关功能 备注
BswM 重启partition 可以在启动阶段完成Wdgm_Init
EcuM 负责WdgM的初始化和去初始化 可以将Wdg_Init和Smu_Init放入启动阶段
Dem 提供故障事件上报的功能 -
Rte 获取SE的监督状态 -
  • 16
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值