硬件看门狗工作原理( 三 )


看门狗分硬件看门狗和软件看门狗 。硬件看门狗是利用一个定时器电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零(俗称“喂狗”),因此程序正常工作时,定时器总不能溢出,也就不能产生复位信号 。
如果程序出现故障,不在定时周期内复位看门狗,就使得看门狗定时器溢出产生复位信号并重启系统 。软件看门狗原理上一样,只是将硬件电路上的定时器用处理器的内部定时器代替,这样可以简化硬件电路设计,但在可靠性方面不如硬件定时器 。
比如系统内部定时器自身发生故障就无法检测到 。当然也有通过双定时器相互监视,这不仅加大系统开销,也不能解决全部问题,比如中断系统故障导致定时器中断失效 。
扩展资料:
应用:
看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的 。
一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号 。
使单片机发生复位 。即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位 。
参考资料来源:百度百科-看门狗
复位芯片、电压检测芯片、看门狗有什么区别其实复位的本质是MCU在接到特定信号后,执行复位动作,清零及清寄存器,重置中断等;
那么特定信号是什么,通常是一个电压触发信号,如低电平/高电平,对应的也就是低电平复位/高电平复位;
所以仅就复位功能来讲,这三者均可实现,只是实现的方式不一样;
【硬件看门狗工作原理】通常意义上来讲,复位芯片是代替阻容复位的,通常用在复位波形要求比较高的场合,就比如RC复位,它的波形比较迟缓,而且一致性差,如果是用专用的复位芯片,输出的复位波形就非常好,实际上,这种单一功能的复位芯片,现在用得很少,反而是电压检测和看门狗用得比较多;
电压检测其实就是一个电压判断器+一个复位电路,当电压掉落到一定程度,电压检测芯片就发出复位信号,使MCU复位,避免MCU在过低的电压状态下运行,从而避免不可控的状况出现;
看门狗其实主要是为了防止程序跑飞...说白了就是一个计时器+一个复位电路,在一字计时期限内,如果MCU没有给回馈给看门狗,看门狗就强制输出复位信号,让MCU复位;
----
举个简单的例子.比如我现在用一颗5V电压的MCU;那么芯片通常能保证在4.5V~5.5V范围内正常工作,所以我会在前端一颗S-80146,这颗芯片在Vcc掉到4.6V时就会发出复位信号,此时MCU就会开始复位了...如果你不加...好吧,MCU搞不好在3V电压下都还在运行,但运行出个什么结果,就只有上帝知道了...
同理,通常会会加一颗WDT,不过现在很多人都用门电路自己搭,也是可以的;比如我设定2S内喂一次狗,如果2S计时到了,而MCU没有任何喂狗的信号,说明此时程序已经跑飞了,所以WDT就会启动复位...从而避免MCU在错误的程序下继续跑下去.