详解单片机应用系统的抗干扰技术
随着工业控制的发展,单片机应用系统以其高性价比逐步取代模拟式控制系统,被广泛应用于各个领域。应用现场存在着各种干扰源,对单片机应用系统的工作影响很大,在实验室里设计好的控制系统,安装调试时完全符合设计要求,而置入现场后,系统常常无法正常稳定地工作。干扰虽不能直接造成硬件的损坏,但常使计算机不能正常运行以致控制失灵,造成设备和生产事故。因此,为了保证设备在实际应用中可靠地工作,从系统设计开始就必须充分考虑到对系统抗干扰性能的要求。
1 干扰源、干扰途径和干扰的影响
1.1 应用系统自身干扰源及干扰途径
应用系统自身干扰源是因在设计系统时对某些问题考虑不全面,如元器件布局不合理、电路工作不可靠、元器件质量差等,形成诸如电阻热噪声干扰、半导体散粒噪声干扰、接触噪声干扰、过程通道干扰、公共电阻形成的干扰等。这些干扰现象随流动元器件电流增大越加明显,这些噪声电流通过系统自身电路和通道而影响系统,其结果是使系统控制精度下降。
1.2 电磁干扰源及干扰途径
工业现场的电磁干扰源很多,如动力断路器断弧过程中的多次复燃、电磁铁线圈电感和分布电容的谐振、大电流电弧的电磁辐射、工频输电线附近所存在的强大交变电场和磁场以及来源于太阳等天体辐射的电磁波、雷电和地磁场的变化都可归结为电磁干扰。干扰信号通过导线或回路之间的互感耦合、电容耦合进入控制系统。电磁干扰造成的后果轻者使控制系统产生误差,重者将使系统不能正常工作。
1.3 供电系统干扰
由于工业现场运行的大功率设备众多,特别是大感性负载设备的启停,使得电网电压大幅度浪涌与下陷,有时会出现长时间的过压、欠压和短时间的尖峰电压,他们十分方便地以线路传输形式经电源线进入控制系统,其中过压干扰是单片机控制系统最为恶劣的干扰。
1.4 干扰产生的后果
干扰常使系统程序"跑飞",造成"死机",数据采集误差加大或数据发生变化,控制状态失灵,系统被控对象不稳定或误操作等。
2 应用系统的硬件抗干扰技术
硬件抗干扰总的原则是消除干扰源、切断干扰侵入途径和设计低噪声电路。
2.1 电磁干扰的抑制措施
工业微机系统比一般计算机更多地受着各种电磁场干扰的影响。电磁场干扰可能来自系统外部,也可能来自系统内部,抑制电磁干扰的主要手段就是采取屏蔽。方式有两种:一是将易干扰的电路或设备等屏蔽起来,以防接收辐射干扰;另一种是将辐射源屏蔽起来,防止辐射出干扰影响其他电路。另外,系统可以浮置(如信号地不接机壳或大地)来阻断干扰电流的通路,设备内部具有辐射能力的电路要独立远置,以减少对其他电路的影响。
2.2过程通道干扰的抑制
(1) 光电耦合隔离,采用光电耦合可以切断主机与前向、后向通道电路以及其他主机电路的联系,能有效地防止干扰从过程通道进入主机,同时对抗共地干扰也有好处。
(2)双绞线传输,双绞线能使各小环路的电磁感应干扰相抵消,对电磁场干扰、共模噪声有一定的抑制效果。
(3)长线传输的阻抗匹配,要求信号源的输出阻抗、传输线的特性阻抗与接收端的输入阻抗相等。否则,信号在传输线上会产生反射,造成失真。
2.3 印制电路板的抗干扰设计
电路板是微机系统中器件、信号线、电源线高密度集合体,对抗干扰性能影响很大,电路板设计、布线及接地不妥可能使整个系统无法正常运行。
(1)印制电路板:大小要适中。过大时,印刷线条长,阻抗增加,抗噪声能力下降,成本也高;过小,散热不好,且易受干扰。尽量使用多层印制板,保证良好的接地网,减少地电位差。
(2)器件布置上:把相关的器件就近放置,易产生噪声的电路应尽量远离主机电路,发热量大的器件应考虑散热问题,I/O驱动器件尽量靠近印制板边上放置。闭置的lC管脚不要悬空,元器件脚避免相互平行,以减少寄生耦合。如有可能,尽量使用贴片元件。
(3)布线:电路之间的连接应尽量短,容易受干扰的信号线要重点保护,不能与能够产生干扰或传递干扰的线路长距离平行;交直流电路要分开;对双面布线的印制电路板,应使两面线条垂直交叉,以减少磁场耦合效应。
(4)接地:交流地与信号地不能共用,以减少电源对信号的干扰;数字地、模拟地分开设计,在电源端两种地线相连;对于多级电路,设计时要考虑各级动态电流,注意接地阻抗相互耦合的影响,工作频率低于1 MHz时采用一点接地,工作频率较高时采取多点接地,接地线应尽量粗。
(5)去耦电容:加去耦电容是印制电路板设计的一项常规做法。在电源输入端跨接10~100 μF的电解电容或钽电容,在每个集成电路芯片上安装一个0.01 μF的陶瓷电容器。
2.4 供电系统抗干扰措施
(1)使用交流稳压器,可防止电网过电压、欠电压干扰,保证供电的稳定性。
(2)变压器初次级用屏蔽层隔离,减少其间分布电容,提高共模抗干扰能力。
(3)低通滤波器可滤去干扰带来的高次谐波。
(4)整个系统采用分立式供电方式,分别对各部分进行供电。
(5)采用开关电源并提供足够的功率余量。
3 应用系统的软件抗干扰技术
系统出现错误或死机,可以通过手工复位、定时复位等方法来解决,也可以通过下面的方法来实现抗干扰。
3.1 在程序中插入空操作指令(指令冗余)
在程序执行过程中, CPU受到干扰后可能会将一些操作数当作指令码来执行,引起程序混乱,我们应尽快使程序纳入正轨。MCS51系列单片机指令不超过3 B,当程序弹飞到某一单字节指上时,能自动纳入正轨。当弹飞到某一双字节或三字节指令上时,有可能落到操作数上,继续出错。在软件设计时,应多采用单字节指令,并在一些关键地方插入NOP指令。如在双字节,三字节指令后面插入2条NOP指令。另外,在一些对程序流向起决定作用的指令之前插入两条NOP指令(如RET,RETI,ACALL,LCALL,SJMP,AJMP,LJMP,JZ,JNZ,JC,JNC,JB,JNB,JBC,CJNE,DJNZ)以保证弹飞的程序迅速纳入程序轨道。
3.2 采用软件陷阱
当CPU受干扰,造成程序弹飞到非程序区,此时软件冗余无能为力,可在非程序区设置拦截措施,使程序进人陷阱,强迫程序进入一个指定的地址,执行一段专门对程序出错进行处理的程序,软件陷阱由3条指令构成,其中ERR为指定地址:
NOP
NOP
LJMP ERR
软件陷阱常安排在下列4种地方:
(1)未使用的中断区。当干扰使未使用的中断开放.并激活这些中断时,就会引起程序混乱。如果在这些地方设置软件陷阱,就能及时捕捉到错误中断。假如MCS51系统中使用3个中断:INT0,INT1,T1,他们的中断子程序分别在PINT0,PINT1,PT1,T0和串行口不使用中断,中断向量区可以设置如下:
(2)未使用的大片 ROM空间。对于未使用的ROM单元,正常状态下为OFFH,程序弹飞到这一区域后,如果不受新的干扰,将顺序执行,不再跳转。只要每隔一段区域设置一个软件陷阱,其他单元保持为0FFH不变,就一定能捕捉到弹飞到这里的程序。
(3)程序区。程序区由一串串执行指令构成,当程序执行到LJMP,SJMP,AJMP,RET等无条件转移类指令时,PC的值应发生正常的跳变,此时程序不可能继续往下顺序执行。若在这些指令后设置软件陷阱,就可拦截弹飞到这里的程序,而又不影响正常执行的流程。
(4)数据表格区。为了不破坏表格的连续性,可在数据表格区的尾部设置软件陷阱。软件陷阱安排在正常程序执行不到的地方,不影响程序执行的效率,在E2PROM容量允许的条件下,多设置软件陷阱有利而无害。
.3 睡眠抗干扰
有些单片机具有睡眠状态,在该状态下只有定时/计数系统和中断系统处于工作状态,这时CPU对系统三总线上出现的干扰不会作出任何反应,从而大大降低系统对干扰的敏感程度。在应用系统中,CPU很多情况下是在执行一些等待指令和循环检查程序。由于这时CPU虽没有重要工作,却是清醒的,很容易受干扰。可以让CPU在非正常工作时休眠,必要时再由中断系统来唤醒他,工作完再进入休眠状态。采用这种安排,CPU可以有60%以上的时间处于睡眠状态,从而使CPU受到随机干扰的威胁大大降低,同时也降低了CPU的功耗。
4"看门狗"技术
当程序飞到一个临时构成的死循环中或PC指针落到程序存储器芯片地址之外,冗余指令和软件陷阱对此无能为力,这时系统将完全瘫痪。这种情况下,只有复位。MCS96和8XC552等系列单片机内部有一个WDT监视定时器,是一个16位的计数器,输人为系统时钟,WDT被启动后,开始对时钟计数,计满溢出时,可使RESET端出现适当的复位信号,使系统复位,在正常情况下,为了防止WDT溢出并复位整个系统,可在程序中周期地用指令清WDT,当程序受到干扰而没有正常地定期清WDT时,WDT的溢出就会使系统复位,从而恢复运行。
图1中RST是外部复位引脚,是WDT启动引脚,为"0"时,"看门狗"启动而工作,对分频后的脉冲计数,当计满溢出时,使单片机及外围电路复位,编程时,为防止监视定时器T3溢出,需要不断对T3写入。MCS51单片机内部没有WDT,可以由外电路来实现,图2是用CD4060构成的看门狗电路。
4060计数频率由RT,CT决定,也可外接石英晶体,设实际运行的用户程序所需工作周期为T0;分频器计满时间为T,当T>T0且系统工作正常时,程序每隔T0对4060清除一次,CD4060无计满输出信号,如系统工作不正常,程序不对4060清除。分频器计满输出一脉冲信号而使CPU复位。
5 结 语
抗干扰设计是单片机应用系统设计中不可缺少的重要内容。硬件抗干扰是主动的,而软件抗干扰是被动的。由于干扰环境多种多样,在设计时应分析具体情况,选用针对性的抗干扰措施。在工程实践中,通常几种抗干扰方法并用,互相补充完善,以确保应用系统能正常运行。
评论