两个让人崩溃的看门狗应用问题,怎么解决?

        作为一个电子行业的从业人员,相信各位对看门狗的重要性已经非常清楚了,看门狗主要用于监控系统的可靠性,一旦发现系统的严重故障,设计者可以根据严重等级,轻则可以复位系统,重则可以重新断电重启。看门狗又分为硬件看门狗和软件看门狗,两者最主要的区别就是硬件看门狗一上电就运行,只要运行起来就停不下来;软件看门狗可以很容易通过寄存器配置启动和停止。无论是硬件还是软件看门狗,都需要软件在定时器结束前进行喂狗,否则看门狗就会复位输出。就是因为这个特性,大家都相信硬件的比软件的可靠,可靠性要求高的都会增加硬件的看门狗。
      硬件看门狗在大部分的系统应用,都不会有问题,但是以下的两种情况,相信很多设计者都遇到并且崩溃过:
1;设备使用了较复杂的系统,如Linux、安卓,启动时间较长,或者遇到烧录升级,此时所需时间较长,但这不是异常情况,但是硬件看门狗上电时候已经启动了,并且停不下来,启动升级烧录化几分钟时间太正常了,几分钟内软件都无法喂狗,一般的硬件看门狗(一般Timeout时间都是20S以内)早就喂狗超时 了,设备被复位或者断电,进入死循环。
2;在功耗要求非常低的场合,并且又需要可靠性非常高的场合,例如农业环境温度检测,只需要2小时检测一次就足够了,其他时间都需要待机,2小时到了才能唤醒工作。为了低功耗,此时就要求看门狗2小时喂狗一次。目前大部分的看门狗的喂狗时间都是20s以内,普通看门狗根本无法满足需求。

上述的特殊需求,都是要求看门狗的喂狗时间Timeout较长,最好是能够灵活配置。看门狗喂狗时间很难做长,是由于内部的机理决定的,看门狗芯片内部主要依赖RC充放电和比较器进行喂狗,RC充电达到比较器的阈值后,定时器就会溢出,芯片复位信号就会翻转。所以,喂狗时间才长短主要是由外部的电容决定的。芯片内部的电阻是确定的,越大,喂狗时间就越长,有些小伙伴就懂歪脑筋了,需要更长的时间,把电容无限做大就可以了。但是还有另一个问题:漏电流。所以芯片的规格书中规定,配置电容必须是低漏电流的陶瓷电容(<10nA)。并且随着电容的容量越来越大,漏电流越来越大。

        这里推荐一款TI的看门狗,TPL5010,价格也不贵,立创上价格为3.8元。TI公司的TPL5010定位是一个低功耗唤醒定时器,工作电流低至35nA,基本是和很多的电容的漏电流差不多,他的看门狗功能其实是附加的功能,所以甚至在TI的看门狗选型系列里面都找不到他,但是把他当成可配置喂狗时间的看门狗来用。
设备上电时,TPL5010的Delay引脚会一次性读取外置的电阻Rext的阻值,然后根据阻值配置唤醒时间的周期Tip,该唤醒时间Tip也就是喂狗时间Timeout的周期,TPL5010以Tip的周期向cpu发送周期方波信号wake,CPU必须在小于Tip 时间内回复Dnoe信号,如果没有在小于Tip周期内回复Done信号,则TPL5010就会对外输出复位信号,复位整个系统,同时实现看门狗和低功耗定时唤醒功能。如果用户只需要看门狗的功能,则Wake信号不连接也可以,只需要cpu定期输出Dnoe信号,定时清零看门狗定时器即可。TPL5010的喂狗时间可以从0.1s到7200S 之间可配置,基本可以满足所有的应用场合。

两个让人崩溃的看门狗应用问题,怎么解决?_第1张图片

 

你可能感兴趣的:(硬件,电子器件,嵌入式-单片机,硬件,芯片,嵌入式,物联网,单片机)