位置:51电子网 » 技术资料 » 单 片 机

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

发布时间:2008/5/27 0:00:00 访问次数:416

王雷 王闪 王幸之

  摘  本文以mcs—51单片机为例,说明了主程序、中断服务程序相互监视的抗干扰方法。该方法使用方便,编程灵活,大大提高了单片机应用系统的抗干扰性能。
  关 单片机;干扰 


  应用于工业过程控制和智能化仪器仪表的单片机,由于现场条件往往十分恶劣,不可避免地会受到各种各样的电磁干扰。当串入系统的干扰作用于单片机内部的cpu部件时,后果更加严重,将导致系统失控。最典型的失控故障是破坏程序计数器pc的状态,导致程序在地址空间内“乱飞”,或者陷入“死循环”。因此,尽可能早地发现程序失控,并采取相应的补救措施,是单片机应用系统抗干扰设计的重要内容。


  使程序从“乱飞”状态纳入正轨的方法称为程序拦截技术,包括指令冗余技术、软件陷阱技术等。使程序摆脱“死循环”,通常多采用硬件电路实现的监视技术,又称“看门狗”技术(watchdog)。常见的硬件“看门狗”电路有单稳态型“看门狗”电路、计数器型“看门狗”电路、微处理器监控专用芯片等。上述的抗干扰方法可参阅有关资料文献。本文将讨论由软件实现的“看门狗”技术。


  由硬件电路实现的“看门狗”技术,可以有效地克服主程序或中断服务程序由于陷入“死循环”而带来的不良后果。但在工业应用当中,严重的干扰有时会破坏中断方式控制字,导致中断关闭,这时一般的硬件“看门狗”将不能使中断恢复正常。依靠软件进行多重监视,可以弥补上述不足。


  软件“看门狗”技术的基本思路是:在主程序中对中断服务程序的运行进行监视;在中断服务程序中对主程序的运行进行监视;采用两个中断实施相互监视,称之谓软件三重监视抗干扰技术。从概率观点,这种相互依存,相互制约的抗干扰措施,将使系统的可靠性大大提高。


  本文以mcs—51单片机为例,说明软件三重监视的基本原理。系统软件包括主程序、t0定时中断子程序和t1定时中断子程序3部分,将t0设计成高级中断,t1设计成低级中断,从而形成中断嵌套。

1 计  
  主程序完成系统测控功能的同时,还要监视t0中断服务程序因干扰而引起的中断关闭故障。a0为t0中断服务程序运行状态的观测单元,t0每发生一次中断,a0计数单元少一次中断(t0定时溢出时间小于测控功能模块运行时间),引起a0的变化。在测控功能模块的出口处,将a0值与e0值进行比较,以判断a0是否发生变化。若a0发生变化,说明t0中断运行正常;若a0不变化,说明t0中断关闭,则转到程序入口0000h处,进行出错处理后,程序恢复正常运行。

  设a0、e0、m计数单元分别为内ram中的30h、40h和50h单元,监视程序如下:

loop1:mov  50h, #00h; 清m单元

mov 40h, 30h ;暂存a0单元 

   …; 测控功能模块

clr c

mov a, 30h

subb a, 40h; 判断a0变化

jz loop

mov 30h, #00h

  ljmp loop1

  loop:ljmp 0000h

2 t1计  
  t1中断服务程序在完成特定测控功能的同时,还要监视主程序的运行状态。在中断服务程序中设置一个主程序运行计时器m1,t1每中断一次,m便自行加1。m中的数值与t1定时溢出时间之积表示时间值。若由m表示的时间值大于主程序的运行时间,说明主程序因干扰而陷入了“死循环”,t1中断服务程序便修改断点地址,返回0000h,进行出错处理。若m不大于主程序运行时间,说明主程序运行正常,中断服务程序也正常返回。m单元在系统主程序运行中循环清“0”。

  设单片机晶振频率为6mhz,t1以工作方式1产生2ms的定时中断,则t1的计数初
