fail-safe是电独立的和物理隔离的。fail-safe由自己的参考电压和电流提供,有自己的振荡器,有重复的模拟路径以最小化常见的故障,并有LBIST/ABIST来覆盖潜在故障。fail-safe根据设备部件号提供ASIL B或ASIL D遵从性。除非另有规定,fail-safe定时来自故障安全振荡器,其精度为+/-6%。
fail-safe和专用引脚如图45所示:
ASIL D/B 安全功能
Fail-safe 初始化
在POR或从待机状态中唤醒后,当RSTB引脚被释放时,故障安全状态机进入INIT_FS阶段以进行初始化。为了确保在INIT_FS阶段的写入过程,除了在SPI/I2C传输期间的CRC计算外,还要求MCU对所有INIT_FS寄存器执行以下顺序:
- 在FS_I_Register_A(DATA)中写入所需的数据;
- 在FS_I_NOT_Register_A中写相反的内容(DATA_NOT);
由FS85/FS84执行实时比较过程(XOR),以确保DATA FS_I_Register_A = DATA_NOT FS_I_NOT_Register_A。必须在DATA_NOT内容中反转实用程序位。保留的位不被考虑在内,可以写成“0”。如果比较结果正确,则REG_CORRUPT被设置为“0”。如果比较结果错误,则将REG_CORRUPT位设置为“1”。一旦第一次良好的监视器刷新使INIT_FS关闭,REG_CORRUPT监控就会被激活。
INIT_FS必须在256 ms超时前通过第一次正确的看门狗喂狗来关闭。
在INIT_FS关闭之后,可以使用FS_SAFE_IOS寄存器中的GoTo_INITFS位回到INIT_FS,从INIT_FS之后的任何FS_state中获得。建议在一个正确的看门狗喂狗后立即发送GoTo_INITFS命令。
看门狗
看门狗是the Simple 和 the Challenger看门狗的窗口看门狗。窗口的前半部分叫CLOSED,后半部分叫OPEN。在OPEN窗口期间,一个正确的看门狗刷新是一个正确的看门狗喂狗。在OPEN窗口期间,一个错误的看门狗刷新是一个错误的看门狗喂狗,或者 在CLOSED窗口给一个正确的看门狗刷新也是一个错误的看门狗喂狗,或者在OPEN窗口没有对看门狗进行率先你也是一个错误的看门狗喂狗。在一个正确或者错误的看门狗刷新后,单片机立即启动一个新的窗口周期,以保持与窗口看门狗的同步。
第一次正确的看门狗刷新就关闭了INIT_FS。然后看门狗窗口正在运行,单片机必须在OPEN窗口时正确刷新看门狗。监视器窗口的持续时间可从1.0 ms配置到1024 ms。新的看门狗窗口在下一次看门狗刷新后生效。只能在INIT_FS期间禁用看门狗窗口。当INIT_FS关闭时,看门狗禁用功能将有效。
监督配置需要写入FS_WD_WINDOW和FS_NOT_WD_WINDOW寄存器,如INIT寄存器。
使用WDW_DC [2:0]位,看门狗窗口的占空比可从31.25 %配置到68.75 %。新的占空比在下一次监督更新后生效。
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/68cbb43d6b2a4ff2ba05658ec419f6b4.png
Challenger watchdog
Challenger watchdog监控功能是由OTP_WD_SELECTION位启用的。Challenger watchdog监督机构是基于MCU的问答过程。通过在FS85中实现一个线性反馈移位寄存器(LFSR)来生成一个16位的伪随机字。MCU可以发送LFSR的种子,或使用FS85在INIT_FS阶段生成的LFSR,并执行预定义的计算。该结果在打开监视器窗口期间通过SPI/I2C发送,并通过FS85进行验证。当结果正确时,将重新启动看门狗窗口,并生成一个新的LFSR。当结果是错误的时,WD错误计数器会增加,看门狗窗口会重新启动,LFSR值不改变。
在初始化阶段(INIT_FS)中,MCU发送LFSR的种子,或使用WD_SEED寄存器中提供的FS85生成的默认LFSR值(0x5AB2)。使用这个LFSR,单片机根据下面的公式执行一个简单的计算,并将结果发送到WD_ANSWER寄存器中。
在Challenger watchdog配置中,不可能在WD_SEED寄存器中写入0x0000。当0x0000暂定写时,报告通信错误,配置被忽略。
Simple watchdog
&emsp’ Simple watchdog监视功能由OTP_WD_SELECTION位启用。这个简单的看门狗使用了一种独特的种子。单片机可以在WD_S