在工程实践中,软件抗干扰的方法主要包括以下几种:
指令冗余
在关键位置人为插入一些单字节指令(如NOP指令),或将有效单字节指令重写,以防止程序在受到干扰时乱飞。通常在双字节指令和三字节指令后插入两个字节以上的NOP,以避免后面的指令被误当作操作数执行。
对系统流向起重要作用的指令(如RET、RETI、LCALL、LJMP、JC等)之前插入两条NOP,确保这些重要指令的正确执行。
拦截技术
利用软件陷阱拦截乱飞的程序,并将其引向指定位置进行出错处理。软件陷阱通常是在非程序区填入特定指令(如NOP、NOP和LJMP 0000H),当程序跑飞至此区域时,将其引导到复位地址0000H。
合理设计陷阱位置,如在未使用的EPROM空间或中断服务程序中设置陷阱,以便及时捕获错误。
软件“看门狗”技术
通过不断检测程序循环运行时间,若发现程序循环时间超过最大循环运行时间,则认为系统陷入“死循环”,需进行出错处理。软件“看门狗”可由硬件实现,也可由软件实现。在工业应用中,严重的干扰有时会破坏中断方式控制字,关闭中断,此时软件“看门狗”可有效地解决问题。
系统故障处理和自恢复程序设计
设计故障诊断程序与系统自恢复程序,以便在系统出现故障时能够尽早地处理故障并恢复程序的运行。
其他软件抗干扰措施
屏蔽技术:通过屏蔽来减少电磁干扰对控制系统的影响。
隔离技术:利用继电器线圈和触点实现强电和弱电的隔离,提高系统的抗干扰能力。
滤波技术:对周期性干扰采用编程进行时间滤波,用程序控制可控硅导通瞬间不采样,从而有效地消除干扰。
电源分组供电:将执行电机的驱动电源与控制电源分开,以防止设备间的干扰。
噪声滤波器:采用噪声滤波器抑制交流伺服驱动器对其它设备的干扰。
隔离变压器:利用隔离变压器的屏蔽层隔离,减少分布电容,提高抵抗共模干扰能力。
高抗干扰性能的电源:采用频谱均衡法设计的高抗干扰电源,将高尖峰的扰动电压脉冲转换成低电压峰值,提高传感器、仪器仪表的抗干扰能力。
这些方法可以单独使用,也可以结合使用,以提高系统的抗干扰能力。在实际应用中,需要根据具体的干扰类型和环境条件,选择合适的抗干扰措施。