用CD4060制作看门狗报警电路
用CD4060制作看门狗报警电路

用CD4060制作看门狗报警电路看门狗定时器(WDT,Watch Dog Timer)是单片机的一个组成部分,它实际上是一个计数器,一般给看门狗一个大数,程序开始运行后看门狗开始倒计数。
如果程序运行正常,过一段时间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级二进制串行计数。
以AT89C51为例:看门狗电路由14位二进制计数器CD4060和三极管VT1、VT2等组成。
Vout接单片机AT89C51的引脚输出口,由单片机的CPU向看门狗电路发送喂狗信号——正脉冲,在两个正脉冲间隔内,保持为低电平(此功能要结合软件才能实现,相应的软件设计在下面介绍)。
我们知道,单片机AT89C51的I/O口带灌电流负载的能力比较大,每个引脚低电平时的吸入电流为20 mA,带拉电流负载的能力却很小,实测情况是,每个引脚高电平时的输出电流仅25μA,现在口被设计成带拉电流负载的方式,为了提高口带拉电流负载的能力,所以,电路中设置了上拉电阻R3。
14位二进制计数器CD4060的计数脉冲由其内部振荡器和外接阻容元件R1、R2、C1组成的电路产生,振荡周期为T0SC=×R1×C1= ms振荡器产生的计数脉冲(矩形波)可以直接引出,同时还可以从CD4060的10个输出端Q4~Q10和Q12~Q14得到不同分频系数的方波输出,各方波输出信号的周期如表1所示。
这样,如果CD4060得不到CPU通过口发送来的喂狗信号——正脉冲,则CD4060的输出端Q14在内将产生一个完整周期的方波信号,而且低电平在前,高电平在后,其高电平经三极管VT1、VT2处理后形成单片机AT89C51的复位信号,使单片机AT89C51复位。
CD4060内部结构及典型应用电路

