新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 单片机软件三重监视抗干扰技术

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

作者:时间:2012-11-07来源:网络收藏

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

本文引用地址:http://www.eepw.com.cn/article/170712.htm

使程序从“乱飞”状态纳入正轨的方法称为程序拦截,包括指令冗余陷阱等。使程序摆脱“死循环”,通常多采用硬件电路实现的技术,又称“看门狗”技术(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


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