1 引 言

    近年来,微机测控系统,特别是单片机在工业自动化生产过程控制、智能化仪器仪表等领域的应用越来越深入和广泛,有效地提高了生产效率,大大提高了控 制质量与经济效益。但是,测控系统的工作环境往往是比较恶劣和复杂的,其应用的可靠性、安全性就成为一个非常突出的问题。许多应用系统在进行仿真调试和实 验室内的联机试运行时都是成功的,然而一进入现场使用,系统则会产生预料之外的误动作或误显示,严重时导致系统失灵,甚至导致巨大的损失。

    影响测控系统可靠、安全运行的主要因素是来自系统内部和外部的各种电气干扰,以及系统结构设计、元器件选择、安装、制造工艺和外部环境条件等。

    系统自身及应用环境产生的各种电磁噪声仍是普遍的干扰因素,产生的原因主要有:放电噪声、高频振荡噪声、浪涌噪声。干扰源产生的干扰是通过耦合通道对微机测控系统发生电磁干扰作用,噪声的传递几乎都是通过导线或者通过空间和大地传递的。

2 干扰的主要耦合方式

(1)直接耦合方式

    电导性耦合最普遍的方式是干扰信号经过导线直接传导到被扰电路中而造成对电路的干扰。在微机测控系统中,干扰噪声经过电源线耦合进入计算机线路是最常见的直接耦合现象。

(2)公共阻抗耦合方式

    当一个电源电路对几个电路供电时,如果电源不是内阻抗为零的理想电压源,则其内阻抗就成为接受供电的几个电路的公共阻抗,只要其中某一个电路的电流发生变化,便会使其他电路的供电电压发生变化,形成公共阻抗耦合。

(3)电容耦合方式

    这是指电位变化在干扰源与干扰对象之间引起的静电感应,又称静电耦合或电场耦合。

(4)电磁感应耦合方式

    在任何载流导体周围空间中都会产生磁场,若磁场是交变的,则对周围闭合电路产生感应电势,在设备内部,线圈或变压器的漏磁是一个很大的干扰,设备外部,当2根导线在很长的一段区间架设时,也会产生干扰。

(5)辐射耦合方式

    当高频电流流经导体时,在该导体周围便产生电力线和磁力线,并发生高频变化,从而形成一种在空间传播的电磁波,处于电磁波中的导体便会感应出相应频率的电动势。电磁场辐射干扰是一种无规则的干扰,这种干扰很容易通过电源线传到系统中去,此外,波,称为天线效应。

(6)漏电耦合方式

    漏电耦合是电阻性耦合方式,当相邻的元件和导线间的绝缘电阻降低时,有些电信号便通过这个降低了的绝缘电阻耦合到逻辑元件的输入端而形成干扰。

3 单片机系统中的主要抗干扰手段

  干扰的抑制方法,一般分为硬件抗干扰和软件抗干扰。笔者在开发研制自动化仪表和智能测控系统实践中,针对单片机系统的干扰及其抑制方法进行了分析、研究,并在实际运用中收到了良好的效果。

3.1 硬件抗干扰

    为便于理解,干扰的来源可笼统地概括为:电源干扰、口线干扰和空间干扰。其相应的抗干扰措施分别为:
 
(1)电源隔离

    单片机工作电路的电源要采取独立的供电回路,其电源变压器同其他大功率电路的电源变压器要分别使用。单片机电源电路的地线与其他大功率电路的地线不相连接。在两电路的电气连接处,可使用光电耦合器、光可控硅等器件加以隔离。

(2)口线隔离

    单片机的输入、输出口线,特别是参与控制大功率电路的口线,在其与外电路的电气连接处都要通过光电耦合器进行隔离。

隔离电路如图1所示,电平转换电路如图2所示。

