单片机中的看门狗指的是一个定时器电路,有一个输入和一个输出,其中输入叫做喂狗,输出连接到另外一个部分的复位端。
看门狗的功能是定期的查看芯片内部的情况,一旦发生错误就向芯片发出重启信号。看门狗命令在程序的中断中拥有最高的优先级。
在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成各种寄存器和内存的数据混乱,会导致程序指针错误,不在程序区,取出错误的程序指令等,都有可能会陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续正常工作,导致整个系统的陷入停滞状态,发生不可预料的后果。
扩展资料工作原理
使用时,WDT将递增,直到溢出,或称“超时”。除非处于休眠或空闲模式,WDT 超时会强制器件复位。为避免WDT超时复位,用户必须定期用PWRSAV 或CLRWDT 指令将看门狗定时器清零。如果WDT 在休眠或空闲模式下超时,器件将唤醒并从PWRSAV 指令执行处继续执行代码。
在上述两种情况下,WDTO 位(RCON<4>)都会置1,表示该器件复位或唤醒事件是由于WDT超时引起的。如果WDT 将CPU从休眠或空闲模式唤醒,“休眠”状态位(RCON<3>)或“空闲”状态位(RCON<2>)也会置1,表示器件之前处于省电模式。
参考资料来源:百度百科-看门狗 (监控芯片)
参考资料来源:百度百科-看门狗定时器
你们知道什么是硬件看门狗吗?跟着我一起学习什么是硬件看门狗吧。
硬件看门狗介绍
看门狗,又叫watchdog timer,主要用来监控、管理CPU的运行状态,并对处于异常状态中的CPU进行复位 *** 作,使其能重新工作。
看门狗可分为硬件看门狗和软件看门狗两种。
硬件看门狗的主体是一个定时电路,并由被监控CPU提供周期性“喂狗”信号,对定时器清零(俗称“清狗”)。CPU正常工作时,由于能定时“清狗”,看门狗内的定时器不会溢出。当CPU出现故障,则不能继续提供“清狗”信号,使得看门狗内定时器不断累加而溢出,从而触发一个复位信号对CPU进行复位,使CPU重新工作。
软件看门狗原理上一样,只是将硬件电路上的定时器用处理器的内部定时器代替,这样可以简化硬件电路设计,但在可靠性方面不如硬件定时器,比如系统内部定时器自身发生故障就无法检测到。当然也有通过双定时器相互监视,这不仅加大系统开销,也不能解决全部问题,比如中断系统故障导致定时器中断失效。
看门狗本身不是用来解决系统出现的问题,在调试过程中发现的故障应该要查改设计本身的错误。加入看门狗目的是对一些程序潜在错误和恶劣环境干扰等因素导致系统死机而在无人干预情况下自动恢复系统正常工作状态。看门狗也不能完全避免故障造成的损失,毕竟从发现故障到系统复位恢复正常这段时间内是不能正常工作的。同时一些系统也需要复位前保护现场数据,重启后恢复现场数据,这可能也需要一笔软硬件的开销。
1).MR#:Manual-Reset,手动复位输入信号,低电平有效,当此管脚的输入电平低于0.6V时,会触发Reset#管脚输出一个复位信号,此管脚内部有 70uA 上拉电流。如要不使用此管脚,需要将此管脚接到VCC或者悬空,不可接地
2).VCC:芯片工作电压,接5V或3.3V
3).GND:芯片参考地,直接与单板GND相连
4).PFI:Power-Fail Comparator Input,电压监控输入管脚,当此管脚的输入电压低于1.25V时,FPO#及Reset#会输出低电平信号
5).PFO#:Power-Fail Output,电压监控输出管脚,当PFI的输入电平低于1.25V时,输出低电平,不使用此管脚时可将其悬空
6).WDI:Watchdog Input,清狗信号输入,WDI遇到一个上升沿/下降沿,内部看门狗定时器都将清0。WDI的输入信号超过1.6S不发生跳变时,看门狗内部定时器将会溢出并触发WDO#输出低电平
7).WDO#:Watchdog Output,看门狗输出,WDI超过1.6S不发生跳变时,WDO#将输出低电平,另外,VCC低于1.25V时也会触发WDO#输出低电平
8).RESET#:复位信号输出,低电平有效,低电平宽度为200ms,Reset#信号只会被VCC或MR#触发,WDO#有效时不会触发Reset#,除非将WDO#接到RESET#上。
虽然MAX706与ADM706芯片在封装上相互兼容,但两者还是存在一些差异,具体如下:
1).MAX706R是商业级器件,工作温度范围为:0-70 oC,而ADM706R是工业级器件,工作温度范围为:-40-85 oC,所以大家在选型的时候,一定要产品的工作环境是否对温度有要求
2).MAX706R的最小复位脉冲宽度为140ms,ADM706R的最小脉冲宽度为160ms
3).ADM706R的WDI管脚若悬空处于高阻状态时会禁止芯片工作,所以设计时,需要将WDI管脚通过4.7K电阻上拉到VCC。而MAX706不能被禁止,一上电就开始工作,所以WDI不需要上拉
4).ADM706R的PFO#信号不但会被PFI信号触发,同时也会被MR#信号触发,当MR#出现负电平时,会触发PFO#输出10KHz方波并保持,但MAX706的PFO#仅仅和输入PFI有关,不会受MR#管脚电平的影响
5).当MR#出现低电平时,对于MAX706芯片,WDO#将先于RESET#跳变,而ADM706却相反,WDO#后于RESET#跳变。
为了使硬件看门狗更可靠,使用起来更灵活,当今主流的设计方式都是看门狗芯片配合逻辑器件(CPLD)来使用。
此时,看门狗有三种清狗方式:
1).正常工作时,CPU输出WDI信号清狗
2).CPU关闭看门狗(不输出WDI信号),由CPLD输出WDI清狗信号,此方法不推荐使用,容易出问题,有的设计规范中是严禁CPU关闭看门狗的
3).CPU挂死后,CPLD主动输出WDI清狗信号一段时间,如果CPU仍未恢复正常,则不再继续清狗,等待看门狗芯片内部定时器溢出后输出复位信号对CPU进行复位。
在CPU上电启动期间内,是不能输出WDI信号去清狗的,而外部硬件看门狗是一上电就开始工作的,CPU的启动时间一般在一两分钟,而看门狗的定时器只有1.6s,超过这个时间不清狗就会输出复位信号对CPU进行复位,如果这样的话,CPU就会每隔1.6s重启一次,不能正常工作,如何规避这种问题的?
在实际设计中是这样做的,如下图所示,在CPU上电启动的这段时间内,利用系统时钟信号CLK清狗,等CPU启动完成后,SWITCH自动将清狗信号切换成WDI。定时器和切换开关(SWITCH)是用逻辑模拟的,定时器的溢出时间可设(一般比CPU启动时间稍长一点点),等CPU启动完成后,定时器也随之溢出,并产生溢出信号,SWITCH接收到此溢出信号后,立即采取动作,将清狗信号从系统时钟切换到WDI。
是“看门狗”的意思,有些电脑周边的东西都有这个东东,是软件或者硬件的授权功能部分,就像杀毒软件的注册码或者授权文件的作用是一样的。形式多种多样,看门狗多以硬件的形式出现,比如插在USB口上的一个小部件,或者插在LPT1并口上的一个东西,相应的软件在运行的时候,会检测这些看门狗,检测到了后,就会验证成功,软件就可以完全运行,如果检测不到,就会以演示版或者测试版运行,或干脆就禁止运行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)