郝树虹 盛春玲 李秋菊 胡 滨
(1、莱钢自动化部,山东 莱芜 271104 2、莱钢炼钢厂,山东 莱芜 271104)
嵌入式系统一般定义为:以应用为中心,以计算机技术为基础,软件硬件可裁剪,适合应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。简而言之,可用“一言”定义:嵌埋在应用系统或设备之中,不为用户所见的专用计算机系统。
工业现场环境中的干扰一般以脉冲形式进入系统,干扰形式主要有三种:一是空间干扰(磁场干扰),电磁信号通过空间辐射进入系统;二是过程通道干扰,干扰通过与系统相连的前向通道、后向通道及与其它系统的相连通道进入;三是供电系统干扰,电磁信号通过供电线路进入系统,是危害最严重、最广泛的一种干扰。当干扰侵入单片机系统后,会造成控制状态失灵,数据采集误差加大,数据发生变化,程序运行失常等不良后果。针对以上问题,本文分别从硬件和软件两个方面来探讨一些提高单片机嵌入式系统抗干扰能力的方法。
电源是对单片机系统干扰的一个主要来源。电源在提供能源的同时,直接将噪声加在单片机系统上。中断线、复位线和其它一些控制线最容易受到外界噪声的干扰。
电源变压器采用双隔离,即电源变压器的初、次级线圈屏蔽层与初级线圈中心点接大地,次级外屏蔽层接抑制板地,以减少高低频脉冲干扰,提高高频共模抗干扰能力。
用压敏电阻抑制尖峰、浪涌。压敏电阻两端的电压如超过其限定值,电流会迅速增大,呈短路状态。利用这一特点可以吸收瞬时尖峰、浪涌电压。压敏电阻并联在电源的初次级可有效抑制尖峰浪涌电压。
低通滤波器可滤去干扰带来的高次谐波,改善电源波形。采用分散独立的稳压块,分别对各部分电路进行供电,可减少公共阻抗的相互影响,提高供电的可靠性。
在接口电路中,如果出现2点以上接地时,可能引入共阻耦合干扰和地环路电流干扰。抑制这类干扰的方法是采用隔离技术。通常有光电隔离和电磁隔离两种。
光电隔离。光电隔离是由光电耦合器来实现的,光电耦合器通过光进行信号传送,如图1所示,可以切断单片机与前向、后向及其它控制器电路的联系,使其电路相互独立,能有效抑制尖峰脉冲及各种噪声干扰。光电耦合器的组成主要包括发光二极管、光敏晶体管等部件。当信号电压U 产生电流I,其发光的强弱与U的大小成正比,通过光电耦合到光电三极管再一次变成电流,经放大电路输出。它在输入、输出电路中另一个主要作用是抑制地环流,即使在输入端出现60V的共模电压时,对控制器也无影响。光电耦合器的输入与输出端在电气上是绝缘的,且输出端对输入端无反馈,因而具有隔离和抗干扰的独特性能。
图1 光电隔离示意图
电磁隔离。利用隔离变压器来切断环流,如图2所示。电路1的输出经过变压器耦合到电路2,从而地环路被切断,两电路各自的地电位基准不受影响,不会造成干扰。
图2 变压器隔离示意图
将单片机嵌入式系统置于金属箱体中,利用金属对电磁的屏蔽性来削弱或消除外部进入箱内的电场和磁场。信号线和电源线严格地分开,不得同时穿入同一个金属盒或金属管中。由于电场或磁场都与测点到干扰源的距离成反比,因此,把信号线安排到距离电源线远的地方也是一种有效措施。
MAX813L 是一款带看门狗和电源监控功能复位芯片,提供的复位信号为高电平,适用于复位信号为高电平的单片机系统。MAX813L的溢出时间为1.6 秒,当系统出现死机时,单片机就会停止向看门狗发送脉冲,超过1.6 秒,看门狗电路就会发出复位信号,将系统复位,使系统恢复正常。
数字信号电平转换在转换过程中会产生很大的冲击电流,并在传输线和供应电源内阻上产生较大压降,形成严重干扰。为抑制此干扰,在电源电路、数字电路和信号处理电路中适当配置去耦电容,即形成去耦电路,这样可旁路集成电路产生的干扰。原则上每个集成电路的电源和地之间都要加1个去耦电容。它有两个作用:一方面是本集成电路的蓄能电容,提供和吸收该集成电路开、关门瞬间的充放电能量;另一方面旁路掉该器件的高频噪声。数字电路中典型的去耦电容是0.1μF。
当跑飞的程序落在用户工作程序ROM 区内时,可采用指令冗余的方法使程序走上正轨。常用的指令冗余技术有两种:NOP 指令的使用和重要指令冗余。NOP 指令是在双字节指令和三字节指令之后插入两个单字节NOP 指令,即使因为“跑飞”使程序落到操作数上,由于两个空操作指令的存在,不会将其后的指令当操作数执行,从而使程序纳入正轨。在某些对系统工作至关重要的指令之前也可插入几条空操作指令,以确保这些指令的正确执行。
当跑飞的程序落在非程序区(如EPROM未使用的空间或某些数据表格区),则采用软件陷阱使程序恢复正常。所谓软件陷阱,就是在非程序区设置一些拦截程序,将失控的程序引至复位入口地址0000H 或处理错误程序的入口地址ERR,在此处利用LJMP 指令,使程序走入正轨。
程序运行过程中.有时受到某种干扰的影响会出现死循环现象,看门狗的作用就是防止程序发生死循环。在5l 单片机中有两个定时器,可以用这两个定时器来对主程序的运行进行监控。对T0 设定一定的定时时间,当产生定时中断时对一个变量进行赋值,而这个变量在主程序运行的开始已经有了一个初值,要设定的定时值要小于主程序的运行时间。这样在主程序的尾部对变量的值进行判断,如果值发生了预期的变化,就说明T0 中断正常,如果没有发生变化则使程序复位。T1 用来监控主程序的运行,给T1 设定一定的定时时间,在主程序中对其进行复位,如果不能在一定的时间里对其进行复位,T1的定时中断就会使单片机复位。在这里T1的定时时间要设的大于主程序的运行时间,给主程序留有一定的裕量。而Tl的中断正常与否再由T0 定时中断子程序来监视。T0 监视T1,T1 监视主程序,主程序又来监视T0,从而保证系统的稳定运行。
为了消除实时数据采集系统通道中的干扰信号,需对信号滤波。所谓数字滤波,就是在单片机中用某种计算方法对输入的信号进行数学处理,以便减少干扰在有用信号中的比重,提高信号的真实性。这种滤波方法不需要增加硬件设备,只需要根据预定的滤波算法编制相应的程序即可达到信号滤波的目的,有利于降低成本。数字滤波稳定性高,滤波参数修改方便,可以对各种干扰信号进行滤波。常用的滤波方法有:算术平均值滤波、中值滤波、程序判断滤波、加权平均值滤波、滑动平均值滤波和复合数字滤波法。
在工程实践中通常都是几种抗干扰技术并用,互为补充完善来取得较好的抗干扰效果。细致周到地分析干扰源,确定干扰性质,硬件与软件抗干扰技术相结合,完善系统监控程序,使系统最大限度的避免干扰的产生和受干扰后能使系统恢复正常运行,保证单片机控制系统长期稳定可靠地工作。
[1]朱顺华,王成春,邹逢兴.单片机控制系统的硬件抗干扰设计[J].微计算机信息,2007.23,8-2.
[2]刘光斌.单片机系统实用抗干扰技术 [M].北京:人民邮电出版社,2006