第 14章 MCS-51应用系统的可靠性及抗干扰设计系统的抗干扰性能的好坏是影响系统可靠性的重要因素。
14.1 干扰的来源影响单片机测控系统正常工作的信号称为 噪声,又称干扰 。
影响指令的正常执行,造成控制事故或控制失灵,在测量通道中产生了干扰,就会使 测量产生误差,电压的冲击有可能使系统遭到致命的破坏。
干扰一般都是 以脉冲的形式进入系统的,
窜入单片机系统的渠道主要有三条:
(1)空间干扰周围的电气设备如 发射机、中频炉、可控硅逆变电源 等发出的电干扰和磁干扰; 广播电台或通讯发射台 发出的电磁波; 空中雷电,甚至 地磁场 的变化也会引起干扰。会使单片机系统不能正常工作。
(2)供电系统干扰大功率设备,大感性负载设备的启停会使得电网电压大幅度涨落(浪涌),电网电压的欠压或过压常常达到额定电压的 15% 以上。有时长达几分钟、
几小时、甚至几天。由于大功率开关的通断,
电机的启停,电焊等原因,电网上常出现几百伏,甚至几千伏的尖脉冲干扰 。
(3)过程通道干扰开关量输入输出,模拟量输入输出必不可少 。
输入输出的信号线多至几百条甚至几千条,长度往往达几百或几千米,不可避免地将干扰引入单片机系统 。 当大的电气设备漏电,接地系统不完善,或者测量部件绝缘不好,会使通道中直接串入干扰信号;
各通道的线路如果同出一根电缆中或绑扎在一起,
各路间会通过电磁感应而产生瞬间的干扰,尤其是
0~ 15V的信号与交流 220V的电源线同套在一根长达几百米的管中其干扰更为严重 。 这种彼此感应产生的干扰其表现形式仍然是通道中形成干扰电压 。
这样,轻者会使测量的信号发生误差,重者会使有用的信号完全淹没 。 有时这种通过感应产生的干扰电压会达到几十伏以上,使单片机系统无法工作 。
三种干扰以来自供电系统的干扰最甚,其次为来自过程通道的干扰。对于来自空间的辐射干扰,需加适当的屏蔽及接地来解决 。
14.2 供电系统干扰及其抗干扰措施任何电源及输电线路都存在 内阻,正是这些内阻才引起了电源的噪声干扰 。 如果没有内阻,无论何种噪声都会被电源短路吸收,在线路中不会建立起任何干扰电压 。
单片机系统中最重要,危害最严重的干扰源来源于电源 。 在某些大功率耗电设备的电网中,经对电源检测发现,在 50周正弦波上叠加有很多 1000多伏的尖峰电压 。
14.2.1 电源噪声来源、种类及危害
( 1) 过压,欠压,停电,>1s;
( 2) 浪涌,下陷,1s>t>10ms;
( 3) 尖峰电压,t为 μs量级;
( 4) 射频干扰,t为 ns量级;
( 5) 其它:半周内的停电或者过欠压 。
过压、欠压、停电的危害是显而易见的,解决的办法是使用各种稳压器、电源调节器,对付暂短时间的停电则配置不间断电源( UPS)。
浪涌与下陷 是电压的快变化,如幅度过大也会毁坏系统 。 即使变化不大 ( 10% ~ 15% ),直接使用不一定会毁坏系统,但由于电源系统中接有反应迟缓的磁饱和或电子交流稳压器,往往会在这些变化点附近产生振荡,使得电压忽高忽低 。 如果有连续几个
10% ~ 15% 的浪涌或下陷,由此造成的振荡能产生
30% ~ 40% 的电源变化,而是系统无法工作,解决的办法是使用快速响应的交流电源稳压器 。
尖峰电压 持续时间很短,一般不会毁坏系统,但对单片机系统正常运行危害很大,会造成逻辑功能紊乱,
甚至冲坏源程序 。 解决办法是使用具有噪声抑制能力的交流电源调节器,参数稳压器或超隔离变压器 。
射频干扰 对单片机系统影响不大,一般加接 2~ 3节低通滤波器既可解决 。
14.2.2 供电系统的抗干扰设计单单一台高质量的电源不足以解决干扰和电压波动问题的,必须完整地设计整个电源供电系统。
逻辑电路是在低电压,大电流下工作,电源的分配就必须引起注意,譬如一条 0.1Ω 的电源线回路,
对于 5A的供电系统,就会把电源电压从 5V降到 4.5V,
以至不能正常工作 。 另一方面工作在极高频率下的数字电路,对电源线有高频要求,所以一般电源线上的干扰是数字系统最常出现的问题之一 。
电源分配系统首要的就是良好的接地,系统的地线必须能够吸收来自所有电源系统的全部电流 。 应该采用粗导线作为电源连接线,地线应尽量短而直接走线;对于插件式线路板,应多给电源线,
地线分配几个沿插头方向均匀分布的插针 。
在单片机系统中,为了提高供电系统的质量,防止窜入干扰,建议采用如图 14-2的形式。
所示的供电配置和如下措施:
( 1) 交流近线端加交流滤波器,可滤掉高频干扰,
如电网上大功率设备启停造成的瞬间干扰 。 滤波器市场上的产品有一级,二级滤波器之分,安装时外壳要加屏蔽并良好接地,进出线要分开,防止感应和辐射耦合 。 低通滤波器仅允许 50Hz交流电通过,对高频和中频干扰有良好的衰减作用 。
( 2) 要求高的系统加交流稳压器 。
( 3) 采用具有静电屏蔽和抗电磁干扰的隔离电源变压器 。
( 4) 采用集成稳压块两级稳压 。 目前市场上集成稳压块有许多种,如提供正电源的 7805,7812、
7820,7824以及提供负电压的 79系列稳压块,它们内部是多级稳压电路,采用两级稳压,效果好 。
例如主机电源先用 7809稳到 9V,再用 7805稳到 5V。
( 5) 直流输出采用大容量电解电容进行平滑滤波 。
( 6) 交流电源线与其他线尽量分开,减少再度耦合干扰 。 如滤波器的输出线上干扰已减少,应使其与电源进线级滤波器外壳保持一定距离,交流电源线与直流电源线即信号线分开走线 。
( 7) 电源线与信号线一般都通过地板下面走线,而且不可把两线靠得太近或互相平行,以减少电源信号线的影响 。
( 8) 在每块印刷版的电源与地之间并接退耦电容 。 即
5~ 10μF的电解电容和一个 0.01~ 1.0μF的电容,以消除直流电源与地线中的脉冲电流所造成的干扰 。
14.3 过程通道干扰的抑制措施 --隔离过程通道是系统输入、输出以及单片机之间进行信息传输的路径。过程通道的干扰主要采用光电隔离技术。
14.3.1 光电隔离的基本配置采用光电耦合器可以将单片机与前向、后向以及其他部分切断电路的联系,能有效地防止干扰从过程通道进入单片机。其原理如图 14-3所示。
光电耦合的主要优点是能有效抑制尖峰脉冲以及各种噪声干扰,从而使过程通道上的信噪比大大提高。
14.3.2 光电隔离的实现一,ADC,DAC与单片机之间的隔离对 CPU数据总线进行隔离是一种十分理想的方法,全部 I/O端口均被隔离。但是,由于在 CPU数据总线上是高速( μS级)双向传输,这就要求频率响应为 MHz级的隔离器件,而这种器件目前较难买到,
价格较高。因此,这种方法采用的不多。
通常采用下列方法将 ADC,DAC与单片机之间的电气联系切断。
1.对 A/D,D/A进行模拟隔离通常采用 隔离放大器 对模拟量进行隔离 。 但所用的隔离型放大器必须满足 A/D,D/A变换的精度和线性要求 。 例如,如果对 12位 A/D,D/A变换器进行隔离,其隔离放大器要达到 13位,甚至 14位精度,
如此高精度的隔离放大器,价格昂贵 。
2.在 I/O与 A/D,D/A之间进行数字隔离这种方案最经济,也称数字隔离。 A/D变换时,先将模拟量变为数字量,对数字量进行隔离,然后再送入单片机。 D/A变换时,先将数字量进行隔离,
然后进行 D/A变换。这种方法的优点是方便、可靠、
廉价,不影响 A/D,D/A的精度和线性度。缺点是速度不高 。 如果用廉价的光电隔离器件,最大转换速度约为每秒 3000~ 5000点,这对于一般工业测控对象
( 如温度,湿度,压力等 ) 已能满足要求 。
图 14-4所示是实现 数字隔离 的一个例子。
将输出的数字量经锁存器锁存后,驱动光电隔离器,
经光电隔离之后的数字量被送到 D/A变换器。但要注意的是,现场电源 F+5V,现场地 FGND和系统电源
S+ 5V及系统地 SGND,必须分别由两个隔离电源供电。还应指出的是,光电隔离器件的数量不能太多,
由于光电隔离器件的发光二极管与受光三极管之间存在分布电容。当数量较多时,必须考虑将并联输出改为串联输出的方式,这样可使光电器件大大减少,且保持很高的抗干扰能力,但传送速度下降。
二、开关量隔离常用的开关量隔离器件有继电器,光电隔离器,光电隔离固态继电器 ( SSR) 。
用继电器对开关量进行隔离时,要考虑到 继电器线包的反电动势的影响,驱动电路的器件必须能耐高压 。
为了吸收继电器线包的反电动势通常在线包两端并联一个二极管 。 其触点并联一个消火花电容器,容量可在 0.1~0.047μF之间选择,耐压视负荷电压而定 。
对于开关量的输入,一般用电流传输的方法。此方法抗干扰能力强,如图 14-5所示。
R1为限流电阻,D1,R2为保护二极管和保护电阻。当外部开关闭合时,有电源 E产生电流,使光电二极管导通,采用不同的 R1,R2值以保证良好的干扰能力。
固态继电器 代替机械触点的继电器是十分优越的。固态继电器是将发光二极管与可控硅封装在一起的一种新型器件。当发光二极管导通时,可控硅被触发而接通电路。固态继电器视触发方式不同,可分为过零触发与非过零触发两大类。过零触发的固态继电器,本身几乎不产生干扰,这对单片机控制是十分有利的,但造价是一般继电器的 5~ 10倍。
14.4 空间干扰及抗干扰措施空间干扰 主要指电磁场在线路,导线,壳体上的辐射,
吸收和解调 。 干扰来自应用系统的内部和外部,市电电源线是无线电波的媒介,而在电网中有脉冲源工作时,它又是辐射天线,因而任一线路,导线,
壳体等在空间均同时存在辐射,接收,调制 。
解决空间干扰时,首先要正确判断是否是空间干扰,
可在系统供电电源入口处接入 WRY型微机干扰抑制器,观察干扰现象是否继续存在,如干扰现象继续存在则可认为空间干扰 。 空间干扰不一定是来自系统外部,空间干扰的抗干扰设计主要是地线系统设计,系统的屏蔽与布局设计 。
14.4.1 接地技术一,接地种类有 两大类接地 。一类是为人身或设备安全目的,而把设备的外壳接地,这称之为 外壳接地或安全接地 ;
另外一类接地是提供一个公共的电位参考点,这种地称为 工作接地 。
1.外壳接地外壳接地是真正的与大地连接,以使漏到机壳的电荷能及时泄放到地球上去,这样才能确保人身和设备的安全。外壳接地的接地电阻应当尽可能低,因此在材料及施工方面均有一定的要求。外壳接地是十分重要的,但实际上往往又为人们所忽视。
2.工作接地工作接地是电路工作需要而进行的。在许多情况下,工作地不与设备外壳相连,因此工作地的零电位参考点(及工作地)相对地球的大地是浮空的。所以也把工作地称为,浮地,。
二、接地系统正确、合理地接地,是单片机应用系统抑制干扰的主要方法。
在单片机应用系统中,前述两大类地按单元电路的性质又可分为以下几种接地:
( 1)数字地(又称逻辑地),为逻辑电路的零电位。
( 2)模拟地,为 A/D转换、前置放大器或比较器的零电位。
( 3)功率地,为大的电流网络部件的零电位。
( 4)信号地,通常为传感器的地。
( 5)小信号前置放大器的地。
( 6)交流地,交流 50Hz地线,这种地线是噪声地。
( 7)屏蔽地,为防止静电感应和磁场感应而设置的地。
以上这些地线如何处理,是浮地还是接地?是一点地接还是多点接地?下面就来讨论它们。
1.机壳接地与浮地的比较全机浮空,即机器各个部分全部与大地浮置起来 。 这种方法有一定的抗干扰能力,但要求机器与大地的绝缘电阻不能小于 50MΩ,且一旦绝缘下降便会带来干扰;另外,浮空容易产生静电,导致干扰 。
另一种,就是测控系统的机壳接地,其余部分浮空,如图 14-6所示。
浮空部分应设置必要的屏蔽,例如双层屏蔽浮地或多层屏蔽 。 这种方法干扰能力强,而且安全可靠,但工艺较复杂 。 两种方法比较,
后者较好,并为越来越多的人所采用 。
2.一点接地与多点接地的应用原则一般,低频( 1MHz以下)电路应一点接地,如图 14-7所示。
高频( 10MHz以上)电路应多点就近接地。因为,在低频电路中,布线和元件间的电感较小,而接地电路形成的环路,对干扰的影响却很大,因此应一点接地;对于高频电路,
地线上具有电感,因为增加了地线阻抗,同时各地线之间产生了电感耦合。当频率甚高时,特别是当地线长度等于 1/ 4波长的奇数倍时,地线阻抗就会变得很高,这时地线变成了天线,可以向外辐射噪声信号。
单片机测控系统的工作频率大多较低,对它起作用的干扰频率也大都在 1MHz以下,故宜采用一点接地。在 1MHz~ 100MHz之间,如用一点接地,其地线长度不得超过波长的 1/
20。否则应该多点接地。
3.交流地与信号地不能共用因为在一段电源地线的两点间会有数毫伏,甚至几伏电压,对低电平信号电路来说,这是一个非常严重的干扰 。因此,交流地和信号地不能共用,图 14-8为一种不正确的接法。
4.数字地和模拟地数字地通常有很大的噪声且电平的跳跃会造成很大的电流尖峰。所有的模拟公共导线(地)
应该与数字公共导线(地)分开走线,然后只是一点汇在一起。特别是在 ADC和 DAC电路中,尤其要注意地线的正确连接,否则转换将不准确。因此 ADC,DAC和采样保持芯片都提供了独立的模拟地和数字地,他们分别有相应的引脚,必须将所有的模拟地和数字地分别相连,然后模拟(公共)地与数字(公共)地仅在一点上相连接,在此连接点外,
在芯片和其他电路中且不可再有公共点,如图 14-9所示。
5.微弱信号模拟地的接法
A/D转换器在采集 0~ 50mV微小信号时,模拟地的接法极为重要。为提高抗共模干扰的能力,
可用三线采样双层屏蔽浮地技术。这种三线采样双层屏蔽技术是抗共模干扰最有效的方法。
6.功率地这种地线电流大,地线应粗些,且应与小信号分开走线。
14.4.2 屏蔽技术高频电源、交流电源、强电设备产生的电火花甚至雷电,都能产生电磁波,从而成为电磁干扰的噪声源。当距离较近时,电磁波会通过分布电容和电感耦合到信号回路而形成电磁干扰;当距离较远时,电磁波则以辐射形式构成干扰。
单片机使用的振荡器,本身就是一个电磁干扰源,同时也由于它又极易受其他电磁干扰的影响,破坏单片机的正常工作。
屏蔽可分为以下三类:
( 1)电磁屏蔽,防止电磁场的干扰;
( 2) 磁屏蔽,防止磁场的干扰;
( 3) 电场屏蔽,防止电场的耦合干扰 。
电磁屏蔽 主要是防止高频电磁波辐射的干扰,
以金属板,金属网或金属盒构成的屏蔽体能有效地对付电磁波的干扰 。 屏蔽体以反射方式和吸收方式来削弱电磁波,从而形成对电磁波的屏蔽作用 。
磁场屏蔽 是防止电极,变压器,磁铁,线圈等的磁感应和磁耦合,使用高导磁材料做成屏蔽层,是磁路闭合,一般接大地 。 当屏蔽低频磁场时,选择磁钢,坡莫合金,铁等导磁率高的材料;
而屏蔽高频磁场则应选择铜,铝等导电率高的材料 。
电场屏蔽 是为了解决分布电容问题一般是接大地,
这主要是指单层屏蔽 。 对于双层屏蔽,例如双变压器,原边屏蔽接机壳 ( 即接大地 ),副边屏蔽接到浮地的屏蔽盒 。
当一个接地的放大器与一个不接地的信号源相连时,连接电缆的屏蔽层应接到放大器公共端 。 反之,
应接信号源的公共端 。 高增益放大器的屏蔽层应接到放大器的公共端 。
为了有效发挥屏蔽体的屏蔽作用,还应注意屏蔽体的接地问题 。 为了消除屏蔽体与内部电路的寄生电容,屏蔽体应按,一点接地,的原则接地 。
14.5 反电势干扰的抑制在单片机的应用系统中,常使用具有较大电感量的元件或设备,诸如继电器,电动机,
电磁阀等 。 当电感回路的电流被切断时,会产生很大的反电势而形成噪声干扰 。 这种反电势甚至可能击穿电路中晶体管之类的器件,
反电势形成的噪声干扰能产生电磁场,对单片机应用系统中的其它电路产生干扰 。 对于反电势干扰,可采用如下措施:
( 1)如果通过电感线圈的是直流电流,可在线圈两端并联二极管和稳压管,如图 14-10(a)
在稳定工作时,并联支路被二极管 D阻断而不起作用;当三极管 T由通道变为截止时,在电感线圈两端产生反电势 e。 此电势可在并联支路中流通,因此 e的幅值被限制在稳压管 DW的工作电压范围之内,并被很快消耗掉,从而抑制了反电势的干扰 。 使用时 DW的工作电压应选择得比外加电源高些 。
如果把稳压管换为电阻,同样可以达到抑制反电势的目的,如图 14-10( b) 所示,
因此也适用于直流驱动线圈的电路 。 在这个电路中,电阻的阻值范围可以从几欧姆到几十欧姆 。 阻值太小,反电势衰减得慢;而阻值太大又会增大反电势的幅值 。
( 2)反电势抑制电路也可由电阻和电容组成,
如图 14-11所示。
适当选择 R,C参数,也能获得较好的耗能效果。这种电路不仅适用于交流驱动的线圈,
也适用于直流驱动的线圈。
( 3)反电势抑制电路不但可以接在线圈的两端,也可以接在开关的两端,例如继电器,
接触器等部件在操作时,开关会产生较大的火花,必须利用 RC电路加以吸收,如图
14-12所示。对于图 14-12( b),一般 R取
1~ 2KΩ,C取 2.2~ 4.7μF 。
14.6 印刷电路板的抗干扰设计印刷电路板 ( 也称印制版 ) 是单片机系统中器件,信号线,电源线的高密度集合体,
印刷电路板设计的好坏对抗干扰能力影响很大,故印刷电路板设计决不单是器件,线路的简单布局安排,还必须符合抗干扰的设计原则 。
14.6.1 地线及电源线设计一、地线宽度加粗地线能降低导线电阻,是它能通过三倍于印制板上的允许电流。如有可能,地址宽度应在 2~ 3mm以上。
二、接地线构成闭环路接地线构成闭环路能明显地提高抗噪声能力。
闭环形状能显著地缩短线路的环路,降低线路阻抗,从而减少干扰。但要注意环路所包围的面积越小越好。
三、印刷电路板分区集中并联一点接地当同一印制板上有多个不同功能的电路时,可将同一功能单元的元器件集中于一点接地,
自成独立回路。这就可使地线电流不会流到其它功能单元的回路中去,避免了对其它单元的干扰。与此同时,还应将各功能单元的接地块与主机的电源地相连接,如图 14-13所示。
这种接法称为“分区集中并联一点接地”。为了减小线路阻抗,地线和电源线要采用大面积汇流排。
数字地和模拟地分开设计,在电源处两种地线相连,且地线应尽量加粗。
四、电源线的布置电源线除了要根据电流的大小,尽量加粗导体宽度外,采取使电源线、地线的走向与数据传递的方向一致,将有助于增强抗噪声能力。
14.6.2 去耦电容的配置印制板上装有多个集成电路,而当其中有些元件耗电很多时,地线上会出现很大的电位差 。 抑制电位差的方法是在各个集成器件的电源线和地线间分别接入去耦电容,以缩短开关电流的流通途径,降低电阻降压 。 这是印制板设计的一项常规做法 。
一,电源去耦电源去耦就是在每个印制板入口外的电源线与地线之间并接退耦电容。并接的电容应为一个大容量的电解电容( 10~ 100μF ) 和一个 0.01~ 0.1μF 的非电解电容。可以把干扰分解成高频干扰和低频干扰两部分,并接大电容为了去掉低频干扰成分,并接小电容为了去掉高频干扰部分 。 低频去耦电容用铝或钽电解电容,高频去耦电容采用自身电感小的云母或陶瓷电容 。
二、集成芯片去耦每个集成芯片都应安置一个 0.1μF 的陶瓷电容器,安装每个芯片的去耦电容时,必须将去耦电容安装在本集成芯片的 Vcc和 GND线之间,否则便失去了抗干扰作用 。
如遇到印刷电路板空隙小装不下时,可每 4~ 10个芯片安置一个 1~ 10μF 的限噪声用的钽电容器 。 这种电容器的高频阻抗特别小,在 500Hz~ 200MHz范围内阻抗小于 1Ω,而且漏电流很小 ( 0.5μA 以下 ) 。
对于抗噪声能力弱,关断电流大的器件和 ROM,RAM存储器,应在芯片的电源线 Vcc和地线 ( GND) 间直接入去耦电容 。
14.6.3 印制板的布线的抗干扰设计印制板的布线对抗干扰性能有直接影响 。 前面已经介绍了一些布线原则,没有介绍到一些布线原则,下面予以补充说明 。
( 1)如果印制板上逻辑电路的工作速度低于 TTL的速度,导线条的形状无什么特别要求;若工作速度较高使用高速逻辑器件,用作导线的铜箔在 90°转弯处的导线阻抗不连续,可能导致反射干扰的发生,
所以宜采用图 14-14中右方的形状,把弯成 90°的导线改成 45°,这将有助于减少反射干扰的发生。
( 2) 不要在印制板中留下无用的空白铜箔层,因为它们可以充当发射天线或接收天线,可把就近它们接地 。
( 3) 双面布线的印制板,应使双面的线条垂直交叉,
已减少磁场耦合,有利于抑制干扰 。
( 4) 导线间距离要尽量加大 。 对于信号回路,印制铜箔条的相互距离要有足够的尺寸,而且这个距离要随信号频率的升高而加大,尤其是频率极高或脉冲前言十分陡峭的情况更要注意,只有这样才降低导线之间分布电容的影响 。
( 5)高电压或大电流线路对其它线路更容易形成干扰,低电平或小电流信号线路容易受到感应干扰,
布线时使两者尽量相互远离,避免平行铺设,采用屏蔽等措施。
( 7) 所有线路尽量沿直流地铺设,尽量避免沿交流地铺设 。
( 8) 电源线的布线除了要尽量加粗导体宽度外,采取使电源线,地线的走向与数据传递的方向一致,
将有助于增强抗噪声能力 。
( 9)走线不要有分支,这可避免在传输高频信号导致反射干扰或发生谐波干扰,如图 14-15所示
14.7软件抗干扰措施单片机系统在噪声环境下运行,除了前面介绍的各种抗干扰的措施外,还可采用软件来增强系统的抗干扰能力 。 本节介绍几种常用软件抗干扰的方法 。
14.7.1 软件抗干扰的一般方法软件抗干扰技术是当系统受干扰后使系统恢复正常运行或输入信号受干扰后去伪求真的一种辅助方法。因此软件抗干扰是被动措施,
而硬件抗干扰是主动措施。但由于软件设计灵活,节省硬件资源,所以软件抗干扰技术已得到较为广泛的应用。软件抗干扰技术所研究的主要内容如下:
(1)软件滤波。采用软件的方法抑制叠加在输入信号上噪声的影响,可以通过软件滤波剔除虚假信号,
求取真值。
(2)开关量的输入/输出抗干扰设计。可采用对开关量输入信号重复检测,对开关量输出口数据刷新的方法。
(3)由于 CPU受到干扰,程序计数器 PC的状态被破坏,
导致程序从一个区域跳转到另一个区域,或者程序在地址空间内,乱飞,,或者进入死循环。因此必须尽可能早的发现并采取措施,使程序纳入正轨。为使,乱飞,的程序被拦截或程序摆脱
,死循环,可采用指令冗余、软件陷阱或,看门狗,等技术。
下面介绍上述的各种软件抗干扰技术。
14.7.2 软件滤波采用软件也可以实现滤波,完成模拟滤波器类似的功能,就是数字滤波。
一、算术平均滤波法对一点数据连续取 n个值进行采样,然后算术平均。
这种方法适用于对一般具有随机干扰的信号进行滤波。这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动。这种滤波法当 n值较大时,信号的平滑度高,但是灵敏度低;当 n值较小时,平滑度低,但灵敏度高。应视具体情况选取 n,以使既节约时间,又滤波效果好。对于一般流量测量,通常取 n=12; 若为压力,则取 n= 4。
一般情况下 n取 3~ 5次平均即可。
二、滑动平均滤波法上面介绍的算术平均滤波法,每计算一次数据需要测量 N次。对于测量速度较慢或要求数据计算速度较快的实时控制系统,上述方法无法使用。下面介绍一种只需测量一次,就能得到当前算术平均值的方法 --滑动平均滤波法。
滑动平均滤波法是把 n个采样值看成一个队列,
队列的长度为 n,每进行一次采样,就把采样值放入队尾,而扔掉原来队首的一个采样值,
这样在队列中始终有 n个,最新,采样值。
对队列中的 n个采样值进行平均,就可以得到新的滤波值。
滑动平均滤波法对周期性干扰有良好的抑制作用,平滑度高,灵敏度低;但对偶然出现的脉冲性干扰的抑制作用差,不易消除由于脉冲干扰引起的采样值的偏差。因此它 不适用于脉冲干扰比较严重的场合,而 适用于高频振荡系统 。通常观察不同 N值下滑动平均的输出响应来选取 N值,以便既少占有时间,
又能达到最好滤波效果,其工程经验值为:
参数 温度 压力 流量 液面
n值 1~ 4 4 12 4~ 12
三、中位值滤波法中位值滤波法就是对某一被测参数接连采样 n次
(一般 n取奇数),然后把 n次采样值按大小排列,
取中间值为本次采样值。中位值滤波能有效地克服因偶然因素引起的波动干扰。 对温度、液位等变化缓慢的被测参数采用此法能收到良好的滤波效果 。但对于流量、速度等快速变化的参数一般不宜采用中位值滤波法。
中位值滤波程序设计的实质是,首先把 n个采样值从小到大或从大到小进行排序,然后再取中间值 。
n个数据按大小顺序排队的具体做法是采用,冒泡法,( 排序程序设计见第 4章 ) 进行比较,直到最大数沉底为止 。 然后再重新进行比较,把次大值放到 n-1位,依此类推,则可将 n个数从小到大顺序排列 。
四、去极值平均值滤波法前面介绍的算术平均与滑动平均滤波法,在脉冲干扰比较严重的场合,则干扰将会,平均,到结果中去,
故上述两种平均值法不易消除由于脉冲干扰而引起的误差。这时可采用 去极值平均值滤波法。
去极值平均滤波法的思想是:连续采样 n次后累加求和,
同时找出其中的最大值与最小值,再从累加和中减去最大值和最小值,按 n-2个采样值求平均,即可得到有效采样值 。 这类似于体育比赛中的去掉最高,
最低分,再求平均分的评分办法 。
为使平均滤波算法简单,n-2应为 2,4,6,8或 16,故
n常取 4,6,8,10或 18。 具体做法有两种:对于快变参数,先连续采样 n次,然后再处理,但要在
RAM中开辟出 n个数据的暂存区;对于慢变参数,
可一边采样,一边处理,而不必在 RAM中开辟数据暂存区 。 实践中,为了加快测量速度,一般 n取 4。
14.7.3 开关量输入/输出软件抗干扰设计如果干扰只作用在系统的 I/O通道上,则可用如下方法减小或消除其干扰。
一、开关量输入软件抗干扰措施干扰信号多呈毛刺状,作用时间短。利用这一特点,我们采用采集某一状态信号时,
可多次重复采集,直到连续两次或多次采集结果完全一致时才可视为有效。若相邻的检测内容不一致,或多次检测结果不一致,则是伪输入信号。可停止采集,给出报警信号。
由于状态信号主要来自各类开关型状态传感器,对这些信号采集不能用多次平均方法,
必须绝对一致才行。
在满足实时性要求的前提下,如果在各次采集状态信号之间增加一段延时,效果就会更好,就能对抗较宽时间范围的干扰。延时时间在 10~ 100μ S左右。
对于每次采集的最高次数限制和连续相同次数均可按实际情况适当调整。
二、开关量输出软件抗干扰措施在单片机系统的输出信号中,有很多是驱动各种警报装置,各种电磁装置等的状态驱动信号 。 对这类信号的抗干扰有效输出方法是重复输出同一个数据,
只要有可能,重复周期应尽量短 。 外部设备接收到一个被干扰的错误信息后,还来不及作出有效的反映,一个正确的输出信息又到来,就可以及时地防止错误动作的产生 。
在执行输出功能时,应该将有关输出芯片的状态也一并重复设置。例如 8155芯片和 8255芯片常用来扩展输入输出功能,很多外设通过它们来获得单片机的控制信息。这类芯片均应进行初始化编程,已明确各端口的功能。
由于干扰的作用,有可能在无意中将芯片的编程方式改变。为了确保输出功能正确实现,
输出功能模块在执行具体的数据输出之前,
应该先执行对芯片的初始化编程指令,再输出有关数据。
14.7.4 指令冗余及软件陷阱单片机系统由于干扰而使运行程序发生混乱、
导致程序乱飞或陷入死循环时,采取使程序纳入正规的措施,如指令冗余、软件陷阱等。
一、指令冗余
CPU取指令是先取操作码,再取操作码数。当单片机系统受干扰出现错误时,程序便脱离正常轨道,乱飞,。当乱飞到某双字节指令,若取指令时刻落在操作数上,误将操作数当作操作码,程序有可能出错。若乱飞到三字节指令,出错机率更大。在关键的地方人为地插入一些单字节指令或将有效单字节指令重写称为 指令冗余 。
指令冗余无疑会降低系统的效率,通常是 在双字节指令和三字节指令后插入两个字节以上
,NOP”指令,可保护其后的指令不被拆散。
因此,常在一些对程序流向起决定作用的指令之前插入两条 NOP指令,此类指令有,RET、
RETI,ACALL,LCALL,SJMP,AJMP,LJMP、
JZ,JNZ,JC,JNC,JB,JNB,JBC,CJNE、
DJNZ等,以保证乱飞的程序迅速纳入正轨。。
在某些对系统工作状态至关重要的指令(如
SETB EA之类)前也可插入两条 NOP指令。
指令冗余措施可以减少程序乱飞的次数,使其很快纳入程序轨道,但这并不能保证在失控期间不干坏事,更不能保证程序纳入正常轨道后就太平无事了。程序的运行事实上已经偏离了正常顺序,有可能做着它现在不该做的事情。解决这个问题还必须采用软件容错技术(限于篇幅,本书不作介绍),使系统的误动作减少,并消灭重大误动作。
二、软件陷阱所谓 软件陷阱,就是一条引导指令,强行将乱飞的程序引向一个指定的地址,在那里有一段专门对程序出错进行处理的程序 。 如果我们把这段程序的入口标号称为 ERR的话,软件陷阱即为一条 LJMP ERR指令 。 为加强其捕捉效果,一般还在它前面加两条 NOP指令 。
NOP
NOP
LJMP ERR
软件陷阱一般安排在下列 4种地方:
( 1)未使用的中断向量区,0003H~002FH
当干扰使未使用的中断开放,并激活这些中断时,就会进一步引起混乱。如果我们在这些地方布上陷阱,
就能及时捕捉到错误中断。例如:系统共使用三个中断:,T0,T1,它们的中断子程序分别为
PGINT0,PGT0,PGT1,建议按如下方式来设置中断向量区:
ORG 000H
0000 START,LJMP MAIN ; 引向主程序入口
0003 LJMP PGINT0 ; 中断正常入口冗余和陷阱 0006 NOP
0007 NOP
0008 LJMP ERR
000B LJMP PGT0 ; T0中断正常入口冗余和陷阱 0016 NOP
0017 NOP
0018 LJMP ERR
001B LJMP PGT1 ; T1中断正常入口冗余和陷阱 001E NOP
001F NOP
0020 LJMP ERR
0023 LJMP ERR ; 未使用串行口中断,设陷阱冗余和陷阱 0026 NOP
0027 NOP
0028 LJMP ERR

