1主要干扰渠道及防护措施
工业生产中的干扰一般都以脉冲形式进入微机,干扰窜入系统的渠道主要有三条,即供电系统;过程通道;空间磁场。
通常防护措施如下:
(1)供电系统
在微机系统中,最严重的干扰来源为电源的污染。为了防止从电源系统引入的干扰,一是要将微机的供电与大功率的用电设备的电源分开,最好单独供电;二是在单片机系统电源变压器的初级串接一低通滤波器(如图1所示),有效阻止高次谐波串入系统,改善电源波形,提高单片机系统的抗干扰能力。
(2)输入输出通道
输入输出通道是单片机与传感器、单片机与上位机以及单片机与执行机构之间的信息传送的路径。在微机系统中,传输线上的信息多为脉冲波和较弱的测量信号电压,在长线传输时会产生衰减、延时、畸变。信号隔离是抵抗外界干扰的必要而有效的措施,它隔断外界的共模电压和外界串入的电磁干扰,从而保证单片机的工作环境,使整个系统正常运行。
(3)屏蔽和接地
用钢板做机壳将单片机系统屏蔽起来,再将外壳接地,防止电磁干扰从空间侵入。
2提高系统的容错能力
为了提高系统的抗干扰能力,一是增强防护能力,尽量阻止干扰侵入;另一是增强容错能力,及时发现侵入的干扰并迅速采取相应措施,将影响减到最小。
2.1程序运行监视系统
程序运行监视系统又称“看门狗”,是一种有效的防止微机系统死机的电路。部分单片机(80C552等)片内就包括“看门狗”电路;程序运行监视系统也可用专用硬件电路实现。一旦“看门狗”电路被启动,在规定的时间内没有收到CPU发出的清零脉冲,“看门狗”电路将向CPU发出“复位”脉冲。
2.2硬件标志
在很多工业控制系统中,系统的启动是按一定的顺序进行的,并且不允许设备中途重新按这个顺序启动。一旦单片机系统复位,必须准确判断是否为上电复位。由于失控的程序常常会非法写操作,因而软件标志可靠性较低。在可靠性要求高的场合,通常设立硬件上电标志(图2所示)。
硬件标志电路工作原理为(图3):当微机系统上电时,复位脉冲同时将“D”触发器Q端置“1”。初始化程序检查P4.1位为“1”,则执行冷启动程序,并通过P4.0向D触发器发出时钟脉冲,使Q端为“0”,完成硬件标记确认并建立软件标志。微机系统投入正常运行后,一旦系统再次重新启动(热启动),此时有两种情况:
(1)按下“复位”键引起系统复位。由于在按下“复位”键的同时,将图2的D触发器Q端置“1”,初始化程序检查结果为硬件标志无效而软件标志有效,系统是正常复位,程序转向热启动。
(2)由于“看门狗”引起的系统复位。初始化程序检查结果为硬件标志有效(图2的D触发器Q端保持为“0”),系统是异常复位。初始化程序将转向异常处理程序。
由此可见,微机系统能够准确的判断出引起复位的原因,从而采取相应的处理程序,有效地提高了系统的可靠性。
2.3重要数据保存器
在工业控制装置中,有一些重要的数据,像从键盘输入的控制目标值,P、I、D调节参数以及从上位机传送来的各种指令等,必须妥善保存。由于失控的程序常常非法进行写操作,使RAM区中重要的信息丢失。当微机系统重新启动后,必须正确恢复重要参数。因此,单片机系统设计中加入一片串行E2PROM芯片93C46。每次单片机系统设置完成后,程序自动将重要参数写入93C46。由于93C46具有上电禁写和软件禁写功能,因而数据保存可靠。
3软件抗干扰措施
3.1使用空操作指令
MCS-51指令系统中有部分双字节和三字节指令,当程序弹飞落到这些指令的操作数上时,将把操作数当成指令,产生错误的结果。因而,在程序中重要的地方(如跳转、调子程序)等插入两条空操作指令,可拦截弹飞的程序并转入正常。
3.2建立软件陷阱
所谓“软件陷阱”就是在程序中加入的一组用于拦截弹飞程序的程序段。它强行将程序转向一个特定的地址,该地址放有出错处理程序。如果将出错处理程序的入口标号命名为“ERR”的话,通常软件陷阱由以下三句话组成:
一旦弹飞的程序被拦截,立刻转向错误处理程序。
3.3出错处理程序
错误处理程序的共同点是先关闭中断,防止事态扩大。对于有“看门狗”电路的系统来讲,等待复位即可。而软件复位和硬件“看门狗”复位不同。此时CPU片内的寄存器和I/O口状态是不定的。所以错误处理程序在转向程序起点前,要将CPU片内的各寄存器、已激活的中断标志和I/O口“软件”复位,进入初始状态,再转入程序起点。
3.4其他措施
在用单片机组成的控制系统中,调节量的输出是不断变化的。单片机系统受到干扰而异常复位后,RAM区中的标志单元、输出量缓冲单元和I/O口的状态都可能改变,不能作为系统复位后的状态恢复数据。这时可以手动给定量作为当前控制器输出量。这些措施可有效的减少单片机异常复位后对整个系统带来的扰动。
4结束语
微机系统抗干扰设计是一项综合性设计,采用硬件措施可有效提高微机控制系统的抗干扰能力,但过多的硬件本身就降低了系统的可靠性。因而系统的设计要“软”“硬”兼施,提高系统的防护和容错能力,从而提高单片机系统的可靠性。