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

2009-8-13 08:22 1162 9 9 分类: MCU/ 嵌入式
  MCS—51使便电子园51单片机学习网L/V.p kg#W
  
(W4H%nPz7B0  应用于工业过程控制和智能化仪器仪表的单片机,由于现场条件往往十分恶劣,不可避免地会受到各种各样的电磁干扰。当串入系统的干扰作用于单片机内部的CPU部件时,后果更加严重,将导致系统失控。最典型的失控故障是破坏程序计数器PC的状态,导致程序在地址空间内“乱飞”,或者陷入“死循环”。因此,尽可能早地发现程序失控,并采取相应的补救措施,是单片机应用系统抗干扰设计的重要内容。电子园51单片机学习网7`ke MZUN
  使程序从“乱飞”状态纳入正轨的方法称为程序拦截技术,包括指令冗余技术、软件陷阱技术等。使程序摆脱“死循环”,通常多采用硬件电路实现的监视技术,又称“看门狗”技术(Watchdog)。常见的硬件“看门狗”电路有单稳态型“看门狗”电路、计数器型“看门狗”电路、微处理器监控专用芯片等。上述的抗干扰方法可参阅有关资料文献。本文将讨论由软件实现的“看门狗”技术。电子园51单片机学习网9u.wUKZ7Sp&b
  由硬件电路实现的“看门狗”技术,可以有效地克服主程序或中断服务程序由于陷入“死循环”而带来的不良后果。但在工业应用当中,严重的干扰有时会破坏中断方式控制字,导致中断关闭,这时一般的硬件“看门狗”将不能使中断恢复正常。依靠软件进行多重监视,可以弥补上述不足。电子园51单片机学习网9n-t7Q IA6[:Z
  软件“看门狗”技术的基本思路是:在主程序中对中断服务程序的运行进行监视;在中断服务程序中对主程序的运行进行监视;采用两个中断实施相互监视,称之谓软件三重监视抗干扰技术。从概率观点,这种相互依存,相互制约的抗干扰措施,将使系统的可靠性大大提高。
,p`3]'k)O0  本文以MCS—51单片机为例,说明软件三重监视的基本原理。系统软件包括主程序、T0定时中断子程序和T1定时中断子程序3部分,将T0设计成高级中断,T1设计成低级中断,从而形成中断嵌套。
1v ff%tU f&e n*h1W6`0
uel'k5o#JWm d01   电子园51单片机学习网}!z8a'Q2G},A+| _7a5N
  主程序流程如图1—1所示。主程序完成系统测控功能的同时,还要监视T0中断服务程序因干扰而引起的中断关闭故障。A0为T0中断服务程序运行状态的观测单元,T0每发生一次中断,A0计数单元少一次中断(T0定时溢出时间小于测控功能模块运行时间),引起A0的变化。在测控功能模块的出口处,将A0值与E0值进行比较,以判断A0是否发生变化。若A0发生变化,说明T0中断运行正常;若A0不变化,说明T0中断关闭,则转到程序入口0000H处,进行出错处理后,程序恢复正常运行。

jx2XDm@0

k`(e)l^Zd%o0  设A0、E0、M计数单元分别为内RAM中的30H、40H和50H单元,监视程序如下:电子园51单片机学习网X(wI {:H


0Y#X9p%N^ v0        loop1:MOV   50H, #00H;  清M单元

_[nO$|-g:r | p0

S![dbPM|(^0                      MOV   40H,   30H ;暂存A0单元 电子园51单片机学习网CH_.r$w3@(?8t


o)lFZ-AM}0               …;           测控功能模块电子园51单片机学习网Q#Y"x'O c0v

电子园51单片机学习网1?$p)y6H+O9}4qE_

           CLR    C

O:ic.I(sJ0`0电子园51单片机学习网s?5^/?*y)j$F w

           MOV    A,     30H电子园51单片机学习网v*@X'Dt ?x

电子园51单片机学习网 B,Y?*Y.^

           SUBB   A,     40H; 判断A0变化电子园51单片机学习网3ym#o9k s*v


E*sM Q&tj0           JZ     loop

HO^i)Z-c$o0电子园51单片机学习网 l.gq x r

           MOV    30H,   #00H

+Gz;B V!c`4`0电子园51单片机学习网BJcob,uw9?x

         LJMP   loop1电子园51单片机学习网 A A&@ z C]

电子园51单片机学习网dj_ r#y"j^"a

  loop:LJMP 0000H电子园51单片机学习网#oE6HM+SJ1K3O
电子园51单片机学习网@/M*y-uT8OPV
2 T1  
Af){0^ ESPy0
  T1中断程序流程如图2—1所示。T1中断服务程序在完成特定测控功能的同时,还要监视主程序的运行状态。在中断服务程序中设置一个主程序运行计时器M1,T1每中断一次,M便自行加1。M中的数值与T1定时溢出时间之积表示时间值。若由M表示的时间值大于主程序的运行时间,说明主程序因干扰而陷入了“死循环”,T1中断服务程序便修改断点地址,返回0000H,进行出错处理。若M不大于主程序运行时间,说明主程序运行正常,中断服务程序也正常返回。M单元在系统主程序运行中循环清“0”。电子园51单片机学习网m,Z8X7f/[9b~6Ya


电子园51单片机学习网4y`Pv DV0L
 电子园51单片机学习网~)tkq%m'kT

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

(216-N)×2×106=2×103

_6B,p,U*T&i] ib6s0

  N=64536D=FC18H电子园51单片机学习网3dH+~G _^/`p H2D9BX


~ L8f;^6M{`$fu*M0电子园51单片机学习网X%L:`#Bpq
  若图1—1中主程序的最大循环时间为200ms,则图2—1中的T取值应不小于64H,可取68H。A1为T1中断程序运行状态监测单元,取内RAM 31H单元,M仍取50H单元,60H、61H为暂存单元,则T1中断监视程序如下: 

Sedu(UE O;{0电子园51单片机学习网7d"Yn%GS.T

        PUSH   PSW            ;保护现场

g I2z~a_#c0电子园51单片机学习网eWv m |1E;E

    PUSH    ACC电子园51单片机学习网{,TR;s:ki

电子园51单片机学习网8km.y2EsW,g)}D(l

    MOV     TH1,  #0FCH    ;T1置初值电子园51单片机学习网*}xF-y ~3^E2bw

电子园51单片机学习网SGTh5J0Q8J9h

    MOV     TL1,  #18H

)ZGW&OB#muq0电子园51单片机学习网!gz7aN1YW

    INC     31H              ;A1单元加1电子园51单片机学习网 L&nk$G#~0Sl


9]B7?;mY U7F1nt0    INC     50H                  ;M单元加1电子园51单片机学习网4xV!NE8Ch)wd


Vb4ci(E Ua9z0    CLR      C

m2_#i'LlvWVP0电子园51单片机学习网*T\R2K&`/F

    MOV      A,#68H

pxSE'I uw!lnK0电子园51单片机学习网X r_ jQu` z

    SUBB     A,50H              ;T≥M?

8H ]3iFVJA~0电子园51单片机学习网K7Z3goEx/Y%RX,Q-[

    JC       loop 

j3x7w4Fc"R0

4\Y D8lR.v9v|0      …                   ;中断测控程序电子园51单片机学习网*L8o:Gt |)|Q


