单片机 抗干扰 软件复位 看门狗
单片机复位电路的设计探讨
张军涛
(广东松山职业技术学院电气系,广东韶关512126)
摘要:单片机应用系统中的复位电路是否可靠工作对整个系统至关重要,本文对单片机系统常用的复位电路存在的一些问题进行分析,并提出解决方法。
关键词:单片机复位电路抗干扰
1、引言
目前,单片机教材中涉及的复位电路结构并不复杂,但一般是原理性的,难以满足系统的实际需要,极易受到噪声干扰。当复位端串人干扰时,可能会造成单片机的错误复位,进而引起CPU内部的某些寄存器和接口电路错误复位。因此,在设计复位电路时,既要保证系统的可靠复位,又要考虑电路的抗干扰能力。
2、复位电路组成及参数选择
传统的复位方法有阻容上电复位、按键电平复位。如图1所示。它们实际上利用RC充放电原理实现的复位电路,复位操作的关键是要从外部给RST引脚提供一定时间长度的正脉冲,即先施加高电平,再变为低电平。理论上讲这个高电平至少应该持续二个机器周期,即充电时间常数要保证完成复位操作。若VCC上升时间不超过1z璐,振荡器建立时间不超过10nls(振荡器起振时间和振荡频率有关,当振荡频率为10M}亿时,振荡器起振时
间为1IIls,当振荡频率为1MHZ时,振荡器起振时间为1嘛),为使系统可靠复位,RsT引脚上电复位时间应保持2‰以上高电
平,即在选择RC参数时,要保证时间参数T_Rc大于20姗。
3、复位电路性能和抗干扰分析3.1电路结构与抗干扰分析
对于图l,阻容上电复位是由于接通电源的瞬间电容C的两端电压为零,产生充电电流降于电阻R,使RsT引脚电位提高到接近VCC,而随着电容充电,R两端的电压逐渐降到零,实现CPU复位,此种方法简单,但若单片机系统在运行中突然掉电或电压跌落而又立即恢复,则由于电容C已经充满电压而不能重新充电,单片机就不能再次被复位而导致系统瘫痪。至于按键电平复位常与阻容上电复位结合应用,当后者失效时,按下按键后,RsT引脚重新升高电平,然后松开,即可重新复位,但对于嵌入式系统,由人工保证及时复位几乎是不可能的。
vcc
C
Vcc
一一
RST
jR●
RST
RST805l
一’6
R805l
805l
vSs
Vsg
cb)
图1
3.2复位电路抗干扰措施
对图l所示电路进行改造,如图2所示。
电路中二极管D能在电源掉电时使电容C。迅速放电,待电源恢复正常时实现可靠复位。避免了由于电源瞬间掉电而电容Ct不能迅速放电而引起单片机不能可靠复位,导致程序运行失控,造成“跑飞”和“死循环”。C:可提高对电源中高频噪声的抑制。使用D触发器74Ls74可进一步提高抗干扰能力。
另外还可结合看门狗(WATCHDOG)复位,进一步改进电
万
方数据路,配合编程,可时刻监视CPU对软件的执行情况,一旦系统受强干扰,使程序“跑飞”,立即重新复位。电路如图3。
将555接成一个多谐振荡器,周期为T0将74LS93接成十六进制计数器,当数到第8个脉冲时,Qo变成高电平,单片机用一个输出端口输出清零脉冲,计数器就永远计不到8,Q。端保持低电平,经过微分电路C:,R3输出一个正脉冲,使CPU复位。该电路中CPU的复位信号有3个:上电复位(C-,Rt),人工复位(K^,R’,R-)和WATCHDOG复位(C2,R3)通过或门综合后加到RST
图2
端,C2,R3的时间常数不必太
大,有数百微秒即可,因为这是的CPU的振荡器已经在工作,74IJS93的清零信号为高电平,为防止CPU掉入死循环前将P,,变为高电平而使WATCHDOG失效,故在P。和计数器清零端之间加一微分隔离电路,CPU在平时保持P。,为低电平,每隔一段时间(不超过8个To),从PL7输出一个正脉冲,经微分后使计数器清零,这个微分电路的时间常数可选择为微秒级。脉冲源555的震荡周期T0的大小可由系统软件的循环周期来确定。
清零操作可放在时钟中断里完成,这时,555的震荡周期T0必须大于1/8系统时钟中断周期,可取1/4 ̄1/2时钟中断周期。
如系统设有固定时钟中断,可将清零操作放在监控循环中执行。
如程序中有查询等待指令时特别要注意,如用查询:
WAIT:JBP11,WAIT这时,有可能外设要持续一段时间才能准备好,这段时间如果大于
图3
WATCHDOG允许时间,系统将被复位。改为
W舭T:SETBPl7;复位W.T.D
NOPNOPCLRP。7;允许W.T.D开始工作
NOPNOP
JBPll,WAjT;查询等待
4、结束语
在设计复位电路时,电路的结构及参数选择是致关重要的。一旦被疏忽,在较恶劣的环境中往往会因复位电路工作不可靠,造成系统工作失常。经实践证明图2、图3电路在实际应用中,能可靠工作。
(参考文献略)
57