登录

干货分享 |  另辟捷径,解决变态看门狗需求

阿甘 2020-01-09 11:14:27

导语:

作为一个电子行业的从业人员,相信各位对看门狗的重要性已经非常清楚了,看门狗主要用于监控系统的可靠性,一旦发现系统的严重故障,设计者可以根据严重等级,轻则可以复位系统,重则可以重新断电重启。看门狗又分为硬件看门狗和软件看门狗,两者最主要的区别就是硬件看门狗一上电就运行,只要运行起来就停不下来;软件看门狗可以很容易通过寄存器配置启动和停止。无论是硬件还是软件看门狗,都需要软件在定时器结束前进行喂狗,否则看门狗就会复位输出。就是因为这个特性,大家都相信硬件的比软件的可靠,可靠性要求高的都会增加硬件的看门狗

长时看门狗应用场合

硬件看门狗在大部分的系统应用,都不会有问题,但是以下的两种情况,相信很多设计者都遇到并且崩溃过:

1;设备使用了较复杂的系统,如Linux、安卓,启动时间较长,或者遇到烧录升级,此时所需时间较长,但这不是异常情况,但是硬件看门狗上电时候已经启动了,并且停不下来,启动升级烧录化几分钟时间太正常了,几分钟内软件都无法喂狗,一般的硬件看门狗(一般Timeout时间都是20S以内)早就喂狗超时 了,设备被复位或者断电,进入死循环。

2;在功耗要求非常低的场合,并且又需要可靠性非常高的场合,例如农业环境温度检测,只需要2小时检测一次就足够了,其他时间都需要待机,2小时到了才能唤醒工作。为了低功耗,此时就要求看门狗2小时喂狗一次。目前大部分的看门狗的喂狗时间都是20s以内,普通看门狗根本无法满足需求。


上述的特殊需求,都是要求看门狗的喂狗时间Timeout较长,最好是能够灵活配置。


为何长时看门狗难实现

相信很多工程师都有这样的疑惑,较长时间的看门狗特别难选,厂家和型号特别少,并且超过20S的看门狗特别贵,例如下图ADI 公司的超长喂狗时间的看门狗价格大约3美元,将近21元人民币,和CPU一样的价格了,这个是如何也接受不了的。

图1.ADI公司的超长喂狗时间看门狗


看门狗喂狗时间很难做长,是由于内部的机理决定的,如下图是Max630X 系列的看门狗芯片,内部主要依赖RC充放电和比较器进行喂狗,RC充电达到比较器的阈值后,定时器就会溢出,芯片复位信号就会翻转。所以,喂狗时间才长短主要是由外部的电容C1决定的。芯片内部的电阻R1是确定的,C1越大,喂狗时间就越长,有些小伙伴就懂歪脑筋了,需要更长的时间,把C1无限做大就可以了。但是还有另一个问题:漏电流。所以,Max603x 芯片的规格书中规定,配置电容必须是低漏电流的陶瓷电容(<10nA)。并且随着电容的容量越来越大,漏电流越来越大,所以max603x规格书中规定,最大电容只能到1uF,最长的Timeout时间是500x Tw,再长的时间,就无法设置了。

图2.常规看门狗喂狗时间配置示意图

图3 .各种介质陶瓷电容的温度/漏电流特性对比


如何另辟捷径

由于上述的看门狗的可调节的缺陷机理,TI公司另辟捷径,用另一种办法实现看门狗的可调节喂狗时间。我们看其实现的原理,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 之间可配置,基本可以满足所有的应用场合。


图4 .TPL同时具备定时唤醒和喂狗时间可配置功能

图5 .TPL使用电阻配置喂狗时间,可避免电容的漏电流问题

图6.TPL 看门狗功能时序图


不过TI的芯片功能也是很有限的,那么是否有更加强大的看门狗芯片方案吗?

前方高能,请避让

使用Dialog Greenpak的芯片

实现喂狗时间可编程的看门狗方案

最近创易栈正在推出的Greenpak芯片做看门狗也有意想不到的强大功能。


喂狗时间通过IIC编程到GreenPak芯片里面,按照编程时间来,使用外部中断先唤醒深度睡眠的MCU,在规定时间(可以设置)内如果MCU没有喂狗,那么GreenPak芯片将对MCU做复位操作。 


GreenPak芯片带IIC的芯片有:

Greenpak设计基本电路设计包括具有可编程睡眠持续时间的唤醒计时器和手动唤醒按钮。内部Greenpak设计示意图如图所示。

唤醒/休眠状态存储在一个可重置的dff块中,因此睡眠周期可以被中断。通过外部信号(按钮)。dff状态等于npoff(关机)信号:1=唤醒/打开电源,0=休眠/关闭电源。唤醒计时器本身由一个边缘触发延迟模式下的CNT/DLY阻塞。npoff信号的下降沿延迟了一段睡眠时间,因此计时器在设备进入睡眠状态时启动。当计时器过期时,它将设置dff/npoff并唤醒设备的dff低输入。清醒期不是定时的,所以睡眠期可以从睡眠的下降沿开始输入。下降沿反转以重置DFF并切换到休眠状态。极性信号可根据MCU进行调整。两个额外的逻辑门启用备用睡眠触发器(GPIO引脚或I2C消息)和唤醒触发器(外部或计时器)。一个额外的DFF捕获唤醒原因:0=外部唤醒,1=计时器唤醒。


