单片机系统的抗干扰设计

单片机系统的抗干扰设计
单片机系统的抗干扰设计

单片机系统的抗干扰设计

随着单片机系统越来越广泛地应用于消费电子、低压电器、医疗设备、以及智能化仪器与仪表等领域,单片机在简化电路设计和提高产品性能的同时,单片机系统本身的电磁干扰问题也成为影响这类设备可靠性的主要因素。

单片机系统是一个含有多种电子元器件和电子部品(乃至子设备和子系统)的复杂电子系统,外来的电磁辐射和传导干扰,以及内部元器件之间、部件之间、以及子系统之间、各传送通道之间的相互干扰对单片机及其数据信息所产生的干扰与破坏,严重地影响了单片机系统的工作稳定性、可靠性和安全性。

因此分析和消除单片机系统的不稳定因数,提高它的电磁兼容性已愈来愈成为人们所关注的课题,而这问题的本身则具有很高的实用价值。

1 单片机系统的可靠性分析

一个单片机系统的可靠性是自身软件、硬件与其所处工作环境共同作用的结果,所以系统的可靠性也应从这两方面来进行分析与设计。

对系统本身而言,要在保证系统各项功能实现的同时,对其运行过程中出现的各种干扰信号,以及来自于系统外部的干扰信号进行有效的抑制,这是决定系统可靠性的关键。而对一个有缺陷的系统来说,设计人员往往只是从逻辑上去保证系统功能的实现,而对系统运行过程中可能出现的问题考虑欠周,采取的措施不足,在干扰面前系统就可能陷入困境。

任何系统的可靠性都是相对的,在一种环境下能够可靠工作的系统,到了另外一种环境就可能就不稳定了,这充分说明环境对系统可靠运行的重要性。所以在针对系统运行环境去设计系统的同时,应当尽量采取措施来改善系统的运行环境,综合性地解决系统运行的可靠性。

2 单片机系统的电磁干扰问题

2.1 单片机系统里电磁干扰的由来

单片机的干扰是以脉冲形式进入单片机系统的,其主要渠道有三条,即空间、供电系统及信号通道。

空间干扰多发生在高电压、大电流、高频电磁场附近,通过静电感应、电磁感应等方式侵入系统内部。

供电系统的干扰通过同一电网里用电设备工作时产生的噪声干扰和瞬变干扰来影响单片机系统的工作。

信号通道的干扰则通过输入和输出通道侵入系统。干扰沿各种线路侵入系统;各类传感器,输入/输出线路的绝缘损坏均有可能给系统引入干扰。

此外,系统接地的不可靠也能是产生系统干扰的重要原因。 2.2 电磁干扰可能产生的后果

电磁干扰可能产生的后果有:

⑴数据采集误差加大

当干扰侵入单片机系统的输入通道,并叠加在信号上时,会使数据采集误差增大,特别是输入通道的传感器接口为低电平信号输入时,此现象会更加严重。

⑵程序运行失常

①控制状态失灵

在单片机系统中,由于干扰的加入使输出误差加大,造成逻辑状态改变,

最终导致控制失常。

②死机

在单片机系统受强干扰后,造成程序计数器PC值的改变,破坏程序正常运行。

⑶系统被控对象误操作

①单片机内部程序指针错乱,指向了其他地方,运行了错误的程序;

②RAM中的某些数据被冲乱或者特殊寄存器的值被改变,使程序计算出错误的结果。中断误触发,使系统进行错误的中断处理。⑷被控对象状态不稳定

锁存电路与被控对象间的线路(包括驱动电路)受干扰,从而造成被控对象状态不稳定。

⑸定时不准

①单片机内部程序指针错乱,使中断程序断超出定时的时间;

②RAM中计时数据被冲乱,故程序计算出错误的结果。

⑹数据发生变化

在单片机系统中,尽管ROM能避免干扰的破坏,但由于外部RAM中的数据是可以读写的,在电磁干扰的侵入下,RAM中数据有可能发生改变;单片机片内的RAM,以及片内的各种特殊功能寄存器的状态都有可能因受干扰而发生发化,甚至EPROM内的数据也有可能误写,故程序计算出错误的结果。

3 单片机系统的硬件电磁兼容性设计

3.1 单片机系统电磁兼容问题的特殊性

单片机系统和普通电子设备系统一样,都存在空间辐射干扰、信号通道干扰、电源干扰和数字电路引起的干扰。但是单片机系统本身也有它的特殊性,它是以高速运行及传送数字逻辑信号为两大特征,因而在单片机系统的电磁兼容问题上与其他电子设备相比时以下特点:

单片机系统中含有数字电路和模拟电路,但以数字电路为主,其中应用最多的是二极管、集成电路、A/D转换电路、D/A转换电路,它们既是干扰源,又是干扰的敏感元器件,尤其是MOS、D/A最为敏感。

在单片机系统里,就干扰的发生,和对干扰的敏感接收相比较,由于系统是以相对较低的电平来传送信号,所以它在电磁环境中还是以受干扰的情况为主。干扰对数字电路与对模拟电路的影响有本质上的不同,对模拟电路的影响是连续的,随着干扰强度的增大而增大,干扰消失后恢复原始状态;而数字电路是开关工作方式,存在阈值电平以及与之对应的噪声容限,只有超过了干扰的容限,干扰信号才有危害,这比模拟电路要有利。

