用CD4060制作看门狗报警电路
- 格式:docx
- 大小:84.39 KB
- 文档页数:7
用CD4060制作看门狗报警电路看门狗定时器(WDT, Watch Dog Timer)是单片机的一个组成部分,它实际上是一个计数器,一般给看门狗一个大数,程序开始运行后看门狗开始倒计数。
如果程序运行正常,过一段时间CPU应发出指令让看门狗,重新开始倒计数。
如果看门狗减到0就认为程序没有正常工作,强制整个系统复位。
原理图:CD4060芯片特性1)电压范围宽,应该可以工作在3V〜15V,输入阻抗高,驱动能力差外,跟74系列的功能基本没有区别;2)输入时,1/2工作电压以下为0,1/2工作电压以上为1 ;3)输出时,仁工作电压;0=0V;4)驱动能力奇差,在设计时最多只能带1个TTL负载;5)如果加上拉电阻的话,至少要100K电阻;6)唯一现在使用的可能就是计数器,CD4060的计数器可以到14级二进制串行计数。
以AT89C51为例:看门狗电路由14位二进制计数器 CD4060和三极管VT1、VT2等组成。
Vout 接单片机AT89C51的引脚输出口 P1.7,由单片机的CPU 向看门狗电路发送喂狗信 号一一正脉冲,在两个正脉冲间隔内,P1.7保持为低电平(此功能要结合软件才能实现,相应的软件设计在下面介绍)。
我们知道,单片机 AT89C51的I /O 口带灌电流负载的能力比较 大,每个引脚低电平时的吸入电流为20 mA ,带拉电流负载的能力却很小,实测情况是,每个引脚高电平时的输出电流仅 25卩A ,现在P1.7 口被设计成带拉电流负载的方式,为了提 高P1.7 口带拉电流负载的能力,所以,电路中设置了上拉电阻R3。
14位二进制计数器 CD4060的计数脉冲由其内部振荡器和外接阻容元件R1、R2、C1组成的电路产生,振荡周期为T0SC=2.2X R1X 6= 0.22 ms振荡器产生的计数脉冲(矩形波)可以直接引出,同时还可以从CD4060的10个输出端Q4〜Q10和Q12〜Q14得到不同分频系数的方波输出,各方波输出信号的周期如表1所示。
这样,如果CD4060得不到CPU 通过P1.7 口发送来的喂狗信号——正脉冲,则CD4060的输出端Q14在1.8S 内将产生一个完整周期的方波信号,而且低电平在前,高电平在后,其高 电平经三极管 VT1、VT2处理后形成单片机 AT89C51的复位信号,使单片机 AT89C51复位。
由此可见,单片机 AT89C51正常工作时,只要在 0.9S 内从P1.7 口送出一个正脉冲,便可及 时清零看门狗,输出端Q14就不会产生定时溢出信号,从而使看门狗电路对单片机系统不起作用。
并且,从 CD4060的10个输出端Q4〜Q10和Q12〜Q14可以得到不同周期的方波 信号,经三极管VT1、VT2处理后形成单片机系统的复位信号, 可以适应不同用户应用程序,从而该硬件看门狗电路可以适应不同的单片机应用系统。
________ 不閔卷世拳疹号的同期 ____________________ 篷出町 QU Q 】』■甬T 厉H h 星住鮎汕吧1吃俛4帥扁0 £1】広4山005 6据 丽qa eg _ 心 _ VFLO 甘舸PI 」 ro.o til Ml PU ro.z Fl 4 KJ PUra.4 FMKJJPI.7WTlltX D1P3 fl l \VF (TXUtfJ 1I^SEMT26i wk try* T2AI RD IP 3XI nt VsiP20ra LOOM!苦1看门狗越fl ;电訪用福期T(秒Xi. oog El証odi 40氧006 7血W:环"匚矗丄加对MCS-51 系列的单片机而言,它所需要的复位信号是高电平宽度大于 2 个机器周期的正脉冲,例如,单片机的时钟脉冲频率为12 MHz 时,则所需要的复位信号高电平宽度为 2 卩s以上就可以了,而由上面的分析可知,CD4060的Q14输出的是高电平宽度为0.9 s的方波,如果让它直接作为单片机的复位信号,则单片机的复位时间势必在0.9 s以上,这样尽管可以使程序跑飞的单片机复位,但是显然没有做到尽快地引导跑飞的程序到正确的轨道来,如果这样做的话,对于某些单片机应用系统而言可能带来非常严重的后果。
图1 中的三极管VT1、VT2 及其周围阻容元件构成波形转换电路,把较宽的正脉冲变换为较窄的正脉冲,从而较好地解决了上述的问题。
三极管VT1、VT2构成的2级直接耦合放大器作为缓冲器使用,它是CD4060的输出端Q14的灌电流负载,C2、R8是微分电路。
经分析后不难看出,电路中的R7、R& C2还具有单片机上电复位的功能。
2 上电复位与看门狗信号复位的不同处理过程由于程序跑飞很可能会造成一些随机破坏事件,对某些系统而言,希望尽可能从断点处恢复运行,因此,有必要妥善解决跑飞的程序回复后的处理。
单片机应用系统上电时,上电复位电路会使得单片机处于复位状态,这一般称为冷启动,这种情况下,单片机处于复位状态表现为:⑴程序计数器PC的值为0000H。
(2)1/O 口(P0、P1、P2、P3(1))为FFH状态,即准双向I/O 口的输入状态。
(3)堆栈指示器SP=07H,即堆栈底为片内RAM的07H单元。
(4)除上述状态外,所有特殊功能寄存器SFR的有效位均为0。
(5)上电复位时,由于是重新供电,RAM在断电时数据丢失,上电复位后为随机数。
单片机应用系统的程序跑飞时,看门狗产生复位信号,也会使得单片机处于复位状态,这一般称为热启动,这种情况下,单片机处于复位状态表现为:(1)程序计数器PC的值为0000H。
(2)I/O 口(P0、P1、P2、P3)为FFH状态,即准双向1/O 口的输入状态。
(3)堆栈指示器SP=07H即堆栈底为片内RAM的07H单元。
(4)除上述状态外,所有特殊功能寄存器SFR的有效位均为0。
(5)复位信号使得单片机处于复位状态时,片内RAM 中的数据不受影响。
比较上面两种单片机复位方式可知,上电复位与信号复位不同之处是第(5)点,这正是我们区分两种单片机复位方式的根据。
具体方法是设置上电复位标志,例如,片内RAM 的7EH 单元和7FH单元分别为(7EH)=18H且(7FH)=81H时表示已完成上电复位。
上面两种单片机复位方式都使得程序从0000H入口。
然而,上电复位后要进行系统的完全初始化,而程序跑飞回复后往往要求保留一些过程参数,不允许重新初始化,而且还要对一些关键参数进行检查与修复。
因此,要根据不同情况进行不同的初始化处理。
图2是上电复位与程序跑飞回复初始化处理框图。
0000H是MCU的复位人口,程序启动后,首先判断是上电复位(冷启动),还是程序跑飞回复(热启动)。
上电复位是开机操作,要建立上电标志,并进行系统的完全初始化。
程序跑飞回复应进行相关资源的检查与修复,以防止系统运行出错。
另外,根据系统特点,需要保留一些过程数据,不得进行完全初始化。
1ir陸比」电讯赴1 r图2凰序启动厉的不同初堆化过和3喂狗指令插入原理与位置单片机应用系统运行正常时,单片机的CPU应在0.9 s内从P1.7 口送出一个正脉冲,使看门狗及时清零,也就是说,CPU要在0.9 s以内执行一次下面的喂狗程序段(喂狗指令):SETBP1.7NOPNOPCLRP1.7喂狗程序段插入到用户应用程序之中。
单片机系统的用户应用程序一般由循环结构的主程序和中断服务子程序组成。
首先,应尽可能准确地估算各应用功能模块的运行时间,估算运行时间的时候,应考虑程序可能被中断,应把中断程序的运行时间也计算在内。
然后,在若干个应用功能模块的运行时间小于0.9 s的两个应用功能模块之间插入上面的喂狗程序段。
为了防止看门狗非正常失效(即:已发生程序跑飞但看门狗不“叫 需要的复位信号 ),在用户应用程序中插入喂狗程序段时应注意下面3 点。
(1) 避免在中断服务子程序中插入喂狗程序段。
当 MCU 受干扰而发生程序跑飞,只要 MCU 片内中断允许控制寄存器不遭破坏,则不论 程序飞到什么地方,CPU 仍能像程序正常运行时一样响应和执行中断服务子程序。
因此,在各中断服务子程序中都不应该插入喂狗程序段。
(2) 避免在用户应用程序中的局部循环圈内插入喂狗程序段。
这样的话, 即使程序跑飞后非正常进入该循环圈内, 并且跑飞后的程序在该循环圈内 “死 循环” ,也会因为看门狗接收不到喂狗信号, 发生看门狗定时计数溢出,进而使系统恢复正 常运行。
(3) 对P1 口的其它7根1/ O 线的输入和输出操作全部采用位操作指令,这样的话,对P1口的所有操作都是采用的位操作指令。
因为如果对P1.0〜P1.6的输入和输出操作采用直接寻址的方式完成,则势必会有可能影响到 P1.7 的输出操作,从而可能导致看门狗非正常失 效。
4 结论在用户应用程序中插入喂狗程序段后,相当于启动了看门狗,就无法再使用各类单片机 开发系统或单片机仿真器对该应用系统进行仿真调试。
所以, 单片机应用系统在开始设计和调试用户应用程序时, 通常不连接看门狗电路, 也不在用户应用程序中插入喂狗程序段, 而 是在用户应用程序研发成功后, 再将看门狗电路连接到硬件系统中, 并在用户应用程序中插 入喂狗程序段, 并且进行系统的现场试验, 以检验系统的抗干扰能力是否满足系统的设计要 求。
将采用了 CD4060 的硬件看门狗技术的单片机应用系统放置在具有较强电磁干扰的环境 中工作, 如果能长时间连续正常地工作, 则说明系统具有较强的抗干扰能力。
作者曾在采用 了基于 CD4060 的硬件看门狗技术的单片机应用系统的交流电源插座处,较频繁地插拨其它用电设备的交流电源插头, 没有发现系统程序跑飞的现象。
相反地, 把系统中的硬件看门狗 电路拆掉, 则系统在多次插拨其它用电设备的交流电源插头的情况下, 有时会出现系统程序跑飞的现象。
由此可见,基于CD4060的硬件看门狗技术确实提高了单片机应用系统的抗干扰能力。
本文所介绍的看门狗技术,已成功地使用在多个实际的 MCU 应用系统中,保证了系统的可靠运行。
电路工作的时候只要给 CD4060复位脉冲,就能保证 Q1处于截止状态,从而使受控的NMOS 管处于导通状态给处理器电路系统供电。
该电路的优点是定时的时间可以比较长, 几分钟都没问题, 可以给那些需要较长时间初 始化工作。
脉冲触发喂狗,上电通过R2、 C1、R3 自动给计数器一个复位脉冲,确保 不产生单片机所Vout有输出。
电路成本也低廉。
该电路的最大缺点是喂狗脉冲要求比较宽。