Lk s6D6v0    POP     ACC                  ;恢复现场

\-Ebrm0

u_`8zLg0    POP     PSW

]jVs_%n#X4B0

B#iZY#k?@l0  RETI                        ;返回电子园51单片机学习网#g*xU$M#O'Lx

电子园51单片机学习网)UN}0C!U;N Yr;C/q0J

loop:POP  ACC            ;恢复现场电子园51单片机学习网9S(hM1Oiz6x$U/x@(P

电子园51单片机学习网Y,D0[ mV"P_.P i$|

    POP     PSW

EF#qE'},V0电子园51单片机学习网Q7B4F%wW

    POP     60H                  ;原断点弹出

W-l pSB(om0

7unZ*Y$_ t0    POP     61H

lM9pK8})S.UM3ul0电子园51单片机学习网'wv6jDq1a&O

    MOV     60H,#00H           ;断点修改为0000H电子园51单片机学习网 w h3v/q`1b,_H


)?#Xmmvz;K0    MOV     61H,#00H电子园51单片机学习网3|.f'E^cD.PYj

电子园51单片机学习网&@_ \ G? y o\]

    PUSH    60H

X:zeo.x+NK0eD0

q?$u"H-BT1z'[8c0    PUSH    61H

kP1l-_ u(?0电子园51单片机学习网 Y'V+lyg'J3Z

  RETI    ;返回电子园51单片机学习网 Mm|:Yz;XS?
电子园51单片机学习网2\2I#tc[G)k2\+m
3 T0  电子园51单片机学习网6~-iM1p'S${w
  T0中断程序流程如图3—1所示。T0中断的功能是监视T1中断服务程序的运行状态。由于T0中断服务程序较短,因干扰而引起的“死循环”的几率很小,重点考虑中断关闭故障。图3—1中A1、B1为T1中断运行状态观测单元。A1的初值为00H,T1每中断一次,A1便加1,如图2—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中断服务程序一般很短,发生“死循环”的几率很小。

%@a ~ kU,F{0

wh u,q7q,m0

`-k D$T"s0  电子园51单片机学习网-xJh!ax)py
  设单片机晶振频率为6MHz,T0以工作方式1产生4 ms的定时中断,则T0的计数初值为:

d:G6l bg0O#cb Y B;F0

(216-N)×2×106=4×103 电子园51单片机学习网2C3X3]3]:V/s


  N=63536D=F830H

F"d`@_])Iu0

