1.看门狗技术的的简介摘要:在实验中开发出来的各种控制小系统经常会出现运行不稳定、死机或停不了机即程序跑飞等现象,这是由于恶劣的工业现场环境如大功率感性负载的干扰所至。
基于单片机的“看门狗”技术能解决这个问题。
B本文分别介绍用软件和硬件来实现“看门狗”技术。
关键词:;单片机抗干扰;“看门狗”技术运用目前,单片机有8位和16位之分,其型号非常多,有PIC、MSP430等微功耗型,也有MCS 一51/98、A—Duc812、Motorola、EPSON等非低微功耗型。
单片机广泛应用于长度、温度、力学、流量、电学、化学等专业的各种智能仪表中,这些仪表有些应用在有强磁场、电源尖峰、电火花等外界干扰的场合中,这些干扰有可能造成仪表中单片机的程序运行出现“跑飞”现象,引起程序混乱,输出或显示不正确,甚至“死机”。
为了提高仪表可靠性及抗外界干扰能力,通常在智能仪表中采用“看门狗”技术。
所谓的看门狗技术实际上是一个监视定时器,它的定时时间为固定不变,一旦定时时间到,电路就产生复位信号或中断信号。
当程序正常运行时,在小于定时时间隔内,单片机输出一信号刷新定时器,定时器处于不断的重新定时过程,因此看门狗电路就不会产生复位信号或中断信号,反之,当程序因出现干扰而“跑飞”时,单片机不能刷新定时器,产生复位信号或产生中断信号使单片机复位或中断,在中断程序中使其返回到起始程序,恢复正常。
一般来说,很多智能仪表采用外部硬件看门狗来确保程序因出现干扰而“跑飞”时能正常运行。
因为如果用软件方法来实现这种功能,在有有干扰的情况下,程序可能因为无法读取而失败。
2 硬件“看门狗”技术的实现硬件“看门狗”技术实施起来则显得更为简单、可靠。
特别是对于硬件工程师来讲最为方便。
下面就通过自行设计的“生物组织自动脱水机的智能控制系统”中的抗干扰复位口,介绍硬件“看门狗”技术的实现方法。
生物组织脱水机智能控制系统硬件由89C51单片机、2864EEPROM、27512EPROM、6264SRAM、ADC0809、MGLS240128T液晶显示模块、键盘输入电路和CD4060硬件“看门狗”电路等组成。
其电路示意图如图1所示。
图1 硬件电路示意图主控单片机选用ATMEL公司AT89C51系列单片机中结构最紧凑、体积最小的AT89C2051,外接一片2864作为程序存储器,再选用一片27512和一片6264作为存放调试程序和运行程序的中间数据及最后结果。
液晶屏选用内藏T6963C控制器型MGLS240128T液晶显示模块,支持图形和文本两种显示方式,有8位数据总线、10位控制线和电源线,连接时,单片机利用数据总线和控制信号,直接采用I/O设备访问形式控制液晶屏。
抗干扰复位口的工作原理:为了提高系统的抗干扰能力.防止程序进入死循环,采用了14位二进制串行计数/定时器CD4060构成了“看门狗”。
在正常工作时,安插在循环程序中的清除脉冲信号能够周期性地消除“看门狗”定时器的定时时间,换句话说就是用硬件“喂狗”,使“看门狗”定时器不会溢出。
当系统受到干扰使程序“跑飞”时,循环程序中的清除脉冲的周期性信号则消失,则停止了“喂狗”。
此时“看门狗”定时器中的定时时间由于得不到及时消除而产生溢出,立即通过14位二进制串行计数/定时器CD4060的Q14端、二极管D2给单片机AT89C2051的RST端发出一个复位信号(正脉冲) ,使系统复位并重新开始启动。
其电路图如图2所示。
此外,在程序中,我们把RAM分成两部分:运行存储器和备份存储器。
备份存储器再分为二个区,存放数据时,将它们存放在三个相对远离分散的区域内,建立双重备份数据。
在CPU受到干扰而造成程序“乱飞”时,即使RAM中保存的原始数据、标志、变量等遭到破坏,在系统复位后,也可立即利用备份RAM进行自检和恢复,保证了系统的正常运行。
图23 软件看门狗原理软件看门狗技术的原理和这差不多,只不过是用软件的方法实现,我们还是以51系列来讲,我们知道在51单片机中有两个定时器,我们就可以用这两个定时器来对主程序的运行进行监控。
我们可以对T0设定一定的定时时间,当产生定时中断的时候对一个变量进行赋值,而这个变量在主程序运行的开始已经有了一个初值,在这里我们要设定的定时值要小于主程序的运行时间,这样在主程序的尾部对变量的值进行判断,如果值发生了预期的变化,就说明T0中断正常,如果没有发生变化则使程序复位。
对于T1我们用来监控主程序的运行,我们给T1设定一定的定时时间,在主程序中对其进行复位,如果不能在一定的时间里对其进行复位,T1 的定时中断就会使单片机复位。
在这里T1的定时时间要设的大于主程序的运行时间,给主程序留有一定的的裕量。
而T1的中断正常与否我们再由T0定时中断子程序来监视。
这样就够成了一个循环,T0监视T1,T1监视主程序,主程序又来监视T0,从而保证系统的稳定运行。
51 系列有专门的看门狗定时器,对系统频率进行分频计数,定时器溢出时,将引起复位.看门狗可设定溢出率,也可单独用来作为定时器使用.凌阳61的看门狗比较单一,一个是时间单一,第二是功能在实际的使用中只需在循环当中加入清狗的指令就OK了。
C8051Fxxx单片机内部也有一个21位的使用系统时钟的定时器,该定时器检测对其控制寄存器的两次特定写操作的时间间隔。
如果这个时间间隔超过了编程的极限值,将产生一个WDT复位。
看门狗使用注意:大多数51 系列单片机都有看门狗,当看门狗没有被定时清零时,将引起复位。
这可防止程序跑飞。
设计者必须清楚看门狗的溢出时间以决定在合适的时候,清看门狗。
清看门狗也不能太过频繁否则会造成资源浪费。
程序正常运行时,软件每隔一定的时间(小于定时器的溢出周期)给定时器置数,即可预防溢出中断而引起的误复位。
看门狗运用:看门狗是恢复系统的正常运行及有效的监视管理器(具有锁定光驱,锁定任何指定程序的作用,可用在家庭中防止小孩无节制地玩游戏、上网、看录像)等具有很好的应用价值.系统软件"看门狗"的设计思路1.看门狗定时器T0的设置。
在初始化程序块中设置T0的工作方式,并开启中断和计数功能。
系统Fosc=12 MHz,T0为16位计数器,最大计数值为(2的10次方)-1=65 535,T0输入计数频率是.Fosc/12,溢出周期为(65 535+1)/1=65 536(μs)。
2.计算主控程序循环一次的耗时。
考虑系统各功能模块及其循环次数,本系统主控制程序的运行时间约为16.6 ms。
系统设置"看门狗"定时器T0定时30 ms(T0的初值为65 536-30 000=35 536)。
主控程序的每次循环都将刷新T0的初值。
如程序进入"死循环"而T0的初值在30 ms内未被刷新,这时"看门狗"定时器T0将溢出并申请中断。
3.设计T0溢出所对应的中断服务程序。
此子程序只须一条指令,即在T0对应的中断向量地址(000BH)写入"无条件转移"命令,把计算机拖回整个程序的第一行,对单片机重新进行初始化并获得正确的执行顺序。
4.实现看门狗技术的几种类型1 uP监视器构成看门狗电路在非低微功耗智能仪表中,可用uP监视器(如MAX7 X×、X2504 X等1设计硬件看门狗电路,以MAX706P为例(具体电路如图1)看门狗电路。
该电路具有手动复位、看门狗、电压监视功能。
看门狗工作原理:MAX706的内部看门狗定时器定时时间为1.6秒,如果在1.6秒内,看门狗输入脚WDI保持为规定电平(高电平或低电平),看门狗输出端丽变为低电平,二极管D导通,使低电平加到复位端,MAX706产生复位信号RESET使单片机复位,直到复位后看门狗被清零,丽才变为高电平。
当WDI有一个跳变沿(上升沿或下降沿)信号时,看门狗定时器被清零。
如图I所示,将WDI端与单片机某I/0输出端相连,程序只要在小于1.6秒内将该I/0端取反一次,使定时器清零而重新计数,不产生超时溢出,程序正常运行。
当程序“跑飞”时,不能执行产生跳变指令,到1.6秒时,丽因超时溢出而变为低电平,产生复位信号使单片机复位。
由于uP监视器构成看门狗电路的工作静态电流大,因此,只能用于对功耗要求不高的智能仪表中。
2 TTL型看门狗电路根据看门狗工作原理,看门狗电路至少包括脉冲产生电路和定时计数器电路。
由CD4060和32.768Hz石英晶振组成脉冲产生电路,产生4Hz脉冲源。
74LS293计数器对4Hz脉冲源进行计数,其输出端Q与单片机复位端RESET相连,单片机的某I/O端与74LS293的清零端R相连,程序在1.5秒之内输出一次由低到高且又由高到低的窄脉冲,输出端Q 一直为低电平,否则将输出为高电平,其工作原理同上。
实际电路如图2,该电路可用于低功耗的智能仪表中。
如采用MCS51/98单片机,用P1.2脚输出窄脉冲,可以在应用软件中适当处加入以下程序:ROCLK BIT P1.2 ;定义P1.2脚CLR ROCLK ;P1.2为低电平CLRSTART:SETB ROCLK ;P1.2为高电平NOP ;延时,输出窄脉冲CLR ROCLK ;P1.2为低电平CLREND:⋯.;复位结束3 CoMS型看门狗电路工作原理与rIfI'L型看门狗电路相似。
将74LS293计数器换成CD4024计数器,实际电路如图3。
由于该电路采用工作静态电流极小的CMOS集成电路,因此可用于微功耗的智能仪表特别是便携式、一体化仪表中。
经过现场实际使用,证明该电路是可靠的,仪表未出现程序无法运行和“死机”现象。
如采用MSP430F1IX单片机,用P1.0输出输出窄脉冲,可以在应用软件中适当处加入以下程序:BIS.B #001H,&P1DIR;P1.0为I/O输出,初始化MOV.B#000H,&P1OUT ;P1.0输出低电平CLRSTART:XOR.B#001H,&P1OUT ;P1.0输出求反,输出高电平NOP ;延时,输出窄脉冲XOR.B#001H,&P1OUT ;P1.0输出求反,输出低电平CLREND:⋯.;复位结束-参考文献:1:李群芳.单片微型计算机与接口技术.北京:电子工业示版社 1998 2:何立民. 单片机应用系统设计. 北京:北京航空航天大学出版社 1995 3. 周越主《单片机应用技术》·中国水利水电出版社·2009年4.李全利编·《单片机原理及应用技术》·高等教育出版社·2004年。