(3)空间隔离

    单片机控制回路与其他大功率回路之间能够分开放置的,尽量不要放置在同一空间中,如果二者必须在同一空间中的,要尽量加大二者的电气距离,尽可能减 小空间的电磁感应耦合和辐射耦合,或者将单片机控制电路放在由金属网或金属盒构成的屏蔽体内。 此外,还有其他一些辅助性抗干扰措施,如:晶振的外壳接地、中央处理器的电源端及各口线附近对地加去耦电容等。

3.2 软件抗干扰方法

除了硬件抗干扰途径外,采用相应的软件抑制及补偿措施,也可以起到有效的抗干扰作用。

(1)单片机各部分对干扰信号的反应

①中央处理器CPU

  CPU属于高速数字器件,易受干扰的有运算器、控制器和控制寄存器。当电磁干扰信号窜入时,CPU将错误地执行指令,引起误动作或者错误的结果;控 制寄存器中的信息如果被噪声修改,将导致初始化错误、寻址失败乃至系统瘫痪。试验表明,干扰信号大多数由总线导入CPU内;其中与外界联系最频繁、因而最 容易受干扰的是程序指针PC,这种干扰往往引发致命错误,属于重点防范和重点纠错的对象。

②特殊功能寄存器SFR

  SFR包括各种 I/O端口的寄存器、各种片内部件的工作方式寄存器,以及堆栈指针、数据指针等等,其特点是传递数据的速度高,能够与CPU的运行密切配合。如果某个 SFR被干扰信号改写,则意味着运行的结果异常,轻者改变单片机内各部件的操作控制,重则导致整个系统的输出紊乱,引发故障或安全事故。因此,对于与程序 有关的内容必须提供及时有效的保护。

(2)软件补偿措施

   对于已经侵入微处理机的噪声,必须采取能够维持系统功能的对应措施,以免出现意外停机或意外启动,甚至引起意外事故。对CPU的误动作和各种存储器内容的误修改,在应用软件中插入相应的程序模块,进行主动补偿是一种简便而可靠的方法。

①主动初始化

    这里的“初始化”泛指在各段程序中,对单片机及片外扩展器件的各种功能、端口或者方式、状态等采取的永久性的或者临时的设置。我们不仅要保证上电或 复位后软件能够正确的实现各种级别的初始化,而且在程序中每次使用某种功能前,都要再一次对相应的控制寄存器设定动作模式。实践证明,这一措施可以大大提 高系统对于入侵干扰的自恢复性能。

②重复执行

    程序指令在执行的过程中或者保持之后,都有可能被噪声修改,而导致控制失效乃至引发事故,为此应当尽量增加重要指令的执行次数以纠正干扰造成的错 误。对于频率较低的传感器数据,建议在有效时间内多次采集并比较;对于控制外部设备的指令,则需要多次重复执行以确保有关信号的可靠性。为达此目的,可把 重要的指令设计成定时扫描模块,使其在整个程序的循环运行过程中反复执行。如此,即使干扰信号改写了指令内容,也能在受控设备的反应时间内自动恢复正常。

③重要数据的保护和恢复

    编写专门的数据保护子程序,是提高工控微机系统可靠性的有效途径。在编写程序的过程中,对于由指令改变结果性质的数据,可以考虑在每次改变后都尽可 能地保护起来,以便在需要时能够恢复正确值。若数据的保护量较大,建议扩展非易失性的SRAM作为片外数据存储器,这种新型芯片具有很高的抗干扰性能,其 缺点是目前的价位较高。

(3)片内WDT控制

   “看门狗”(WDT)已经成为工控微机必不可少的成员之一,他可以防止程序“跑飞”或者出现“死循环”。有的单片机如PIC系列单片机片内就带有 WDT监视定时器,通过软件,定时清WDT监视定时器的值,当出现“死循环”或程序“跑飞”现象时,WDT监视定时器内的值计满溢出,从而强迫程序复位, 从头开始。不带片内WDT监视定时器的单片机,也可以利用微处理机内部闲置的定时/计数器,配合以适当的程序就可以方便地构成WDT。