浅谈单片机系统常用的软件抗干扰措施.pdf

上传人:罗晋 文档编号:5696540 上传时间:2020-07-23 格式:PDF 页数:7 大小:274.17KB
返回 下载 相关 举报
浅谈单片机系统常用的软件抗干扰措施.pdf_第1页
第1页 / 共7页
浅谈单片机系统常用的软件抗干扰措施.pdf_第2页
第2页 / 共7页
浅谈单片机系统常用的软件抗干扰措施.pdf_第3页
第3页 / 共7页
浅谈单片机系统常用的软件抗干扰措施.pdf_第4页
第4页 / 共7页
浅谈单片机系统常用的软件抗干扰措施.pdf_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《浅谈单片机系统常用的软件抗干扰措施.pdf》由会员分享,可在线阅读,更多相关《浅谈单片机系统常用的软件抗干扰措施.pdf(7页珍藏版)》请在三一文库上搜索。

1、浅谈单片机系统常用的软件抗干扰措施 张继辉、刘志刚、于钧 ( 解放军第二炮兵装备研究院第四研究所北京10 0 0 8 5 ) 摘要:通过软件系统的可靠性设计,可以达到最大限度地降低干扰对单片机系统工作的影响,确保单 片机及时发现因干扰导致程序出现的错误,并使系统恢复到正常工作状态或及时报警的目的本文重点介 绍了几种单片机软件抗干扰常用和有效的方法。 主题词:单片机软件抗干扰 可靠性设计是一项系统工程,单片机系统的可靠性必须从软件、硬件以及结构设计等方 面全面考虑。硬件系统的可靠性设计是单片机系统可靠性的根本,而软件系统的可靠性设计 主要起到抑制外米干扰的作用。随着计算机技术的普及和发展,硬件可

2、靠性技术己目趋成熟, 软件可靠性问题( 特另| j 是软件抗干扰的能力问题) 就变得日益突出,田此,软件可靠性是当 今可靠性I :程研究领域中的新课题。通过软件系统的可靠性设计,可以达到最大限度地降低 干扰对系统1 作的影响,确保单片机及时发现内干扰导致程序出现的错氓,爿。使系统恢复到 正常【作状态或及时报警的目的。由于软件抗干扰措施L 有设计灵恬、节省倾t :资源、可靠 性高等特点,越来越多地受到了广泛重视。本文重点介耋f ; 儿种常川有效的软件抗干扰方法。 1 开机自检程序应包含的主要内容 开机后首先应对单片机系统的埂件及软件状态进行检洲,一且发现不止常,就进行相应 的处理。开机自检程序通

3、常应包括对R A M 、R O M 、U 0 口状态等的检测。 1 ,1 系统R 单元的检测 剐R O M 单元的检测主要是检奄R O M 堕元内容的校验和。所谓R O M 的校验雨l 是将E O M 的! 自 窬逐- N N 后得到一个数值,该值便称校验雨l 。R O M 单元存储的是程序、常数和表格。一旦 程序编写完成,R 删中的内容就确定了,其校验和也就是唯一的。若R 删校验和出错,应给 出声光或其它形式的R O M 出错提示,等待处理。 1 2 系统R A M 单元的检测 检查R 觚读写是否正常,当向R A M 单元写“O O H ”,读出也麻为“0 0 H ”,再向其写“F F H

4、”, 读出也应为“F F H ”。如果R A M 单元读写山错,也应给出声光或其它形式的R A M 出错提示信息, 等待处理。同时,在实际使州时应该注意,R A M 中重要内容要分区存放,并经常进行比较检 商。 1 3 系统I 0 口状态的检测 2 7 5 首先。应确定系统的I o Z l 在待机时应处的状态,然后检测单片机的I 01 3 在待机状态 下的状态是否正常( 是否有短路或开路现象等) ,若不正常。也应给出出错提示信息,等待处 理。 1 4 系统其它接口电路检测 除了对上述单片机内部资源进行检测外,对系统中的其它接口电路,比如扩展的掣P R O B 、 A I ) 转换电路、外接的传

