今天小编要和大家分享的是cd4060,看门狗,报警电路相关信息,接下来我将从用CD4060制作看门狗报警电路,电子看门狗电路这几个方面来介绍。
电子看门狗电路
1、用CD4060制作看门狗报警电路
看门狗定时器(WDT,WatchDogTimer)是单片机的一个组成部分,它实际上是一个计数器,一般给看门狗一个大数,程序开始运行后看门狗开始倒计数。如果程序运行正常,过一段时间CPU应发出指令让看门狗,重新开始倒计数。如果看门狗减到0就认为程序没有正常工作,强制整个系统复位。
原理图:
CD4060芯片特性
1)电压范围宽,应该可以工作在3V~15V,输入阻抗高,驱动能力差外,跟74系列的功能基本没有区别;
2)输入时,1/2工作电压以下为0,1/2工作电压以上为1;
3)输出时,1=工作电压;0=0V;
4)驱动能力奇差,在设计时最多只能带1个TTL负载;
5)如果加上拉电阻的话,至少要100K电阻;
6)唯一现在使用的可能就是计数器,CD4060的计数器可以到14级二进制串行计数。
看门狗电路由14位二进制计数器CD4060和三极管VT1、VT2等组成。
Vout接单片机AT89C51的引脚输出口P1.7,由单片机的CPU向看门狗电路发送喂狗信号——正脉冲,在两个正脉冲间隔内,P1.7保持为低电平(此功能要结合软件才能实现,相应的软件设计在下面介绍)。我们知道,单片机AT89C51的I/O口带灌电流负载的能力比较大,每个引脚低电平时的吸入电流为20mA,带拉电流负载的能力却很小,实测情况是,每个引脚高电平时的输出电流仅25μA,现在P1.7口被设计成带拉电流负载的方式,为了提高P1.7口带拉电流负载的能力,所以,电路中设置了上拉电阻R3。
14位二进制计数器CD4060的计数脉冲由其内部振荡器和外接阻容元件R1、R2、C1组成的电路产生,振荡周期为
T0SC=2.2×R1×C1=0.22ms
振荡器产生的计数脉冲(矩形波)可以直接引出,同时还可以从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处理后形成单片机系统的复位信号,可以适应不同用户应用程序,从而该硬件看门狗电路可以适应不同的单片机应用系统。
对MCS-51系列的单片机而言,它所需要的复位信号是高电平宽度大于2个机器周期的正脉冲,例如,单片机的时钟脉冲频率为12MHz时,则所需要的复位信号高电平宽度为2μs以上就可以了,而由上面的分析可知,CD4060的Q14输出的是高电平宽度为0.9s的方波,如果让它直接作为单片机的复位信号,则单片机的复位时间势必在0.9s以上,这样尽管可以使程序跑飞的单片机复位,但是显然没有做到尽快地引导跑飞的程序到正确的轨道来,如果这样做的话,对于某些单片机应用系统而言可能带来非常严重的后果。
图1中的三极管VT1、VT2及其周围阻容元件构成波形转换电路,把较宽的正脉冲变换为较窄的正脉冲,从而较好地解决了上述的问题。三极管VT1、VT2构成的2级直接耦合放大器作为缓冲器使用,它是CD4060的输出端Q14的灌电流负载,C2、R8是微分电路。
经分析后不难看出,电路中的R7、R8、C2还具有单片机上电复位的功能。
2、上电复位与看门狗信号复位的不同处理过程
由于程序跑飞很可能会造成一些随机破坏事件,对某些系统而言,希望尽可能从断点处恢复运行,因此,有必要妥善解决跑飞的程序回复后的处理。
单片机应用系统上电时,上电复位电路会使得单片机处于复位状态,这一般称为冷启动,这种情况下,单片机处于复位状态表现为:
(1)程序计数器PC的值为0000H。
(2)I/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状态,即准双向I/O口的输入状态。
(3)堆栈指示器SP=07H,即堆栈底为片内RAM的07H单元。
(4)除上述状态外,所有特殊功能寄存器SFR的有效位均为0。
(5)复位信号使得单片机处于复位状态时,片内RAM中的数据不受影响。
比较上面两种单片机复位方式可知,上电复位与信号复位不同之处是第(5)点,这正是我们区分两种单片机复位方式的根据。具体方法是设置上电复位标志,例如,片内RAM的7EH单元和7FH单元分别为(7EH)=18H且(7FH)=81H时表示已完成上电复位。上面两种单片机复位方式都使得程序从0000H入口。然而,上电复位后要进行系统的完全初始化,而程序跑飞回复后往往要求保留一些过程参数,不允许重新初始化,而且还要对一些关键参数进行检查与修复。
因此,要根据不同情况进行不同的初始化处理。图2是上电复位与程序跑飞回复初始化处理框图。0000H是MCU的复位人口,程序启动后,首先判断是上电复位(冷启动),还是程序跑飞回复(热启动)。上电复位是开机操作,要建立上电标志,并进行系统的完全初始化。程序跑飞回复应进行相关资源的检查与修复,以防止系统运行出错。另外,根据系统特点,需要保留一些过程数据,不得进行完全初始化。
3、喂狗指令插入原理与位置
单片机应用系统运行正常时,单片机的CPU应在0.9s内从P1.7口送出一个正脉冲,使看门狗及时清零,也就是说,CPU要在0.9s以内执行一次下面的喂狗程序段(喂狗指令):
SETBP1.7
NOP
NOP
CLRP1.7
喂狗程序段插入到用户应用程序之中。单片机系统的用户应用程序一般由循环结构的主程序和中断服务子程序组成。首先,应尽可能准确地估算各应用功能模块的运行时间,估算运行时间的时候,应考虑程序可能被中断,应把中断程序的运行时间也计算在内。然后,在若干个应用功能模块的运行时间小于0.9s的两个应用功能模块之间插入上面的喂狗程序段。
为了防止看门狗非正常失效(即:已发生程序跑飞但看门狗不“叫”——不产生单片机所需要的复位信号),在用户应用程序中插入喂狗程序段时应注意下面3点。
(1)避免在中断服务子程序中插入喂狗程序段。
当MCU受干扰而发生程序跑飞,只要MCU片内中断允许控制寄存器不遭破坏,则不论程序飞到什么地方,CPU仍能像程序正常运行时一样响应和执行中断服务子程序。因此,在各中断服务子程序中都不应该插入喂狗程序段。
(2)避免在用户应用程序中的局部循环圈内插入喂狗程序段。
这样的话,即使程序跑飞后非正常进入该循环圈内,并且跑飞后的程序在该循环圈内“死循环”,也会因为看门狗接收不到喂狗信号,发生看门狗定时计数溢出,进而使系统恢复正常运行。
(3)对P1口的其它7根I/O线的输入和输出操作全部采用位操作指令,这样的话,对P1口的所有操作都是采用的位操作指令。因为如果对P1.0~P1.6的输入和输出操作采用直接寻址的方式完成,则势必会有可能影响到P1.7的输出操作,从而可能导致看门狗非正常失效。
4、结论
在用户应用程序中插入喂狗程序段后,相当于启动了看门狗,就无法再使用各类单片机开发系统或单片机仿真器对该应用系统进行仿真调试。所以,单片机应用系统在开始设计和调试用户应用程序时,通常不连接看门狗电路,也不在用户应用程序中插入喂狗程序段,而是在用户应用程序研发成功后,再将看门狗电路连接到硬件系统中,并在用户应用程序中插入喂狗程序段,并且进行系统的现场试验,以检验系统的抗干扰能力是否满足系统的设计要求。
将采用了CD4060的硬件看门狗技术的单片机应用系统放置在具有较强电磁干扰的环境中工作,如果能长时间连续正常地工作,则说明系统具有较强的抗干扰能力。曾在采用了基于CD4060的硬件看门狗技术的单片机应用系统的交流电源插座处,较频繁地插拨其它用电设备的交流电源插头,没有发现系统程序跑飞的现象。相反地,把系统中的硬件看门狗电路拆掉,则系统在多次插拨其它用电设备的交流电源插头的情况下,有时会出现系统程序跑飞的现象。由此可见,基于CD4060的硬件看门狗技术确实提高了单片机应用系统的抗干扰能力。本文所介绍的看门狗技术,已成功地使用在多个实际的MCU应用系统中,保证了系统的可靠运行。
电路工作的时候只要给CD4060复位脉冲,就能保证Q1处于截止状态,从而使受控的NMOS管处于导通状态给处理器电路系统供电。
该电路的优点是定时的时间可以比较长,几分钟都没问题,可以给那些需要较长时间初始化工作。脉冲触发喂狗,上电通过R2、C1、R3自动给计数器一个复位脉冲,确保Vout有输出。电路成本也低廉。
该电路的最大缺点是喂狗脉冲要求比较宽。
关于cd4060,看门狗,报警电路就介绍完了,您有什么想法可以联系小编。