打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
为什么需要外部看门狗?

为了保证软件运行的鲁棒性,常常在软件设计中,启用看门狗功能。什么是看门狗呢?:简单说,看门狗就是一个定时器(Timer)。如果没有在规定的时间内触发(Trigger)预期动作,则认为软件运行异常,进而程序进入异常处理程序,eg:执行Reset动作。一般的异常处理是软件复位,为什么要软件复位呢?:异常的出现,可能是某些极端工况或者偶发状况导致,如果一个复位动作可以及时将程序拉回正常,可有效避免车辆故障等危险事件。

1、看门狗分类

工程上,常常听到"外狗"、"内狗"的说法。如何理解呢?
  • 外狗:外部看门狗,独立于uC,外部定时器。
  • 内狗:内部看门狗,在uC内部的定时器。

工程中,一般来说,外狗置于电源管理芯片(SBC:System Basic Chip)的内部,而内狗置于主芯片(uC)中,关系示意如下:

对于外狗,一般又可以细分窗口看门狗(WWD:Window Watchdog)功能看门狗(FWD:Functional Watchdog)
WWD的喂狗动作,一般可由IO、SPI触发,而FWD的喂狗动作,多数需要使用SPI触发。WWD和FWD相互独立,可单独使能,FWD一般用于功能安全监控。

(一)Autosar中的Watchdog

在Autosar的规范中,看门狗主要有三个作用:Alive Supervision、Deadline Supervision、Logical Supervision。
  • Alive Supervision:监控周期性软件
  • Deadline Supervision:监控非周期性软件
  • Logical Supervision:监控软件逻辑

工程中,用得最多的监控功能是Alive Supervision。如果仅使用看门狗的Alive Supervision功能,意味着喂狗动作需要在监控的周期性Task中执行。如果Task被周期性地调度,意味着操作系统(OS:Operation System)的启动。如果软件架构按照Autosar开发,OS在被启动之前和关闭之后的代码出问题怎么办呢?

2、为什么需要外部看门狗

(一)软件启动阶段的监控盲区
如下是Autosar EcuM启动阶段的软件运行行为。如果软件只是开启了内狗,eg:仅使能Alive Supervision。需要等到OS启动以后,内狗功能才发挥作用。但是,在程序的初始阶段,OS启动之前,如果程序异常跑飞,内狗则无法起到监控作用,例如:如下红框内的程序无法监控。

对于启动阶段,程序运行异常,如何监控呢?:使能外部看门狗。即:在软件初始化之初,使能外部看门狗,由于外部看门狗独立于uC,一旦使能,uC必须进行喂狗操作。如果程序在初始化过程中,由于异常而没有给外部看门狗喂狗,就会导致外狗超时,进而触发uC的异常处理(eg:Reset),以此确保程序初始化过程中的稳定性。

提示:工程中,一般采用中断的方式喂外狗。

(二)软件Shutdown阶段的监控盲区

当Os关闭以后,如果程序中还有一些手动代码(下图红框部分),如果在此期间程序运行异常,eg:程序进入while(1),使得ECU无法正常休眠。此时的内狗已经关闭,无法监控到此异常,怎么办呢?:使能外狗。

因此,外狗很好得补充了内狗的监控盲区,即:外狗可以监控到程序的初始化及Shutdown阶段的运行状况。

3、看门狗的喂狗原理

(一)内狗喂狗原理
当内狗使能以后,如果程序运行异常,没有有效喂狗,内狗会触发SMU(Safety Management Unit)的Alarm进行异常处理,eg通知复位控制单元(RCU:Reset Control Unit)进行复位。
(二)外狗喂狗原理
如果uC没有及时喂外狗,导致外狗超时,同时拉低ROT Pin,也就是拉低uC的Reset Pin,触发uC的复位。

注意:外狗一旦被外部使能,一般不会关闭

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
AUTOSAR 架构下看门狗的理解
at89S51看门狗
一万字解读AUTOSAR
汪汪汪WDG
89S51系列单片机自带看门狗的用法
ST单片机:独立看门狗和窗口看门狗
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服