单片计算机系统抗干扰的软件途径
1.1 中央处理器CPU
CPU 属于高速数字器件,易受干扰有运算器、控制器和控制寄存器。当电磁干扰信号窜入时,CPU将错误地执行指令,引起误动作或者错误的结果;而控制寄存器中的信息如果被噪声修改,将导致初始化错误、寻址失败乃至系统瘫痪。试验表明,干扰信号大多数由总线导入CPU内;其中与外界联系最频繁、因而最容易受干扰的是程序指针PC,这种干扰往往引发致命错误,属于重点防范和重点纠错的对象。
1.2 特殊功能寄存器SFR
SFR 包括各种I/O端口的寄存器、各种片内部件的工作方式寄存器,以及堆栈指针、数据指针等等,其特点是传递数据的速度高,能够与CPU的运行密切配合。如果某个SFR被干扰信号改写,则意味意程序运行的结果异常,轻者改变单睡机内各部件的操作控制,得则导致整个系统的输出紊乱,引发故障或安全事故。因此,对于与程序有关的SFR内容必须提供及时有效的保护。
1.3 存储器MEM
微处理机的存储器包括片内存储器及片外扩展的存储器。为了增强抑制噪声的能力,工控计算机数据存储器和程序存储器一般分属两个器件。噪声试验表明:程序存储器(EEPROM或者EPROM)的抗扰度最高,经过引脚噪声超常耦合试验后芯片内容毫无变化;单片机内部的数据存储器(片仙RAM)抗扰度也较为满意,经过9次试验后仅有两个字节的内容发生了改变,累积变化率不到1%;片外RAM(6264)的抗扰性能相对较差,在6次试验后,其内容的累计变化率已达 8.05%。因此,在干扰信号较强的环境中运行的工控微机,其较持久的和重要的数据应当保存在片内RAM之中,在扩展的RAM中只宜保存临时数据(中间变量),否则应当采用后述方法在应用程序中实施数据恢复。
2 软件补偿措施
对于已经侵入微处理机的噪声,必须采取能够维持系统功能的对应措施,以免出现意外停机或意外启动,甚至引起恶性事故。对CPU的误动作和各种存储器内容的误修改,在应用软件中插入相应的程序模块,进行主动补偿是一种简单而可靠的方法。
2.1 主动初始化
这里的“初始化”泛指在各段程序中,对单片机及片外扩展器件的各种功能、端口或者方式、状态等采取的永久性的或者临时的设置。我们不仅要保证上电或复位后软件能够正确地实现各种级别的初始化,而且在程序中每次使用某种功能前,都要再一次对相应的控制寄存器设定动作模式。实践证明,这一措施可以大大提高系统对于入侵干扰的自恢复性能。
2.2 数据冗余化
在噪声幅度较大的环境中,采用冗余数据法可以明显地增加系统的可靠性,这种方法对于传输系统的永久性硬件故障或者干扰引入的数据错误都具有明显的纠错效果。采用的主要措施是给重要的数据添加冗余位,延长数据-代码之间的汉明(hamming)距离以增强检测和蔬正错误的能力。图4表明了这种方式的原理,完全无冗余性的代码汉明距离为1。
冗余化码系在远距离数字通讯传输技术中应用较为普遍,但在工业控制中的应用尚不多见。图4A代表工控技术中的一般数据码,无检测错误的能力。奇侧校验则是在数据中增加1位冗余位(图 4B),使汉明距离变为2,因此可以检测奇数位错误。若再增加冗余位使码系间的汉明距离延长为3(图4C),还可具有校正1位错误的能力。在干扰信号特别强烈的场合中,控制或采集终端与上位机之间串行传送还可以考虑采用循环冗余校验(CRC)手段来增加数据的可靠性。
评论