单片机应用系统的抗干扰技术

单片机应用系统的抗干扰技术

    本文首先介绍了单片机应用系统的干扰来源,以及这些干扰产生的影响;然后结合实践,对干扰的来源和解决的方法进行了归纳和总结,这些方面可提高单片机系统的稳定性和可靠性。
1 、干扰的种类
    单片机应用系统多用于环境较为恶劣的工业生产现场,干扰源较多。提高单片机应用系统的稳定性就要设法抑制干扰。干扰有两种:一是来自系统内部元器件在工作时产生的干扰,通过地址、电源线、信号线、分布电容和电感等传输,影响系统工作状态,二是来自系统外部其它电气设备产生的干扰,通过传导和辐射等途径影响单片机系统的正常工作。
干扰对单片机应用系统的作用有 3 个部位:
    a 、输入系统。它将使模拟信号失真,数字信号出错,单片机根据这种输入信息做出的反应必然是错误的。
    b 、输出系统。将使各输出信号混乱,不能正常反应单片机应用系统的真实输出量,从而导致一系列严重后果。
    c 、 CPU 系统。 CPU 得到错误的数据信息,使运算操作数失真,导致结果出错,并将这个错误一直转递下去,形成一系列错误。
    单片机应用系统中抗干扰问题一直是设计中的一个十分重要的课题,下面从软件、硬件两个方面讨论采取综合抗干扰措施,来提高系统的可靠性。
2 、硬件方面的抗干扰措施
①抗电源干扰的措施
    单片机应用系统中许多干扰都来自电源,电源的通断、瞬时短路及电网串进来的干扰脉冲造成单片机的误动作占各种干扰的 90 %以上,而由于生产负荷的变化产生的“尖峰干扰”在系统运行中的危害性是很严重的。产生“尖峰干扰”的用电设备包括:重型交直流电机、继电器、可控硅、电焊机、电梯、镇流器、电烙铁和其它大电流用电设备。这些设备的通断,往往造成工业电网电压出现几百伏,甚至几千伏的尖峰脉冲。因此抑制电源引起的干扰至关重要。
主要采用下面的方法:
    ( 1 )系统供电电源选用相对干净的照明电源;
    ( 2 )使用隔离变压器、低通滤波器等将交流电网的地与设备地相隔离,也可使用光电耦合器进行隔离;
    ( 3 )使用干扰抑制器。它是一种四端无源网络产品,利用频谱均衡器的原理,把尖峰电压集中的能量分配到不同频率上,从而抑制“尖峰干扰”;
    ( 4 )使用瞬间电压抑制器( Transient Voltage Suppressor , TVS )。它是一种高效能的保护器件,当 TVS 的两极受到反相瞬态高能量冲击时,能以 10 - 12 秒量级的速度,将其两极间的高阻抗转为低阻抗,使两极间的电压箝位于一个预定值,从而有效保护了电子线路中的有关元器件免受电网干扰的冲击。
②输入通道的抗干扰措施
    输入通道包括模拟输入通道和数字输入通道。
A 、模拟输入通道干扰的抑制
   模拟输入电路的任务是完成在现场对检测对象量值的检测、采集。单片机的 A/D 转换器接受信号的方式一般为非平衡式输入,共模、差模干扰混入信号中进入系统,要彻底排除难度较大,一般采用以下方法:
   a 、将增益放大器安装在传感器附近,尽量采用差动输入,以减小共模干扰的混入。
   b 、为减小因感应引起的干扰,传输线采用双绞线或屏蔽线(以屏蔽线较佳),屏蔽线的屏蔽层应在现场一端接地,在靠近 A/D 芯片端应并联一限幅电路,以消除大幅度的差模干扰。

B 、数字输入通道干扰的抑制

    数字输入通道主要用于现场开关量采集和通讯,数字输入通道一般采用光电隔离技术,由于光电耦合器具有很高输入输出绝缘电阻,抗干扰能力强,采用这种技术不但可以使主机与输入通道隔离,还可以使主机和输出通道隔离,因此在单片机应用系统中得到了广泛的应用。

3 、传播方面的抗干扰措施

    要使系统正常工作,抗干扰不能完全依靠硬件来解决,还需要在软件设计上采取一定的抗干扰措施。

①数字滤波

    无论在硬件电路设计上采取多少抗干扰措施,都不可能完全消除干扰信号,因此,外界的干扰信号总是或多或少地要进入系统中。数字滤波是通过程序设计对单片机数据采集部分输入的信号进行加工处理,以达到抗干扰的目的,主要包括:程序判断滤波法、算术平均值滤波法、滑动算术平均值滤波法、中位值滤波法等。

②指令冗余

    当 CPU 受到干扰后,往往将一些操作数当作指令码来执行,引起程序混乱。这时我们首先要尽快将程序引入正轨。当程序“跑飞”到某一条单字节指令上时,便自动纳入正轨。当程序“跑飞”到某一双字节或三字节指令上时,有可能落到其操作数上,从而继续出错。因此,有必要在关键的地方人为地插入一些单字节指令( NOP ),或将有效单字节指令重复书写,这便是指令冗余。常在一些对程序流向起决定作用的指令之前插入 2 条 NOP 指令,以保证“跑飞”的程序迅速纳入正确的控制轨道。

3 、软件陷阱的设置

    指令冗余不能完全解决程序“跑飞”的问题,若“跑飞”的程序没有落到程序区则指令冗余就无能为力了。对于此种情况可采用设置软件陷阱的方法加以解决。这种方法是在非程序区设置拦截措施,当 PC 失控、程序“跑飞”进入非程序区时,使程序进入陷井,从而迫使程序返回正常状态。

4 、设置看门狗

    若“跑飞”的程序既没有落入软件陷阱,又没有遇到冗余指令,而自动形成一个死循环,可利用软件启动单片机的监视定时器(俗称看门狗)来使系统复位。

 

返回首页

关闭本窗口