历史上的今天
今天是:2024年11月04日(星期一)
2020年11月04日 | 让更安全的汽车电子快速落地,符合ASIL-D看门狗应用设计
2020-11-04 来源:EEWORLD
摘要:当下,一边汽车自动化驾驶的发展势头节节攀高,一边频频出现各类痛心的质量事故。需求促进变革,需求促进功能安全在汽车电子的快速落地,本文就带你领略高安全等级设计中的看门狗。
在汽车安全性要求越来越高的电子系统中,为保证系统程序按照预期流程运行,看门狗对程序的监控措施已成为功能安全需求不可或缺的部分。比如实现程序运行逻辑的监控,实现程序运行时间的监控等,这样的看门狗应用需求,一般的看门狗是无法满足的,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阶段禁用,以允许“重新编程”。
无论好的、坏的WD刷新或WD超时,都会重新启动新的WD窗口;
可以在任意阶段更改窗口时间,更改窗口时间将在下一次WD刷新之后体现;
窗口的占空比为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程序序列监控相关技术要求,可达到很高等级的诊断覆盖率。
史海拾趣
|
EVC下 如何得到视频文件的信息?比如"MPG"、"AVI"等嵌入式常用视频格式? EVC下 如何得到视频文件的信息? 比如\"MPG\"、\"AVI\"等嵌入式常用视频格式? 我知道MP3可以通过读ID3信息得到,但视频文件就不知道了 我希望得到该文件的如下信息 1、视频的分辨率,宽、高为多少像素?如768×576. 2、持续时间 3、帧速率 ...… 查看全部问答> |
|
用AD6.9画的板子,前面几张导出的Gerber文件用CAM350查看都是OK的,今天画了个有槽孔的板子,导出来发现钻孔层被放大了,没有落在焊盘上,整体偏移出了板子,请教下各位大侠,是啥问题?导出Gerber时的设定步骤应该没问题,前面几张板子都OK的。… 查看全部问答> |
|
用FATFS写一个文件到SD卡中,比如WR.txt,内容为“THIS IS APPLE”,如果想在这个文件中续写一个“THIS IS APPLE”,应该如何操作??? fresult = f_open(&g_sFileObject, g_cCmdBuf, FA_READ | FA_CREATE_ALWAYS | FA_WRITE); f_s ...… 查看全部问答> |