CD4060内部结构图:CD4060内部方框图CD4060电气参数:Absolute Maximum Ratings 绝对最大额定值:Supply V oltage电源电压(VDD) -0.5V to +18VInput V oltage输入电压(VIN) -0.5V to VDD +0.5VStorage Temperature Range储存温度-65℃ to +150℃范围(TS)Package Dissipation (PD)Dual-In-Line 普通双列封装700 mWSmall Outline 小外形封装500 mWLead Temperature 焊接温度(TL)Soldering, 10 seconds)(焊接10秒)260℃Recommended Operating Conditions 建议操作条件:Supply V oltage电源电压(VDD) +3V to +15V Input V oltage输入电压(VIN) 0V to VDD Operating Temperature Range工作温度范围(TA) -40℃ to +85℃DC Electrical Characteristics 直流电气特性:Symb ol 符号Parameter参数Conditions 测试条件-40°C +25°C +85°CUnits 单位最小最大最小典型最大最小最大ID D QuiescentDeviceCurrent静态电流VDD=5V,VIN =VDD or VSS22015μA VDD=10V,VIN =VDD or VSS44030VDD=15V,VIN=VDD or VSS88060VO L LOWLevelOutputV oltage 输出低电平电压VDD = 5V.50.050.05V VDD = 10V.50.050.05VDD = 15V.50.050.05VO H HIGHLevelOutputV oltage 输出高电平电压VDD = 5V4.954.9554.95V VDD = 10V9.959.95109.95VDD = 15V14.914.951514.95 5VI L LOWLevelInputV oltage 输入低电平电压VDD=5V,VO=0.5Vor 4.5V1.52 1.5 1.5V VDD=10V,VO=1.0V or 9.0V3.4 3.0 3.0VDD=15V,VO=1.5V or 13.5V4.6 4.0 4.0VI H HIGHLevelInputV oltage 输入高电平电压VDD=5V,VO=0.5Vor 4.5V3.53.5 33.5V VDD=10V,VO=1.0V or 9.0V7.7.0 67.VDD=15V,VO=1.5V or 13.5V11.11.911.IO L LOWLevelOutputCurrent 输出低电平电流(Note3)VDD = 5V, VO =0.4V0.520.440.880.36mA VDD = 10V, VO =0.5V1.31.12.250.9VDD = 15V, VO =1.5V3.63.0 8.82.4IO H HIGHLevelOutputCurrent 输出高电平电VDD = 5V, VO =4.6V-0.52-0.44-0.88-0.36 mAVDD = 10V, VO =9.5V-1.3-1.1-2.25-0.9流(Note 3) VDD = 15V, VO =13.5V-3.6-3.-8.8-2.4IIN InputCurrent 输入电流VDD = 15V, VIN =0V-.3-10-5-0.30-1.μAVDD = 15V, VIN =15V.310-50.31.0CD4060 AC Electrical Characteristics 交流电气特性:Symbol 符号Parameter 参数Conditions条件最小典型最大Units单位tPHL4, tPLH4 Propagation Delay Time to Q4 传递延迟时间到Q4VDD = 5V 550 1300nsVDD = 10V 250 525VDD = 15V 200 400tPHL, tPLH Interstage Propagation Delay Timefrom Qn to Qn+1VDD = 5V 150 330nsVDD = 10V 60 125VDD = 15V 45 90tTHL, tTLH Transition Time过渡时间VDD = 5V 100 200nsVDD = 10V 50 100VDD = 15V 40 80tWL, tWH Minimum Clock Pulse Width最小时钟脉冲宽度VDD = 5V 170 500nsVDD = 10V 65 170VDD = 15V 50 125trCL, tfCL Maximum Clock Rise and Fall Time最大时钟上升和下降时间VDD = 5V No LimitnsVDD = 10V No LimitVDD = 15V No LimitfCL Maximum Clock Frequency 最大时钟频率VDD = 5V 1 3MHzVDD = 10V 3 8VDD = 15V 4 10tPHL(R) Reset Propagation Delay 重置传输时延VDD = 5V 200 450nsVDD = 10V100 210VDD = 15V 80 170tWH(R) Minimum Reset Pulse Width 最小复位脉冲宽度VDD = 5V 200 450nsVDD = 10V100210VDD = 15V 80 170CIN Average Input Capacitance 平均输入电容Any Input 5 7.5 pFCPD Power Dissipation Capacitance 功耗电容50 pFCD4060典型应用电路CD4060B典型振荡器连接:上图-RC振荡器下图-晶体振荡器CD4060秒脉冲发生器电路:图2 CD4060秒脉冲发生器脉冲发生器是数字钟的核心部分,它的精度和稳定度决定了数字钟的质量,通常用晶体振荡器发出的脉冲经过整形、分频获得1Hz的秒脉冲。
_看门狗_芯片的选择及软件控制

电子世界2004年1 期26・・单片机与可编程器件“看门狗”芯片的选择及软件控制・吉林化工学院自动化系 梁 伟・电子世界2004年1期27・・单片机与可编程器件个问题的方法就是做一个看门狗清除脉冲子程序,在延时等循环的圈内中加入它,可以保证万无一失。
2. 使用其它软件方法配合看门狗除了保证对看门狗的合理控制外,还要考虑使用其它软件方法配合看门狗,才能够保证MCU可靠运行。
许多书籍在分析MCU失控后的情况时,几乎都假定一般是PC错位,进入未知区域,并不再进入正常程序代码段。
但实际并非如此,以下就两种情况做具体分析,并给出解决方法。
(1)干扰造成PC出错,但出错后进入了正常代码段,并在错误的情况下继续运行,看门狗没有起作用,但系统实际上已经瘫痪。
解决这个问题可以使用软件路标法,几乎所有软件的主程序都是在一个大循环里工作,可以在循环中设置一些断点,断点处设置路标,程序运行时随时检查路标,这样就可以判断程序是否有非法进入的可能。
具体的路标可以是一个计数器,每个断点加1,在终点清除。
因为断点数固定,因此每个断点处路标值固定,只需要检测路标值就可以进行对非法进入的判断。
余下的问题就是发现错误后如何处理,正常的处理就是设置死循环,等待看门狗复位。
对于PHILIPS的LPC系列MCU也可以置位AUXR1寄存器的SRST位立即进行软件复位。
(2)干扰导致内部寄存器及RAM出错,但PC未错,因为错误的数据和标志导致程序在错误状态下运行。
解决这种问题可以采用RAM校验的方法,具体是在MCU的内部RAM中开辟几个校验区,复位时写入固定代码,如55H或者AAH,并编制校验子程序,运行时随时调用校验,发现错误马上处理,处理方法同(1)。
考虑到可靠性,应该多设置几个校验区,但要付出RAM资源代价,应酌情处理。
此方法如果与(1)方法同时使用,则会获得更好的效果。
结束语以上对看门狗的芯片选择和软件控制做了一些介绍,笔者通过合理运用,成功地设计出了许多应用系统,这些系统在恶劣的环境下都能够正常工作。
基于CD4060及RC微分电路的硬件看门狗电路

