APP下载

单片机系统中的干扰及其处理措施

2012-12-17达州职业技术学院岳晓礼

电子世界 2012年7期
关键词:看门狗中断指令

达州职业技术学院 岳晓礼

1.引言

单片机作为电子技术工作人员手中的一种可编程的“智能”元件,已经在工业自动化、智能化仪表、生产过程自动化控制等领域得到了广泛深入的运用。但是由于单片机系统的工作现场非常复杂,存在来自系统内部与外部的各种电气干扰,除此以外还受到系统结构、制造工艺、元器件的选择与安装的影响,这些都是单片机系统的干扰因素,对系统的可靠性和安全性构成了极大的威胁。单片机系统必须长期稳定、可靠的运行,否则将影响产品质量和产量,严重时会使系统失灵,甚至造成事故和巨大的经济损失。这就要求我们在设计单片机系统时应结合现场情况,在硬件设计、软件设计以及线路板设计等方面来采取相应的抗干扰措施。

2.干扰的种类和主要来源

工业环境中干扰是以脉冲的形式窜入单片机系统的,是通过三种途径影响系统的正常工作的,即空间干扰,供电系统干扰和过程通道干扰。空间干扰主要发生在高电压、大电流和高频电磁场附近,通过静电感应、电磁感应等方式窜入系统;供电系统干扰主要由电源的噪声干扰引起;过程通道干扰主要是干扰通过前向通道与后向通道进入系统内部。另外接地装置的不可靠,也是产生干扰的重要原因;各种类型的传感器,输入和输出线路的绝缘损坏都有可能引入系统干扰。

干扰如果进入单片机系统,将会对系统产生如:数据采集误差的加大,程序运行失常,系统被控对象误操作,被控对象状态不稳定,定时不准,数据发生变化等后果。因此必须对单片机系统采取抗干扰措施。

3.对电源干扰采取的措施

对于单片机系统供电系统的干扰最为严重,绝大多数单片机系统的直流电源都是由市电经过整流、稳压和滤波后得到的,而电网电压受到电气设备的通断、跳闸等影响,都会造成电源干扰。

3.1 提高供电系统的供电质量

提高供电系统的供电质量是非常重要的一步,可以采用图一所示的供电结构。电源分别给系统各个功能模块供电,从而减少了公共电源与公共阻抗之间的相互耦合,从而提高了电源的抗干扰性。

图一 单片机供电结构

3.2 利用压敏电阻抑制尖峰、浪涌

利用压敏电阻两端的电压超过其限定值时,电流会迅速增大,呈短路状态的特点,用它吸收瞬间的尖峰和浪涌电压。把压敏电阻并联在电源变压器的初极与次级,加入压敏电阻后,电源干扰造成单片机程序失控的可能性将大大减小。压敏电压的计算公式为:VIMA=1.56×32×V~(V~:交流电压有效值)。

3.3 利用滤波器抑制高频干扰

市电中含有多种高次谐波,它们很容易由电源进入单片机系统内部,这些干扰以“共模”或“差模”方式存在。图二为电源EMI滤波器电路,它是由参数元件构成的无源低通网络,L1和L2是绕在同一磁环上的两只独立线圈,绕匝数相同、绕向相反,称为共模线圈,L3和L4是独立的差模线圈。由L1和Cy,L2和Cy就分别构成两对独立端口间的低通滤波器,用来抑制电源线上的共模EMI信号;由(L1-L2)形成差模电感,它与L3、L4形成的独立差模线圈与Cx电容器又组成一只低通滤波器,用来抑制电源线上的差模EMI信号。此外单片机控制系统还需要有完备的电源保护电路,其具有在电源启停、瞬时短路、瞬间降压时产生复位信号,当电源电压恢复正常后,复位信号会自动解除。

图二 EMI滤波器电路

4.印制电路板采用抗干扰设计

印制电路板(PCB)是电路元件和器件的支撑件,它提供单片机系统中的电路元件和器件之间的电气连接,是系统中元器件、信号、电源线的高密度集合体,印制电路板设计的好坏对抗干扰能力影响很大,因此印制电路板应符合抗干扰设计的要求。主要有:

①采用接地抑制干扰的方法。低频电路的地线尽量用单点并联接地,高频电路尽量用多点串联接地。应加粗接地线条,使它能通过3倍于印刷电路板上的允许电流,同时使电源线、地线的走向与数据传递的方向一致,有助于增强抗噪声能力。尽量使用45°折线而不使用90°折线,用以减少高频信号对外的发射与耦合,减少互感振荡。电源线与地线应尽量靠近走线从而减少所包围的环路面积,因而可以减少外界磁场对环路切割而产生的电场干扰,同时也可以减少环路对外电磁辐射。

②对于单片机系统中的CPU、RAM、ROM等主芯片以及VCC、GND之间接电解电容和瓷片电容。石英晶体振荡器的外壳接地而不要走信号线,并且要适当加大接地面积。时钟线要尽量的短,并用地线将时钟区圈起来,使周围电场尽可能地减小。

③对于独立系统结构,应减少接插件与连线;输入输出驱动器件、功率放大器件应尽量的靠近线路板边的引出接插件。集成块与插座接触要可靠,使用双簧插座,最好集成块直接焊在印制板上,要防止器件接触不良。信号的输入、输出端尽量使用光电隔离,这样既可以防止外围器件动作时产生的回流冲击系统,又可以使输入端的干扰信号没有足够的功率去干扰发光二极管的正常工作。