单片机系统有存贮功能、判断功能及高速运算功能,这也为抗电磁干扰的设计提供了有利条件。但事情都有两面性,一旦干扰超过了某一个度,使得单片机的存贮记忆发生了变化,这时干扰即使过去了,系统却再也不能恢复正常,这又给系统的稳定运行带来了潜伏的危机。

单片机系统的工作是传送和识别脉冲数字信号为基础的,单片机系统中的数字线路对于脉冲干扰(特别是脉冲的沿边)十分敏感。而数字线路本身的工作又是开关的,工作的频率达到几MHz,脉冲波形的沿边达到几个至几十个ns;再加上单片机系统中的开关电源(开关电源的工作频率为几十至几百kHz),这很容易对周围的电磁环境形成干扰。由于单片机系统运行的高速性、安装的高密集性、以及数字化的工作状态,对于系统中的传输线需要按照长线传输的方

式加以思考,考虑到长线有波形的延迟、波形的畸变,以及长线容易受外界的干扰,这一切也为单片机系统工作的可靠性带进了不稳定的因素。

关于干扰入侵单片机,主要有电源、信号与控制线、以及空间电磁感应等三个方面的问题。同时也包括系统内部存在的静电场和磁场,其中静电是MOS 电路的大敌。另外,系统在低电压下工作,工作的电流也相对比较大,这样,电源线、输入/输出线构成了高速、大电流的回路,故在单片机系统里有相对较强的磁场干扰。

除了上面讲到的单片机系统受干扰的一面外,其实单片机系统本身也是一个干扰源,在单片机系统中能够产生有威胁干扰的部位有:时钟发生器、高速逻辑电路、开关电源、晶闸管、工频电源、电网线(引入雷击浪涌和高频传导干扰)、带有电动机的部件、开关元件(继电器、接触器、按钮、键盘)、传输长线及电缆接头(终端不匹配产生波形畸变、长线的天线效应接收外界干扰)、显示器、印刷电路板、机壳(不恰当的接地)等。其中RAM电路正常工作时的耗电电流很小,但在瞬间工作时,一片电路能有80mA的电流,当多片电路同时工作时的电流就更大,若同时动作的时间非常短暂,例如只有十几ns时,由于电流瞬间的变化(di/dt)太大,在电源部分造成的干扰更是一个不能不面对的事实。

3.2 单片机系统的硬件电磁兼容性设计

单片机系统的抗干扰设计就是针对干扰的产生性质、传播途径、入侵的位臵和入侵的形式,采取适当的方法来消除干扰源,抑制耦合通道,减弱电路对噪声干扰的敏感性,通常需要采取的是“综合治理”的措施。3.2.1 合理选择元器件

根据电器参数选择合理器件以满足系统性能要求。

①现在市场上出售的元器件种类繁多,有些元器件可用但性能不佳,有些元器件极易受到干扰,因此在选择关键元器件如译码器、键盘扫描控制器、RAM 等时,最好选用性能稳定的工业级产品。

②单片机的选择不光要考虑硬件配臵、存储容量等,更要选择抗干扰性能较强的单片机。例如采用A VR系列单片机,该系列单片机的抗干扰能力较强。

③时钟是高频的噪声源,对系统内和系统外都能产生干扰,因此在满足需要的前提下,选用频率低的单片机是明智之举。3.2.2 电源干扰的抑制

⑴电源线滤波器

电源线滤波器安装在电源线与单片机的系统之间,用于抑制电能传输中寄生的电磁干扰,对提高设备的可靠性有重要作用。滤波器允许一些频率通过,而对其它频率的成份加以抑制。要根据干扰源的特性、频率范围、电压和阻抗等参数及负载特性的要求,来选择适当的滤波器。

⑵电源隔离变压器、电源稳压器和不间断电源

①普通电源隔离变压器

普通的电源隔离变压器可以在低频范围切断主电源线的接地环路。当频率升高时,电气的隔离性能由于变压器初次级之间的寄生电容的存在而下降。为了减少寄生电容的影响,可以在变压器铁芯的芯柱上分段绕制初级和次级的线圈,或者分别绕制两个独立的初级和次级绕组。这种做法可以使变压器初次级之间的寄生电容减小为原来的1/3~/10,但这种做法是以增加变压器的漏感为代价。②采取法拉第屏蔽的电源变压器

采取法拉第屏蔽的电源变压器是减小变压器初次级之间的寄生电容的有效办

法。具体的做法是在变压器的初级与次级线圈之间包裹一层铝箔或铜箔,使之不与线圈接触,并避免铝箔或铜箔形成自身短路(中间用绝缘层垫开)。电源变压器的法拉第屏蔽要接地。

采取法拉第屏蔽的电源变压器应用范围如下:

* 应用于进入室内的电源或电源分配箱上,作为简单1:1的隔离变压器,用于隔离50/60Hz电源的公共地环路;

* 在同一系统中的某一部分重新产生对地保持中性的交流电源,与总电源分配点保持电气隔离;

