微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 单片机软件三重监视抗干扰技术

单片机软件三重监视抗干扰技术

时间:07-27 来源:互联网 点击:
3T0中断服务程序监视过程设计

T0中断的功能是监视T1中断服务程序的运行状态。由于T0中断服务程序较短,因干扰而引起的“死循环”的几率很小,重点考虑中断关闭故障。A1、B1为T1中断运行状态观测单元。A1的初值为00H,T1每中断一次,A1便加1,T0中断服务程序中若检测到A1>0,说明T1中断正常;若A1=0,则B1单元加1(B1的初值为00H),若B1的累加值大于Q,说明T1中断失效,失效时间为T0定时溢出时间与Q值之积。例如:T0的定时溢出时间为4ms,T1的定时溢出时间为2 ms,当Q=5时,说明允许T1的失效时间为20 ms,在这样长的时间内,T1并没有发生中断,说明T1中断发生了故障。由于T0中断级别高于T1中断级别,所以T1的任何故障(如死循环、中断关闭)都会由T0检测出来。T0中断服务程序一般很短,发生“死循环”的几率很小。  

设单片机晶振频率为6MHz,T0以工作方式1产生4 ms的定时中断,则T0的计数初值为:  

(216-N)×2×10-6=4×10-3  
N=63536D=F830H  
设计数单元A0、A1、B1分别为内RAM30H、31H、32H,Q=5,60H、61H为暂存单元,则T0中断监视程序如下:  
PUSHPSW;保护现场  
PUSH ACC  
MOV TH0,#0F8H ;设T0初值  
MOV TL0,#30H  
INC 30H ;A0加1  
MOV A,31H ;A1单元判0  
JZ loop1  
CLR A ;清A1、B1单元  
MOV 31H,A  
MOV 32H,A  
loop0:POP ACC ;恢复现场  
POP PSW  
RETI ;返回  
loop1:INC 32H ;B1加1  
CLR C  
MOV A ,32H;B1≥Q?  
SUBB A,#05H  
JC loop0  
POP ACC ;恢复现场  
POP PSW  
POP 60H ;原断点弹出  
POP 61H  
MOV 60H,#00H ;修改断点0000H  
MOV 61H,#00H  
PUSH 60H  
PUSH 61H  
RETI

当系统受到干扰后,主程序可能发生“死循环”,中断服务程序也可能陷入“死循环”,或因中断方式字的破坏而关闭中断。主程序的“死循环”可由T1中断服务程序监视;T1中断服务程序的“死循环”和中断关闭故障由T0中断服务程序监视;T0的中断故障可由主程序监视。由于采取了三重软件监测方法,大大提高了系统运行的可靠性。

作者:王雷 王闪 王幸之

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top