④在印刷电路板的各个关键部位配置去耦电容。原则上每个集成电路芯片都应安置一个0.01μF的瓷片电容排除射频耦合干扰,电容引线不要太长,应紧靠芯片的电源线和地线。如果印刷电路空间狭小时,可以每4~10个芯片安置一个1~10μF限噪声钽电容。线路板布局时,应尽量使单片机的振荡晶体放在单片机两引脚近端。

5.采用软件抗干扰措施

当单片机系统的CPU部位受到干扰信号的作用时,将使系统失控。典型的故障是破坏程序计数器PC的状态值,进而导致程序在地址空间内"乱飞",或者陷入死循环。对这种情况的主要有指令冗余技术、软件陷阱技术、睡眠抗干扰技术、“看门狗”技术。

5.1 在程序中插入空操作指令(指令冗余)

指令是由操作码和操作数组成,操作码指明CPU要完成怎样的操作,而操作数是操作码的对象。在程序执行过程中,CPU受到干扰后可能会将一些操作数当作指令码来执行,引起程序混乱,但只要PC指针落在单字节指令上时程序就可纳入正轨。因而在软件设计时,应多采用单字节指令,并在一些关键地方插入NOP指令(如在双字节、三字节指令后面插入2条NOP指令),另外在一些对程序流向起决定作用的指令之前也插入两条NOP指令(如JNC,JB,JNB,JBC,RETI,RET,JC,ACALL,LCALL,SJMP,AJMP,LJMP,JZ,JNZ,DJNZ,CJNE)以保证弹飞的程序迅速纳入程序轨道,或将有效的单字节指令重写,这就是指令冗余技术。

5.2 采用软件陷阱

当CPU受干扰,造成程序弹飞到非程序区是,指令冗余技术无能为力,可在非程序区采取拦截措施,使程序进人陷阱,强迫程序进入一个指定的地址去执行如下的指令:

NOP

NOP

LJMP ERR

此程序是专门对程序出错进行处理(其中ERR为指定地址)的。软件陷阱主要安排在未使用的中断区、未使用的EPROM空间及非EPROM空间、程序运行区及中断服务程序区。

①在未使用的中断区,可以按照如下的方式写中断服务程序:

NOP

NOP

POP D1;将原来的错误断点弹出

POP D2;将原来的错误断点弹出

PUSH 00H

PUSH 00H;将断点地址重写为0000H

RETI

②在未使用的EPROM区,可在未用的区域里填充上020000数据,这样当程序飞入其中时就会很快的走入正轨,这条指令就是“LJMP 0000H”的机器码。

③在非EPROM空间,当CPU读程序存储器的时候,会产生一个PSEN信号,可利用这个信号,再加上一个非EPROM区的地址译码信号,构成一个选通信号来起动一个空闲的中断,再用软件陷井的方法从中断程序中把程序导入正轨。

5.3 采用睡眠抗干扰

某些单片机具有睡眠状态,在睡眠状态下只有定时/计数系统、中断系统处在工作状态,此时CPU对系统三总线上出现的干扰不会作出反应,从而降低系统对干扰的敏感度。因此可以让CPU在非正常工作的时候休眠,必要时由中断系统唤醒它,工作完后再进入休眠状态。这种安排,CPU可以在60%以上的时间处于睡眠状态,从而使CPU受到随机干扰的威胁降低,与此同时也降低了CPU的功耗。

5.4 “看门狗”技术

当程序飞到一个临时构成的死循环或PC指针落到程序存储器芯片地址之外时,冗余指令和软件陷阱对此毫无办法,系统将完全瘫痪。在这种情况下,只有复位。因此“看门狗”技术,就是一个能发出“复位”信号的计数器或定时器电路。“看门狗”技术可已由硬件实现,也可已由软件实现。在单片机系统中,严重的干扰有时会破坏中断方式控制字,关闭中断,此时系统无法定时“喂狗”,硬件看门狗电路失效,但是软件“看门狗”可有效地解决这类问题。实际应用中,可以采用环形中断监视系统(如:用定时器T0监视定时器T1,用定时器T1监视主程序,主程序监视定时器T0),采用这种环形结构的软件“看门狗”具有良好的抗干扰性能,有效的提高了系统的可靠性。对于需经常使用T1定时器进行串口通讯的测控系统,则定时器T1不能进行中断,可改由串口中断进行监控。

6.结束语

抗干扰是单片机系统设计中不可缺少的内容。硬件抗干扰是主动的,软件抗干扰是被动的。由于干扰环境不同,在设计系统时应根据具体情况,选用针对性的抗干扰措施。

[1]王丰,栾学德.单片机应用技术[M].北京:北京航天航空大学出版社,2007.

[2]何立民.MCS-51系列单片机应用系统设计系统配置与接口技术[M].北京:北京航空航天大学出版社,1990.

[3]马洪连.嵌入式系统设计教程[M].北京:电子工业出版社,2006.

[4]李朝青.单片机原理及其接口技术[M].北京:北京航空航天大学出版社,2005.

[5]赵新民.智能仪器设计基础[M].哈尔滨:哈尔滨工业大学出版社,1999.

[6]侯大年.数字电子技术[M].北京:电子工业出版社,2000.

猜你喜欢

看门狗中断指令
一种嵌入式计算机系统的看门狗设计
把他叫醒
ARINC661显控指令快速验证方法
基于FPGA的中断控制器设计*
跟踪导练(二)(5)
千里移防,卫勤保障不中断
杀毒软件中指令虚拟机的脆弱性分析
把它叫醒
中断与跳转操作对指令串的影响
把它叫醒