在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可靠性好越来越受到重视。下面以MCS-51单片机系统为例,对微机系统软件抗干扰方法进行研究。
1 软件抗干扰方法的研究
在工程实践中,软件抗干扰研究的内容主要是: 一、消除模拟输入信号的嗓声(如数字滤波技术);二、程序运行混乱时使程序重入正轨的方法。本文针对后者提出了几种有效的软件抗干扰方法。
1.1 指令冗余
CPU取指令过程是先取操作码CONTROL ENGINEERING China版权所有,再取操作数。当PC受干扰出现错误,程序便脱离正常轨道“乱飞”,当乱飞到某双字节指令CONTROL ENGINEERING China版权所有,若取指令时刻落在操作数上,误将操作数当作操作码,程序将出错。若“飞” 到了三字节指令,出错机率更大。
&nbs
此外,对系统流向起重要作用的指令如RET、 RETI、LCALL、LJMP、JC等指令之前插入两条NOPwww.cechina.cn,也可将乱飞程序纳入正轨,确保这些重要指令的执行。
1.2 拦截技术
所谓拦截,是指将乱飞的程序引向指定位置,再进行出错处理。通常用软件陷阱来拦截乱飞的程序。因此先要合理设计陷阱控制工程网版权所有,其次要将陷阱安排在适当的位置。
1.2.1 软件陷阱的设计
当乱飞程序进入非程序区,冗余指令便无法起作用。通过软件陷阱,拦截乱飞程序,将其引向指定位置,再进行出错处理。软件陷阱是指用来将捕获的乱飞程序引向复位入口地址0000H的指令。通常在EPROM中非程序区填入以下指令作为软件陷阱:
NOP
NOP
LJMP 0000H
其机器码为0000020000。
1.2.2 陷阱的安排
通常在程序中未使用的EPROM空间填0000020000。最后一条应填入020000,当乱飞程序 落到此区,即可自动入轨。在用户程序区各模块之间的空余单元也可填入陷阱指令。当使用的中断因干扰而开放时,在对应的中断服务程序中设置软件陷阱,能及时捕获错误的中断。如某应用系统虽未用到外部中断1,外部中断1的中断服务程序可为如下形式:
NOP
&nbs