5、感器电路等,均应通过软件进行检测,确定是否存有故障。 只有上述各项检查均能正常通过,才可使程序继续执行,否则应给出相应出错提示信息。 2 采用指令冗余技术 在程序的关键部位,人为地插入些单字:竹指令或将有效单字节指令重复执行,称为 指令冗余。由丁C P U 取指令过程是先取操作码,再取操作数,当P c 受干扰山现错误,程序 便脱离止常轨道“乱1 毛”( 跑屯) ,当其飞落到某双字= 肯指令,若在取指令时刻恰好落在操 作数上,则会误将操作数当作操作码,必将使程序出错。若“E ”落到了三字节指令,则山 错机率会更火。采用指令冗余技术通常是在双字节指令和l 三字仃指令斤插入两个字1 博以上的 空操作

6、指令N O P 。这样,即使乱飞的程序飞落到操作数上,由丁空操作指令N O P 的存在,就 避免了后面的指令被当作操作数米执行,可使j i ! 己序自动纳入正轨。此外对于系统秽序流向 起重要作川的指令如R E T 、R E T I 、L C A L L 、L J M P 、j c 等指令之前插入两条N O P ,也可将 乱b 的程序纳入正轨,确保这些重要指令的准确执行。 3 对输入、输出信号进行处理 3 ,1A D 转换信号应采用数字滤波平均法、比较平均法等,防止突发性干扰。 3 2 对输入信号应多次采样 干扰信号对单片机的输入端会造成输入信号瞬间采样的误筹或误读。要排除干扰的影 响,通常庶采

7、取重复采样、加权平均的方法。比如对于外部电平采样( 如按键) ,采取软件每 隔l O m s 读一次键盘或连续读若干次,每次读出的数据都相同或者采取表扶的方法确认输入 的键值。义如在_ I _ I j 单稳电路检测温度的系统中采取对单稳电路的脉冲宽度计数,然后查表求 温度值的方法。为排除干扰的影响,可以采取三次采样求平均值,也可以采取两次采样、著 值小丁设定值为有效,然后求平均值的方法( X 称软件滤波) 。也可对输入的各种开关信号加 入“延时除颤”的措施去除抖动。 3 3 对输出端口应进行多次重复刷新 由于单片机的I 0 口很容易受到外部信号的干扰,也可能会导致输出口的状态改变( 出 错)

8、,因此,在程序中周期性地添加对输出端口的刷新指令,可以明显降低干扰信号对输山 端1 3 状态的影响。通常在程序中指定R A M 单元,专用于存储输出端! Z l 当时应处的状态在 料序运行过料中再根据这些R A M 单元中的内弈米多次重复刷新I 0 口。 2 7 6 3 5 对外通讯应加入奇偶校验或查询表决比较等措施,防止通讯出错。 4 选择使用拦截技术 所谓拦截是指将“跑b ”的程序引向指定的位置,再进行出错处理。通常J _ l 软什陷阱 来拦截跑E 的程序。先要合理设计陷阱,其次要将陷阱安排在适当的位置。 4 1 软件陷阱的合理设计 在程序存储器中总会有一些区域未被使用,如果因干扰信号导致

9、单片机的指令计数器 P C 值被错置,当程序跳到这些未被使用的程序存储空间时,系统就会出错,程序无法继续 运行,冗余指令也无法起作用。软1 t :陷阱是指在程序存储器的朱使刚的区域中加上若干条 空操作雨J 无条件跳转指令,无条件跳转指令指向程序“跑E ”处理子程序的入口地址( 或将 捕获到的“跑飞”程序引向复位入口地址0 0 0 0 H ) 的指令。如果程序出错,跳落到这些未用 区域,就会执行无条件跳转指令转跳到相应的程序出错“跑飞”处理程序。除了程序来用 的区域外,还应在某些程序段之间( 如子程序之间及一段处理程序完成后) 和一页的末尾处插 入软件陷阱,效果会更好。通常在E P R O M