0 引言在计算机、通信及自动化领域,由单片机、嵌入式等构成的微型计算机系统的电子电路中,由于常常会受到来自外界电磁场的干扰,造成芯片内部各种寄存器和内存的数据混乱、错误,导致程序及电子电路运行错误,整个系统无法继续正常工作,会从而造成整个系统的陷入停滞状态,发生不可预料的后果。
看门狗电路(watchdog)用来监视MCU 内部程序运行状态,在程序跑飞或死锁等异常情况下,可以自动复位,确保系统的稳定可靠性。
看门狗电路的工作原理是:当系统工作正常时,CPU 将每隔一定时间输出一个脉冲给看门狗,即“喂狗”(对定时器清零),若程序运行出现问题或硬件出现故障时而无法按时“喂狗”时,看门狗电路将迫使系统自动复位而重新运行程序。
看门狗电路是电路中监控CPU 异常的重要手段,是电路自行监控、正常运行的重要保证,所以在电路中被充分利用。
看门狗电路是电路中监控CPU 异常的重要手段,是电路自行监控、正常运行的重要保证,所以在电路中被充分利用,但目前市场上的看门狗芯片喂狗时间较短,不太适合在启动时间较长的嵌入式系统中使用,为此,本文介绍一种新型的适应喂狗间隔时间较长的看门狗硬件电路。
1 硬件看门狗电路总体介绍计数器芯片CD4060是14位二进制串行计数器,内部由一震荡器和14级二进制串行计数器组成,CPU 的喂狗信号通过微分电路连接至计数器芯片CD4060的复位控制脚(RST),一旦在喂狗周期内,CPU 的喂狗信号没有正脉冲信号输出时计数器芯片CD4060的多级输出脚的一路通过微分电路接电压检测芯片SP708的手动复位脚(MR),实现计数器芯片输出的电平信号转换成脉冲信号致使电压检测芯片SP708输出复位信号,完成复位动作,同时电压检测芯片SP708的高电平有效的输出脚(RESET)反馈信号到计数器芯片CD4060的复位控制脚(RST),使复位的同时也对计数器芯片CD4060复位,使其与系统同步。
详细电路如图1所示[1]。
看门狗电路及原理

看门狗电路。
在单片机中,为了能使得程序能够正常的运行。
设定的及时根据程序所返回的值检测程序运行情况的定时电路。
在主程序中设定一定的值,把这个值在看门狗定时电路数值益处之前定时赋给看门狗赋给定时电路,让看门狗定时器复位。
主程序的赋值周期要小于看门狗定时电路的运行周期。
看门狗百科名片单片机"看门狗"在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"(watchdog)目录[隐藏]应用基本原理看门狗使用注意看门狗运用设计思路[编辑本段]应用看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。
[编辑本段]基本原理看门狗,又叫watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗(kicking the dog or service the dog),一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,使MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。
看门狗电路原理范文

