在嵌入式系统中,总会看见“看门狗”这个专业术词,它可以防止程序发生死循环或异常跑飞,确保系统的稳定运行。不过也有不少人好奇,除了这些,单片机为什么还需要看门狗?
1、看门狗是什么?
看门狗本质上是一个定时器电路,用于监测系统程序的运行状态。它包含两个主要部分:输入端(喂狗端)和输出端(RST复位端)。在正常工作时,系统会定期向喂狗端发送信号,以清零看门狗定时器(WDT)寄存器。如果由于某种原因,系统未能按时发送信号(即未喂狗),看门狗定时器将超时,随后产生一个复位信号到RST端,使系统复位,从而避免死机。
2、看门狗的工作原理是什么?
喂狗机制:系统正常工作期间,会周期性地输出一个信号到喂狗端,以清零WDT寄存器。这个周期通常是根据系统需求预设的。
超时复位:如果系统因故障未能按时喂狗,WDT定时器将超时。一旦超时,看门狗将产生一个复位信号,使系统复位,以恢复其正常运行状态。
3、SMT32的看门狗有哪些?
①独立看门狗(IWDG):
独立于系统之外,拥有独立时钟,不受系统时钟影响。
主要用于监视硬件错误,如电源故障、外部干扰等。
一旦检测到错误,将立即触发系统复位。
②窗口看门狗(WWDG):
系统内部的故障探测器,时钟与系统相同。
主要用于监视软件错误,如程序死循环、异常跳转等。
具有一个时间窗口,只有在该窗口内喂狗才有效。如果喂狗信号过早或过晚,都将触发复位。
本文凡亿教育原创文章,转载请注明来源!
暂无评论