0030 MAIN,┇ ; 主程序

从 0030H开始再编写正式程序
( 2)未使用的 EPROM空间所编写的程序,很少有将 EPROM其全部用完的情况。
对于剩余 EPROM空间,一般均维持原状态( FFH),
对于 MCS- 51指令系统来讲,FFH是一条单字指令
( MOV R7,A) 程序弹飞到这一区域后将顺流而下,
不再跳跃(除非受到新的干扰)。这时只要每隔一段设置一个陷阱,就一定能捕捉到乱飞的程序。
软件陷阱一定要指向处理过程 ERR。 我们可以将 ERR安排在 0030H开始的地方,这样我们就可以用 00 00 02
00 30五个字节作为陷阱来填充 EPROM中的未使用空间,或者每隔一段设置一个陷阱( 02 00 30),其它单元保持 FFH不变
( 3)表格有两类表格,一类是数据表格,供 MOVC A,@A+PC指令或 MOVC A,@A+DPTR
指令使用,其内容完全不是指令。另一类是跳转表格,
供 JMP @A+ DPTR指令使用,其内容为一系列的三字节指令 LJMP或两字节指令 AJMP。 由于表格内容和检索值有一一对应关系,在表格中间安排陷阱将会破毁其连续性和对应关系,我们只能在表格的最后安排五字节陷阱( NOP,NOP,LJMP ERR)。 由于表格区一般较长,安排在最后的陷阱不能保证一定捕捉住乱飞的程序,有可能在中途再次飞走。这时只好指望别处的陷阱或冗余指令来制服它了。
( 4)程序区程序区是由一串串执行指令构成的,我们不能在这些指令传中间任意安排陷阱,否则影响正常执行程序。但是,在这些指令串之间常有一些断裂点,正常执行的程序到此便不会继续往下执行了,这类指令有 LJMP,SJMP,AJMP、
RET,RETI。 这时 PC的值应发生正常跳变。如果还要顺次往下执行,必然就出错了。我们在这种地方安排陷阱之后,就能有效地捕捉住它,
而又不影响正常执行的程序流程。例如,在一个根据 累加器的正、负、零情况进行三分支的程序中,软件陷阱的安置方式如下:
JNZ L1 ; A中内容非零,跳 L1程序段
┅┅┅ ; A中内容为零的处理程序段
AJMP L3 ; 断裂点冗余指令
NOP
NOP
LJMP ERR ; 软件陷阱
L1,JB ACC.7,L2
┅┅┅
LJMP L3 ; 断裂点冗余指令
NOP
NOP
LJMP ERR ; 软件陷阱
L2,┅┅┅
L3,MOV A,R2 ; 取结果
RET
冗余指令
NOP
NOP
LJMP ERR ; 软件陷阱由于软件陷阱都安排在正常程序执行不到的地方,故不影响程序执行效率。在当前 EPROM容量不成问题的条件,还是多多设置陷阱有益。
14.8,看门狗,技术和掉电保护本节讨论如何解决程序陷入,死循环,问题和单片机系统电源掉电数据的保护问题 。
14.8.1,看门狗,和掉电保护的实现
MCS-51的 PC受到干扰而失控,引起程序乱飞,可能会使程序陷入,死循环,。指令冗余和软件陷阱技术不能使失控的程序摆脱,死循环,的困境,这时系统将完全瘫痪。如果操作人员在场,可按下人工复位按钮,强制系统复位。但操作人员不可能一直监视着系统,即使监视着系统,也往往是在引起不良后果之后才进行人工复位。能不能不要人来监视,
使系统摆脱,死循环,,重新执行正常的程序呢?
这可采用,看门狗,( Watchdog) 技术来解决这一问题。
,看门狗,技术就是使用一个计数器来不断计数,监视程序循环运行 。 若发现时间超过已知的循环设定时间,则认为系统陷入了,死循环,,这时计数器溢出,然后强迫系统复位,在复位入口 0000H处安排一段出错处理程序,使系统运行纳入正轨 。
另外,在单片机系统运行时,有可能会发生电源掉电的意外情况,一些重要的数据可能丢失 。 这时要系统应首先检测到电源的变化,
然后通过切换电路把备用电池接入系统,以保护 RAM中的数据不丢失 。
目前,看门狗,电路和掉电保护电路,都已经集成在一片微处理器监控器芯片中 。 因此,
MCS-51只需扩展一片微处理器监控器芯片即可 。 这类芯片集成化程度高,功能齐全,具有广阔的应用前景 。 在单片机应用系统中使用微处理器监视器芯片,可以大大提高单片机应用系统的抗干扰能力和可靠性 。 本节介绍美国 MAXIM公司的微处理器监控器芯片
MAX690A/MAX692A以及与 MCS-51的接口设计 。
与 MAX690A/MAX692A功能相类似的芯片,还有
MAX703~709,MAX813L,MAX791等 。
14.8.2 微处理器监控器 MAX690A简介一,MAX690A/MAX692A简介一,MAX690A/MAX692A简介
MAX690A/MAX692A是美国 MAXIM公司的产品,具有以下性能:
( 1) 具有 Watchdog电路,进入死循环的时间间隔超过 1.6s时,将产生一个复位输出 。
( 2) 具有备用电池切换电路,备用电池可供电给 RAM( CMOS) 芯片,μP( CMOS) 或其他低功耗逻辑电路 。
( 3) 在微处理器上电,掉电及低压供电时,
产生一个复位输出信号 。
( 4) 可用于低电平检测 。
MAX690A与 MAX692A的不同点在于复位门限电平不同 。
当电源电压低于 4.65V时,MAX690A产生一个复位脉冲; MAX692A是在电源电压低于 4.4V,才产生一个复位脉冲 。
MAX690A的主要电气参数为:
( 1)工作电压 Vcc,1.2~ 5.5V;
( 2) 静态电流 200μA(典型值 );
( 3)备用电池方式静态电流,5μA;
( 4) 输出电压 VOUT(IOUT=50mA),Vcc –0.25V;
( 5) 复位脉冲宽度 TRS,200ms(典型值 );
( 6) Watchdog定时时间,1.6s(典型值 );
( 7)复位门限电平,MAX690A 4.65V;
MAX692A 为 4.40V。 MAX690A/MAX692A封装及引脚如图 14-16所示。
三、电路工作原理
MAX690A/MAX692A内部原理框图如图 14-17所示,
包括复位电路,Watchdog电路、掉电比较和备用电池切换电路四部分。
1.复位电路微处理器在上电、掉电及低压供电时,监控器产生复位脉冲信号,这可保证微处理器实现上电自动复位;
当供电电压过低时,防止 CPU失控。
电源电压 Vcc上升到 1V时,变为低电平。随着 Vcc的继续提高,一直保持低电平。当 Vcc高于复位门限电平时,并不马上变为高电平,而是要滞后一个复位脉冲宽度(约 200ms) 后,再变为高电平。
当 Vcc低于复位门限电平时,马上变为低电平;即使以后 Vcc恢复且高于复位门限电平,也不马上变为高电平,而是要延时一个复位脉冲宽度。
掉电时,Vcc只要低于复位门限电平,RESET立即变为低电平。
2,Watchdog电路
Watchdog电路是计数器式定时电路 。 在 WDI端输入一个脉冲 (TTL电平,宽度可小至 50ns),定时器开始计数 。 若 WDI脚悬空或接至高阻态输出的缓冲器上,定时器则停止计数,并且清零 。 当定时器启动后,若在 1.6s内没有向 WDI
端输入脉冲,监控器将输出一个复位信号,
信号变低,同时定时器被清零 。 只要为低电平,定时器将一直停止工作 。
Watchdog电路用于使 CPU摆脱死循环状态。
3.掉电比较器用于低电平的检测,若电压过低,发出一个低电平信号(端)。掉电比较器是一个完全独立的电路,也可以用来完成其他功能。 PFI输入端的电压与内部一个 1.25V的基准电压相比较,当 PFI端电压低于 1.25V时,变为高电平。
4.备用电池切换电路当系统掉电或供电电压过低时,有时需要保存
RAM中的内容,在 VBATT端接上备用电池,
MAX690A就会在掉电时自动为 RAM提供电源 。
切换电路原理如图 14-18所示。图中开关
SW1~SW4( 为 5 Ω 的 PMOS功率开关)的状态受
Vcc和 VBATT控制,如表 13.6所示。
由表 14-1和图 14-18可知,当 Vcc高于复位门限电平,或低于复位门限电平但高于 VBATT时,
VOUT由 Vcc供电;当 Vcc低于复位门限电平,
且又低于 VBATT时,VOUT由 VBATT供电 。
表 14-1 开关状态表当 VOUT由 VBATT供电时,芯片进入备用电池工作方式 。 当 Vcc稍低于 VBATT时,VBATT处流出电流典型值为 30μ A; 当 Vcc低于 VBATT电压 1V时,内部电池转换比较器停止工作,电源电流降至 1μ A。
在备用电池工作方式下,各输入,输出脚状态为:掉电比较器不工作,为低电平,为低电平,Watchdog定时器不工作 。
14.8.3 MCS-51与微处理器监视器
MAX690A/MAX692A的接口
MCS-51与 MAX690A自动监控的接口电路如图 14-
19所示 。
合理设计 R1,R2的值,使得 +5V电压跌落到某电压值(如 4.5V),PFI的输入电压低于 1.25V
时,输出低电平,作为 CPU的中断输入信号通知单片机,使之进行一些必要的处理(如保存某些重要数据,关掉 LED显示器等)。 R1、
R2选取说明如下:
??????????????
可取 R1=1kΩ,R2=2.6kΩ 。 当 +5V电压跌落到 4.5V时,
VR =1.25V,再继续跌落,便为低电平 。
单片机正常工作时,P1.0口定时 ( 小于 1.6s) 改变 WDI
输入端的电平,使 Watchdog电路不发出复位信号 。
当由于某种严重干扰而出现,死循环,时,单片机将不能定期改变 WDI电平,Watchdog电路便会在 1.6s
后产生一个复位信号,使单片机复位 。 待经过 200ms
复位脉冲后,单片机复位结束,程序从 0000H开始重新执行,摆脱死循环,保证了系统的正常运转 。
图中的 N为手动复位按钮,由于 MAX690A/MAX692A在系统上电时能自动发生复位信号,可使手动复位按钮的复位时间小于 200ms。