* 当系统中存在很大的对地漏电电流时,应用采取法拉第屏蔽的电源变压器可以防止过度频繁触发系统中的接地故障检测器;

* 可以与电源线滤波器结合起来使用,使得电源线滤波器的滤波特性从几十kHz开始就有很好的衰减性能。③电源稳压器

当电网电压发生过低或过高的情况,足以会影响单片机系统的正常运转时,采用交流电源稳压器可以解决单片机系统因电网电压偏离额定值太大所导致系统不能正常运行的问题。

普通的交流电源稳压器对于电网中的突波干扰的抑制能力显得有些不足。目前市场上有既能解决交流电源稳压,又能抑制电网干扰的高性能交流稳压电源出售,这种交流稳压电源被专门命名为净化电源。但即使是净化电源,针对电网中出现的断电现象,仍将是无能为力,这时就必须用到不间断电源(UPS)了。

UPS可粗略地分为后备式和在线式两种。后备式UPS的逆变器在电网电压正常时是处在不输出状态的。这时,后备式UPS仅仅负责监视电网电压,而是通过旁路开关取电网电压为单片机系统供电的。只有当电网电压偏离了正常值,后备式UPS才转到由逆变器输出为单片机系统供电。其切换时间为几个ms,一般单片机系统的操作人员是不觉察的。但是后备式UPS的这种特点,使得对付电网中的突波干扰显得无能为力。

真正要全面解决电网中的干扰和电网电压不稳,乃至完全断电的情况,就必须要用到在线式UPS了。在线式的UPS,当电网电压处在正常范围时,它可以利用内部的稳压线路对电网电压进行稳压(例如稳定到220V±5%,这时逆变线路不工作),为单片机系统供电,此时的UPS就是一台交流稳压电源。与此同时,UPS还为它内部的电池进行充电(能量储存)。当电网电压异常或者中断时,UPS内部的电池迅即通过逆变线路把能量转换成交流电,提供给单片机系统,维持单片机系统的正常工作,保持单片机系统的软件和硬件不受损失。

还有一种在线式UPS,它的逆变器始终是处在工作状态的。当电网电压处在正常范围时,逆变器用电网电压直接进行整流滤波后供电,用逆变器的输出为单片机系统供电。与此同时,UPS还为它内部电池充电,作为能量储存。一旦电网电压发生异常或者中断时,逆变器转由UPS内部的电池进行供电,把能量转换成交流电能提供给单片机系统,保持单片机系统的正常工作。⑶暂态抑制器

在交流电网进线端并联压敏电阻、硅瞬变电压吸收二极管和气体放电管等暂态抑制器件,用于吸收电网中的浪涌电压,同时还可以作为一种防雷措施,保证单片机系统的正常工作。压敏电阻和硅瞬变电压吸收二极管是具有非线性V-I特性曲线的器件,可以作为浪涌电压的箝位元件。浪涌电压通过该器件后就

被箝位在这些器件的击穿电压V BR上,避免了单片机系统受到浪涌电压的损伤。

这些器件的响应速度快,但在处理的能量上受器件本身的性能影响,有一定限制。至于气体放电管(包括固体放电管在内),在遭受浪涌电压激励后,由于器件的负阻特性,转为低阻抗、低电压、大电流的导通状态,通过它能较好地转移浪涌所拥有的能量,使得单片机系统免受浪涌电压的损伤。3.2.3 电场、磁场干扰的抑制

采用导电性能良好的金属作屏蔽盒,并将屏蔽盒接大地,这样,屏蔽盒内部电力线不会影响外部,同时外部的电力线也不会穿透屏蔽盒进入内部,前者可抑制干扰源,后者可阻截干扰的传输途径,起电场隔离的作用。磁路屏蔽是采用高磁材料并以封闭式结构为妥,并接大地。3.2.4 接地技术

单片机系统设备的抗干扰能力与系统的接地方式有很大关系。设备的接地技术(接大地)往往是抑制噪音的重要手段,良好的接地可以在很大程度上抑制系统内部噪音耦合,防止外部干扰的侵入,提高系统的抗干扰能力。对有防雷击浪涌及快速脉冲群要求的系统,良好的接地显得尤其重要,对于在前面所提到过的干扰抑制器件,通过有效的接地,可以将干扰引入大地。反之,如果系统不接地,或者虽有地线,但接地阻抗过大,则这些元件都不能发挥正常作用。至于单片机系统电源的地线,俗称为系统地(参考地)。系统地与大地之间的关系可以是相通的,也可以是浮空的,或者是接一个电阻后相通的,要视应用场合来定。但与大地相通的情况要多些。

单片机系统里面的高频电路应就近多点接地;低频电路应一点接地。交流地和信号地不能共用。对系统里的高增益放大电路最好用金属罩屏蔽起来,并将屏蔽体接到放大电路的公共端,以便将寄生电容短路,防止寄生反馈,避免放大器的震荡。对于功率地,由于地线的电流较大,接地线的线径应当比较粗些,且与小信号地线分开,直接连直流地。对于小信号前臵放大电路,应该采用一点接地,不能采取一个电路有几点接地的办法。对于A/D前臵放大电路一般要浮空。有关印刷线路板上接地考虑的细节参见3.2.6这一节的说明。3.2.5 通道干扰

