MCS—51单片机系统的“死机”问
MCS—51单片机系统的“死机”问题
?
3
第9卷2期
I997年6月
宁夏I学院(自然科学版)
JournalofNingxiaInstituteofTechnology(NaturalScience)
Vo1.9No.2
June,1997
MCS一5l单片机系统的”死机”问题
宋天蔚
(机械
秉1
弋}ji
)
摘要本文舟绍了MCS--51单片机程序运行监视的几种方法及恢复
关键词单片机程序监视
分娄号币?死杌旧熙监琵系施
.引言灵,枉店渤
MCS一51单片机应用系统在使用过程中,可能由于各种各样的干扰
(如供电干扰,电磁干
扰,过压,环境等)对系统产生影响,致使系统不能按正常状态执行程序,从而引起混乱,甚至
“死机”.即程序弹飞到一个临时的死循环中,无法退出,系统将完全瘫痪.
为避免和解决上述问题,除了应采取一些必要的抗干扰措施(如前,后通道采用光电隔离,
屏蔽,过压保护电路,合理
印刷电路板,合理选择元器件,数字或低通滤波,优化环境等等)
以外,更重要的是一旦出现程序弹飞或”死机”,应如何退出,如何恢复.笔者根据系统开发的宴
践及有关资料的经验提出以下措施.
1程序运行的监视
要使弹飞的程序或进入死循环的程序能安全的退出,首先应建立一个程序运行的监视系
统,使计算机自己来监视系统的运行情况,一旦出现”不测,则可采取相应措施,防止”死机”,
这就是程序运行监视系统,国外称其为WATCtIDOG(看门狗).
1.1硬件法
1.1.1单稳电路
构成WATCHDOG的硬件电路由一个独立于CPU之外的单稳电路组成,CPU正常工作
时,应每隔一段时间就输出一个脉冲,将单稳系统触发到暂稳态.当暂稳态的持续时间设计得
比CPU的触发周期长时,单稳态系统就不能回到稳态,即正常工作过程.若”死机时,系统无
法触发单稳系统,该系统便可返回稳态,即退出死循环.
1.I.2计数器电路
构成硬件WATCHDOG电路也可以是自带脉冲源的计数器.其原理是根据实际情况给计
数器置初值,正常运行时,单片机每隔一短于计数时间输出清零脉冲,使计数器计不到总数;若
CPU受干扰而掉入死循环时,不能送去清另脉冲,计数器会计满总数并溢出,产生溢出信号使
系统复位,退出”死机.以上两方法的电路各参考书均重新置数,不
会溢出而产生中断当程序弹飞,系统失控,主程序不能正常循环,也不能给定时器重新置数,
则到T时问时,定时器将产生溢出中断,转人中断服务.退出”死机”.需注意的是,如果系统中
还有其它中断情况,则必须将WATCttDOG的溢出中断设定为高级中断,而其它中断均为低
级中断,以保证安全退出.
1.2.2查询地址法
程序受干扰而弹飞的结果,可能会落人非程序区,而造成失控.若能判
断程序在非指定的
区域,则可立即复位系统,避免失控.单片机中,读取RAM的信号与读取ROM的选通信号
PsEN是有区别的,当高位地址不为零时,外部程序存储器读选通信号为低电平,则表示程序
运行到高位地址或对高位地址的数据进行查表,显然这在正常工作的系统中是不可能出现的,
说明程序执行有误,应马上复位系统.如应用程序为16K,正常取指时最高的地址线应为低电
平,若PsEN为低时,且最高两地址线不同时为零,则由硬件产生一信号复位系统,防止错误执
行程序.
1.2.3软件陷井
弹飞后进入非程序区,只要在非程序区设置拦截措旋,使程度进入陷井,然后强迫程序进
入初始状态.如在空白ROM空间,每隔一段设置一个陷井,可用o2o0o0作为陷井,就一定能
捕捉到弹飞的程序.
2系统的恢复
以上的各项方法只解决丁如何发现系统被干扰及如何捕捉失控的程序,但更重要的是让
计算机根据被破坏的现场中的一些信息自动恢复到正常工作状态,
这便是系统的恢复.
系统恢复的过程应尽可能的快是不很容易的,若要完全恢复就更难了,其应包括以下几项
:
?
系统复位:由硬件或软件使系统进入初始化状态,从0000H地址开始执行
?
关闭中断,封锁I/0操作:防止造成新的混乱
?
恢复系统残留信息:核查关键信息,发现有错,尽力纠正
?
系统状态的重人:重新设置外围芯片,补充必须的新信息,在准确判断出弹飞地点后,再
返回弹飞地点,继续执行程序.
参考文献
1何立民.MCS一51系列单片机应用系统设计——系统配I与接I:l技术.北京航天航空大学出旅社,1991
2馀爱呻.单片散型什算机应用和开发系统.北京航空航天大学出版杜,1992
TheprogrammemonitorofMCS一51single--chipmicrocomputer
SongTianting(DeparzmentofMechamicalEnginerm’ng)
AlmtractThispaperpresentsthemethodsofprogrammemonitorofMCS--51
single-chipmicrocomputer
KeywordsSingle-chipmicrocomputerProgrammemonitor