作者:东南大学电工电子实验中心 赵良法
尽管采取了硬件抗干扰措施,但由于干扰信号产生的原因很复杂,且具有很大的随机性,难免系统完全不受干扰。因此,在硬件抗干扰措施的基础上,采取软件抗干扰技术加以补充,作为硬件措施的辅助手段。由于软件抗干扰方法具有简单、灵活方便、节省硬件资源的特点,成为系统抗干扰设计中不可缺少的组成部分。
常用的软件抗干扰技术有:数字滤波、指令冗余、软件陷阱、“看门狗”技术等
数字滤波
–平均值法
–去最大最小值法
–算术平均滤波法
指令冗余技术
–由于CPU取指令过程是先取操作码,后取操作数。对多字节指令来说,如何区分某个字节为操作码还是操作数,完全由取指令顺序决定。CPU复位后,这些操作时序完全由程序计数器PC控制。因此,一旦PC因干扰而出现错误,程序便会出现“乱飞”现象
重要指令冗余
对于程序流向起决定作用的指令(如RET、RETI、ACALL、LCALL、LJMP、JZ、DJNZ、JC、JB等)和某些对系统工作状态有重要作用的指令(如SETB、CLR等)的后面,可重复写上这些指令,以确保这些指令的正确执行。
NOP的使用
在双字节指令和三字节指令之后插入两个单字节NOP指令,这可保证其后的指令不被拆散。因为“乱飞”的程序即使落到操作数上,由于两个空操作指令NOP的存在,不会将其后的指令当操作数执行,从而使程序纳入正规。
对程序流向起决定作用的指令(如RET、RETI、ACALL、LCALL、LJMP、JZ、DJNZ、JC、JB等)和某些对系统工作状态起重要作用的指令(如SETB、CLR等)之前插入两条NOP指令,可保证“乱飞”程序迅速纳入正规,确保这些指令的正确执行。
软件陷阱技术
当“乱飞”程序进入非程序区(如EPROM未用的空间)或表格区时,采用冗余指令使程序入规的条件便不能满足,此时可采用软件陷阱技术,拦截“乱飞”程序,将其迅速引向一个指定位置,使程序纳入正规 。
软件陷阱的形式
–软件陷阱就是用引导指令强行将捕获到的“乱飞”程序引向复位入口地址0000H,使程序纳入正规。软件陷阱可采用如下两种形式 :