⑴隔离技术

信号隔离的目的是从电路上把干扰源和容易受干扰的部分隔离出来,把干扰的通路切断,使监控装臵与现场仅保持信号的联系,而没有电的联系。从而达到隔离现场干扰的目的。通常单片机系统既有弱电控制又有强电控制,实行弱电和强电的隔离,是保证系统工作稳定、设备与人员安全的重要措施。常用的隔离方式有光电隔离、变压器隔离、继电器隔离和布线隔离等等。隔离分对模拟信号的隔离和对数字信号的隔离。

对数字信号的隔离通常采用光电耦合器。因这种方法信号的传递是通过光信号实现的,没有电信号的直接连接,因此隔离了干扰的传递途径。但这种方法不能隔离辐射,及通过电感和电容耦合对线路产生的感应干扰。光电耦器件对传导干扰的隔离能力大约在1~2kV。

具体电路设计时,在A/D后和D/A前加光电耦合器,其电源与单片机的电源必须保持独立,地线必须分开,保证单片机与现场仅有光的联系,切断了干扰的通路,也避免形成环流。

对于强干扰或长线传输可采用两次隔离,这样,既可消除干扰,又能解决长线驱动和阻抗匹配等问题。

对于模拟信号的隔离,通常采用隔离放大器,利用隔离放大器内的变压器将信号磁耦合。这个方法隔断了通路的线路连接,从而切断干扰源。

也可采用光电耦合器实现模拟信号隔离,即由电压-频率转换器VFC把模拟信号转换成数字信号,再通过光电耦合器隔离,而光电耦合器的输出信号再由频率-电压转换器FVC转换成模拟信号。

在多点巡回检测系统中,若被测信号变化较慢,其多路模拟开关可选用由干簧继电器或湿簧继电器做成的电容飞渡式多路模拟开关,用以切断被测信号与信号通道间的直接连线,从而起到抗干扰作用。此外,由于负脉冲传输的抗干扰能力比正脉冲要强,所以,在长线传输时,一般要采用负脉冲传输。而且速度不高时,在始端用驱动器比用一般的TTL效果要好。在用OC门作双向总线传输时,可以把输出端连在一起,直接用来作为单向、双向总线的传输。⑵通道中器件选择与抗干扰

多路转换器的输入常常受到各种环境噪声的污染,尤其容易受到共模噪声的干扰。在多路转换器输入端接入共模扼流圈,可抑制外部传感器引入的高频共模噪声。转换器高频采样时所产生的高频噪声,可以在单片机与A/D之间采用光电耦合器隔离。

在传感器工作环境复杂和恶劣时,应选择差动输入的测量放大器,使其在微弱信号系统中用作前臵放大器。并采用屏蔽双绞线传输测量信号;或将电压信号改变为电流信号;以及采用阻容滤波等技术来抑制干扰。在许多信号变化比较慢的采样系统中,如人体生物电(心电图、脑电图)采样、地震波记录等,影响最大的是50Hz的工频干扰。因此对工频干扰信号的抑制是保证测量精度的重要措施之一。抑制和消除工频干扰,常用的方法是在A/D转换电路之前加RC 滤波器,或者采用采样时间是50Hz的工频周期整数倍的双积分式A/D转换器。

采样-保持电路(S/H)在采样与保持两种状态转换时,会窜入干扰。为了减少误差,在印刷电路布线时,使逻辑输入端的走线与模拟输入端尽可能距离远些,或者将模拟输入端用地线包围起来,以降低线间寄生电容耦合和阻断漏电通路。

对于数字信号传输通道,其输出信号可作为系统被控设备的驱动信号(如继电器等)。而数字输入信号可作为设备的响应回答和指令信号(如行程开关、启动按钮等)。数字信号接口部分是外界干扰进入单片机系统的主要通道之一。在设计中,对数字信号的输入/输出过程采取的抗干扰措施有:传输线的屏蔽技术,如采用屏蔽线、双绞线等;采用信号隔离措施;合理的接地,由于数字信号在电平转换过程中会形成公共阻抗干扰,所以选择合适的接地点可以有效抑制地线噪声。另外,降低逻辑输入信号的幅度也可以减少寄生耦合和漏电耦合干扰。

为了防止长线传输中的窜扰,采用交叉走线是行之有效的办法。长线传输时,功率线、载流线和信号线要分开;电位线和脉冲线要分开。另外,在长线传输时,配臵总线驱动器可提高总线的负载能力,改善信号波形。在总线上适当安装上拉电阻也可提高总线信号传输的可靠性。3.2.6 印刷电路板布线的抗干扰设计

印制电路板的设计对单片机系统能否抗干扰非常重要。要本着尽量控制噪声源;尽量减小噪声的传播与耦合;尽量减小噪声吸收这三大原则来设计印制电路板的布线。下面是印刷电路板设计时应该注意的地方:

﹡单片机的印制电路板设计中要注意合理分区,单片机系统通常可分三区,即模拟电路区(怕干扰),数字电路区(即怕干扰、又产生干扰),和功率驱动区(干扰源)。

