1、范立南 李雪飞 编著机械工业出版社计算机控制技术第7章 计算机控制系统的可靠性与抗干扰技术第7章 计算机控制系统的可靠性与抗干扰技术7.1 可靠性与抗干扰技术概述7.2 计算机控制系统的硬件抗干扰技术7.3 计算机控制系统的接地和电源保护技术7.4 计算机控制系统的软件抗干扰技术7.1 可靠性与抗干扰技术概述可靠性与抗干扰技术概述7.1.1 干扰窜入计算机控制系统的主要途径干扰窜入计算机控制系统的主要途径干扰窜入计算机控制系统的主要途径如图7-1所示。 (1)空间感应;(2)过程通道窜入的干扰;(3)电源系统窜入的干扰(4)地电位波动窜入的干扰;(5)反射波干扰。图7-1 干扰窜入单片机系统主
2、要途径示意图7.1 可靠性与抗干扰技术概述可靠性与抗干扰技术概述1空间感应的干扰 空间感应的干扰主要来源于电磁场在空间的传播。例如,输电线和电气设备发出的电磁场,空中雷电等放电现象。2过程通道的干扰 过程通道的干扰常常沿着过程通道进入计算机,主要原因是过程通道与主机之间存在公共地线,要设法削弱和斩断这些来自公共地线的干扰,以提高过程通道的抗干扰能力。过程通道的干扰按照其作用方式,一般分为串模干扰和共模干扰。7.1 可靠性与抗干扰技术概述可靠性与抗干扰技术概述(1)串模干扰是指串联于信号回路之中的干扰。其表现形式如图7-2所示。 图7-2 串模干扰示意图7.1 可靠性与抗干扰技术概述可靠性与抗干
3、扰技术概述 其中Vs为信号源,Vn为叠加在Vs上的串联干扰信号。干扰可能来自信号源内部如图7-2(a)所示,也可能来自邻近的导线(干扰线)如图7-2(b)所示,如果邻近的导线(干扰线)中有交变电流Ia流过,那么由Ia产生的电磁干扰信号就会通过分布电容C1和C2的耦合,引入A/D转换器的输入端。 7.1 可靠性与抗干扰技术概述可靠性与抗干扰技术概述(2)计算机控制系统中,被控对象往往比较分散,一般都有很长的引线将现场信号源、信号放大器、主机等连接起来。引线长在几十米以至几百米,两地之间往往存在着一个电位差Vc,如图7-3所示。这个Vc对放大器产生的干扰,称为共模干扰。图7-3 共模干扰示意图7.
4、1 可靠性与抗干扰技术概述可靠性与抗干扰技术概述 其中Vs为信号源,Vc为共模电压。这种干扰可以是直流电压,也可以是交流电压,其幅值可达几伏甚至更高,取决于现场产生干扰的环境条件和计算机等设备的接地情况。3电源系统的干扰 控制用计算机一般由交流电网供电(220V AC,50Hz),电压不稳、频率波动、突然掉电事故难免发生,这些都会直接影响计算机系统的可靠性与稳定性。4地电位波动的干扰 计算机控制系统分散的很广,地线与地线之间存在一定的电位差。计算机交流供电电源的地电位很不稳定。在交流地上任意两点之间,往往很容易就有几伏至十几伏的电位差存在。7.1 可靠性与抗干扰技术概述可靠性与抗干扰技术概述5
5、反射波的干扰 电信号(电流、电压)在沿导线传输过程中,由于分布电容、电感和电阻的存在,导线上各点的电信号并不能马上建立,而是有一定的滞后,离起点越远,电压波和电流波到达的时间越晚。这样,电波在线路上以一定的速度传播开来,从而形成行波。如果传输线的终端阻抗与传输线的波阻抗不匹配,那么当入射波到达终端时,便会引起反射。同样,反射波到达传输线始端时,如果始端阻抗也不匹配,也会引起新的反射。这种信号的多次反射现象,使信号波形严重地畸变,并且引起干扰脉冲。7.1 可靠性与抗干扰技术概述可靠性与抗干扰技术概述7.1.2 干扰的耦合方式干扰的耦合方式 耦合是指电路与电路之间的电的联系,即一个电路的电压或电流
6、通过耦合,使得另一个电路产生相应的电压或电流。耦合起着电磁能量从一个电路传输到另一个电路的作用。 干扰的耦合方式主要有以下几种形式。 1直接耦合方式 直接耦合又称为传导耦合,是干扰信号经过导线直接传导到被干扰电路中而造成对电路的干扰。它是干扰源与敏感设备之间的主要干扰耦合途径之一。7.1 可靠性与抗干扰技术概述可靠性与抗干扰技术概述2公共阻抗耦合方式 公共阻抗耦合是当电路的电流流经一个公共阻抗时,一个电路的电流在该公共阻抗上形成的电压就会对另一个电路产生影响。公共阻抗耦合是噪声源和信号源具有公共阻抗时的传导耦合。3电容耦合方式 电容耦合又称静电耦合或电场耦合,是指电位变化在干扰源与干扰对象之间
7、引起的静电感应。计算机控制系统电路的元件之间、导线之间、导线与元件之间都存在着分布电容,如果一个导体上的信号电压(或噪声电压)通过分布电容使其他导体上的电位受到影响,这样的现象就称为电容性耦合。7.1 可靠性与抗干扰技术概述可靠性与抗干扰技术概述4电磁感应耦合方式 电磁感应耦合又称磁场耦合。在任何载流导体周围空间中都会产生磁场。若磁场是交变的,则对其周围闭合电路产生感应电势。5辐射耦合方式 当高频电流流过导体时,在该导体周围便产生电力线和磁力线,并发生高频变化,从而形成一种在空间传播的电磁波。处于电磁波中的导体便会感应出相应频率的电动势。电磁场辐射干扰是一种无规则的干扰,这种干扰很容易通过电源
8、线传到系统中去。当信号传输线(输入线、输出线、控制线)较长时,它们能辐射干扰波和接受干扰波,称为天线效应。7.1 可靠性与抗干扰技术概述可靠性与抗干扰技术概述6漏电耦合方式 漏电耦合是电阻性耦合方式。当相邻的元件或导线间的绝缘电阻降低时,有些电信号便通过这个降低了的绝缘电阻耦合到逻辑元件的输入端而形成干扰。 7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术7.2.1 过程通道干扰的抑制过程通道干扰的抑制1光电隔离 光电隔离是由光电耦合器来完成的。光电耦合器的结构如图7-4所示。 图7-4 光电耦合器结构7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术 采
9、用光电耦合器可以切断主机与过程通道以及其他主机部分电路的电联系,能有效地防止干扰从过程通道串入主机,如图7-5所示。 图7-5 光电隔离基本配置7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术 光电耦合器能够抑制干扰信号,主要是因为它具有以下几个特点: 以光为媒介传输信号的,其输入和输出在电气上是隔离的。 光电耦合部分是在一个密封的管壳内进行的,因而不会受到外界光的干扰。 光电耦合器的输入阻抗很低,而干扰源内阻一般都很大, 传送到光电耦合器输入端的干扰电压就变得很小了。 一般干扰噪声源的内阻很大,可供出的能量很小,只能形成很微弱的电流。由于没有足够的能量,也不能使二极管发光
10、,显然,干扰就被抑制掉了。 输入回路与输出回路之间分布电容极小,而且绝缘电阻很大,因此,在回路中,一端的干扰很难通过光电耦合器馈送到另一端去。7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术 在传输线较长、现场干扰十分强烈时,通过光电耦合器将长线完全“浮置”起来,如图7-6所示。 图7-6 长线传输光电耦合浮置处理7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术2继电器隔离 继电器的线圈和触点之间没有电气上的联系,因此,可利用继电器的线圈接受电气信号,从而避免强电和弱电信号之间的直接接触,实现了抗干扰隔离,常用于开关量输出,以驱动执行机构,如图7-7所示
11、。图7-7 继电器隔离7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术3变压器隔离 脉冲变压器可实现数字信号的隔离。图7-8所示电路外部的输入信号经RC滤波电路和双向稳压管抑制常模噪声干扰,然后输入脉冲变压器的一次侧。为了防止过高的对称信号击穿电路元件,脉冲变压器的二次侧输出电压被稳压管限幅后进入计算机控制系统内部。7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术 对于一般的交流信号,可以用普通变压器实现隔离。图7-9表明了一个由CMOS集成电路完成的电平检测电路。7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术4采用双绞线作信号线
12、使双绞线中一根用作屏蔽线,另一根用作信号传输线,这样可以抑制电磁感应干扰。在使用过程中,把信号输出线和返回线两根导线拧和,其扭绞节距与该导线的线径有关。线径越细,节距越短,抑制感应噪声的效果越明显。实际上,节距越短,所用的导线长度就越长,从而增加了导线的成本。一般节距以5cm左右为宜。表7-1列出了双绞线节距与噪声衰减率的关系。7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术表7-1 双绞线的节距与噪声衰减率导线节距/cm噪声衰减率抑制噪声效果/dB空气中平行导线1:10双绞线1014:123双绞线7.571:137双绞线5112:141双绞线2.5141:143钢管中平行
13、导线22:1277.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术 在数字信号的长线传输中,除了对双绞线的接地与节距有一定要求外,根据传送的距离不同,双绞线使用方法也不同。图7-10所示为传送的距离不同时,双绞线的不同使用方法。 7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术 为了增强其抗干扰能力,可以将双绞线与光电耦合器联合使用,如图7-11所示。 7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术7.2.2 反射波干扰的抑制反射波干扰的抑制 影响反射波干扰的因素有两个:其一是信号频率,传输信号频率越高,越容易产生反射波干扰,因此在满
14、足系统功能的前提下,尽量降低传输信号的频率;其二是传输线的阻抗,合理配置传输线的阻抗,可以抑制反射波干扰或大大削弱反射次数。7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术1传输线的特性阻抗Rp的测定 根据反射理论,当传输线的特性阻抗Rp与负载电阻R相等(匹配)时,将不发生反射。特性阻抗的测定方法如图7-12所示。调节可变电阻R,当R=Rp时,A门的输出波形畸变最小,反射波几乎消失,这时的R值可以认为该传输线的特性阻抗Rp。7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术2阻抗匹配的方法 阻抗匹配的方法一般分为4种,即始端串联阻抗匹配、终端并联阻抗匹配、
15、终端并联隔直阻抗匹配和终端钳位二极管匹配。(1)始端串联阻抗匹配 如图7-13(a)所示。如果传输线的波阻抗是Rp,则当R=Rp时,便实现了始端串联阻抗匹配,基本上消除了波反射。考虑到门A输出低电平时的输出阻抗Rsc,一般选择始端匹配电阻R为R=Rp-Rsc。 这种匹配方法会使终端的低电平抬高,相当于增加了输出阻抗,降低了低电平的抗干扰能力。7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术(2)终端并联阻抗匹配 如图7-13(b)所示。按式(7-1)选取等效电阻R (7-1) 适当调整R1和R2的阻值,可使R=Rp。为了同时兼顾高电平和低电平两种情况,可选取R1=R2=2R
16、p。 这种匹配方法由于终端阻值低,相当于加重负载,使高电平有所下降,故高电平的抗干扰能力有所下降。2121RRRRR7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术(3)终端并联隔直阻抗匹配 如图7-13(c)所示。把电容C串入匹配电路中,当C较大时,其阻抗接近于零,只起隔直流作用,不会影响阻抗匹配,只要使R=Rp就可以了。它不会引起输出高电平的降低,故增加了高电平的抗干扰能力。(4)终端钳位二极管匹配 如图7-13(d)所示。利用二极管D把B门输入端低电平钳位在0.3V以下,可以减少波的反射和振荡,提高动态抗干扰能力。7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的
17、硬件抗干扰技术图7-13 传输线的阻抗匹配法7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术3输入/输出驱动法 如图7-14所示,当A点为低电平时,电压波从B向A传输。由于此时驱动器SN7406的输出呈现近于零的低阻抗,反射信号一到达该门的输出端就有相当部分被吸收掉,只剩下很少部分继续反射。这就是说,由于反射信号遇到的是低阻抗,它的衰减速度很快,反射能力大大地减弱了。当A点为高电平时,发送器T1的输出端对地阻抗很大,可视为开路。为了降低接收器T2的输入阻抗,接入一个负载电阻R1k,这样大大削弱了反射波的干扰。7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技
18、术图7-14 应用双驱动器的反射波抑制方法7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术4降低输入阻抗法 如图7-15所示,当驱动器输出低电平时,A点对地阻抗很低;当驱动器输出高电平时,B点对地阻抗也很低。由此可见,无论是输出高电平还是低电平,反射波都将很快衰减。图7-15 降低输入电阻的反射波抑制方法 7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术5光电耦合器 如图7-16所示,该方法除了有效抑制反射波干扰外,还有效地实现了信号的隔离。图7-16 光电耦合器的反射波抑制方法7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术7.2.
19、3 空间干扰的抑制空间干扰的抑制 抗空间干扰的主要措施就是采取屏蔽措施。 屏蔽是指用屏蔽体把通过空间进行电场、磁场或电磁场耦合的部分隔离开来,隔断其空间场的耦合通道。良好的屏蔽是和接地紧密相连的,因而可以大大降低噪声耦合,取得较好的抗干扰效果。7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术图7-17所示为一种浮空保护屏蔽层机壳接地方案。 图7-17 浮空保护屏蔽层机壳接地方案7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术 这种方案的特点是将电子部件外围附加保护屏蔽层,且与机壳浮空;信号采用三线传输方式,即屏蔽电缆中的两根芯线和电缆屏蔽外皮线;机壳接地
20、。图中信号线的屏蔽外皮A点接附加保护屏蔽层的G点,但不接机壳B。假设系统采用差动测量放大器,信号源信号采用双芯信号屏蔽线传送,r3为电缆屏蔽外皮的电阻,Z3为附加保护屏蔽层相对机壳的绝缘电阻,Z1、Z2为二信号线对保护层的阻抗,则有cminUZrZrZrZrZrU)(2211122133 (7-2) 7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术7.2.4 RAM数据掉电保护数据掉电保护 由于+5V电源掉电后,电压下降有个过程,CPU在此过程中会失控,误发出写信号而冲失RAM中数据。因此,仅有电池是不可能有效完成数据保护的,还需对片选信号加以控制,当电源电压下降到一定程度
21、时,使 端信号无效。 CS如图7-18所示为利用4060开关实现的RAM掉电保护电路。 7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术 图7-18中,仔细调节图中R1、R2两个电阻的值,使电压小于等于4.5V时就使开关断开, 线上拉至“1”,这样,RAM中的数据就不会冲失;当电压大于4.5V时,4060开关应接通,使RAM能正常进行读写。CS7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术图7-19所示电路为另一种RAM掉电保护电路。 7.2 计算机控制系统的硬件抗干扰技术计算机控制系统的硬件抗干扰技术 系统在正常工作时,+5V电源除了给6264提供电
22、源以外,同时也给电池BAT供电;当系统电源掉电时将由电池BAT给SRAM供电。只要在上电和断电期间保证使CE2立即变为低电平,或 立即变为高电平就可以使SRAM中的数据保持不变。在图中上电时,系统电源对C1进行充电,在此期间,CE2的输入要经过一定的延时后才能变为高电平,同时,由于6264的电源端VCC的电位也是由系统电源对C2充电来建立的,这就保证了在上电时SRAM处于写禁止状态。在系统电源掉电瞬间,U1的输入立刻变低,而端为高电平,从而禁止对SRAM进行写入。同时C1也通过VD2和R2放电从而使CE2的电平变低。因此,在掉电瞬间和掉电后,SRAM也处于禁止状态。WE7.2 计算机控制系统的
23、硬件抗干扰技术计算机控制系统的硬件抗干扰技术一个完善的保护电路,必须具备以下功能: 掉电时在CPU的失效电压到达以前,存储器的写信号线应被封锁。CPU失效电压约在4.54.65V之间。 在存储器失效电压到达以前,备用电池应立即接替供电。 在掉电保护期间,电池电压不得低于存储器电压。 上电时,电压升到存储器有效工作电压以上时才允许电源接替电池供电。 电源电压升到CPU有效工作电压以上,且CPU已处在稳定状态时,才允许将存储器的写信号线开锁。7.3 计算机控制系统的接地和电源保护技术计算机控制系统的接地和电源保护技术7.3.1 计算机控制系统的接地技术计算机控制系统的接地技术 接地的目的有两个,一
24、是保护计算机、电器设备和操作人员的安全。二是为了抑制干扰,使计算机工作稳定。 1接地的种类 通常接地可分为工作接地和保护接地两大类。 保护接地主要是为了避免操作人员因设备的绝缘损坏或下降时遭受触电危险和保证设备的安全。 工作接地则主要是为了保证计算机控制系统稳定可靠地运行,防止地环路引起的干扰。 在计算机控制系统中,大致有交流地、系统地、安全地、数字地(逻辑地)和模拟地等几种。7.3 计算机控制系统的接地和电源保护技术计算机控制系统的接地和电源保护技术(1)交流地 交流地是计算机交流供电电源地,即动力线地。它的地电位很不稳定。(2)系统地 为了给各部分电路提供稳定的基准电位而设计的,是指信号回
25、路的基准导体(如控制电源的零电位)。这时的所谓接地是指将各单元,装置内部各部分电路信号返回线与基准导体之间的连接。对这种接地的要求是尽量减小接地回路中的公共阻抗压降,以减小系统中干扰信号公共阻抗耦合。(3)安全地 其目的是使设备机壳与大地等电位,以避免机壳带电而影响人身及设备安全。通常安全地又称为保护地或机壳地,机壳包括机架、外壳、屏蔽罩等。 7.3 计算机控制系统的接地和电源保护技术计算机控制系统的接地和电源保护技术(4)数字地 作为计算机控制系统中各种数字电路的零电位,应该与模拟地分开,避免模拟信号受数字脉冲的干扰。(5)模拟地 作为传感器、变送器、放大器、A/D转换器和D/A转换器中模拟
26、地的零电位,模拟信号有精度要求,有时信号比较小,而且与生产现场连接。因此,必须认真地对待模拟地。7.3 计算机控制系统的接地和电源保护技术计算机控制系统的接地和电源保护技术2输入系统的接地(1)数字地与模拟地要分开。 (2)单点接地与多点接地的选择。 在低频电路中,信号的工作频率小于1MHz时,它的布线和元器件间的电感影响小,屏蔽线采用一点接地;但信号工作频率大于10MHz时,地线阻抗变得很大,此时,应采用就近多点接地法。(3)传感器、变送器和放大器等通常采用屏蔽罩,而信号的传送往往使用屏蔽线。对于这些屏蔽层的接地应该遵循单点接地原则。7.3 计算机控制系统的接地和电源保护技术计算机控制系统的
27、接地和电源保护技术(4)接地线要尽量加粗。应将接地线加粗,使它能通过三倍于印刷电路板上的允许电流,如有可能,接地用线在23mm以上为宜。(5)交流地绝对不允许与其他几种地相连,而且交流电源变压器的绝缘性能要好,绝对避免漏电现象。7.3 计算机控制系统的接地和电源保护技术计算机控制系统的接地和电源保护技术3主机系统的接地(1)全机单点接地 主机地与外部设备地连接后,采用单点接地,如图7-20所示。 7.3 计算机控制系统的接地和电源保护技术计算机控制系统的接地和电源保护技术(2)主机外壳接地、机芯浮空 将主机外壳作为屏蔽罩接地,把机内器件架与外壳绝缘,绝缘电阻大于50M,即机内信号地浮空,如图7
28、-21所示。 7.3 计算机控制系统的接地和电源保护技术计算机控制系统的接地和电源保护技术(3)多机系统的接地 在计算机网络系统中,多台计算机之间相互通信,资源共享。近距离的几台计算机安装在同一机房内,可采用类似图7-20那样的多机单点接地方法。对于远距离的多台计算机之间的数据通信,通过隔离的办法把地分开。如变压器隔离技术、光电隔离技术和无线电通信技术。7.3 计算机控制系统的接地和电源保护技术计算机控制系统的接地和电源保护技术7.3.2 计算机控制系统的电源保护技术计算机控制系统的电源保护技术1计算机控制系统的一般保护措施(1)采用交流稳压器 当电网电压波动范围较大时,应使用交流稳压器。这也
29、是目前最普遍采用的抑制电网电压波动的方案,保证220V AC供电。(2)采用电源滤波器 交流电源引线上的滤波器可以抑制输入端的瞬态干扰。直流电源的输出也接入电容滤波器,以使输出电压的纹波限制在一定范围内,并能抑制数字信号产生的脉冲干扰。 7.3 计算机控制系统的接地和电源保护技术计算机控制系统的接地和电源保护技术(3)电源变压器采取屏蔽措施 利用几毫米厚的高导磁材料将变压器严密的屏蔽起来,以减小漏磁通的影响。(4)采用分布式独立供电 整个系统不是统一变压、滤波、稳压后供各单元电路使用,而是变压后直接送给各单元电路的整流、滤波、稳压。这样可以有效地消除各单元电路间的电源线、地线间的耦合干扰,又提
30、高了供电质量,增大了散热面积。(5)分类供电方式 把空调、照明、动力设备分为一类供电方式,把计算机及其外设分为一类供电方式,以避免强电设备工作时对计算机系统的干扰。 7.3 计算机控制系统的接地和电源保护技术计算机控制系统的接地和电源保护技术2电源异常的保护措施(1)采用静止式备用交流电源 当交流电网出现故障时,利用备用交流电源能够及时供电,保证系统安全可靠地运行。(2)采用不间断电源UPS 不间断电源UPS的基本结构分为两大类:一部分是将交流市电变为直流电的整流/充电装置,另一部分是把直流电再度转变为交流电的PWM逆变器。 UPS电源按其操作方式可分为后备式和在线式的UPS电源。7.3 计算
31、机控制系统的接地和电源保护技术计算机控制系统的接地和电源保护技术 后备式UPS电源的原理图如图7-22所示。 图7-22 后备式UPS电源方框图7.3 计算机控制系统的接地和电源保护技术计算机控制系统的接地和电源保护技术 在线式UPS电源的原理图如图7-23所示。 图7-23 在线式UPS电源框图7.4 计算机控制系统的软件抗干扰技术计算机控制系统的软件抗干扰技术7.4.1 指令冗余技术指令冗余技术 所谓指令冗余技术是指在程序的关键地方人为地加入一些单字节指令NOP,或将有效单字节指令重写,当程序“跑飞”到某条单字节指令上,就不会发生将操作数当作指令来执行的错误,使程序迅速纳入正轨。 常用的指
32、令冗余技术有两种:NOP指令的使用和重要指令冗余。7.4 计算机控制系统的软件抗干扰技术计算机控制系统的软件抗干扰技术1NOP指令的使用 通常是在双字节指令和3字节指令之后插入两个单字节NOP指令。这样,即使因为“跑飞”使程序落到操作数上,由于两个空操作指令NOP的存在,不会将其后的指令当操作数执行,从而使程序纳入正轨。 通常,一些对程序流向起重要作用的指令(如RET、RETI、ACALL、LCALL、LJMP、SJMP、JZ、JNZ、JC、JNC、JB、JBC、DJNZ等)和某些对系统工作状态起重要作用的指令(如SETB等)的前面插入两条NOP指令,以保证跑飞的程序迅速纳入轨道,确保这些指令
33、的正确执行。7.4 计算机控制系统的软件抗干扰技术计算机控制系统的软件抗干扰技术2重要指令冗余 通常在那些对于程序流向起决定作用或对系统工作状态有重要作用的指令的后边(如前文所列举的一些指令),可重复写上这些指令,以确保这些指令的正确执行。 值得注意的是:虽然加入冗余指令,能提高软件系统的可靠性,但却降低了程序的执行效率,所以在一个程序中,“指令冗余”不能过多,否则会降低程序的执行效率。7.4 计算机控制系统的软件抗干扰技术计算机控制系统的软件抗干扰技术7.4.2 软件陷阱技术软件陷阱技术 若“跑飞”的程序进入非程序区(如EPROM未使用的空间或某些数据表格区),则采用指令冗余技术就不能使“跑
34、飞”的程序恢复正常,这时可以设定软件陷阱。1软件陷阱 所谓软件陷阱,就是当PC失控,造成程序“乱飞”而进入非程序区时,在非程序区设置一些拦截程序,将失控的程序引至复位入口地址0000H或处理错误程序的入口地址ERR,在此处将程序转向专门对程序出错进行处理的程序,使程序纳入正轨。 7.4 计算机控制系统的软件抗干扰计算机控制系统的软件抗干扰软件陷阱可以采用3种形式如表7-2所示。程序形式软件陷阱形式对应入口形式形式之一NOPNOPLJMP 0000H0000H:LJMP MAIN;运行程序形式之二LJMP 0202HLJMP 0000H0000H:LJMP MAIN;运行主程序0202H:LJM
35、P 0000H形式之三LJMP ERRERR:;错误处理程序7.4 计算机控制系统的软件抗干扰计算机控制系统的软件抗干扰2软件陷阱的安排(1)未使用的中断向量区 80C51单片机的中断向量区为0003H002FH,当未使用的中断因干扰而开放时,在对应的中断服务程序中设置软件陷阱,就能及时截获错误的中断。在中断服务程序中返回指令用RETI也可以用LJMP。 比如:某系统未使用两个外部中断 和 ,它们的中断服务子程序入口地址分别为SINT0和SINT1。在系统未使用的中断由于干扰而误开中断时,则可以在对应的中断服务程序中,首先弹出错误的断点,然后使程序无条件跳转到主程序的入口0000H处重新开始执
36、行,而不是用RETI指令返回到错误的断点处。其软件陷阱程序如下: 0INT1INT7.4 计算机控制系统的软件抗干扰计算机控制系统的软件抗干扰ORG 0000H0000H START: LJMP MAIN;引向主程序入口ORG 0003HLJMP SINT0;中断服务程序入口ORG 0013HLJMP SINT1;中断服务程序入口ORG 0080H0080H MAIN:;主程序SINT0: NOPNOPPOP direct1;将断点弹出堆栈区POP direct2LJMP 0000H;转到0000H处7.4 计算机控制系统的软件抗干扰计算机控制系统的软件抗干扰SINT1: NOPNOPPOP
37、direct1;将原先的断点弹出POP direct2PUSH 00H;断点地址改为0000HPUSH 00HRETI注:中断服务程序中的direct1和direct2为主程序中非使用单元。7.4 计算机控制系统的软件抗干扰计算机控制系统的软件抗干扰(2)未使用的EPROM空间 对于未使用完的EPROM空间,即其内容为0FFH,0FFH对于80C51单片机来说是一条单字节指令“MOV R7, A”。如果程序“跑飞”到这一区域,则将顺利向下执行,不再跳跃(除非又受到新的干扰),因此在非程序区内用0000020000或020202020000数据填满。注意,最后一条填入数据必须为020000。当“
38、乱飞”程序进入此区后,读到的数据为0202H,这是一条转移指令,使PC转入0202H入口,在主程序0202H设有出错处理程序,或转到程序的入口地址0000H执行程序。7.4 计算机控制系统的软件抗干扰计算机控制系统的软件抗干扰(3)表格 单片机程序设计中一般会遇到两种表格:一类是数据表格,供“MOV A, APC”指令或“MOVC A, ADPTR”指令使用;另一类是散转表格,供“JMP ADPTR”指令使用。 由于表格的内容与检索值是一一对应的关系,在表格中安排陷阱会破坏表格的连续性和对应关系,因此只能在表格的最后安排陷阱。如果表格区较长,则安排的陷阱不能保证一定能够捕捉到“跑飞”的程序,这
39、时只能借助于别的软件陷阱或冗余指令来使程序恢复正常。7.4 计算机控制系统的软件抗干扰计算机控制系统的软件抗干扰(4)运行程序区 在进行单片机系统程序设计时常采用模块化设计,单片机按照程序的要求一个模块、一个模块地执行。所以可以将陷阱指令组分散放置在用户程序各模块之间空余的单元里。在正常程序中不执行这些陷阱指令,保证用户程序正常运行。但当程序“乱飞”一旦落入这些陷阱区,马上将“乱飞”的程序拉到正确轨道。这个方法很有效,陷阱的多少一般依据用户程序大小而定,一般每1K字节有几个陷阱就够了。7.4 计算机控制系统的软件抗干扰计算机控制系统的软件抗干扰(5)RAM数据保护的条件陷阱 单片机受到严重的干
40、扰时,可能不能正确地读写外部的RAM区。为解决这个问题,可以在进行RAM的数据读写之前,测试RAM读写通道的畅通性,这可以通过编写陷阱实现,当读写正常时,不会进入陷阱,若不正常,则会进入陷阱,且形成死循环。实现程序为:MOV A, #NNH;NN是任意的MOV DPTR, #XXXXHMOV 6EH, #55HMOV 6FH, #0AAHNOPNOP7.4 计算机控制系统的软件抗干扰计算机控制系统的软件抗干扰CJNE 6EH, #55H, XJ;6EH中不为55H则落入死循环CJNE 6FH, #0AAH, XJ ;6FH中不为AAH则落入死循环MOVX DPTR, A;A中数据写入RAM的X
41、XXXH单元中NOPNOPMOV 6EH, #00HMOV 6FH, #00HRETXJ:NOP;死循环NOPSJMP XJ7.4 计算机控制系统的软件抗干扰计算机控制系统的软件抗干扰7.4.3 故障自动恢复处理程序故障自动恢复处理程序1辨别上电方式 所谓辨别上电方式,就是根据某些信息来确定是以何种方式进入0000H单元的,是上电复位还是故障复位。通常以软件设置上电标志的方式来判定。 软件设置上电标志是以单片机上电复位后某些寄存器的值、RAM中预先设定的标志位或程序计数器PC的值作为上电标志。在程序开始处检测这些标志位,若改变了,即可认为是上电复位;若未改变,则认为是故障复位。7.4 计算机控
42、制系统的软件抗干扰计算机控制系统的软件抗干扰 可以利用PSW、SP和RAM中特定的单元设置软件上电标志。SP的上电复位值是07H,可以将SP设置为其他大于07H的值作为上电标志;PSW中的第5位PSW.5可以由用户自行设定,若系统是上电复位,则PSW的内容为00H,程序开始后,通过将PSW.5置1来作为上电标志; 下面是用PSW.5作为上电标志的程序清单:ORG0000HAJMPSTARTSTART: MOVC, PSW.5;判别标志位PSW.5 JCLOOP;PSW.51转向出错程序处理SETBPSW.5;置PSW.51LJMPSTART0;转向系统初始化入口LOOP: LJMPERR;转向
43、出错程序处理7.4 计算机控制系统的软件抗干扰计算机控制系统的软件抗干扰2系统的复位处理 用软件抗干扰措施来使失控的系统恢复到正常状态,重新进行彻底的初始化使系统的状态进行修复或有选择地进行部分初始化,这种操作也被称之为“热启动”。热启动首先要对系统进行复位,也就是使各种专用寄存器达到与硬件复位时同样的状态,但是需要注意的是清除中断激活标志是非常重要的。 7.4 计算机控制系统的软件抗干扰计算机控制系统的软件抗干扰下面给出了一段系统复位处理的程序。 ORG0080HERR:CLREA;关中断MOVDPTR, #ERR1 ;准备返回地址PUSHDPLPUSHDPHRETI;清除高优先级中断激活标
44、志ERR1: MOV50H, #0AAH;重置上电复位标志MOV51H, #55HMOVDPTR, #ERR2 ;返回出错处理程序入口地址PUSHDPLPUSHDPHRETI;清除低优先级中断激活标志7.4 计算机控制系统的软件抗干扰计算机控制系统的软件抗干扰3RAM数据的备份与纠错 在编程时,应将一些重要的数据多作备份。备份时,各备份数据间应远离且分散设置,以防同时被破坏,此外备份数据区应远离堆栈,避免堆栈操作对数据的更改。对于重要的数据,在条件允许的情况下,应多作备份。 纠错是根据备份的数据来进行的。将原始数据与各备份数据的对应单元逐一比较,若这一组单元数据中大多数都是同一个值,只有少数单
45、元的值显示了较大的差异,说明某些单元遭到破坏,则把同一值的数据作为正确数据,并将那些存在差异的单元存储值设置成与大多数单元相同的值,完成数据的纠错,这样几份数据又保持一致,从而避免了数据的丢失。备份不得少于2份,因为少于2份,当数据丢失后就不能判断哪份数据是正确数据了。7.4 计算机控制系统的软件抗干扰计算机控制系统的软件抗干扰4程序失控后系统信息的恢复 一般来说,主程序总是由若干功能模块组成,每个功能模块入口设置一个标志。系统故障复位后,可根据这些标志选择进入相应的功能模块。 例如,某系统有两个功能模块,当系统进入第一个模块时,在该单元写上该模块的编码值0AAH,系统退出该模块,进入第二个模
46、块后,即将该单元写上第二个模块的编码值55H。这样,故障后通过直接读取该单元就可以知道故障前程序运行至何处。7.4 计算机控制系统的软件抗干扰计算机控制系统的软件抗干扰7.4.4 Watchdog技术技术 通常采用程序监视技术,又称“看门狗(Watchdog)”技术,使程序脱离“死循环”。 单片机系统的应用程序往往采用循环运行方式,每一次循环的时间基本固定。“看门狗”技术就是不断监视程序循环运行时间,若发现时间超过已知的循环设定时间,则认为系统陷入了“死循环”,然后强迫程序返回到0000H入口,在0000H处安排一段出错处理程序,使系统运行纳入正轨。7.4 计算机控制系统的软件抗干扰计算机控制
47、系统的软件抗干扰 80C51单片机的片内没有监视定时器(WDT),但可利用片内定时器与中断程序,或者片外定时器与中断程序来作为WDT。 这种方法要求定时器的定时时间稍大于主程序正常运行一个循环的时间,若程序正常运行时间为T,则定时器的定时时间应为1.1Ttw2T。 注:程序每循环一次,就要刷新一次定时器的定时常数。只要程序正常运行,就不会出现定时中断;只有在程序失常时,不能刷新定时常数才产生中断。此时,在中断服务程序中使系统程序从头开始执行,或使程序从失常处重新执行。7.4 计算机控制系统的软件抗干扰计算机控制系统的软件抗干扰 如图7-24所示电路为由定时器/计数器8253和可再触发单稳态多谐
48、振荡器74LS123组成的“看门狗”电路。 7.4 计算机控制系统的软件抗干扰计算机控制系统的软件抗干扰 图中双可再触发单稳态多谐振荡器74LS123在清除端为高电平,B端为高电平的情况下,若A端输入负跳变,则单稳态触发器脱离原来的稳态(Q为低电平)进入暂态,即Q端变为高电平。在经过一段延时后,Q端重新回到稳定状态。这就使Q端输出一个正脉冲,其脉冲宽度由定时元件R、C决定。当C1000pF时,输出脉冲宽度计算如下tw0.45RC (7-3) 式中,R单位为; C单位为F; tw单位为s。7.4 计算机控制系统的软件抗干扰计算机控制系统的软件抗干扰 这里将8253计数器0设置成方式0计数结束中断
49、方式。当写入控制字后,输出端OUT为低电平作为初始状态。因GATE位始终为高电平,则允许计数。对计数器0的计数器高字节和低字节连续两次写操作(由方式控制字的D5D4确定为11)以启动计数器工作。 因通常选8253的定时时间稍大于正常程序循环一次运行的时间,所以,若程序正常运行,则在计数值减到0以前,CPU又重写计数值,将重新启动计数器,所以OUT端仍为低电平,74LS123的端一直为高电平,不能复位8051单片机。 7.4 计算机控制系统的软件抗干扰计算机控制系统的软件抗干扰 但若在计数器减到0时CPU未刷新计数值,说明程序飞掉或死循环,将产生溢出,则GATE变为高电平“1”,相当于74LS123的A端输入一个负跳变信号,则其进入暂稳态,变为低电平“0”,取反后变为高电平,即可复位80C51单片机,使程序进入0000H重新执行程序。