看门狗电路原理范文一、看门狗电路的原理简介看门狗电路是一种特殊的计时器电路,能够周期性地产生一个定时器溢出中断信号,用于检测系统是否处于正常运行状态。
当系统持续运行时,需要定时清除看门狗计时器,以防止其溢出。
如果系统发生错误或停止响应,无法清除计时器,则看门狗电路会认为系统故障,并采取相应的措施。
二、看门狗电路的工作流程1.初始化:系统开始运行时,首先需要对看门狗电路进行初始化设置。
其中包括设置看门狗计时器的定时时间,及其工作模式(如看门狗电路是否使能)等。
2.计时器溢出中断:一旦看门狗计时器达到设定的定时时间,就会产生一个计时器溢出中断信号。
该中断信号会被发送到系统微处理器,表示系统运行出现异常。
3.清除计时器:系统正常运行时,需要定期清除看门狗计时器。
这可以通过向看门狗电路发送特定的信号或命令来完成。
清除计时器的操作需要在计时器溢出中断之前完成,以防止误报系统异常。
4.响应系统异常:如果系统正常运行,会按照设定的周期清除看门狗计时器,从而避免计时器溢出中断。
但是,如果系统出现错误或停止响应,无法清除计时器,看门狗电路会认为系统故障,并发送警报信号或采取相应的措施。
5.系统重启或报警:当看门狗电路检测到系统异常时,可以触发不同的操作,具体根据应用场景而定。
一种常见的操作是自动执行系统重启,以恢复系统的正常运行。
另一种操作是发送警报信号,通知系统管理员或用户发生了错误并采取相应的补救措施。
三、看门狗电路的应用场景1.工业控制系统:工业控制系统通常是实时性要求较高的,任何系统故障都可能导致严重的后果。
看门狗电路可以及时检测到系统异常并自动执行系统重启,保证工业控制系统的连续运行。
2.网络设备:网络设备需要稳定运行,以保证网络的畅通和数据的传输。
看门狗电路可以及时检测到网络设备的异常并采取相应的措施,防止因设备故障导致网络中断或数据丢失。
3.智能家居系统:智能家居系统中的各种设备需要稳定运行,以提供安全、舒适的居住环境。
CD4060最全中文参考资料 引脚定义、电路连接

创作编号:GB8878185555334563BT9125XW创作者:凤呜大王* CD4060CD4060(引脚图,真值表,电气参数及应用电路) CD4060由一振荡器和14级二进制串行计数器位组成,振荡器的结构可以是RC或晶振电路,CR为高电平时,计数器清零且振荡器使用无效。
所有的计数器位均为主从触发器。
在CP1(和CP0)的下降沿计数器以二进制进行计数。
在时钟脉冲线上使用斯密特触发器对时钟上升和下降时间无限制。
CD4060引脚图:CD4060引脚功能图CD4060内部结构图:CD4060内部方框图CD4060电气参数:Recommended Operating Conditions 建议操作条件:CD4060典型应用电路CD4060B典型振荡器连接:上图-RC振荡器下图-晶体振荡器CD4060秒脉冲发生器电路:图2 CD4060秒脉冲发生器脉冲发生器是数字钟的核心部分,它的精度和稳定度决定了数字钟的质量,通常用晶体振荡器发出的脉冲经过整形、分频获得1Hz的秒脉冲。
如晶振为32768 Hz,通过15次二分频后可获得1Hz的脉冲输出,电路图如图2所示。
CD4060定时电路由CD4060和CD4027构成的50Hz振荡器电路本振荡器能产生交变的50Hz脉冲方波,其占空比为50%.可供某些反相器电路应用。
该方波发生器由14级计数、振荡器(CD4060)。
双J-K触发器(CD4027);运算放大器(LM324)和少量的分立元件等组成。
电路的振荡由CD4060(IC1)外加晶振3.2768MHz完成,用电阻R1限制振荡回路功耗,R2是偏置电阻。
为了启动和维持电路的振荡,用电阻R1提供必需的最小值跨导。
振荡的频率经"14"级分频,得到200Hz,再由CD4060的第③脚输出。
200tHz频率又由双J-K触发器进一步"4分频,获得50Hz信号。
该50Hz由CDD4027的15出,同时在14脚还产生与15脚的互补(相位差180.)频率信号。
用CD4060制作闪光报警电路