﹡印刷板按单点接地原则供电。三个区域的电源线、地线由该点分三路引

出。噪声元件与非噪声元件要离得远一些。

﹡对时钟的振荡电路、特殊高速逻辑电路部分可以用地线圈起来。让周围电场趋近于零。

﹡I/O驱动器件、功率放大器件要尽量靠近印刷板的边,靠近引出接插件。

﹡能用低速器件的就不要用高速器件。高速器件只用在关键的地方。

﹡使用满足系统要求的最低频率的时钟,时钟发生电路要尽量靠近用到该时钟的器件。﹡石英晶体振荡器外壳要接地,时钟线要尽量短,且不要引得到处都是。

﹡使用45°的折线布线,不要使用90°折线,以减小高频信号的发射。

﹡单面板、双面板,电源线、地线要尽量的粗。信号线的过孔要尽量少。

﹡4层板比双面板噪声低20dB。6层板比4层板噪声低10dB。因此,在经济条件允许时可尽量采用多层板。

﹡关键的线要尽量短,并要尽量粗,并在两边加上保护地。根据这一原则,在将敏感信号和噪声大的信号通过一根扁平电缆引出的话,要采用地线-信号-地线......的方式来引出。

﹡在石英振荡器的下面和噪声敏感器件的下面要加大接地的面积,而不应该走其它信号线。

﹡任何信号线都不要形成环路,如不可避免,这个环路应当尽量地小。

﹡时钟线垂直于I/O线的走线方式,要比时钟平行于I/O线时的干扰为小。有条件时,时钟线的布臵要远离I/O线。﹡对A/D类器件,数字部分与模拟部分宁可绕一下也不要交叉。对噪声敏感的线路不要与高速线、大电流线平行。

﹡在每个集成电路的电源端与地之间要加一个去耦电容,要选高频信号好的独石电容或瓷片电容作去耦电容。去耦电容焊在印制电路板上时,应充分靠近集成块的电源端子,而且去耦电容的引脚要尽量地短。

﹡单片机及其它IC电路,如有多个电源和接地端子的话,则在每个端子上都要加一个去耦电容。

﹡单片机不用的I/O端口要定义成输出口。

﹡对于数字电路的空余引脚输入端可采取与使用端并联的办法。也可以把空余的输入端通过一个电阻接高电平,这种方法适用于与条件。对于或条件,则可以把空余输入端接地。

﹡由于高速逻辑电路在工作时会产生高频干扰,所以这些电路均应按高频电路处理,应将逻辑电路的印刷板良好接地。

﹡对于存储器的布线抗干扰设计,一般采取的措施有:数据线、地址线、控制线要尽量缩短,以减少对地电容。由于开关噪声严重,要在电源入口处以及每片存储芯片的VCC与GND之间接入去耦电容。由于负载电流大,电源线和地线要加粗,走线尽量短。印制板两面的三总线互相垂直,以防止总线之间的电磁干扰。

﹡总线的始端和终端要配臵合适的上拉电阻,以提高高电平噪声容限,增加存储器端口在高阻状态下抗干扰能力和削弱反射波干扰。三总线与其他扩展板相连接时,要通过三态缓冲门后再连接。这可以有效防止外界电磁干扰,改善波形和削弱反射干扰。

﹡弱信号的引出线、高频、大功率引出电缆要加屏蔽。即使普通的引出线与地线最好也要绞起来。﹡从高噪声区来的信号要加滤波。继电器线圈处要加放电二极管。可以用串一个电阻的办法来减缓I/O线的跳变沿及提供一定的阻

尼。

﹡在印刷板的电源入口端也应加去耦电容。要用大容量的钽电容或聚脂电容,而不用铝电解电容作电路充电的储能电容。因为铝电解电容分布电感较大,对高频无效。使用铝电解电容时要与高特性好的去耦电容配对使用。

﹡必要时,可以在电源线、地线上加用铁氧体磁环或磁珠由漆包线绕制而成的高频电感,来抑制高频噪声的传导。

﹡若印刷板过大、或信号线频率过高,使得线上的延迟时间大于等于信号上升时间时,该线要按传输线处理,要加终端匹配电阻。

﹡尽量不要使用IC 插座,把IC直接焊在印刷板上。因为IC座有较大的分布电容。由于单片机系统的抗干扰能力与印刷电路板上电源和地的布局好坏有着至关重要的关系,下面专门把印刷板上的电源与地线设计作一些叙述:

⑴电源线设计

根据印刷线路板电流的大小,尽量加粗电源线宽度,减少环路电阻;同时,使电源线、地线的走向和数据传递的方向一致,这样有助于增强抗噪声能力。

⑵地线设计

在单片机系统设计中,接地是控制干扰的重要方法。如能将接地和屏蔽正确结合起来使用,可解决大部分干扰问题。

单片机系统中地线结构大致有系统地、机壳地(屏蔽地)、数字地(逻辑地)和模拟地等。在地线设计中应注意以下几点:

①正确选择单点接地与多点接地。

在低频电路中,信号的工作频率小于1MHz,它的布线和器件间的电感影响较小,而接地电路形成的环流对干扰影响较大,因而应采用一点接地的方式。当信号工作频率大于10MHz时,地线阻抗变得很大,此时应尽量降低地线阻抗,应采用就近多点接地。当工作频率在1~10MHz时,如果采用一点接地,其地线长度不应超过波长的1/20,否则应采用多点接地法。