10、中1 F 程序区插入以下指令构成软t - I :陷阱: N O P N O P L J M P0 0 0 0 H 4 2 陷阱的安排 通常在程序中米使_ l | ;j 的E P R O M 空间填0 0 0 0 0 2 0 0 0 0 。最后一条戍填入0 2 0 0 0 0 ,当“跑E ” 的程序落到此【j = t ,即可自动入轨。在J 射户程序区各模块2 间的空余单元也可填入陷阱指令。 肖使_ | j 的内部或外部中断因为干扰信号而开放时,若在对应的中断服务程序中设置软件陷 阱,就有可能及时捕获到错误的中断。如某应用系统虽未用到外部中断0 ,仍应将外部中断 0 的中断服务程序设置成如下形式:

11、 N O P N O P R E T I 返亓I 指令可 j “R E T I ”也可用“L J M P0 0 0 0 H ”。如果故障诊断程序与系统白恢复程序 的设计可靠、完善,心“L J M P0 0 0 0 H ”作返回指令可直接进入故障诊断程序,尽早地处理故 障井恢复程序的运行。考虑到程序存贮器的容量设置软什陷阱时般在l K 空间内有2 - 3 个就可以进行有效的拦截。 5 程序“跑飞”后的处理 程序的“跑E ”处理就是在由软件陷阱检测拦截列“跑E ”的程序后,白动转X t I J “跑 E ”处理程序。由“跑飞”处理程序判断“跑飞”影响的稗度,再根据影响程度的不同决 2 7 7 定是

12、进行报警复位还是自动恢复现场。如自动恢复现场则需根据程序运行状态标记进行。 具体如何进行程序“跑E ”处理,要根据控制系统的设计要求进行。 5 1 系统R A M 数据正常标志 要进行程序“跑飞”处理,就要分清程序“跑b ”所造成的影响,以及程序“跑b ”前 运行的进程,这就需要的设置相虑的标志。R A M 数据正常标志是检测R A M 区的数据是否已经 冈榉序“跑E ”或受其它干扰而改变。如果R A M 区内的数据确因程序“跑飞”或受其它干扰 而改变,则系统无法臼行恢复到原米的出错地点,只能由人I :或由软什复位从头开始执行。 要进行R A M 区数据止常检测,首先应在初始化程序中,对R A

13、 M 的若干单元设置R A M 数据正常 标志。通常是在R 州区中选取数个单元在初始化程序中将其置成某个嘲定的数,如“5 5 H ” 或“O A A H ”,只要程序正常运行,这些单元的内容就不会被修改,若闳程序“跑E ”或受其 它干扰,导致这些R A M 单元中的任何单元的数据发生变化,说明其它R A M 单元的内容也可能 发生变化,无法反映程序运行的结果平状态,不能根据R A M 区中的标志去恢复程序运行现场。 5 2 程序运行标记 程序运行状态标记是在R A M 区中设立一些标志位,这些标志位分别代表程序运行的不同 阶段及运行后的状态。在初始化程序中,首先对这些单元置初值,在程序运行的不

14、同阶段 这些单元的内容将被改变成特定值,标示程序运行的阶段和运行斤的状态。这些标忠除了在 程序止常运行中起到条件转移的作州外,还能在科序“跑E ”,但R A M 区数据正常时起刨恢 复稃序运行现场的作州。 5 3 应用软件“看门狗”技术 软件陷阱是在程序运行到R O M 的非法区域时检测程序出错的一种方法。而“看门狗”则 是根据程序在运行指定时间问隔内未进行相应的操作,米判断程序运行山错的。通常情况下, 当穰序冈火控而进入“死循环”时,采用“看r J 狗”技术可使稗序脱离“死循环”。其原理 是:通过不断检测程序循环运行的时问,若发现程序循环时间超过盛大循环运行时间,即未 按时将“看门狗”定时器

