1引言
随着科学技术的发展,单片机在各种家电产品中得到了越来越广泛的应用,它的稳定性工作是衡量其质量好坏的重要指标。因此,有效地抑制单片机系统内部和外部的电磁噪声干扰,使单片机系统在实际运行环境中长期可靠地工作,是一个亟待解决的电磁兼容问题。
在我们设计的变频空调电控系统中,由于其所处环境比较恶劣,特别是在冬季与夏季强功率运行时,由压缩机、风机高速运转所引起的机械振动,电器设备(如斩波器、电动机等)所产生的干扰,室内外环境的温差(-20℃~40℃),都会影响单片机系统的正常工作。这就要求在设计单片机系统时必须考虑到各种影响其正常工作的因素,并采取相应的有效措施。当然,单片机系统的可靠性是由多种因素决定的,但系统的抗干扰性能是系统可靠性的重要指标。因此,抗干扰设计是整体设计工作中的一个重要内容。
2硬件的抗干扰设计
实际单片机应用系统中,干扰一般都是以脉冲的形式进入系统的。其主要形式有三种,如图1所示。
(1)空间场辐射干扰干扰以电磁辐射的形式耦
合进入系统;
(2)电源系统干扰干扰通过地线和电源线进入系
统。地线和电源线是传导电磁干扰的一个主要通道,这是由于地线和电源线是数字集成电路所有电流的通路。
(3)过程通道干扰干扰通过与主机的前向通道、后向通道以及与其他主机的相互通道进入系统。[1]
针对这种情况,在控制方法设计上,除了采用众所周知的抑制干扰传播的技术,如屏蔽、接地、搭接、合理布线等方法外,还采取了回避和疏导的技术处理,如空间方位分离,以及电气隔离等措施。
21空间场辐射抗干扰措施
空间场辐射干扰主要由数字信号源产生,一般是由高频脉冲信号的高次谐波造成的,通常以差模和共模两种噪声模式产生辐射。差模噪声的辐射是高频噪声电流在信号电路中流动时产生的,共模噪声的辐射则是因为电路中的线阻抗或感抗产生的电位差引起的。针对这一情况,采用合理的布线、良好的屏蔽与正确的接地,增加高频滤波,尽量减小系统中各工作环节的阻抗等一系列措施;对于功率模块和单片机系统的结合部位,采用空间分离的措施,把强电和弱电的结合部位分离开来。使得这一问题得到了良好的解决。
22电源系统抗干扰措施
电源系统干扰包括电源干扰和地线干扰。本系统采用220V市电供电,故电网上及其它电器所产生的干扰都会通过电源进入系统。主要采用了以下几种解决办法:
图1单片机系统主要干扰渠道
图2系统抗干扰设计总图
图3光耦合器的应用
图4光耦合器的应用
(1)采用隔离电源消除各功能模块间的相互影响,提高抗干扰的能力;
(2)使用低通滤波器电源系统的干扰源大部分是高次谐波,因此利用低通滤波器滤掉高次谐波,以改善电源波形;
(3)采用分散独立的功能块供电在每块系统功能模块上用三端稳压集成芯片,如7805等集成稳压电源。每个功能块单独对电源进行过载保护,不会因某块稳压电源故障而使整个系统遭到破坏,且减少了公共阻抗的相互耦合和公共电源的相互耦合,大大提高了供电可靠性,也有利于电源散热。
地线干扰通常表现为外部干扰通过公共地线进入主机系统,数字地线的干扰还表现为逻辑地的不等电位。因此,单片机系统的地线布置相当重要。解决地线干扰的办法是正确处理好地线隔离问题,同时为了避免模拟电路引入的噪声通过地阻抗对数字电路产生影响,数字地与模拟地应分开布线,单点连接。
将以上原则应用于实际系统的设计中,本系统采用了如图2所示的电源、地线抗干扰设计。
23过程通道抗干扰措施
过程通道主要是单片机系统本身和外围器件所产生的联系。前向接口、后向接口与主机以及主机之间相互进行信息传输的路径,它的干扰主要是长线传输的干扰。系统中解决的办法是采取光电耦合的措施。
光电耦合是采用半导体光电耦合器件进行隔离。它的主要优点是能有效地抑制尖峰脉冲及各种干扰,使输入电路中的干扰信号不能直接从电路上进入输出电路,从而使过程通道上信噪比大大提高。光电耦合有很强的抗干扰能力,原因如下:
(1)光电耦合的输入阻抗很小,一般只有100Ω~1kΩ之间,而干扰源内阻很大,通常为100kΩ~100MΩ之间,因此分压到光电耦合器输入端的噪声很小;
(2)干扰噪声虽有较大的电压幅度,但能量小,只
能形成微弱电流,而光电耦合器输入部分的发光二极管是在电流状态下工作的,即使有很高电压幅值的干扰由于不能提供足够的电流而被吸收;
(3)光电耦合是在密封条件下实现输入电路和输
出电路的光耦合,不会受到外界光线的干扰;
(4)输入电路和输出电路之间分布电容极小,一
般为0.5~2pF之间,而且绝缘电阻极大。因此,电路一边的干扰很难通过光电耦合器馈送到另一边去。[2]
系统主要在三种情况下应用了光电耦合器。其一是室内机信号由CPU的P21脚经过光耦输入到通信线上去,如图3所示。为了使光耦两端的输入和输出电平与各自的电路匹配,将光耦两边的电源分别置为各自电路的电源。电路中的+12V电源通过一个1kΩ的电阻接光耦的输入端,这个电阻作为光耦通路中的限流电阻,通过光耦输入端的电流大小为I=12mA。因为电流传输率接近100%,故在输出一侧使220V电源通过一个22kΩ的电阻,I′=220/22k=10mA,略小于输入端电流。第二个应用光电耦合的地方是室内机接收室外机的信号处。第三个应用光电耦合的场合是单片机输出驱动PG电机处,如图4所示。其原理分析完全同上,不再赘述。
从以上的分析看出,通过AC/AC隔离电源和光电耦合电路,使以单片机为核心的中央处理控制系统与外界完全隔离开来,极大地提高了系统运行的抗干扰能力,如图5所示。
3软件的抗干扰设计
单片机在恶劣的环境中工作时,干扰源不仅会影响到硬件系统的正常工作,也常常会使系统的软件运行发生混乱。因此系统的抗干扰问题不能完全靠硬件去解决,软件的抗干扰设计也是一项重要措施。当系统受到干扰时,可能使单片机的程序跑飞,改变程序指针PC值,从而使程序进入死循环而不能正常工作;也可能改变单片机内部特殊功能寄存器(SFR)的值使程序状态混乱,甚至发生故障,损坏器件;如果被测量信号受到干扰,则会造成测量值失真。对于这种情况的对策是及时发现,及时引导程序走向正确位置,或者使系统重新复位开始运行。在本系统中采用了以下措施。
图5提高系统抗干扰能力的原理框图
31利用冗余指令
当CPU受到干扰后,往往将一些操作数当作指令码来执行,引起程序混乱。此时,若程序弹飞到某一条单字节指令上时,便自动纳入正规;若程序弹飞到某一条双字节或三字节指令上时,有可能落到其操作数上而继续出错。为此,在对程序流向起着决定作用的指令之前插入两条NOP指令,保证弹飞的程序迅速纳入正确的控制轨道。此类指令有RET、RETI、LCALL、LJMP、JNC、JNB、CJNE、DJNZ等。
指令冗余措施可以减少程序弹飞的次数,使其很快纳入程序轨道,但这不能保证在失控期间不出错,更不能保证程序纳入正常轨道后就太平无事了。解决这个问题还必须采用软件容错技术,使系统的误动作减少,并尽可能消除重大误动作。
32设置软件陷阱
所谓软件陷阱,就是一条引导指令,强行将捕获的程序引向一个指定的地址,在那里有一段专门对程序出错进行处理的程序。如果把这段程序的入口标号称为ERR的话,软件陷阱即为一条LJMPERR的指令,为加强其捕捉效果,一般还在它前面加两条NOP指令。因此,真正的软件陷阱由三条指令构成: NOP NOP LJMPERR
软件陷阱一般安排在下列四种地方:
(1)未使用的中断向量区当干扰使未使用的中断开放,并激活这些中断时,就会引起系统程序的混乱,但如果在这些地方布上陷阱,就能及时捕捉到错误中断;
(2)未使用的大片ROM空间对于剩余的大片
未编程的ROM空间,一般都维持原状(0FFH)。程序弹飞到这一区域后将顺流而下,不再跳跃(除非受到新的干扰)。这时只要每隔一段设置一个陷阱,就能捕捉到弹飞的程序;
(3)表格表格有两类,一类是数据表格;另一类是
散转表格。由于表格中内容和检索值有一一对应关系,在表格中安排陷阱将会破坏其连续性和对应关系,所以只能在表格的最后安排五字节陷阱(NOPNOPLJMP);
(4)程序区程序区是由一序列执行指令构成
的,一般不能在这些指令串中间任意安排陷阱,否则正常执行的程序也可能被抓走。在这些指令串中间有一些断裂点,正常执行的程序到此便不会往下继续执行了,这类指令有LJMP、SJMP、AJMP、RET、RETI等,在它们后面加软件陷阱。
33设置程序运行监视系统(WDT)
利用CPU内部的WDT可以实现系统定时复位。在程序正常运行时,每隔一段时间对WDT清零。一旦程序运行不正常,没有及时给WDT送清零信号,则在WDT计数溢出时自动将系统复位。所使用的西门子公司生产的C504单片机的WDT溢出时间可人为设定。若晶振用12MHz,其可选时间为512μs~11s。本系统设计溢出时间为7ms。
34采用软件滤波
被测信号的抗干扰可以采用“软件滤波”的方法解决。常用的有:算术平均值法,比较取舍法,中值法,一阶递推数字滤波法。本系统采用的是比较取舍法。
4结语
经试验,该系统工作半年多来,运行状况良好,性能稳定,噪音低,没有出现错误及损坏器件现象,取得了良好的效果,达到了预期的目的,证明在系统设计中采用的上述抗干扰措施是行之有效的。