②数字地与模拟地分开。

电路板上既有高速逻辑电路,又有线性电路,应使它们尽量分开,两者的地线不要相混,分别与电源端地线相连。低频电路的地应尽量采用单点并联接地,实际布线有困难时可部分串联后再并联接地;高频电路宜采用多点接地,地线应短而粗。高频元件周围尽量用栅格状大面接地铜箔;对线性电路要尽量加大的接地面积。③接地线应尽量加粗。

若接地线用很细的线条,则接地电位会随电流的变化而变化,致使定时信号电平不稳定,抗噪声性能降低。因此,接地线应当尽量加粗,使得它能通过三倍于印刷电路板的允许电流。如有可能,接地线的宽度应大于3mm。

④设计只由数字电路组成的印刷电路板的地线系统时,将接地线做成网格可以明显地提高抗噪声能力。其原因在于:印刷电路板上有很多集成电路元件,尤其在遇到耗电大的元件时,因受接地线粗细的限制,会在地线上产生较大的压降,引起抗干扰的能力下降;若将接地线构成网格,则有利于减小地线上的电位差,有利于提高设备的抗干扰能力。3.2.7 用于单片机系统的硬件抗干扰配臵

当系统受到干扰,单片机无法正常工作时,系统为了恢复正常运行,必须用到相应的硬件电路予以支持:

⑴手动复位

对于失控的单片机系统,最简单的系统恢复的办法是使其复位,程序自动

地从0000H开始执行。为此,只要在单片机的RESET端加上一个复位信号,并持续四个周期以上即可。

手动复位电路实现方法很多,也较简单。但最大的缺点就是不及时,往往系统已经瘫痪,人们在没有其他办法的情况下才按下复位按钮。如果软件上没有特殊的措施,手动复位和上电复位具有等同作用,系统一切从头开始,这在控制系统中是不允许的,它只适合于非控制系统,如各类智能仪表等。⑵自动复位

当系统失控后,为了能将损失减小至最低程度,系统必须能及时、可靠地恢复至正常工作状态,并尽可能“无扰动”地恢复系统,除了软件上要做大量的工作外,还必须要有硬件自动复位电路的配合。

自动复位电路一般也称W ATCHDOG(看门狗)电路。以MAX706监控电路为例,这是一种性能优良的低功耗CMOS监控电路芯片,其内部电路由上电复位、可重触发“看门狗”定时器及电压比较器等组成。MAX706只要在1.6秒时间内检测到WCI引脚有高低电平跳变信号,则“看门狗”定时器清零并重新开始计时。若超过1.6秒WCI引脚仍无高低电平跳变信号,则“看门狗”定时器溢出,在WDO引脚上输出低电平,进而触发MR手动复位的引脚,使MAC706复位,从而使“看门狗”定时器清零,并重新开始计时,使W DO引脚输出高电平。MAX706的RST复位输出引脚输出大约200毫秒宽度的低电平脉冲,使单片机控制系统可靠复位,重新投入正常运行。

⑶上电检测

当系统自动恢复运行时,应用软件首先要区分系统是初次上电(冷启动),还是经手动或自动复位后才重新进入运行状态的(热启动),这往往对程序的初始化的处理是不同的,也是“无扰动”地恢复系统必须具备的条件。

当然,可以通过检测软件所设臵的标志位来实现该功能,但没有用硬件电路的实现来得可靠与唯一。硬件电路的实施方法很多,也很简单,一般由单稳态电路或电压比较器即可实现,其状态延时时间只要大于软件初始化中检测上电状态的时间即可。

⑷掉电保护

当供电部件瞬间断电或电压突然下降,使系统进入了混乱状态。此时即使供电电压恢复正常,然而系统也难以回复到正常运作。

掉电保护的方法对于这类事故最有效。掉电信号由硬件电路检测到后,加到单片机的外部中断输入端,并通过软件将其设定为高级中断,这样系统能够及时对掉电作出反映。

在掉电中断子程序中,首先进行现场保护,把需要保护的重要信息、中间结果存入片内RAM中;其次要对有关外设作出妥善处理,比如关闭各输入输出口,使外设处于某一个水平工作状态等;最后必须在片内RAM中设掉电标志。当电源恢复正常时,CPU重新复位,复位后应首先检查是否有掉电标志,若有就不应将系统初始化,而应按掉电中断子程序相反的方式恢复现场,并以一种合理的安全方式使系统继续未完成的工作。为了实现以上功能,系统设计是必须要有一套功能完备的硬件掉电检测电路和CPU电源切换电路。掉电检测电路必须在电压下降到CPU最低工作电压前就提出中断申请,提前时间为几百微秒到数毫秒。掉电后,外围电路供电,但CPU通过电源切换电路保持片内RAM 中内容不变。所以CPU上应采用CMOS型的芯片,执行一条ORL RCON,#2的指令即可进入掉电工作状态。

4 单片机系统的软件电磁兼容性设计