15、复谯( 俗称“喂狗”) 时,则认为系统己妫入“死循环”状态,需 要进行出错处理。“看门狗”技术即可由硬件实现,也可由软件实现。在系统成本允许的情 况下应优先采用硬件“看门狗”( 选择专门的“看门狗”电路芯片或片内带“看门狗”定 时器的单片机) 和软件“看门狗”井用的方法。因为,在工业应用中,严重的干扰有时会破 坏中断方式控制宇,关闭中断,但系统有可能仍可定时“喂狗”,这将会使硬件“看门狗” 电路火效,而软件“看门狗”恰可有效地避免这类问题。 6 系统非正常复位的识别和处理 测控系统因干扰复位或掉电后又重新上电复位均属非正常复位,麻进行故障诊断并自动 恢复非正常复位前的状态。 - 2 7 8 6

16、1 非正常复位的识别 程序的执行总是从0 0 0 0 H 开始,导致程序从0 0 0 0 H 开始执行有四种可能:系统开机上 电( 含按“复位”键) 复位:软件故障复位:看“狗超”芯片硬件复何:程序运行 中掉电后再来电复位。除第一种情况外其余三种均属非正常复位,需加以识别。 62 硬件复位与软件复位的识别 硬什复位指开机上电复位( 含按复位键) 或“看门狗”芯片复位,硬件复位对寄存器有 影响,如复位后P C = O O O O H S P = 0 7 H P S W = O O H 等。而软件复位则对S P 、S P W 无影响。故 对丁微机测控系统,当程序正常运行时,将S P 设置地址人丁0

17、 7 H ,或者将P S W 的第5 位川 户标忠位在系统正常运行时殴为l 。那么系统复髓时只需检测P S w 5 标志侮城s P 值便可判 此是否硬1 2 ;= 复位。此外,由于硬件复位时片内R A M 状态是随机的,而软件复位片内R A M 则可 保持复位前状态,冈此,可选取芯片内的某一个单元作为系统上l 乜标志( 若使州两个单元作 上电标出则这种判别方法的可靠性更高) 。 6 3 开机复位与“看门狗”故障复位的识别 开机复位( 含上电复位) 与“看fJ 狗”故障复位同属硬件复位,所以要想予以止确识别, 一般要借助1 r 易火性R A M 或者掣P R I 。当系统止常运行时,设置一可掉电

18、保护的检测单元, 当系统止常运行时,在定时“喂狗”的中断服务程序中使该检测单元保持正常值( 鼓为A A H ) , 而在主程中将该单元清零,因检测单元掉屯可保护,则开机时通过检测该单元是否为二常值 可判断是否为“看r j 狗”复位。 64 正常开机复位与非正常开机复位的识别 识别测控系统中冈意外情况( 如系统掉屯等情况) 引起的开机复位与正常开机复饨,对 丁过程控制系统尤为重要。通常,可通过一监测单元对当前系统的运行状态、系统时间予以 监控,将控制过程分解为若干步,或若干个时间段执行完一步,或运行完一个时间段时, 对监测单元置为关机允许值,不同的任务或任务的不同阶段有不同的值,若系统正在执行测

19、 控任务或止处在某个时间段,则将监测单元置为非正常关机值。那么系统复位_ I i ;可据此单元 的值判断系统原米的运行状态,并跳到出错处理程序中恢复系统的原运行状态。 6 5 非正常复位后系统自恢复运行的程序设计 对顺序要求严格的一些过程控制系统,系统非正常复位后,一般都要求从失控的那一个 模块或任务恢复运行,所以测控系统要作好重要数据单元、参数的备份,如系统运行状态、 系统的进程值,当前输入、输出的值,当前时钟值、观测单元值等,这些数据既要定时备份, 同时若有修改也应立即予以备份。当在已判别出系统非止常复位的情况r ,先要恢复一些必 要的系统数据如显示模块的初始化、片外扩展芯片的初始化等。其

