在汽车安全性要求越来越高的电子系统中,为保证系统程序按照预期流程运行,看门狗对程序的监控措施已成为功能安全需求不可或缺的部分。比如实现程序运行逻辑的监控,实现程序运行时间的监控等,这样的看门狗应用需求,一般的看门狗是无法满足的,ZLG为用户推荐使用FS45/65电源管理芯片,其看门狗基于“question/answer”原理实现,可以很好的支持相关功能安全设计。
一、看门狗介绍
图1 Challenger WD
FS45/65的看门狗是Challenger WD,基于“question/answer”原理实现看门狗刷新:FS45/65基于线性移位寄存器(LFSR)生成8位伪随机数,MCU可以发送自定义LFSR的seed或使用FS45/65默认的LFSR值(0xB2),执行预定义的计算,通过SPI发送结果给FS45/65进行验证。验证正确,会产生新的伪随机数;验证错误,WD错误计数器递增,WD_LFSR的值不变,WD错误计数器按照预定的配置,达到一定阈值,对RSTB和FS0B进行控制,从而使系统进入安全状态。
任何WD的刷新都会重新启动窗口,这样可确保MCU与FS65之间的同步,同时与MCU系统独立的外部看门狗更能保证系统的稳定性。
二、看门狗窗口
图2 看门狗窗口
第一个看门狗刷新在INIT阶段,第一次看门狗刷新后,设备进入正常WD刷新模式,MCU必须在看门狗窗口打开期间刷新看门狗。看门狗窗口时间可以在WD_WINDOW[3:0]位配置为1.0ms到1024ms。看门狗只能在INIT阶段禁用,以允许“重新编程”。
l 无论好的、坏的WD刷新或WD超时,都会重新启动新的WD窗口;
l 可以在任意阶段更改窗口时间,更改窗口时间将在下一次WD刷新之后体现;
l 窗口的占空比为50%±10%,不可修改。
三、看门狗错误计数
图3 看门狗错误计数器
FS45/65实现看门狗错误计数器管理,器件在INIT阶段通过配置看门狗错误计数阈值来决定RSTB和FS0B的动作,保证系统在发生严重的看门狗故障时,能够迅速进入安全状态。
出现看门狗故障时,WD错误计数器加2;正确刷新时,WD错误计数器减1。该原理确保循环的“OK/NOK”行为收敛于故障检测。为了允许应用程序的灵活性,在INIT阶段,该计数器的最大值可以使用WD_CNT_RFR[1:0]位进行配置。
看门狗错误计数器值可由单片机读取WD_ERR[2:0]位,用于诊断看门狗是否刷新正确。
四、看门狗刷新计数器
图4 看门狗刷新计数器
看门狗刷新计数器用于递减故障错误计数器。每次看门狗正确刷新时,看门狗刷新计数器将增加1,每当看门狗刷新计数器达到6,如果下一次WD刷新也很好,故障错误计数器递减1。
无论看门狗刷新计数器的当前值是多少,每次刷新看门狗出现错误时,看门狗刷新计数器将复位为0。
五、ZLG资源
图5 ZLG资源
ZLG为用户准备了完善的器件使用及功能安全资源,包括器件的评测套件、基础功能使用说明文档、基础功能代码、功能安全使用说明文档以及功能安全SafetyLib。
六、总结
FS45/65在看门狗应答策略、故障计数管理功能和诊断等一系列特性都远远优于传统窗口看门狗,能够有效保证系统稳定运行,并且符合国标GB/T 34590-5程序序列监控相关技术要求,可达到很高等级的诊断覆盖率。