单片机系统的抗干扰,必须采用“软硬兼施”的办法。往往软件是最后也是最有效的办法,特别是当硬件电路确定后,系统软件必须针对实际情况采取有效的措施,才能保证系统的稳定与可靠。

常用的软件实施办法有:

4.1 数字滤波技术

数字滤波是在对模拟信号多次采样的基础上,通过软件算法提取最逼近真值数据的过程。数字滤波的算法灵活,可选择权限参数,其效果往往是硬件滤波电路无法达到的。

通常使用的方法有:算术平均法、中值法、抑制脉冲算术平均法、一阶惯性滤波法、程序判断滤波法和递推平均滤波法等。

4.2 输入信号重复检测方法

输入信号的干扰是叠加在有效电平信号上的一系列离散尖脉冲,作用时间很短。当控制系统存在输入干扰,又不能用硬件加以有效抑制时,可用软件重复检测的方法,达到“去伪存真”的目的,直到连续两次或连续两次以上的采集结果完全一致时方为有效。若信号总是变化不定,在达到最高次数限额时,则可给出报警信号。对于来自各类开关型传感器的信号,如限位开关、行程开关、操作按钮等,都可采用这种输入方式。如果在连续采集数据之间插入延时,则能够对付较宽的干扰。

4.3 输出端口数据刷新方法

开关量输出软件抗干扰设计,主要是采取重复输出的方法,这是一种提高输出接口抗干扰性能的有效措施。对于那些用锁存器输出的控制信号,这些措施很有必要。在尽可能短的周期内,将数据重复输出,受干扰影响的设备在还没有来得及响应时,正确的信息又到来,这样就可以及时防止误动作的产生。在程序结构的安排上,可为输出数据建立一个数据缓冲区,在程序的周期性循环体内将数据输出。对于增量控制型设备不能这样重复送数,只有通过检测通道,从设备的反馈信息中判断数据传输的正确与否。

在执行重复输出功能时,对于可编程接口芯片,工作方式控制字与输出状态字一并重复设臵,使输出模块可靠地工作。

4.4 指令冗余

当窜入单片机系统的干扰作用在CPU部位时,往往会将一些操作数当作指令码来执行,引起程序混乱,使系统失灵。其中最典型的故障是破坏程序计数器PC的状态,导致程序从一个区域跳转到另一个区域,或者程序在地址空间内“乱飞”,或者陷入“死循环”。

为此,必须要尽快将程序纳入正轨(执行真正的指令系列)。在MCS-51系统中所有指令都不超过3个字节,而且有很多单字节指令。当程序弹飞到某一条单字节指令上时,便自动纳入正轨。当弹飞到某一双字节或三字节指令上时,有可能落到其操作数上,从而继续出错。因此,在程序中应当多采用单字节指令,并在关键的地方人为地插入一些单字节指令(NOP),或将有效单字节指令重复书写,这便是指令冗余。在双字节和三字节指令之后插入两条NOP指令,可保护其后的指令不被拆散。或者说,某指令前如果插入两条NOP指令,则这条指令就不会被前面冲下来的失控程序拆散,并将被完整执行,从而使程序走上正轨。但不能加入太多的冗余指令,以免明显降低程序正常运行的效率。因此,常在一些对程序流向起决定作用的指令之前插入两条NOP指令,以保证弹

飞的程序迅速纳入正确的控制轨道。此类指令有:RET、RETI、LCALL、SJMP、JZ、CJNE等。在某些对系统工作状态至关重要的指令(如SETB EA之类)前也可插人两条NOP指令,以保证被正确执行。上述关键指令中,RET和RETI 本身即为单字书指令,可以直接用其本身来代替NOP指令,但有可能增加潜在危险,不如NOP指令安全。

4.5 软件陷阱

指令冗余使弹飞的程序安定下来是有条件的,首先弹飞的程序必须落到程序区,其次必须执行到冗余指令。当弹飞的程序落到非程序区(如EPROM中未使用的空间、程序中的数据表格区)时,前一个条件即不满足,当弹飞的程序在没有碰到冗余指令之前,已经自动形成一个死循环,这时第二个条件也不满足。对付前一种情况采取的措施就是设立软件陷阱,对于后一种情况采取的措施是建立程序运行监视系统(W ATCHDOG)。

所谓软件陷阱,就是一条引导指令,强行将捕获的程序引向对程序出错进行处理的程序。如果我们把这段程序的入口标号称为ERR的话,软件陷阱即为一条LJMP ERR指令。为加强其捕捉效果,一般还在它前面加两条NOP指令,因此,真正的软件陷阱由三条指令构成:

NOP

NOP

LJIMP ERR

软件陷阱安排在下列四种地方:

⑴未使用的中断向量区。

当干扰使未使用的中断开放,并激活这些中断时,就会进一步引起混乱。如果在这些地方布上陷阱,就能及时捕捉到错误中断。

⑵未使用的大片ROM空间。