用CD4060制作闪光报警电路cd4060应用电路图(一)用CD4060制作时间控制器如下图所示,电路接通瞬间,由R5、C3构成的微分电路保证延时时间从零开始。
在振荡信号的作用下,CD4060内的计数器开始工作,3脚为第14级计数器的输出端,要使3脚由低电平转换为高电平,所需的时间为t=213&TImes;2.2KC (秒),在此期间3脚输出的低电压使三极管V截止。
当延时时间到来时,3脚由低电平跳变为高电平,经R6限流使V饱和导通,继电器K吸合,负载得电。
本电路延时时间在2.1~4小时内任意调节。
cd4060应用电路图(二)所示为一种简易定时电路,它主要由一片14位二进制串行计数,分频集成电路和供电电路等组成。
ICI内部电路与外围元件R4、Rs、RP1及C4组成RC振荡电路。
当振荡信号在IC1内部经14级二分频后,在IC1的@脚输出经8192 (213)次分频信号,也就是说.若振荡周期为n利用IC1的③脚输出作延时,则延时时间可达81 92 71,调节RP1可使r变化,从而起到了调节定时时间的目的。
开机时,电容C3使IC1清零,随后IC1便开始计时,经过8192T 时间后,IC1③脚输出高电平脉冲信号,使vri导通,VT2截止,此时继电器Kl因失电而停止工作,其触点即起到了定时控制的作用。
电路中的S1为复位开关,若要中途停止定时,只要按动一下Sl.则ICl便会复位,计数器便又重新开始计时,电阻R2为c3提供放电回路。
cd4060应用电路图(三)电路结构及主要元器件选择由图1-17可知,该多控制式防盗报警器由电源电路、触发控制电路、分频振荡电路和音频放大电路组成。
其中电源电路可由4节5号干电池串联或外接6V稳压电源供电。
触发控制电路由红外发光二极管VL、红外光敏晶体管VT1、触摸电极A、短路线W、非门集成电路IC1内部的D1~D4、隔离二极管VD1~VD4、电阻Rl~R4、R8、常开微动开关S组成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用CD4060制作看门狗报警电路
看门狗定时器(WDT,Watch Dog Timer)是单片机的一个组成部分,它实际上是一个计数器,一般给看门狗一个大数,程序开始运行后看门狗开始倒计数。
如果程序运行正常,过一段时间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级二进制串行计数。
以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.2×R1×C1=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处理后形成单片机系统的复位信号,可以适应不同用户应用程序,从而该硬件看门狗电路可以适应不同的单片机应用系统。
对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、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.9 s内从P1.7口送出一个正脉冲,使看门狗及时清零,也就是说,CPU要在0.9 s以内执行一次下面的喂狗程序段(喂狗指令):SETBP1.7
NOP
NOP
CLRP1.7
喂狗程序段插入到用户应用程序之中。
单片机系统的用户应用程序一般由循环结构的主程序和中断服务子程序组成。
首先,应尽可能准确地估算各应用功能模块的运行时间,估算运行时间的时候,应考虑程序可能被中断,应把中断程序的运行时间也计算在内。
然后,在若干个应用功能模块的运行时间小于0.9 s的两个应用功能模块之间插入上面的喂狗程序段。
为了防止看门狗非正常失效(即:已发生程序跑飞但看门狗不“叫”——不产生单片机所需要的复位信号),在用户应用程序中插入喂狗程序段时应注意下面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 有输出。
电路成本也低廉。
该电路的最大缺点是喂狗脉冲要求比较宽。