看门狗就是定期查看芯片内部的情况,一旦发生错误就向芯片发送重启信 ,从而实现无人职守时持续工作。看门狗在程序中的中断拥有最高优先级。
工作原理:看门狗芯片与单片机的一个IO引脚相连,通过程序控制定时的往看门狗芯片发送脉冲(称为喂狗),当单片机由于其他原因导致跑飞或进入死循环,就不能执行喂狗,看门狗芯片没有接收到单片机的信 ,则看门狗芯片向单片机复位引脚发送复位信 ,则实现了单片机的自动复位。STM32 M4芯片集成了看门狗到内部,化身为一个计数器,当设定的计数值减法计数到0的时候,就会触发复位中断。需要定时的刷新计数值(喂狗),防止计数值到达0产生复位。
独立看门狗(IWDG):Independent Watch Dog
监测并解决软件导致的故障,当计数器达到超时值时,触发一个中断或产生系统复位。
独立看门狗由专用的低速时钟(LSI)驱动,因此在主时钟发生故障时,看门口仍然可以保持运行。
主时钟一般频率都比较高,比较容易收到外界条件的干扰,稳定性较差,低速时钟由于频率低,抗干扰能力比较强,能够保证在主时钟发生故障的情况下仍然能够运行,提高系统的稳定性。
IWDG主要特性:
1、自由运行递减计数器
2、时钟由独立的振荡器提供,
3、当递减计数器到达0x000时产生复位。
定时器喂狗程序
窗口看门狗(WWDG):Window Watch Dog
窗口看门狗常被用来监测,由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而造成的软件故障,必须在限定的时间窗口内刷新计数器,否则导致MCU复位。
窗口看门狗需要在实时操作系统下运行,可以监测系统错误
WWDG的主要特性:
1、可编程的自由运行计递减数器,
2、复位条件:
当递减计数器值小于0x40时复位,
在窗口外重载递减计数器时复位
3、提前唤醒中断(EWI):当递减计数器等于0x40时被触发
喂狗注意事项:必须在窗口范围内喂狗。
提前喂狗,cpu复位
超时喂狗,cpu复位
程序设计:
STM32代码
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!