现在使用EPROM都很少将其全部用完。对于剩余的大片未编程的ROM 空间,一般均维持原状(0FFH),0FFH对于指令系统,是一条单字节指令(MOV R7, A),程序弹飞到这一区域后将顺流而下,不再跳跃(除非受到新的干扰)我们只要每隔一段设臵一个陷阱,就一定能捕捉到弹飞的程序。软件陷阱一定要指向出错处理过程ERR。我们可以将ERR字排在0030H开始的地方,程序不管怎样修改,编译后ERR的地址总是固定的(因为它前面的中断向量区是固定的)。这样我们就可以用00 00 02 00 30五个字节作为陷阱来填充ROM中的未使用空间,或者每隔一段设臵一个陷阱(02 00 30),其它单元保持0FFH不变。

⑶表格。

有两类表格:

一类是数据表格,供MOVC A, @A+PC指令或MOVC A, @A+DPTR指令使用,其内容完全不是指令。

另一类是散转表格,供JMP @A+DPTR指令使用,其内容为一系列的三字节指令LJMP或两字节指令AJMP。由于表格内容和检索值有一一对应关系,在表格中间安排陷阱将会破坏其连续性和对应关系,只能在表格的最后安排五字节陷阱(NOP,NOP,LJMP ERR)。

⑷程序区。程序区是由一串串执行指令构成的,在这些指令串之间常有一些断裂点,正常执行的程序到此便不会继续往下执行了,这类指令有JMP、RET 等。这时PC的值应发生正常跳变。如果还要顺次往下执行,必然就出错了。当然,弹飞来的程序刚好落到断裂点的操作数上或落到前面指令的操作数上(又

没有在这条指令之前使用冗余指令),则程序就会越过断裂点,继续往前冲。在这种地方安排陷阱之后,就能有效地捕捉住它,而又不影响正常执行的程序流程。例如:

AJMP ABC

NOP

NOP

LJMP ERR

……ABC:MOV A, R2

RET

NOP

NOP

LJMP ERR

ERR:……由于软件陷阱都安排在程序正常执行不到的地方,故不会影响程序执行效率。

4.6 软件“看门狗”技术

PC受到干扰而失控,引起程序乱飞,也可能使程序进入“死循环”。指令冗余技术、软件陷阱技术不能使失控的程序摆脱“死循环”的困境,通常采用程序监视技术,又称“看门狗”技术(W ATCHDOG)。

“看门狗”技术的实施方法分为两种:即硬件W ATCHDOG系统与纯软件W ATCHDOG系统。

硬件看门狗系统可靠性较高,因为其硬件是由本文前面提到的“自动复位电路”组成的,它可完全独立工作,若CPU不在设定的时间内给它输入有效信号,“自动复位电路”将对CPU输出一个复位信号。因此,当CPU掉入死循环后,能及时发现并使系统复位。

软件看门狗系统由一个定时器构成,须将其中断优先级设定为最高级,在程序正常运行时,及时将定时器的寄存器清零,不让它中断,而一旦发生了中断,则说明程序执行了非法操作,在中断服务子程序中放入一条LJMP ERR 指令,用出错处理程序来完成善后工作,并用软件方法使程序复位。当然,如果在失控期间执行了关中断或修改定时器功能的指令,软件看门狗将无法工作,因此在要求较高的场合不宜使用软件看门狗系统。

在设计看门狗时可设计两个定时器,一个为短定时器,一个为长定时器,并各自独立,短定时器像典型看门狗一样工作,它保证一般情况下看门狗有快的反映速度,长定时器的定时大于CPU执行一个主循环程序的时间,用来防止看门狗失效。

4.7 数据的保护与恢复技术

在编写程序的过程中,对于由指令改变结果性质的数据,可以考虑在每次改变后都尽可能地保护起来,以便必要时恢复。有时计算机在强制复位后,I/O 端口和特殊寄存器SFR中的内容都将变成芯片出厂时的设定值,这很有可能引起系统的运行混乱。因此单片机在重新启动后,应当首先执行数据恢复程序,把控制端口等重要寄存器被保护的内容恢复还原。

4.8 睡眠抗干扰

从应用程序来看,CPU并不一直在忙碌着,很多情况下是处于等待状态,如在执行一些踏步等待指令或循环检查程序,这时CPU很易受干扰。

对于CMOS型MCS-51系列单片机可通过执行指令ORL PCON, #1,让其

进入睡眠状态,此时只有定时/计数系统和中断系统处于值班工作状态。CPU对系统三总线上出现的干扰不会做出反应,因此大大降低了系统对干扰的敏感程度。针对以上情况,我们可让CPU在没正式工作时就睡觉,有工作的时候再通过中断系统来唤醒它,干完后又接着睡觉,通过这种工作方式,大多数CPU可能会有50~95%的时间用于睡眠,从而使CPU受到随机干扰的威胁大大降低,对于低功耗的系统,CPU的功耗也会有所下降。

这种工作方式,对于一些大功率控制系统尤其适合。当程序对大功率设备进行开、关控制时,必然会引起强烈的干扰。这种干扰不是随机性质的干扰,而是与程序完全相关的,是可以预见的。因此,让CPU在作好准备工作后,才输出可能会引起强烈干扰的开/关控制指令,此时CPU立即进入睡眠状态,这样单片机系统也就不会自己来干扰自己了,等到内部设定的延时时间结束后,CPU 才会“醒来”,而这时干扰已经过去了。

相关主题
相关文档
最新文档