喂狗 Autosar 实战进阶系列:深入了解内部看门狗模块的工作原理
2024-09-19 11:09:52发布 浏览427次 信息编号:174343
友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。
喂狗 Autosar 实战进阶系列:深入了解内部看门狗模块的工作原理
本文框架
1. 简介
本文为MCAL系列入门,如果对配置、通讯、诊断等实战操作有更高要求,可以参考实战进阶系列专栏。快速链接:实战进阶系列入门
本文主要介绍WDG模块,也就是内部看门狗,外部看门狗按照架构来说,是板载设备,一般在SBC里面,所以这里就不介绍了。
内部看门狗是 MCU 提供的功能安全组件,通过定期刷新计数值来检测程序运行状态。如果长时间不进行看门狗操作,则会判断程序失控,从而导致程序进入陷阱或复位。在下面的介绍中,我们先介绍一下内部看门狗的一些基本概念,然后再介绍 WDG 的大致工作过程。
2. 基本概念 2.1 喂狗
如果你没有学过嵌入式系统,看到“喂狗”可能会一头雾水。为什么要再解释一遍“喂狗”?不就是“喂狗”吗?在嵌入式WDG中,喂狗会触发看门狗,当看门狗被触发后,会刷新计时并重新开始。喂狗的计时或间隔可以用来判断程序是否正常运行。
2.2 超时狗和窗口狗
根据操作方式不同,WDG可分为超时狗(Wdg)或窗口狗(Wdg)
超时喂狗:即在规定的时间内才能喂狗,若检测到在设定的时间内没有喂狗,则会触发进一步的安全防护措施。
窗口喂狗:即只能在一定的窗口期内喂狗,窗口期外喂狗无效,例如下图中,在(0.72-1.2)*Twd范围内喂狗有效。
一般来说,超时狗的喂食比较简单,也就是只要在规定时间内喂食就可以了,而窗口狗则只能在开放阶段喂食,其时间要求更加严格,相对来说安全程度也更高。
2.2 快速/慢速/停止模式
根据狗狗是否喂食,以及喂食频率,WDG的运行模式可以分为Fast-Mode、Off-Mode、Slow-Mode:
Fast-Mode:快狗模式
快狗模式下,喂狗频率通常较高,复位的时间限制也比慢狗模式短,以便更快地检测到程序失控复位。
关闭模式:禁用/关闭看门狗模式
看门狗需要在ECU之前关闭,以便关闭整个ECU,但在正常运行时,防止Wdg切换到此模式。
Slow-Mode:慢狗模式
与快狗模式对应,慢狗模式下,喂狗的频率相对比较慢,时间较长。例如实际使用中,考虑到从初始化到周期任务运行的时间较长,因此在Wdg初始化完成后,会将WDG的运行模式设置为Slow-Mode,等到周期任务正式运行后再切换为Fast-Mode。
3.WDG运行流程
如下图所示,WDG的运行流程主要包括初始化、喂狗、设置看门狗模式三部分。
在初始化期间(通常由 EcuM 部分完成),将设置看门狗的初始喂养模式并开始喂养。
看门狗喂狗。架构上,程序运行完之后,Wdg 喂狗之前,需要先在 WdgM 中检查喂狗条件是否满足,如果满足,WdgM 就会调用 () 触发喂狗。具体可以参考博主介绍 WdgM 的文章。
设置看门狗运行模式。运行模式在内部狗初始化时设置。在WdgM运行后,也可以调用()来设置模式。
相关阅读:
提醒:请联系我时一定说明是从星空网上看到的!