来源 |开心果 Need Car
知圈 |进“底盘社群”请加微yanzhi-6,备注 底盘
为了保证软件运行的鲁棒性,常常在软件设计中,启用看门狗功能跑pin软件苹果版。什么是看门狗呢? 答:简单说,看门狗就是一个定时器(Timer)。如果没有在规定的时间内触发(Trigger)预期动作,则认为软件运行异常,进而程序进入异常处理程序,eg:执行Reset动作。一般的异常处理是软件复位,为什么要软件复位呢? 答:异常的出现,可能是某些极端工况或者偶发状况导致,如果一个复位动作可以及时将程序拉回正常,可有效避免车辆故障等危险事件。
1、看门狗分类
工程上,常常听到"外狗"、"内狗"的说法跑pin软件苹果版。如何理解呢?
外狗:外部看门狗,独立于uC,外部定时器跑pin软件苹果版。
内狗:内部看门狗,在uC内部的定时器跑pin软件苹果版。
外狗:外部看门狗,独立于uC,外部定时器跑pin软件苹果版。
内狗:内部看门狗,在uC内部的定时器跑pin软件苹果版。
工程中跑pin软件苹果版,一般来说,外狗置于电源管理芯片(SBC:System Basic Chip)的内部,而内狗置于主芯片(uC)中,关系示意如下:
跑pin软件苹果版?" >
对于外狗,一般又可以细分 窗口看门狗(WWD:W indow Watchdog)和 功能看门狗(FWD:Functional Watchdog)跑pin软件苹果版。
WWD的喂狗动作,一般可由IO、SPI触发,而FWD的喂狗动作,多数需要使用SPI触发跑pin软件苹果版。WWD和FWD相互独立,可单独使能,FWD一般用于功能安全监控。
(一)Autosar中的Watchdog
在Autosar的规范中,看门狗主要有三个作用: Alive Supervision、Deadline Supervision、Logical Supervision跑pin软件苹果版。
展开全文
Alive Supervision:监控周期性软件
Deadline Supervision:监控非周期性软件
Logical Supervision:监控软件逻辑
Alive Supervision:监控周期性软件
Deadline Supervision:监控非周期性软件
Logical Supervision:监控软件逻辑
工程中,用得最多的监控功能是 Alive Supervision跑pin软件苹果版。如果仅使用看门狗的 Alive Supervision功能,意味着喂狗动作需要在监控的周期性Task中执行。如果Task被周期性地调度,意味着操作系统(OS:Operation System)的启动。如果软件架构按照Autosar开发,OS在被启动之前和关闭之后的代码出问题怎么办呢?
2、为什么需要外部看门狗
(一)软件启动阶段的监控盲区
如下是Autosar EcuM启动阶段的软件运行行为跑pin软件苹果版。如果软件只是开启了内狗,eg:仅使能 Alive Supervision。需要等到OS启动以后,内狗功能才发挥作用。但是,在程序的初始阶段,OS启动之前,如果程序异常跑飞,内狗则无法起到监控作用,例如:如下红框内的程序无法监控。
跑pin软件苹果版?" >
对于启动阶段,程序运行异常,如何监控呢? 答:使能外部看门狗跑pin软件苹果版。即:在软件初始化之初,使能外部看门狗,由于外部看门狗独立于uC,一旦使能,uC必须进行喂狗操作。如果程序在初始化过程中,由于异常而没有给外部看门狗喂狗,就会导致外狗超时,进而触发uC的异常处理(eg:Reset),以此确保程序初始化过程中的稳定性。
提示:工程中,一般采用中断的方式喂外狗跑pin软件苹果版。
(二)软件Shutdown阶段的监控盲区
当Os关闭以后,如果程序中还有一些手动代码(下图红框部分),如果 在此期间程序运行异常,eg:程序进入while(1),使得ECU无法正常休眠跑pin软件苹果版。此时的内狗已经关闭,无法监控到此异常,怎么办呢? 答:使能外狗。
跑pin软件苹果版?" >
因此, 外狗很好得补充了内狗的监控盲区,即:外狗可以监控到程序的初始化及Shutdown阶段的运行状况跑pin软件苹果版。
3、看门狗的喂狗原理
(一)内狗喂狗原理
当内狗使能以后,如果程序运行异常,没有有效喂狗,内狗会触发SMU(Safety Management Unit) 的Alarm,进行异常处理,eg:通知复位控制单元(RCU:Reset Control Unit)进行 复位跑pin软件苹果版。
(二)外狗喂狗原理
如果uC没有及时喂外狗,导致外狗超时,同时拉低ROT Pin,也就是拉低uC的Reset Pin,触发uC的复位跑pin软件苹果版。
注意:外狗一旦被外部使能跑pin软件苹果版,一般不会关闭