@c5z;f d7q&C*{4Q {,e/M0  设计数单元A0、A1、B1分别为内RAM 30H、31H、32H,Q=5,60H、61H为暂存单元,则T0中断监视程序如下: 

JF1_,c!a$j B \e0电子园51单片机学习网J*FKz5M4`[

    PUSH   PSW     ;保护现场电子园51单片机学习网&hdWm"H^r gwaZ

电子园51单片机学习网_L#A&a8J

    PUSH      ACC

ir8R'E:?0

z-_-u0}e5a@Q7|4b;b0    MOV       TH0,#0F8H  ;设T0初值

Aj-o!D gPvJE d0电子园51单片机学习网 ?@$ws3|,Nz

    MOV       TL0,#30H电子园51单片机学习网Y[5` `"^B d,r#~3~


6E%y,jd Ol0    INC       30H          ;A0加1电子园51单片机学习网)hW2? z_


&W@ l5D.V Z1H"g0    MOV       A,31H       ;A1单元判0

la;U)R#kA?0

ZE:t;S!e.c)Ol0    JZ        loop1电子园51单片机学习网h/d,|,X6IEZ$D

电子园51单片机学习网6I-c+CHs8Ye hL

    CLR        A       ;清A1、B1单元

ys7~PP5p3z0

+}6r)u Fa8T1_#h&~0    MOV       31H,A电子园51单片机学习网 II*Wr5xay$N;n-k

电子园51单片机学习网\\#L&W.X!A@

    MOV       32H,A电子园51单片机学习网0xV0[e P"c

电子园51单片机学习网Ogg/c.O#p

    loop0:POP   ACC         ;恢复现场电子园51单片机学习网y jDe F;}tg,z5U6r


xs:_3D)P0           POP   PSW

-nE%Z$[;hp"b0电子园51单片机学习网\ tcN/VTljUT

         RETI             ;返回电子园51单片机学习网g?,U)lew|vB

电子园51单片机学习网+pb"{l-|9ot4v@N

    loop1:INC   32H         ;B1加1电子园51单片机学习网{c;R!\]9a

电子园51单片机学习网0t(x1[:Z\9X.y5x

           CLR    C电子园51单片机学习网o4U Vg:Kq

电子园51单片机学习网RXbQ UD

           MOV     A         ,32H;B1≥Q?

c S5U!d8Y.Q6j#cpp0电子园51单片机学习网 o5] d+T3lm i?

           SUBB    A,#05H     

^^`2_O:sH5c(W$u0电子园51单片机学习网 B.~(IZ%q Yf8D

           JC      loop0电子园51单片机学习网*^V Zs1w!i2v%y

电子园51单片机学习网 b+ry+Y0G*@!b C

           POP    ACC    ;恢复现场

)N4m,wAi Hh0

e4a2b#Q|k jk&b0           POP     PSW

1m q0\fR-ZF0电子园51单片机学习网,{jc`4_Q

           POP     60H        ;原断点弹出电子园51单片机学习网Ce@!`@l,[


$ah&Q[LCW'p^0           POP     61H

XZZ3qb1rX0电子园51单片机学习网+S!Q[x,N$^

           MOV     60H,#00H ;修改断点0000H电子园51单片机学习网~EkPcI7w-euGd

电子园51单片机学习网rkP"N!t T

           MOV     61H,#00H电子园51单片机学习网}9eiX'C})~"V

电子园51单片机学习网 p_)xCpB&WJ

           PUSH    60H

A+mC5@o4s0电子园51单片机学习网?;^ GFx&M^;T

           PUSH    61H

6IsB&@so:](A0

;OjL1c)@)b0         RETI
Z[j.^{0}(D"r f0  当系统受到干扰后,主程序可能发生“死循环”,中断服务程序也可能陷入“死循环”,或因中断方式字的破坏而关闭中断。主程序的“死循环”可由T1中断服务程序监视;T1中断服务程序的“死循环”和中断关闭故障由T0中断服务程序监视;T0的中断故障可由主程序监视。由于采取了三重软件监测方法,大大提高了系统运行的可靠性。电子园51单片机学习网q ?VW L:JT]


 [
'i(AY1j)Rs0
[1] 何立民.单片机应用技术选编[M].北京航空航天大学出版社,1998,8.电子园51单片机学习网5uR b(f#BGa"u
[2] 王幸之.8051/8098单片机原理及接口设计[M].兵器工业出版社,1998,1.
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
9
关闭 站长推荐上一条 /3 下一条