【Autosar从入门到精通到进阶实战篇】06 看门狗“三重门”——内部狗、外部狗、软件狗的协同作战设计
06 看门狗“三重门”——内部狗、外部狗、软件狗的协同作战设计
开篇故事:一场凌晨两点的“死机”噩梦
去年冬天,我接到一个客户电话,语气里带着绝望:“我们的BMS(电池管理系统)在低温-30℃的台架测试中,每隔3小时就会死机一次。ECU的电源指示灯还亮着,但CAN总线完全静默,就像人睁着眼睛却没了呼吸。”
我远程登录日志,发现一个诡异现象:每次死机前,主芯片内部看门狗(WWDG)都正常喂狗,但系统就是无法恢复——这分明是“假活真死”。
客户用了单层看门狗(内部狗),以为能保万无一失,结果在低温、电磁干扰、电源纹波的三重夹击下,内部狗自己先“懵了”。
这让我想起一个血泪教训:汽车电子里,没有“万能狗”,只有“狗群”。今天我们就拆解这个“三重门”架构——内部狗、外部狗、软件狗如何协同作战,让ECU在恶劣电磁环境下稳如磐石。
痛点拆解:单层看门狗的“死穴”
常见错误实现
很多工程师刚接触看门狗时,会写这样的“伪安全”代码:
# 反例:单层内部狗,靠延时喂狗importtimeimportrandomclass