新型纯硬件看门狗电路设计分析研究

2019-06-26 07:04谷智明
无线互联科技 2019年7期
关键词:看门狗死机

摘   要:看门狗电路是电子电路中一种非常常见的电路,常用的看门狗电路在喂狗进程工作,CPU死机的状态时,可以重新复位CPU,防止CPU跑飞。但是在一些极端条件下,看门狗进程也会挂死,例如温度过高等,此时看门狗无法重启CPU,设备死机。文章提出一种全新的看门狗电路,解决软件设备完全死机后CPU的复位问题。

关键词:看门狗;死机;复位

由CPUhttps://baike.baidu.com/item/%E5%8D%95%E7%89%87%E6%9C%BA/102396构成的电子系统中,CPU的工作常常会受到外界因素的干扰,这些干扰造成各种寄存器和内存的数据混乱,导致程序跑飞,使软件陷入死循环,此时CPU无法正常工作,整个电子系统将陷入停滞状态,发生不可预料的后果。

1    常见的看门狗电路

看门狗就是定期地查看芯片内部的情况,一旦发生错误就向芯片发出重启信号的电路。看门狗命令在程序的中断中拥有最高的优先级。

但是现在市面上绝大多数的看门狗电路都是软件看门狗电路,即CPU在完全死机的情况下(看门狗模块也死机)(见图1),无法进行看门狗复位。

图1  纯软件看门狗电路

后期有人改进了纯软件的看门狗电路,在CPU看门狗与CPU复位管脚之间增加了复位芯片(类似MAX706),具体如图2所示。

图2  增加复位芯片的看门狗电路

增加了复位芯片MAX706后,当CPU完全死机时,CPU的WDT_RST_OUT信号不喂狗,MAX706的WDI信号接收不到喂狗信号后会通过RST_OUT输出一个复位信号给CPU,在没有Switch的情况下,该复位信号直接到CPU的复位管脚,完成CPU的复位。

但是CPU只有在软件完全启动后才会给MAX706提供喂狗信号,在设备刚上电时,MAX706要比CPU早启动,此时,CPU无法给MAX706提供喂狗信号,在没有Switch的情况下,MAX706会频繁的复位CPU,造成CPU无法正常启动。

增加Switch开关,必须在CPU未完全启动之前保证开关关闭,CPU启动之后再打开开关。此时,如果CPU出现死机状态,所有控制管脚输出紊乱,Switch开关处于关闭状态时,MAX706仍然无法复位CPU。

2    纯硬件看门狗电路

我们提出的硬件看门狗电路可以解决CPU完全死机的情况下无法复位的问题,具体如图3所示。

图3  纯硬件看门狗电路框

它们之间的优缺点对比如表1所示。

属性\类型 纯软件看门狗电路 增加复位芯片

看门狗电路 纯硬件

看门狗电路

CPU程序跑飞复位 支持 支持 支持

CPU完全死机复位 不支持 不支持 支持

硬件看门狗电源的原理框架如图4所示。

3    原理图中信号定义解释

(1)CPU_GPIO_OUT:输入信号,CPU输出给复位看门狗芯片(D3)的喂狗信号,要求1.6 s输出一个脉冲。

(2)CPU_RST:输出信号,复位看门狗芯片(D3)输出给CPU的复位信号,低有效。

(3)WDO:输出信号,复位看门狗芯片(D3)的6脚WDI没有接收喂狗信号时,WDO输出为低。

(4)MR:输入信号,该信號为低时,会将复位看门狗芯片(D3)的7脚置为低。

4    原理图中器件功能描述

(1)MAX706REPA:复位看门狗芯片。

(2)MAX4568:单刀双掷SPST开关。

(3)6368_30E0:60 s延时IC芯片,LED1、LED2为6368_30E0的两路输出,一路输出低电平,一路输出高电平,上电不工作,一个按键控制,触发一下, 两路信号同步工作,延时60 s,时间到自动停止工作,重新触发重新工作60 s。工作中触发无效。

5    上电阶段

(1)刚上电时,WDO信号慢慢变高,U6不导通,U6对逻辑电平高的判断要求在2.4 V以上,根据RC充电电路公式 可算出WDO需要130 ms才能达到2.4 V。备注:Vt为任意t时刻,电容上的值;V0为电容的初始值;Vu为电容充满终止电压值。

(2)U6不导通,KEY信号通过R11拉低,U3工作,LED1在刚上电时是低电平,持续时间60 s后变为高阻。

(3)LED1为低时,U5不导通60 s,60 s内,WDO无论怎么变化,MR不会发生变化,此时决定MR电平的是R9电阻,一直保持高,则D3的7脚输出高,CPU正常启动。

6    工作阶段

(1)D3上电后没有被CPU喂狗,WDO在上电1.6 s后会输出低电平,但是不会影响D3的1、7脚电平,CPU正常启动后,对D3进行喂狗,WDO输出为高,一切正常。

(2)WDO为高后,U6的2脚满足导通电平,此时KEY信号强上拉弱下拉,U3的2脚为高,U3不工作。

(3)U3不工作时,LED1会由R13至高,WDO通MR,此时WDO为高,MR为高,CPU_RST为高,一切正常。

7    死机

(1)CPU死机后,D3没有被喂狗,WDO会由高变低,U6的2脚需要从3.3 V降低到2.4 V以下,U6才会关断,在U6关断之前,KEY仍然保持高,LED1仍然为高,WDO的低信号通过U5传输给MR,MR至低,CPU_RST至低,CPU重启。

(2)70 ms后,U6的2脚电平降低到2.4 V以下,此时KEY信号没有强上拉,只有弱下拉,U3开始工作,LED1输出为低,关断U5芯片,MR通过电阻R9上拉到高,CPU_RST变高,此阶段会持续60 s,CPU完成重启,重新进入上电阶段。

8    结语

本次设计的看门狗电路实现简单,价格便宜,所有的BOM成本不超过10 RMB;整个电路已经打板验证成功,可以在-20~+85℃条件下使用,且电路的延时时间可灵活调整,可以满足绝大多数单板的硬件看门狗启动。

作者简介:谷智明(1987— ),男,湖北黄石人,工程师,硕士;研究方向:电子科学与技术。

Abstract:Watchdog circuit is a kind of very common circuit in electronic circuit. The commonly used watchdog circuit can reset the CPU, to prevent the CPU from running when the dog is feeding the process and the CPU is dead. However, in some extreme conditions, the watchdog process will also hang up, such as excessive temperature, etc. when the watchdog cannot restart the CPU, device crash. In this paper, a new watchdog circuit is proposed to solve the reset problem of CPU after the software device is completely dead.

Key words:watchdog; crash; reset

猜你喜欢
看门狗死机
电脑死机时在干什么
提醒
把他叫醒
一种采用FPGA实现的通用看门狗电路
硬件看门狗电路在热泵热水机上的应用
软硬件看门狗技术研究