之前聊过TC3xx SMU关于内部看门狗(CPU Watchdog 和Safety Watchdog)Alarm的处理方法。
汽车功能安全--TC3xx SMU之看门狗alarm处理
在里面我们提到了这些Alarm关联的功能安全机制:
SM[HW]:SCU:ENDINIT_WATCHDOG
SM[HW]:SCU:SAFETY_WATCHDOG
有一点我们要搞明白,这些安全机制是MCU本身通过软件或者硬件来探测和处理,这在TC3xx中被定义为Safety Mechanism。
但从ECU层面来看,还需要考虑MCU发生故障无法处理SM的场景。在TC3xx里有一类机制,全称叫External Safety Mechanism(ESM),顾名思义就是需要依赖系统级方案来处理,保证整个系统处于安全状态。
这类机制的方案示例如下:
今天要聊的外部看门狗安全机制ESM[HW]:SYS:WATCHDOG_FUNCTION就是其中的一种。
该机制主要是利用一个独立时钟和看门狗功能的外部设备来监测MCU,如果检测到可能导致违反系统安全目标的故障,这个设备就需要让整个系统进入到安全状态。
那能和TC3xx配套实现上述机制的外部设备,毫无疑问TLF35584是首选。
TLF35584内置问答型和窗口型两类看门狗用于支持机制:ESM[HW]:SYS:WATCHDOG_FUNCTION。
示意图如下:
在上图中,我们可以看到,窗口看门狗根据配置,可以通过GPIO(WDI引脚下降沿)或者SPI命令写入数据在合适的时间窗口(Open Window)进行喂狗,可以用于监测APP的时间行为;
问答型看门狗,只能通过SPI进行喂狗,它给应用软件提供4位种子值(0-0xF),然后在一个应用软件可配置时间(也叫心跳)内要获取到应用软件传来的预定义的4字节签名,这类狗主要用于监测APP的逻辑或者功能。
如果喂狗失败了并且失败次数超过错误阈值,Safe Contol会将对外输出的信号SS1\SS2(state signals)拉低,至于这些信号接什么,就看系统怎么定义了。