主要特点:

该设计允许使用睡眠pin或i2c消息启动睡眠周期

睡眠时间可通过I2C消息编程

按下按钮可启用手动唤醒

按钮输入被取消

去噪时间常数也可通过I2C编程

单片机可通过I2C读取当前睡眠周期值

内部振荡器只在睡眠期间运行,因此在清醒期间不产生电流

存储上次唤醒事件的原因并在pin上发出信号

MCU可以读取GPIO引脚或I2C以上的上一次唤醒原因


基本的设计是用SLG46537V设计的,虽然设计非常简单,但是很适合任何启用I2C的Greenpak。如果我们去掉I2C的特性,这个设计可以适用于任何非i2cGreenpak仍然提供唤醒计时器和强制唤醒功能。


注意,在所提出的设计中,当外部唤醒时,电路将忽略休眠命令处于活动状态,因此按住按钮将阻止MCU进入睡眠状态。然而,这不会阻止它进入其他睡眠模式,如深度睡眠或浅睡眠。一旦松开按钮,再次启用睡眠模式。


可选的设计修改和优化对于固定的睡眠时间和没有人工强制唤醒的情况,电路设计可以简化。下图显示了封装在微型SLG46108V中的简单唤醒计时器。注意,即使尽管SLG46108V是最小的Greenpak,但仍然有足够的空闲块可以实现带去噪滤波器的外部唤醒。

如果GPIO管脚是高级的,并且您的电路设计已经使用I2C与其他外围设备,可以避免睡眠引脚使用I2C启动睡眠周期。只是移除休眠输入并将定时器输入连接到I2C块。注意I2C已启用greenpaks对于cnt/dly块有一个“一次性”选项,因此不需要dff,并且整个唤醒定时器可以在两个模块中实现,包括I2C可编程睡眠持续时间。演示电路在接收到睡眠输入后立即切断单片机的电源。如果应用程序需要引入一些延迟(例如,让调试消息通过通过串行调试通道),可以通过对睡眠输入应用延迟块轻松完成。所提出的唤醒电路可应用于除esp8266外的其它无线模块/mcu。例如粒子光子或覆盆子π,很少或没有修改。用于MCU或模块在没有断电输入选项的情况下,可以使用集成了PFET开关可用于SLG46116V/117V或SLG46125V。


该电路软件性能:

主要的性能问题与睡眠时间和功耗有关,

不同Greenpak零件如表2所示。

没有说明最小睡眠时间,因为它在所有Greenpak的微秒范围内在实际应用中,这种短暂的睡眠时间是不可能的。如果需要的话,使用2MHz赫振荡器(而不是25KHz或RC低频振荡器)可以使睡眠时间更短。


对于任何一个被选中的Greenpak。只有表2中的第一行给出了这个应用注中演示电路的性能,基于SLG46537V。其他行显示基于其他行的类似电路的估计性能。表中的数据适用于类似于本应用程序中演示电路的唤醒电路设计注意,只包含唤醒计时器和几个逻辑门。如果剩余的块被用来增加其他功能,电流消耗可能会增加,这取决于设计。绿色领域强调的是性能标志,在这个特定领域超过了其他部分。

从上表可以清楚地看出,最大睡眠时间可以被认为是无限的。因此,只有在应用程序使用时,才应考虑最大睡眠时间。多个CNT/DLY块用于其他用途。注意,在演示电路中,只有一个cnt/dly块是用于计时器,在这种情况下的最大睡眠时间约为二十分钟。到增加最大睡眠持续时间,级联另一个CNT/DY块并更新超深度睡眠(睡眠时间);相应的功能。性能权衡是可能的。例如,SLG46140V的公差、差±20%使用低频振荡器时,电流消耗非常低,为0.7μA。切换到25khz振荡器将提高公差,但电流消耗将上升至~5μa。



作为系统可靠性的关键器件,看门狗是必备的器件之一,DIALOG GREENPAK的出现弥补了传统硬件看门狗的以下几个缺点:

1) 喂狗时间固定:绝大部分的2元以内的看门狗,喂狗时间都是固定的,使用起来非常不方便,一旦遇到标题一的情形就无能无力了。


2) 可配置时间看门狗价格贵:传统的看门狗通过电容RC充电延迟了配置喂狗时间,电容漏电流大,喂狗时间无法做到很长,并且长时间(100S以上)喂狗时间的看门狗价格都在4元以上。


3) 没有定时唤醒功能:大部分的看门狗芯片都只干看门狗的活,部分会自带电压检测功能,而GREENPAK芯片或者本文的TPL5010的强大可编程性能,更适合低功耗待机的场合。


本文提供的两种看门狗的捷径方案  你更喜欢哪种呢?


热门文章

copyright@2014-2016 emakerzone.com 粤ICP备16121718号-2 公安局备案 粤公网