20、次再对测控系统的系统 状态、运行参数等予以恢复,包括显示界面的恢复等。之后再把复位前的任务、参数、运行 时间等恢复,最后再进入系统运行状态。 需要说明的是,系统基本初始化是指对芯片、显示、输入输出方式等进行初始化,要注 意输入输出的初始化不应造成误动作。而复位前任务的初始化是指任务的执行状态、运行时 间等。真实地恢复系统的运行状态需要极为细致、准确地对系统的重要数据予以备份,并加 以数据可靠性检奇t 以保证系统恢复时的数据可靠性。其次,对于多任务、多进程的洲控系 统,数据在恢复时需考虑恢复的次序问题。 7 结束语 从总体上讲,单片机控制技术的抗干扰性能主要取决。r 系统的硬件结构,而软件的抗

21、干扰技术只能是一个补充,因为,硬件抗干扰是主动的,而软件是抗干扰是被动的,因此 硬件电路的设计鹿尽可能的完善,不能轻易降低标准,让软什去补救! 而软什的殴计则要处 处考虑到硬件可能出现的火效、可能受到的干扰等种种问题,在保证实时性、控制精度和控 制功能的前提F ,尽力提高系统的抗干扰性能。只要考虑得周密细致,努力赋予软什高度的 智能,并把埂什并软什有机、合理地结合起米,设计一个稳定可靠的单片机控制系统是完全 可行的。 参考文献 I 杨华舒,复涛单片计算机系统抗千扰的软件途径 J 1 b 了投术应用,2 0 0 1 ,( 3 ) 2 软件丁程设计、可靠性和管理M c 舒曼上海翻译出版服务公司,8

22、 9 版 3 何立民译J 机高级教程 M 北京:北京航空航天n 版礼,2 0 0 1 4 I j 定华等t U 磁兼容性原理与设计北京:电子科技大学出版社,1 9 9 59 5 张继辉浅淡红外技术在军事目标安全警戒中的应用无线f 乜2 0 0 0 1 2 6 计算帆软件町靠件j 质量管理赵烧华编中田经济版 f :9 2 版 作者简介:张继辉,男,1 9 5 6 年1 1 月出生,1 0 7 0 年1 2 月八伍,大学本科学历,现任解放军第二炮兵装备 研究院第四研究所高级工程师;中国电子学会高级会员:通信地址:北京市海淀区清河小营西路3 2 号 院子9 号( 装备研究院信息所9 室) ;邮政编码

23、:1 0 0 0 8 5 ,联系电话:0 1 0 6 6 3 3 2 8 3 1 浅谈单片机系统常用的软件抗干扰措施浅谈单片机系统常用的软件抗干扰措施 作者:张继辉, 刘志刚, 于钧 作者单位:解放军第二炮兵装备研究院第四研究所,北京,100085 本文读者也读过(10条)本文读者也读过(10条) 1. 程继兴.刘霞 单片机系统软件抗干扰措施分析期刊论文-电子测量技术2003(6) 2. 邱琳.游雨云 单片机系统抗干扰措施期刊论文-技术与市场(上半月)2008(1) 3. 张继辉.穆晓曦.崔亦斌 单片机系统常用的软件抗干扰措施期刊论文-电气时代2005(8) 4. 孙杰.SUN Jie 工业微

24、控单片机软件抗干扰技术探讨期刊论文-山东冶金2006,28(2) 5. 刘君.LIU Jun 单片机控制系统设计中的抗干扰措施期刊论文-机电产品开发与创新2008,21(1) 6. 张怀广 单片机系统中软件看门狗技术和故障处理期刊论文-濮阳职业技术学院学报2009,22(6) 7. 王晓峰.WANG Xiao-feng 单片机软件抗干扰的研究期刊论文-信息技术2007(5) 8. 王刚 51单片机应用系统软件抗干扰初探期刊论文-内蒙古科技与经济2009(7) 9. 王伟.WANG Wei 软件抗干扰在单片机控制系统中的应用研究期刊论文-机械管理开发2010,25(3) 10. 李子华 MCS-51单片机软件系统可靠性设计期刊论文-辽宁师专学报(自然科学版)2002,4(1) 本文链接:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1