王雷 王闪 王幸之

  摘  本文以mcs—51单片机为例,说明了主程序、中断服务程序相互监视的抗干扰方法。该方法使用方便,编程灵活,大大提高了单片机应用系统的抗干扰性能。
  关 单片机;干扰 


  应用于工业过程控制和智能化仪器仪表的单片机,由于现场条件往往十分恶劣,不可避免地会受到各种各样的电磁干扰。当串入系统的干扰作用于单片机内部的cpu部件时,后果更加严重,将导致系统失控。最典型的失控故障是破坏程序计数器pc的状态,导致程序在地址空间内“乱飞”,或者陷入“死循环”。因此,尽可能早地发现程序失控,并采取相应的补救措施,是单片机应用系统抗干扰设计的重要内容。


  使程序从“乱飞”状态纳入正轨的方法称为程序拦截技术,包括指令冗余技术、软件陷阱技术等。使程序摆脱“死循环”,通常多采用硬件电路实现的监视技术,又称“看门狗”技术(watchdog)。常见的硬件“看门狗”电路有单稳态型“看门狗”电路、计数器型“看门狗”电路、微处理器监控专用芯片等。上述的抗干扰方法可参阅有关资料文献。本文将讨论由软件实现的“看门狗”技术。


  由硬件电路实现的“看门狗”技术,可以有效地克服主程序或中断服务程序由于陷入“死循环”而带来的不良后果。但在工业应用当中,严重的干扰有时会破坏中断方式控制字,导致中断关闭,这时一般的硬件“看门狗”将不能使中断恢复正常。依靠软件进行多重监视,可以弥补上述不足。


  软件“看门狗”技术的基本思路是:在主程序中对中断服务程序的运行进行监视;在中断服务程序中对主程序的运行进行监视;采用两个中断实施相互监视,称之谓软件三重监视抗干扰技术。从概率观点,这种相互依存,相互制约的抗干扰措施,将使系统的可靠性大大提高。


  本文以mcs—51单片机为例,说明软件三重监视的基本原理。系统软件包括主程序、t0定时中断子程序和t1定时中断子程序3部分,将t0设计成高级中断,t1设计成低级中断,从而形成中断嵌套。

1 计  
  主程序完成系统测控功能的同时,还要监视t0中断服务程序因干扰而引起的中断关闭故障。a0为t0中断服务程序运行状态的观测单元,t0每发生一次中断,a0计数单元少一次中断(t0定时溢出时间小于测控功能模块运行时间),引起a0的变化。在测控功能模块的出口处,将a0值与e0值进行比较,以判断a0是否发生变化。若a0发生变化,说明t0中断运行正常;若a0不变化,说明t0中断关闭,则转到程序入口0000h处,进行出错处理后,程序恢复正常运行。

  设a0、e0、m计数单元分别为内ram中的30h、40h和50h单元,监视程序如下:

loop1:mov  50h, #00h; 清m单元

mov 40h, 30h ;暂存a0单元 

   …; 测控功能模块

clr c

mov a, 30h

subb a, 40h; 判断a0变化

jz loop

mov 30h, #00h

  ljmp loop1

  loop:ljmp 0000h

2 t1计  
  t1中断服务程序在完成特定测控功能的同时,还要监视主程序的运行状态。在中断服务程序中设置一个主程序运行计时器m1,t1每中断一次,m便自行加1。m中的数值与t1定时溢出时间之积表示时间值。若由m表示的时间值大于主程序的运行时间,说明主程序因干扰而陷入了“死循环”,t1中断服务程序便修改断点地址,返回0000h,进行出错处理。若m不大于主程序运行时间,说明主程序运行正常,中断服务程序也正常返回。m单元在系统主程序运行中循环清“0”。

  设单片机晶振频率为6mhz,t1以工作方式1产生2ms的定时中断,则t1的计数初
相关IC型号
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!