当前位置:
文档之家› 单片机软件抗干扰编程技术的探讨
单片机软件抗干扰编程技术的探讨
!
系统“跑飞”的软件处理技术
图*
+$ 中断程序监控工作原理
+# 中断服务程序监控 +$ 中断服务程序的运行状 态,+# 中断优先级高于 +$,在系统中设定 %$、 %’ 两个单元监测 +$ 的运行,%$ 的初始值为 ##., +$ 每 中断一次,%$ 自动加 $,在 +# 中断服务程序中检测 %$,若 %$ / #,则说明 +$ 工作正常,此时,中断程 序将 %$、 %’ 单元清零,正常中断返回。若 %$ 0 #, 则 %’ 1 $,并检测 %’ 是否大于 ! , ! 由下述公式计 算,假设 +# 中断定时时间为 ’# 23, +$ 中断定时时 间为 $# 23, +$ 最大允许失效时间为 +极限 0 4# 23。 ! "’# & +极限 ! & ! 若 ! / !,则说明在 4# 23 的时间里 +$ 没有正常 中断,肯定是 +$ 发生了故障。设 ,5 0 %$、 ,* 0 %’, 其工作原理如图 5 所示。 由于 +# 的中断优先级高于 +$,所以 +$ 无论是 发生“中断故障关闭”还是“死循环”都会被 +# 检 测出来。 这种多重故障监视法,使得系统有很高的抗干扰 能力,但也要注意,定时器 +# 是整个抗干扰系统的
图)
主程序监控工作原理
万方数据 图 ! 高级看门狗工作模式
%# 中断程序除完成系统要求的特定监控任务之 外,还要监控主程序的运行状况,在系统中设置一个 中断 %# 的计数器 -,每发生一次 %# 中断, - 加 #, 该计数器在主程序入口处循环清零,主程序运行时间 为 - 与 %# 中断定时时间的乘积,若 %" 测得 - 中的 数值所表示的时间超过主程序一次正常测控循环的限 定时间,则说明主程序陷入死循环, %" 中断程序返 回 """", 处,重新引导系统,使系统逃出死循环。假 设主程序中一次测控循环时间为 &" ’(,而 %# 中断定 时时间为 #" ’(,%# 中断服务时间为 & ’(,则: -极限 !" # $" % $" & . $&(余量)
9 概述
作为嵌入式系统典型应用的单片机应用系统,其 工作环境较之其他类型的计算机系统的工作环境要恶 劣,但又往往要求单片机系统具有很强的实时响应功 能,对外界环境能够实时反应,这就要求单片机系统 具有很高的工作可靠性,有一定的抗干扰能力。单片 机应用系统的抗干扰技术一直是系统开发者所关心的 问题之一,在有些应用开发中,提高系统的抗干扰能 力甚至是系统开发能否成功的关键。抗干扰技术主要 有硬件抗干扰和软件抗干扰两种方法。 所谓硬件抗干扰技术主要是指采取合理的选择器 件、输入 N 输出光电隔离、对 1? 器件配置合理的去藕 电容、按可靠性原则合理的设计 O?/ 板等措施,从而 抑制外界有害信号对系统的干扰的抗干扰方式。是一 种主动抗干扰方式。 而软件抗干扰技术主要是指在单片机系统中建立 抗干扰软件子系统,当受到外界干扰后,若系统程序 脱离正常运行状态,系统中的抗干扰子软件系统将引 导系统程序进入正常的运行状态的软件技术。是一种 被动式抗干扰技术。 有资料表明,计算机系统受到外界干扰后,,#P 的故障表现为系统应用程序脱离正常的工作轨道,从 而导致系统瘫痪或工作不正常,因此文章主要讨论如 何用软件方法使由于外界干扰导致不正常工作的系统
收稿日期: "##" ( #) ( #$。 作者简介: 李强 (%’*$ ( ) , 男, 陕西省西安市人, 硕士, 工程师, 主要从事嵌入式应用系统、 计算机智能控制方面的应用研究。
程序进入正常的运行状态。 系统软件工作不正常主要有以下两种形式,一是 程序“跑飞” ,二是程序进入“死循环” ,针对以上两 种情况探讨软件对策。也就是讨论如何用软件方法引 导系统程序恢复正常的工作状态。
・ "’’ ・ ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
("##$) 文章编号: %*)% ( &+’, #& ( #"’’ ( #& 中图分类号: -.’)$ ! $ 文献标识码: /
万方数据
(")程序正常运行时,定期进行 -% 计数初值重 置(喂狗) ,正常情况工作模式如图 % 所示;异常情
・ !"" ・ 计算机测量与控制 第 ## 卷 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 况工作模式如图 $ 所示。 高级软件看门狗技术:该软件技术的编程思想如 图 ! 所示。利用两个工作于中断方式的定时器和主程 序之间实现互锁监控,从而提高软件系统的工作可靠 性。 当系统受到干扰后,可能出现以下情况,主程序 发生死循环、中断程序发生死循环、由于中断方式字 遭到破坏而关闭中断,由 %# 中断服务程序监视主程 序可能发生的死循环,由主程序监视 %" 中断可能发 生的故障关闭,而由 %" 监视 %# 可能发生的故障关闭 和死循环,采用这种多重故障监视法,使系统的可靠 性得到了极大地提高。 该软件程序主要由主程序, %" 中断服务程序和 %# 中断服务程序 ! 部分组成,其中 %" 可设为高级中 断,而 %# 为低级中断。这样 %# 中断程序可以被 %" 所中断,形成中断嵌套。 主程序除完成正常的测控工作之外,还要监测 %" 是否由于外界干扰而关闭。因此,设定 %" 定时时 间小于主程序的测控循环时间,如主程序测控循环时 间为 &" ’(,而 %" 定时时间为 $" ’(,工作原理如图 ) 所示。这样在主程序的一个测控循环中 %" 应至少产 生一 次 中 断,可 以 在 程 序 中 设 定 一 个 测 试 位 * + ($",) ,每次 %" 中断发生时将 * 置位,在主程序正 常的测控循环入口处,将 * 清零,在测控循环的出 口处测试 * 是否为 " ,若为 ",说明 %" 中断已经由 于外界干扰而关闭,主程序转到地址 """", 处,系统 重新复位引导,若 * 为 # 说明 %" 工作正常。
第!期 李强:单片机软件抗干扰编程技术的探讨 ・ "#$ ・ ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! %极限 & $# 时间余量一般为主程序中一次正常测控循环时间 的 ’#( ) *#( ,中断 +$ 计数器为 ,-, +# 中断服务 程序中如测得 ,- & %极限 ,则系统工作正常,否则, 主程序陷入死循环,中断程序做出错处理。工作原理 如图 * 所示。 最薄弱环节,若它发生了死循环,抗干扰系统是无法 检测到的,因此, +# 中断服务时间应当尽可能的缩 短,以减少故障几率。
主程序: QR1.:………… 定时方式。 QST -QS7, U %#V ; -% 工作在模式 %, 定时器 % 赋计数初值, QST -V%, U ’WV ; QST -0%, U +,V ;单片机系统的主频为 *QVX QST 1W, U ,#V;; ?OC ( 〉 -% 开中断。 ; 启动 -% AW-/ -Y% ………… 中断程序: -%: 0ZQO ####V;程序从 ####V 处重新复位运 行。
/&%01 "2 3,&4 ( 4,&’(2’(’,5’ )’*+%(’+ 61 /1+&’# /"2&7*(’ 4, )45("5",&("..’(
01 23456
(7894:;<85; => ?=<9@;8:, AB4=6@45 C53D8:E3;F, AB4=6@45 +%"###, ?B354) 36+&(*5&:-B8 45;3 ( 35;8:>8:85G8 ;8GB53H@8 IF EFE;8< E=>;J4:8 3E =58 => 3<9=:;45; <845E ;= 35G:84E8 K8985K4I3L3;F => <84E@:356 M G=5;:=LL356 EFE;8<! 15 :8G85; F84:E,;B8 ;8GB53H@8 B4E I885 499L38K <=:8 45K <=:8! ;B8 ;8GB53H@8 3E E;@K38K G=<9L8;8LF! 8’1 7"(0+:<84E@:356 M G=5;:=LL356 EFE;8<;45;3 ( 35;8:>8:85G8;<3G:=G=5;:=LL8:;9:=6:4<356 ;8GB53H@8
:
系统进入“死循环”的处理
基本软件看门狗软件技术:看门狗技术的基本思 想是用一个中断方式工作的定时器监视系统程序的工 作,一旦系统主程序由于某种干扰而陷入死循环,则 定时器触发定时中断程序将系统重新复位引导,从而 使系统脱离死循环进入正常工作状态。因此,软件看 门狗的工作模式主要由两部分组成, “养狗”和“喂 狗” 。举例如下: ,用定时器 -% 工作模式 % (%) -% 初始化(养狗) 进行 +# <E 中断定时,一旦 +# <E 定时时间到,中断 响应,转中断处理程序,将系统重新复位引导。