框图
直接上图,等后面了解autosar wdg后再来看这张图就很容易理解了。
wdg结构
喂狗简介
supervised entities (SE):看门狗要监控的对象,比如某个app
WdgM监控某个对象(例如APP)的算法后面再细说。(提前剧透有三类,想用哪类就配置哪类,或者三类都不用,只用简单的喂狗功能)
WdgM_MainFunction函数会周期的喂狗(通过WdgIf和WdgDrive给WdgDevice喂狗),同时会检查程序执行顺序或时序(如果配置了这些功能),当检测到程序执行顺序或时序错误时会停止喂狗,并会复位单片机(如果配置了这些功能)。
WdgM会监控以下软件错误(如果配置使用了三大类监控):
supervised entities 监控对象(例如APP)没有请求执行,但却被执行了。
supervised entities 监控对象(例如APP)请求执行了,但却没被执行。
supervised entities 监控对象(例如APP)启动太快或太晚。
supervised entities 监控对象(例如APP)运行的时间比预期太长或太短。
supervised entities 监控对象(例如APP)运行顺序与预期不一样。
WdgM监控到错误后的处理(可以配置为以下):
发送检测到的错误给对应模块。
看门狗超时复位。
立即复位单片机。
上喂狗时序图:
外狗SBC溢出时间计算(举例):
SbcWatchdogTriggerOffset = 20%
SbcWatchdogTriggerPeriod = 100ms
溢出时间=SbcWatchdogTriggerPeriod*SbcWatchdogTriggerOffset=20ms