大家好、
我的客户在 Fusi 应用中使用 TPS3850窗口看门狗(PL-c、理想情况下是将来会使用 PL-d)。 您可以立即找到许多有关窗口看门狗工作原理及其与普通看门狗的区别的说明、但原则上不了解如何从软件触发它。
我们当前的解决方案不时尝试触发 WWDG。 但是、我们在软件中构建了一种"看门狗"、然后查看时钟并再次丢弃大部分脉冲、因为它们过早出现。 只有当下缘的时间窗口打开时、防护装置才会让切换脉冲通过。 然而、原则上、这绕过了 WWDG 特有的下限。
我们的看门狗具有22/55ms 的下/上时间窗口。 我们的 SW 是闭环控制、一个主循环周期在正常运行中花费的时间少于1ms。 现在每次运行都会发送生命体征、软件中的看门狗模块随后会检查是否已超过较低时间窗口。 否则、生命体征会被丢弃、否则会切换 WD 引脚。 不过、也有不规则的特殊功能(例如将参数写入闪存、计算校验和等)、此类功能花费的时间远远超过正常周期、并且、根据数据量、它们的长度通常差异很大。
如果主循环中有一半的函数未被执行、一个周期在0.4ms 而非0.8ms 内完成、那么 WD-SW 模块必须丢弃两倍的寿命信号、但是外部窗口看门狗并不注意到这一点。 例如、您可以计算或通常提前计算一个运行所需的时间、然后每28个运行切换一次看门狗。 但是还有这些特殊函数、它们很难估算何时以及运行多长时间、这会让一切产生困惑。
最好能得到一些更有用的提示、了解如何以最合理的方式从 SW 触发 WWDG。
谢谢!
达里亚