要消除单片机运用体系的搅扰,只需去掉搅扰构成的三个基本条件(搅扰源、传达途径、灵敏器材)之一即可,内部的搅扰源能够经过合理的电气规划在必定程度上予以消除,外部搅扰源则采纳屏蔽、接地、阻隔等办法予以消除或堵截。抗搅扰规划的首要作业是环绕这一部分打开的,上述三个部分也不是肯定区分的,一般一个体系的抗搅扰办法是多方面的归纳以到达最佳的作用。
在实践中,单片机运用体系的抗搅扰规划一般是经过硬件抗搅扰规划和软件抗搅扰规划两种途径来完成的。硬件假如规划妥当,就能够将绝大部分搅扰拒之门外,但仍然会有少数搅扰,所以软件办法必不可少。因为软件办法是以占用CPU为价值的,假如没有硬件消除绝大部分搅扰,CPU将疲于奔命,严峻影响体系的作业效率和实时性。因而一个抗搅扰性杰出的单片机运用体系则是由硬件规划和软件开发相得益彰而构成。
1.硬件抗搅扰规划
①电源电路
单片机体系运用的电源,一般都是由电网的工频沟通电源经降压、整流、滤波等环节后供给。因为电网的影响以及出产现场大容量电气设备的开停,会使沟通电压中含有高频成分、浪涌电压、尖峰脉冲或许产生较大起伏的电压动摇。这些要素都将导致搅扰经过电源途径影响体系的正常作业。电源做得好,整个电路的抗搅扰作业就完成了一大半。许多单片机对电源噪声很灵敏,因而,应选用抗搅扰的开关电源或给单片机电源加滤波电路或稳压器,以削减电源噪声对单片机的搅扰。电源线的安置除了要根据电流的巨细,尽量加租导体宽度外,还要使电源线、地线的走向与数据传递的方向共同。这将有助于增强抗噪声的才能。每种类型的单片机都有一个安稳作业的电压规模,例如凌阳SPCE061A单片机作业电压为3.3V~5V ,超出这个规模将呈现异常。
② 硬件复位电路
图1 选用MAX6827的复位电路
复位电路是最简略受搅扰的(因为CPU 内部的复位电路的阻抗都比较高,为10~50kΩ) ,影响也是最大的。因而,有必要采纳抗搅扰办法。图1是选用MAX6827的复位及“看门狗”电路图。该电路具有较强的抗搅扰才能,因为没有复位电容,不易引进搅扰。
③ 留意印制电路板的布线
印刷电路板是单片机体系中器材、信号线、电源线的高密度集合体,印刷电路板规划的好坏对体系的抗搅扰才能影响很大。故在印刷电路板规划不单是器材、线路的简略布局组织,还有必要契合抗搅扰规划准则。合理规划体系电路板,能有效地堵截搅扰的传达途径和按捺搅扰源,一起还能够进步灵敏元件(如单片机、数字IC、A/ D、D/ A 等简略被搅扰的目标) 的抗搅扰才能。首要采纳:
[1] 电路板合理分区,如强、弱信号,数字、模仿信号分区。尽或许使搅扰源(如电机,继电器) 远离灵敏元件。大功率器材尽量安置在电路板的边际。
[2] 布线时尽量削减回路环的面积,以下降感应噪声;电源线和地线要尽量粗,除减小压降外,更重要的是下降耦合噪声;连接线避免90度的折线,以削减高频噪声发射。
[3] 不必的单片机管脚,特别是中止的进口,不要悬空,一般要经过上拉电阻接电源。
[4] 电路板上每个IC 要并接一个0.01μF~0.1μF高频%&&&&&%,以削减%&&&&&%对电源的影响。
[5] 留意晶振布线。晶振与单片机引脚尽量接近,用地线把时钟区阻隔(圈) 起来,晶振外壳接地并固定。此办法可处理许多疑难问题。
[6] 用地线把数字区与模仿区阻隔,数字地与模仿地要别离,最后接于电源地一点聚集,呈“星形”状。
在单片机运用体系中,接地是按捺搅扰的重要办法。接地是否正确,接地是否结实,将直接影响到体系的正常作业。如能将接地和屏蔽正确结合起来运用,能够处理大多数的搅扰问题。
为了避免体系内部地线搅扰,在规划印刷电路板时可采纳如下办法:接地线尽量加粗。若接地线很细,接地电位则跟着电流的改动而改动,致使计算机的守时信号电平不稳,抗噪声功用变差。因而要根据经过电流的巨细决议地线的宽度,应在或许的状况下,尽量将接地线条加粗、加宽,最好不小于3mm,使它能经过3倍于印刷电路板上的答应电流。关于多级电路,规划时要考虑各级动态电流,留意接地阻抗彼此耦合的影响,作业频率低于1MHz 时选用一点接地,作业频率较高时采纳多点接地。
2.软件抗搅扰规划
在单片机运用体系中,虽然采纳了硬件抗搅扰办法,但因为搅扰信号产生的原因十分复杂,且有很大的随机性,因而在采纳硬件抗搅扰办法的基础上,采纳软件办法加以弥补。现扼要介绍如下几种软件抗搅扰办法。
① 建立软件圈套(Trap)
单片机遭到搅扰时,程序计数器PC值最简略受影响,PC值的改动是随机的,完全能够形成CPU脱离正确的指令次序去履行一些无界说地址中的内容,或进入数据区,把数据当作操作码来操控,使整个作业紊乱,体系失控。这种状况对体系来说,比某个数据犯错形成的损害要严峻得多。后者只触及某个功用不能完成或许产生误差,而前者则会使整个体系形成瘫痪。形成程序失控的原因并非程序规划自身的问题,而是因为外部的搅扰或单片机内部硬件瞬间毛病,使得程序计数器(PC)偏离了原定的值。例如,当履行完一条指令时,程序计数器PC应加数值1,但因为某种原因,使PC实践加2,这样,程序就会把操作数和操作码混杂起来,形成后边一系列的过错。
为了避免上述状况的产生,在软件规划时,能够选用建立软件圈套的办法加以克服。其具体做法是,在ROM或RAM中,每隔一些指令(如十条或二十条),把接连的几个单元置成“00”(空操作)。这样,当呈现程序失控时只需失控的单片机进入这很多的软件圈套中任何一个,都会被捕获,接连进行几个空操作。履行这些空操作后,程序主动康复正常,持续履行后边的程序。这种办法虽糟蹋一些内存单元,但能够确保程序不会跑飞。这种办法对用户是不透明的,亦即用户底子感觉不到程序是否产生过错操作。
② 拓荒多个存储区抗搅扰
为了避免RAM犯错,丢掉最重要的数据,关于重要的输入输出数据拓荒2~3个存储区一起保存。存取数据时,采纳比较表决法,以使数据去伪存真。