单片机的可靠性与抗干扰论文

上传人:QQ40****828 文档编号:442812 上传时间:2018-10-02 格式:DOC 页数:35 大小:182.50KB
返回 下载 相关 举报
单片机的可靠性与抗干扰论文_第1页
第1页 / 共35页
单片机的可靠性与抗干扰论文_第2页
第2页 / 共35页
单片机的可靠性与抗干扰论文_第3页
第3页 / 共35页
点击查看更多>>
资源描述
单片机的可靠性与抗干扰1第一章 绪论单片机也叫做嵌入式微控制器,是指在一块芯片上集成了微处理器(CPU) 、存储器、并串行输入/输出接口、定时器/计数器和中断控制器等部件。新型的单片机功能越来越多,速度越来越快,如内部集成了 A/D 转换器、脉宽调制器、CAN 总路线、倍频及低功耗设计等电路。目前,单片机的品种繁多,由于 MCS-51 单片机具有结构体系完整、指令系统功能完善和内部寄存器的规范化等特色,另外与其配套的种类开发系统和种类软件也不例外比较完善,因此在中国的单片机市场上一直是主流芯片。单片机应用系统的可靠性取决于应用系统的抗干扰性能,而整个系统的抗干扰性能取决于抗干扰的设计方法。单片机应用系统的硬件抗干扰设计是整个抗干扰设计的主要部分,也是抗干扰设计的基础。它必须为软件抗干扰设计提供良好的条件,因为再好的软件抗干扰技术也是由硬件的正常工作来保证的。本论文讲解单片机应用系统设计的可靠性设计与抗干扰问题的解决方法。如:系统的可靠性的设计方法。单片机应用系统软件抗干扰的设计方法。单片机应用系统硬件抗干扰的设计方法。在单片机应用系统中,硬件抗干扰是在单片机的外部采取的抗干扰措施,其方根措施有滤波、屏隔去耦接地自动复位与电源的监测电路等。与其他电子电路不同的是,单片机在内部也可以采取一些抗干扰措施,这些措施有数字滤波、软件冗余、软件陷阱和软件看门狗等。在单片机应用系统的设计中,既可以采取软件抗干扰措施,也可以采取硬件抗干扰措施,有时也把两者结合起来用。具体采取哪种抗干扰措施,还应根据干扰源的具体情况而定。单片机的可靠性与抗干扰2第二章 单片机的可靠性设计21 可靠性可靠性设计是电子系统设计中的一项很重要指标。同样可靠性设计也是单片机应用系统的一项重要性能指标。可靠性由多种因素决定,其中干扰信号是影响可靠性的方根因素。干扰是指迭加在电源电压或正常工作信号电压上无用的电信号。干扰有多种来源:电网、空间电磁场、输入/输出通道等。干扰会影响传送信息的正确性,扰乱程序的正常运行,甚至可能损坏系统的硬件。实时测控单片机应用系统的运行是在与外部环境的动态交换中进行的,内部的故障、外界的干扰都会导致系统的不稳定。因此,系统的可靠性关系到设计的成败问题。1可靠度可靠度是在规定的环境条件下和规定的时间内完成规定功能的概率,是系统可靠性的量度。单片机应用系统的可靠度为指数型:失效率是单位时间内出现的失效次数,是系统试验研究的统计数据。常用元器件的失效率可参见器件手册。失效特性曲线如图 1-1 所示。曲线分为三段。(1) 早期失效。(2) 使用寿命期。(3) 损耗失效期。Yt规定的失效率有效寿命损耗期图 2-1 失效特性曲线单片机的可靠性与抗干扰322 提高可靠性的措施用单片机构成实时控制系统和数据采集系统时,最重要的一个基本要求是有很高的可靠性。因为一量系统出故障,出现数据采集错误,将造成生产过程的混乱,从而导致严重后果。因此,在系统设计过程中,对可靠性的设计应贯穿于每一个环节为了提高单片机应用系统的可靠性,可以采取以下几个措施。工艺设计其中包括选用高质量的元器件、电路设计、PCB 板设计、接地与电磁兼容设计。元器件参数设计上留有余地,工艺严格把关,产品要进行例行试验。2. 3 硬件改进措施在设计上,用增加硬件来提高系统的可靠性,可采用以下两种措施。(1) 掉电保护。由于单片机应用系统所用的工业电网不稳定,会出现突然掉电现象。此时必须保存好现场的数据,待电压恢复正常,系统便能从掉电处继续执行程序。掉电保护是许多测量仪器、控制和通信设备必备的功能,有得提高系统的可靠性。进行掉电保护有几种方法:一是通过电源监测电路,在电源电压跌到某一数值之前,启动备用电源,把要保护的数据转移到非易失性存储器;二是把系统中的数据存在有备用电源供电的 RAM 中;三是直接把数据存在 FLASH 结构的声易失存储器中。(2)硬件故障自检功能。利用单片机应用系统自身具备的条件,可设计硬件故障自检功能。单片机应用系统一般应具有如下自检功能:上电复位后,首先进行硬件自检,以声、光信号显示硬件工作是否正常;利用扩展的键盘来检查每一模块的功能:在程序运行中,可在程序的某些点上插入自检,并显示故障部分。2 .4 抗干扰的设计原则干扰是造成单片机应用系统故障的主要原因之一。因此抗干扰的设计也是单片机应用系统设计的首要问题。要进行抗干扰的设计,首先要了解干扰源。由于工业应用环境纷杂,要抑制、清除干扰必须白领形成干扰的三要素:干扰源、耦合通道长期存在接收设备,采用相应的抗干扰设计原则解决问题。干扰的来源单片机的可靠性与抗干扰4单片机应用系统的干扰主要来自以下几个方面:(1) 外部干扰:主要是来自电源的干扰。切断感性负载产生的瞬变电压脉冲、可控硅通断造成的浪涌等,工业电网瞬变干扰、电气设备的电弧和火花放电形成的高频电磁波干扰、空间中的各种各样的电磁波等。(2) 耦合通道的干扰:主要有输入/输出通道、电源和地的干扰。其中耦合干扰方式有共阻耦合、静电耦合、互感耦合、磁辐射耦合等。(3) 内部干扰:主要是接地电位差扬形成的地环流、PCB 板设计的不合理,模拟与数字电路未隔离、电路的虚焊和接触不良等。抗干扰的设计原则抗干扰的设计,就是针对干扰的性质、产生条件、传播途径、被干扰的对象,采取有效的措施,白领干扰源、切断干扰的传输通道、减弱电路对哭声干扰的第三性等几方面进行综合治理。对于大型的电子设备一般采用以下设计原则。(1) 消除干扰源:在电源线上,通常采用压敏电阻和 RC 电路吸收浪涌电压、消除电弧和火花放电干扰。如在继电器、接触器触点两端并接 RC 吸收电路,消除火花放电。(2) 切断干扰的耦合通道:切断传导耦合、共阻抗耦合、感应耦合与辐射大师傅的干扰。采用隔离变压器、光电耦合器、滤波器等方法切断干扰的耦合通道。(3) 减弱电路对哭声干扰的敏感性:在电路设计上采用对称结构。电桥和差分放大器,可使干扰在电路中自行抵消;降低电路输入阻抗,可减弱哭声的影响;使用共模干扰;使用负反馈电路,对抑制内部哭声十分有效。(4) 在电路板上使用抗干扰设计:使用表面贴装(SMT)技术,增大元件与线路的接触面;采用多层板设计,使信号层和电源层隔离;电路中电流一路保持最小;设计上使模拟电路和数字电路分离,模拟地与数字地一点共地;改善接地方式,尽量减小接地阻抗,必要时可使用浮置地等方法来掏干扰。25 硬件抗干扰 软件抗干扰的优点是成本低,但其效率较低,也存在着一定的局限性。在单片机的可靠性与抗干扰5很多场合还需要加入硬件抗干扰,才能够满足需要。人们经过长期的研究与实践,积累了丰富的经纶,有了许多硬件抗干扰措施。由于硬件抗干扰的效率较高,所以在许多电子设备中都能够看到硬件抗干扰的设计。硬件抗干扰的设计有滤波技术。屏蔽技术、隔离技术、去耦技术、接地技术及电源的监测和保护技术等。251 滤波 滤波是压缩信号回路干扰频谱的一种方法。当干扰频谱万分不同于有用信号的频带时,可以用滤波器将无用的干扰滤除。有源滤波器有源滤波器可分为低通滤波器、高通滤波器、带阻滤波器和带通滤波器等多种。这些知识应该在模拟电路中讲过,这里就不一一叙述了。信号滤波器信号滤波器是用在各种信号线上的低通滤波器,其作用是消除导线上的各种高频干扰。信号滤波器可分为线路板安装滤波器、馈通滤波器和滤波器连接器等到三种。电源滤波器目前,许多厂家已生产出用于电源输入端的滤波器件。这种滤波器能够防止射频的干扰,可用于各种电子设备的输入端。屏蔽技术屏蔽技术是采用各种屏蔽的方法抑制沿空间传播的电磁干扰,即阻断辐射干扰的传播路径。常用的屏蔽方法有机箱屏蔽、采用高层磁材料制造屏蔽体或地线、在工艺设计上保证屏蔽机箱的完整性和电缆线的屏蔽。252 隔离 在单片机应用系统中,为了防止电气干扰信号从前向和后向通道进入系统,通常在输入/输出通道上设置光电耦合器,这种方法有效地改善了单片机应用系统的工作环境,使其工作可靠性大大提高。1光电耦合器的的种类常用的光电耦合的作用有两种:一是输入信号隔离,用于单片机应用系统单片机的可靠性与抗干扰6的前身通道,可防止由输入信号带来的干扰;二是控制隔离,用于系统的兵役通道,可以防止来自绳开关上的干扰。光电耦合器种类繁多,常用的有发光二极管/光晶体管、发光二极管/复合晶体管、发光二极管/光电阻器、发光二极管/光触发可控硅和高速光电耦合器等几种,其中用于输入信号隔离的光电耦合器电路如图 2-2 所示。这三种光电耦合器都是以发光二极管为输入端,一般用于 100kHz 以下的频率信号,在输出端,如果基级有引出线,则可满足温度补偿、检测和调制的要求。调整光电大师傅器的内部电路如图 2-2(C)所示,它以发光二极管为输入端,以 PN 型光敏二极管和调整开关管组成复合式的输出端,具有较高的响应速度。(a) 发光二极管/光晶体管 (b) 发光二极管/光电阻器 (c) 高速光电耦合器图 2-2 用于输入信号隔离的光电耦合器用于输出控制隔离的光电耦合器电路。用于输出控制隔离的光电耦合器也是发光二极管为输入法端,但输出端有可控硅和达林顿管等两种。具有达林顿输出的光电耦合器可用于驱动低频率的负载,并用于远距离的光电传输。具有可控硅输出的光电耦合器可用于交流大功率隔离驱动。2. 光电耦合器的应用常用的光电耦合器应用电路如图 2-3 所示。一般光电耦合器由光源(如发光二极管)和光传感器(如光敏三极管)组成,当输入端 Vi 为高电平(+12)时,发光二极管因导通而发光,光敏三极管的基极因光电流的作用而导通,所以输出端 Vo 可输出高电平;当输入端 Vi 为低电平(0V)时,发光二极管截止,光敏三极管也截止,输出端 Vo 为低电平。单片机的可靠性与抗干扰7图 2-3 光电耦合器的应用电路26 接地 接地的设计是电子设备中的一项重要设计。如果地线设计的不好,系统的抗干扰能力就差,那么电子设备就不能正常运行。在单片机控制系统中,有以下几种地线:模拟地、数字地、信号地、系统地、交流地和保护地。模拟地作为传感器、放大器、A/D 和 D/A 转换器中模拟电路的零电位;数字地作为计算机各种数字电路的零电位,应该与模拟地分开,避免模拟信号受到数字信号的干扰;系统地是上述几种地的最终回流点,直接与大地相连作为基准零电位;交流地是计算机交流供电电源地,即动力线地,它的地电位節不稳定,因此,交流地不允许上述几种地相边,而且是交流电源变压器的绝缘性能要好,绝对避免漏电现象;保护地也叫安全地,目的是使设备机壳与大地等电位,以避免机壳带电,影响人身脸设备安全。一. 接地的设计方法单片机应用系统中接地技术的设计方法如下:(1) 单点接地就是把需要接地的电路、单元脸屏蔽体都接到设备接地面的同一个接地点上。单点接地方式适用于低频电路。(2) 多点接地就是把需要接地的电路、单元脸屏蔽体用多条通路和设备接地面相连,多点接地降低了接地线的阻抗。多点接地方式试用于高频电路。(3) 悬浮接地就是把控制系统的地线与外壳或大地浮轩,提高对电源、外壳引进干扰的抑制。二. 接地的设计原则1出现地线一路问题时,应采用浮地隔离技术。VoVi单片机的可靠性与抗干扰82接地线应尽量的短,并具有良好的导电性。3对于那些出现较大突变电流的电路,要采用单独接地的系统,以减小其他电路的瞬态耦合。4低电平接地线要和其他接地线隔离。5系统中数字地、模拟地应一点相连。6信号线电源线交叉的地方要使导线相互垂直。 、7采用平衡差分电路,以昼尽量减小接地电路的干扰。 、8低电平传输时要使用多层屏蔽。27 动复位与监测技术单片机的自动复位是单项奖片机抗干扰技术的一个重要方法。当单片机受到干扰后,可以按下人工复位按钮,强制系统复位。如果操作者不能一直监视着系统,不能进行人工复位时,系统就冰能正常运行。单片机的自动复位电路就可以解决上述问题。下面介绍几种常用的自动复位电路。1 4060 构成的自动复位电路4060 是 14 级分频计数器,构成的自动复位电路如图 2-4 所示。4060 计数频率由 R 和 C 决定。单片机的复位频率由 4060 的计数频率分频(Q4Q14)而来,大小由此及彼由用户自行设定。设 Q4Q14 输出的信号周期为 T0,单片机的P1.3 定期输出一个使 4060 复位的信号 T1(使 4060 发不出扫描信号) 。系统正常工作时,T0T1;如果系统受到干扰,程序跑飞,单片机就不能正常发出 T1信号从而使 T1T0,那么计数器的输出信号使单片机自动复位。单片机的可靠性与抗干扰9图 2-4 4060 硬件看门狗电路2 采用 MAX813L 构成的自动复位与电源监测电路MAX813L 是 MAX 公司生产的 uP 监控芯片。当单片机由干扰引起的系统失控时,为单片机提供可靠的上、掉电复位、电源监测、 “看门狗”脸电源管理功能。采用 MAX813L 构成的自动复位电路如图 2-5 所示。电路有两种复位方式,即手动复位和“看门狗”自动复位,手动复位是通过复位键使系统复位的;使用“看门狗”自动复位电路时,程序在正常时,从 0000H 开始执行,即在 80C51系列单片机的 RESET 端加上一个持续两个机器周期以上高电平信号使系统复位。每隔一段时间单片机就通过 I/O 口 P1.0 向 MAX813L 输出一个脉冲,当单片机由于干扰等原因不能正常向 MAX813L 输出复位脉冲时,MAX813L 内部有一个定时器,定时时间到时 MAX813L 的/ RESET 端将输出一个脉冲给单片机的 RESET 端,使单片机各单位。当电源电压下降到界限值(4.4V)以下时,MAX813L 的内部电源监测电路将使/TESET 端输出一个低电平,使单片机复位。当电源电压恢复到界限值(4.4V)以上时,单片机仍维持一段低电平,从而保证单片机能够可靠地复位。单片机的可靠性与抗干扰10图 2-5 MAX813L 构成的自动复位电路第三章 单片机测控系统的设计要求31 程序设计要求软件的可靠性问题常常容易被人们忽视,但随着单片机测控系统越来越复杂,工作环境干扰越来越严重,软件可靠性问题逐渐为人们所重视。软件的可靠性问题虽然和硬件的可靠性问题不尽相同,在基于单片机的测控系统中,软件的重要性与硬件是处于同等重要的地位。单片机测控系统本身对程序设计的要求除了可靠、易理解、易维护、准确和测试以外,还提出以下要求:(1)容错性。在工业控制中,由于单片机测控系统所处的环境比较恶劣,常存在干扰源,如环境温度、电场、磁场等,使数据采集不可靠、控制失灵或程序运行失常。当发生这些错误或故障时,测控软件要能够不受影响,从错误或故障中恢复,保证系统的正常进行。(2)实时性。实时性是测控系统的普通要求,即要求系统及时响应外部事件的发生,并及时给出处理结果。随着电子技术的飞速发展,硬件的集成度与速度都在不断提高,因此,这就要编写相应的测控软件来满足实时性要求。在工程应用程序设计中,采用汇编语言要比高级语言更具有实时性。单片机的可靠性与抗干扰11(3)足够的时序裕度。时序是程序设计中必须考虑的问题。系统在中心控制器的控制下,实现分时操作,在非握手控制方式下,程序运行完成依靠时序调度、切换控制,这就要求在编写程序时,不仅要时序正确,而且要有足够的时序裕度。32 软件抗干扰的特点由于软件抗干扰的特殊性,单片机测控系统的软件抗干扰技术与硬件抗干扰技术有着很大的不同,其主要表现在以下几个方面。(1)软件抗干扰的两个作用。在两种情况下需要应用软件抗干扰:一种情况是为了提高系统的效能、节省硬件,用软件的功能去代替硬件;另一种情况是用软件去解决硬件解决不了的问题。大量的干扰源虽然不能造成硬件的破坏,但却使系统工作不稳定,数据不可靠,运行失常,程序“跑飞” ,严重时可造成单片机系统失灵,发生严重的故障。一些不稳定的因素产生于生产的全过程中,实时控制系统往往是 24 个小时连续工作的,不允许断电检测。这些令工业控制系统大受困扰的问题不是硬件都能解决的,因为这些干扰信号大多数是瞬时存在,时间间隔不确定,传播途径不清楚,而单片机软件却能处理这些具有随时性、瞬时性的干扰,例如在单片机电源电压上,由于开关、继电器和雷电的影响而形成的浪涌电压,电源出现的瞬时欠压、过压、掉电,各内外因素产生的瞬间干扰脉冲都属于这类干扰。(2)软件抗干扰是一种价廉、灵活、方便的抗干扰方法。纯软件抗干扰不需要硬件资源,不改变硬件的环境,不需要对干扰源精确定位,不需要定量分析,因此使用起来灵活、方便。用于工业过程控制可很好地保证控制的可靠性。(3)用软件方法处理故障,实质上是采用冗余技术对故障进行屏蔽,对干扰响应进行掩盖,在干扰过后对干扰进行多层次、多角度的预防、屏蔽和监控。(4)应用软件抗干扰,需要首先搞清楚干扰的种类、性质于影响的部位。然后对症下药,确定软件抗干扰的方法,同时,要注意其具体实现的时间开销等问题。例如用备份的方法来抗干扰,实际上是用软件完成判别和转换,付出的是备份的硬件设施,等于用增加空间来换取工作的可靠性;用软件数字滤波代替硬件滤波,用重复取数、比较来判断输入、输出数据的正确性,这种对付单片机的可靠性与抗干扰12干扰的做法实质上是用时间抗干扰。对于付出的时间或空间,必须考虑系统能否承受的问题。(5)应用软件抗干扰技术的前提是干扰尚未引起硬件的破坏,RAM 中的程序与数据未丢失。(6)高可靠、不停顿连续运行的容错抗干扰工业控制单片机系统发展的必然产物,也是单片机系统发展的必经阶段。33 软件抗干扰的条件软件抗干扰是属于测试系统的自身防御行为。采用软件抗干扰设计的最根本的前提条件是:系统中抗干扰软件不会因干扰而损坏。在单片机应用系统中,由于程序及一些重要常数都放置在 ROM 中,着就为软件抗干扰创造了良好的前提条件。因此,软件抗干扰的设置前提条件概括为以下三个方面:(1)在干扰作用下,微机系统硬件部分不会受到任何损坏,或易损坏部分设置有检测状态可供查询。(2)程序区不会受干扰侵害。系统的程序及重要常数不会因干扰侵入而变化。对于单机系统,程序及表格、常数均固化在 ROM 中,着一条件自然满足,而对于以下在 ROM 中允许用户应用程序的微机系统,无法满足这一条件。但这种系统因干扰造成运行失常时,只能在干扰过后,重新向 ROM 区调入应用程序。(3)ROM 区中的重要数据不被破坏,或虽被破坏但可以重新建立。通过重新建立的数据,系统的重新运行不会出现不可允许的状态,例如,在一些控制系统中,ROM 中的大部分内容时为了进行分析、比较而临时寄存的,即使用一些不允许丢失的数据也只占极少部分,这些数据被破坏后,往往只引起控制系统一个短期波动,在闭环环节的纠正下,控制系统能很快恢复正常,这种系统都能采用软件恢复。34 软件技术存在于测控系统内部的干扰,具有随机性,采用硬件抗干扰措施,只能抑制某些干扰,但仍有一些干扰会侵入系统而引起系统不时地出现一些功能性故障,如:程序运行溢出形成死机,控制开机不起作用,产生误动作或不按程序设定的逻辑顺序动作,测试结果不能正常输出,数据存储区内个别或全部数据单片机的可靠性与抗干扰13发生错误等。由于故障的特点是暂时、间歇和随机的,用硬件解决比较困难。因此,对于单片机测控系统来说,除了采取硬件抗干扰方法外,还要采取必要的软件干扰措施。常用到的软件抗干扰技术有:(1)利用软件陷阱技术防止干扰造成的乱序宽展下去。(2)利用时间冗余技术,屏蔽干扰信号。该技术包含多次采样输入、判断,以提高输入的可靠性;利用多次重复输出判断,提高输出信息的可靠性;重新初始化,强行恢复正常工作,以免影响输入与输出;查询中断源状态,防止干扰造成误中断;在不需要的大部分时间里对中断进行屏蔽,从而大大减少因干扰引起的误中断。(3)容错技术。采用一些特定的编码,对经过存放的数据进行检查,判断是否是因为存放干扰,然后从逻辑上对错误进行纠正。(4)指令冗余技术。对重要的指令重复写上多个,即使某一个被干扰,程序仍可执行。(5)空间冗余技术。整机、电源、接口、数据区均可设置备份,软件用于判别干扰和转换设备。(6)设立标志技术。设置特征标志、识别标志,常在内部数据区的保护中使用。(7)数字滤波技术。该技术既可称为硬件仿真(代替滤波器的功能)技术,又可属于时间冗余技术。它不需要硬件,靠单片机特殊设计的计算程序,高速、多次运算达到对采样数据序列进行平滑的目的,以提高其有用信号在采样值中所占的比例,减少乃至消除各种干扰和噪声,以保证测控系统工作的可靠性。软件抗干扰技术是当系统受干扰后使系统恢复正常运行或输入信号受干扰后伪求真的一种辅助方法。因此,软件抗干扰是被动措施,而硬件抗干扰是主动措施。但由于程序设计灵活,节省硬件资源,所以软件抗干扰设计越来越引起人们的重视。在微机测控系统中,只要认真分析系统所处环境的干扰设计来源以及传播途径,采用硬件、软件相结合的抗干扰措施,就能保证长期稳定可靠的运行。第四章 可靠的程序本质可靠性程序设计是指程序可以不依靠附加部分就可以完成规定的功能。单片机的可靠性与抗干扰14要做到程序设计的本质可靠性,必须从以下几方面着手。41 确保程序正确程序在编制和调试时对系统将来所处的环境不可能做到完全的模拟,因此,看似正确的程序,实际上还是存在一定的缺陷。这些缺陷,有的是显性的,可以通过进一步的调试与仿真加以改进,还有是隐性的,如因为信号的延误而造成程序的判断错误。这就需我们在编制程序时,需作综合、全面、动态的考虑,并让程序有一定的容错及限时退出能力。42 复位时序在系统中,通常需要复位的不仅仅是 MCU,一些带有工作寄存器的外围器件也要复位。实际中经常出现的情况是各个器件共享同一根复位信号线,造成当单片机已经复位完毕并开始向其他器件写控制字时,其他器件因为尚未完全复位,状态字也就未实际写入,造成后续程序的运得、行错误。解决此种问题的方法是在主程序向外围器件写控制字前加入一小段延时程序,或者,在硬件上保证外围器件先复位,MCU 最后、复位,在整个系统完全复位后再写入控制字。43 工作过程 器件工作时序是器件应用程序设计的基础。程序中必须保证时序工作的正确性,而且,要有足够的时序裕度。例如,语音芯片 ISD4004 在向其发出上电命令字后,必顺延时 20ms,才能发和续指令,这是由器件的工作特性决定的。在考虑器件运行时序时,MCU 的操作必须保证时序信号的衔接控制和时序信号的时序裕度。1状态转换时序在 MCU 应用系统的实际运行中,存在许多的状态转换过程,如低功耗运行方式的转换、电源系统的切换管理、外围器件的关断激励与响应等。这些状态转换中有一个过滤过程,应用程序设计时,必须保证有足够的时序空裕度。(1)应用系统中的状态转换时序。应用系统中的状态转换有 MCU 运行状态转换、外围器件运行状态转换和电源系统的供电状态转换等。这些转换时序有如下特点:单片机的可靠性与抗干扰15自动保证时序空裕度的状态转换。这一类状态转换过程较短、或由器件逻辑控制电路来保证过渡过程的时序的时序裕度。例如一些带关断控制的 AD转换器,关断后再次启动时,内部逻辑电路可保证在电源或时钟稳定后才开始AD 转换。在许多 MCU 的状态转换中,MCU 内部都会有相应的监视管理操作。过渡参数可查的状态转换。这些器件其状态转换过程都有过渡参数说明。例如,在许多带关断控制的 DCDC 器件中,都给出了输出 ONOFF 控制的过渡时间参数。具有握手标志的状态转换。这些器件或电路的状态转换带有一些临测的电路,它可以输出状态转换结束标志。具有握手标志的状态转换。这些器件或电路的状态转换带有一些监测的电路,它可输出状态转换结束标志。(2)状态转换的程序设计处理在程序设计中,必须考虑状态转换时,过渡时期间对程序运行的影响。例如,采用可关断 DCDC 供电的串行通信接口,在串行通信时,对 DCDC 供电操作后立即进入通程序,可能由于串行通信接口尚示进入稳定状态,导致通信失败。在状态转换的程序设计中,应根据状态转换的时序特点,进行精心的时序控制设计。通常,MCU 本身的状态转换,如复位、ID、PD 方式的进入或退出,片内外围集成电路单元的关断与运行,都有自动监视、自动运行管理功能。程序设计中只需按 MCU 数据手册及指令系统的操作要求进行程序设计即可。对于有较长过渡时间的外围状态转换过程,可采取足够的延时时间等待或设置提前转换状态的办法。在单片机应用系统中,有并行总线与串行总线,串行总线中又有通信总线与扩展总线。这些总线在规范化操作时,其时序由数据通信协议保证。在非规范运行,例如在虚拟总线方式下,其虚拟总线运行的可靠性在于时序的准确模拟。在并行总线中要保证读写操作指令运行下的读写时序;同步串行总线要保证时钟线控制下的同步运行时序;串行异步时序则要考虑数据传输率对数据传送的影响。单片机的可靠性与抗干扰16第五章 软件抗干扰在单片机测控系统中,过程控制需要频繁地读入数据或状态,而且还要不断地发出各种控制命令或输出数据到执行机构,如继电器、数控电机等。为了提高输入输出的可靠性,在软件上要采用相应的措施。5.1 软件陷阱采用指令冗余技术,可以使”跑飞”的程序恢复正常工作,但是这是有条件的,首先”跑飞”的程序必须落在程序区,其次冗余指令必须得到执行.如果”跑飞”的程序进入非程序区,或在执行指令前就已经形成一个死循环,则采用指令冗余技术不能使”跑飞”的程序恢复正常,此时可以设定软件陷阱.岁外软件陷阱,其本质使一段拦截程序,当失控的程序运行至此后,可以将其迅速引向一个指定位置,在那里有专门的错误处理代码,使程序回到正确的程序段.5.2 软件陷阱的形式软件陷阱的最终目的使将失控的程序引至复位入口地址 0000H 或处理错误的程序入口地址 ERR,在此处将程序转向专门对程序出错进行处理的程序,使程序纳入正轨.软件陷阱可以采用 3 种形式:形式一为:LJMP 0000P形式二为:LJMP 0202H形式三为:LJMP ERR根据乱飞程序落人陷阱区的位置不同,可选择执行转到 0000H、转到 0202H单元或转到处理错误的程序入口地址 ERR 三种形式的其中之一,使程序纳入正轨,指定运行到预定位置。程序形式 软件陷阱形式 对应入口形式形式之一 NOPNOP LJMP 0000H0000H:LJMP MAIN;运行程序单片机的可靠性与抗干扰17形式之二 LJMP 0202HLJMP 0000H0000H:LJMP MAIN;运行主程序0202H:LJMP 0000H形式之三 LJMP ERR ERR 错误处理程序表一 程序形式5.3 软件陷阱的防治措施 (1)在未使用的中断向量区MSC-51 单片机的中断向量区为 0003H002FH,如果系统程序未使用完全部中断向量区,则可以在剩余的中断向量区安排软件陷阱,以便埔捉到错误的中断.具体做法是,开始此中断,在中断服务程序中设置软件陷阱,就可以实现在对错误中断的截获.中断服务程序须以 RETI 或 LJMP 返回。如某系统使用了两个外部中断 INT0、INT1 和一个定时溢出中断 T0,它们的中断服务子程序入口地址分别为 FUINT0、FUINT1 和 FUT0,即可按下面的方式来设置中断向量区.ORG 0000H0000H START: LJMP MAINLJMP FINT0 NOP NOP LJMP ERRLJMP FUT0NOPNOPLJMPERRLJMP ERR单片机的可靠性与抗干扰18NOPNOLJMP ERRLJMP ERRNOPNOP0030H MAIN:(2) 未使用的大片 EPROM 空间的处理程序一般都不会占用 EPROM 芯片的全部空间,对于未使用完的芯片空间,一般都维持原状,即使内容为 0FFH,0FFH 对于 MSC-51 单片机指令系统来说是一条单字节指令.如果程序”跑飞”到这一区域,则将顺利向下执行,不再跳跃,因此在这段空间内每隔一段设置一个陷阱,就一定能捕捉到”跑飞”的程序。(3)表格 单片机程序设计中一般会遇到两种表格:一类是数据表格,供“MOV A,A+PC” 指令或“MOVC A,+DPTR” 指令使用,其内容是一系列的 3 字节的指令 LJMP 或 2 字节的指令 AJMP。由于表格的内容与检验索值是一一对应的关系,在表格中安排陷阱会破坏表格的连续性和对应关系,因此只能在表格的最后安排陷阱。如果表格区较长,则安排的陷阱不能保证一定能够捕捉到“跑飞”的程序,这时只能借助于别的软件陷阱或冗余指令来使程序恢复正常。(4)运行程序区程序区是由一系列的指令构成,不能在这些指令中间任意的安排软件陷阱,否则会破坏正常的程序流程。但是,对于一些指令中间常常有些断点,正常的程序执行到断点处就不再往下执行了,而此时 PC 的值应该发生正常跳变,如果在这些地方设置陷阱就有可能捕捉到“跑飞”的程序。例如,对一个累加器 A 的内容的正、负和零的情况进行三分支的程序,软件陷阱安排如下:JNZ XYZ单片机的可靠性与抗干扰19AJMP ABC NOP NOPLJMP ERRXYZ:JB ACC.7,UVWAJMP ABC NOPNOPLJMP ERRUVW: ABC: MOV A,R2RET NOPNOPLJMP ERR如果程序采用模块化设计的程序,可以主程序的各模块之间设置指令冗余或将软件陷阱放置在用户程序模块之间空余单元里。程序正常时不会进入陷阱,而当出现异常而进入陷阱时是,有可以快速的跳转到正确的位置。(5)RAM 数据保护的条件陷阱单片机受到干扰严重的干扰时,可能不能正确地读写外部的 RAM 区。为解决这个问题,可以在进行 RAM 的数据读写之前,测试 RAM 读写通道的畅通性,这可以通过编写陷阱实现,当读写正常时,不会进入陷阱,若不正常,则会进入陷阱,且形成死循环。实现程序为:CS:MOV A,#XXHMOV DPTR,#XXXXHXJ: MOV 6EH,#55H单片机的可靠性与抗干扰20MOV 6FH,#0AAHNOPNOPCJNE 6EH,#55H,XJCJNE 6FH,#0AAH,XJMOVX DPTR,ANOPNOPMOV 7EH,#00HMOV 6FH,0RET5.4 陷阱标志技术陷阱标志技术是对软件陷阱技术的一种改进。上述在程序中设置软件陷阱的方法可以在一般情况下提高系统的抗干扰性能,仁是在实时控制系统中却无法胜任,原因在天系统对实时信号的处理推动了依据,同时不能自我修复,在无人值守的情况下,自动返回到因干扰而跨出的程序模块更为困难。软件陷阱标志技术与软件陷阱技术最大的不同点在于:程序中设置了多个标志。执行的不是一条转移指令,而是根据标志情况转移到某个地址的散转到处理程序。软件陷阱标志技术具有一定的自我挽救能力,它的安排和使用方法与软件陷阱技术基本类似。第六章 实例设计6.1 硬件介绍在工业环境中,单片机会因为干扰的存在引起 PC 错误,导致程序的跑飞,单片机的可靠性与抗干扰21或陷入死循环,此时,指令冗余技术、软件陷阱技术和软件陷阱标志技术都无能为力了,这时可以采用程序监视定时器(WATCHDAG,WDT) ,俗称“看门狗”措施。WDT 通过不断监视程序每周期的运行事件是否超过正常状态下所需的时间,从而判断程序是否进入了“死循环” ,并对系统进行复位。WDT 可以由硬件实现,也可以由软件实现,也可以将两者结合起来。这时我以硬件形式介绍。MAX813L 是一款带有 WDT 和电压监控功能可以保证当电源电压低于 1.25V时,产生掉电输出。此外 MAX813L 还具有上电时自动产生 200MS 宽的复位脉冲、人工复位功能,是一款对 CPU 提供良好保护的芯片。MAX813L 芯片的各引脚功能描述如表二所示。通过设计,MAX813L 可以实现“看门狗”功能以及对工业现场数据的保护。 、引脚 功能MR 手动复位端。当该端有 140MS 低电平输入时,MAX813L 有200ms 宽的复位输出VCC 工作电源,接+5VGND 工作地端PFI 电压监控端。当该端电压输入低于 1.25V 时,MAX813L 的 PFO端产生由高到低的变化PFO 电源故障输入端。正常时保持高电平;电源电压变低时,输出由高变低WDI 喂狗信号。每 1.6s 之内要向该端输送变化的信号;超过 1。6S该端不变化,就有 RETLW 输出RST 复位信号输出端。上电时产生 200MS 的复位脉冲;搬运复位端输入低电平时,该端也有复位信号输出WDO 看门狗信号输出端。正常时保持高电平;看门狗输出时,该输出由高变低单片机的可靠性与抗干扰22表二 MAX813L 芯片引脚的功能该项电路实现程序监控的原理是:通过把 WO 与 WR 直接相连,一量程序跑飞,WO 变为低电平,并保持 140MS 以上。该项信号将 MAX813L 复位,同时看门狗定时器被清零、RST 引脚输出高电平,将单项奖片机复位。200MS 结束后,单片机脱离复位状态,重新恢复正常的程序运行。该电路还具有上电使单片机自动复位功能,之后便自动监视电源故障。若电阻 R1 的一端接的是未经稳压直流电源,PI 接的是由 R1、R2 的压值,当电源正常时,PI 输入大于 1.26V,故障时,该值降低,电源故障输出端 PO 的输出将由高电平变为低电平,引起单片机 INT0 中断,CPU 响应中断,执行中断服务程序,实现数据保护、断开外部用电电路等。在设计中断服务程序时,由于 INT0 的中断适量是以 0003H,它有 8 个单元。若程序短,可把程序放在此处;若中断服务程序长,可在此处入一条转移指令,转到处理程序。处理程序要先保存重要的数据到 RAM(掉电时由备用电池供电) ,如指令“MOV DIRECT,DPTR” ,发出控制信号断开外部设备,最后把电源控制寄存器 PCON 的 PD 位置 1,激活掉电工作方式,中断返回。6.2 “看门狗”实例各种硬件形式的“看门狗”技术在实际应用中是被证明切实有效的。但有时,干扰会破环中断方式控制字,导致中断的关闭,与之对应的中断服务程序也就得不到执行,硬件“看门狗”将失去作用。这时,可采用软件“看门狗”邓以配合。软件“看门狗”的设计过程分为以下 3 部分:计数器 0 监视主程序的运行时间。在主程序中设置一个标志变量,开始时,将该标志变量清零,在主程序的结束处,将标志变量赋给个非零值 R 。主程序在开始处启动计数器 0,计数器件开始计数,每中断一次,就将设在中断服务程序中的记录中断发生次数的整型变量 M 加 1。设主程序正常结束时,M 的值勤为 P(P 值由调试程序使确定,并留有一定的裕度) 。在中断服务程序中,当 M已等于 P 时,读取标志变量,若其等于 R,可确定程序正常,若不等于,则可断定主程序已“跑飞” ,中断服务须修改返回地址至主程序入口处。计数器 1 监视计数器 0 的运行,原理与(1)相同,通过在计数器 0 设置标志变量,每中断一次,该变量要加 1。计数器 1 在中断服务程序中查看该值是否单片机的可靠性与抗干扰23是前一次的值加上一个常量或近似常量,并以此确定计数器 0 是否在正常计数。若发现不正常,则可断定主程序已“跑飞” ,中断服务须修改返回地址至主程序入口处。主程序监视计数器 1。主程序在各功能模块的开始处储存计数器具的当前计数值于某一变量 L,在功能模块的结束处,若程序正常,则计数器 1 的计数值会改变为 P。通过前后 L 与 P 的比较,若值不同,则可确定计数器 1 正常;若 L 等于 P,则计数器具 出现错误,主程序要返回 0000H,进行出工错处理。在实际应用中,可以将硬件“看门狗”与软件“看门狗”同时使用。实践证明,将两者结合起来后,程序的可靠会大大提高。软件 WDT 和硬件 WDT 的组合设计硬件“看门狗”可以很好地解决主程序陷入死循环的故障,但若程序中中断控制寄存器的内容被更改,导致中断关闭,硬件“看门狗”则无法探测到这种故障;软件“看门狗”的相互监督机制可以保证对中断关闭故障的发现和处理,但若单片机的死循环发生在某个高优先级的中断服务程序中,则显得无能为力。利用软硬件结合的“看门狗”组合可以克服单一“看门狗”功能的缺陷,实现对故障的全方位监控。软硬件结合的看门狗设计包括硬件和软件两部分,其硬件电路可以与图中相同,也可以选择其他的芯片或皎洁,这在设计上没有特定的要求。需要注意的是在其程序设计中,要通过编程以实现软件“看门狗”的功能。这主要由下述的方式实现。T0、T1 计数器工作在自动装填的计数器状态,在主程序中设置变 t0,t1,T0 发生一次中断,将 t0 加 1,T1 发生一次中断,将 t1 加 1。在主程序的功能模块开始处记录下 t0,t1 的当前值,设置计数器的计数周期,使之小于功能模块的执行时间,这种,在功能模块的执行周期内,计数器肯定会发生中断,通过在功能模块的出口处检测这种变化来确定是否发生了中断关闭的情况,并进行故障的处理。在实际中,有可能出现在功能模块的执行时间很短,其前后 t0 和 t1 未发生改变,为了把这种正常的工作状态和故障区分开来,可以通过多次检测的方法或者有针对性的检查定时器是否继续计数,以避免出现错误的程序跳转。“看门狗”设计中的注意事项(1) “喂狗”的时机“喂狗”是指复位看门狗,使看门狗电路继续起作用。喂狗不要加在 MCU单片机的可靠性与抗干扰24定时器中断服务程序中,高度的时候可以这么做,但若系统已经高度完毕,就可将“别致狗”安排在:等待查询的循环体内部耗时很大的函数体内部主程序任务队列中。死机多发生在程序的指令和数据错位、PC 跑飞等场合。因为处理器速度很快,如果跑飞的程序一被死循环套住,那么很容易自动重新复位的,但是很多情况下偏偏会被死循环套牢,那么就必须将依旧正常喂狗,这们看门狗依旧无法复位。(2) “硬狗”与“软狗”的区别与作用“硬狗”实现冷启动, “软狗”实现抽刀断水启动,从可靠消息来说, “硬狗”的可靠消息和作用都要比“软狗”强。但“软狗”也有它独特的优点,一般“软狗”都使用定时器中断,如果程序发生跑飞,在干扰不是特别严重的时候,也就是没有破坏控制字时, “软狗”溢出可将跑飞的程序截回,然后转而执行相错程序,数据备份修复等相应的程序,之后在进入主程序,如果数据得到了很好修复就可以接着跑飞时处理的事件继续运行,这样一乱扣帽子情况下从外部看起来运行并没有被打断,这一点是“硬狗”做不到的, “硬狗”一量动作就必须从头再来。但如果干扰太大,而“软狗”不一定要加。但加了“软狗”的程序肯定比不加要好,软硬兼施肯定要强于只用“硬狗”或“软狗” ,这一点无可争辩。程序运行中的数据保护程序的正确运行离不开正确的数据,单片机内部寄存器、外部数据存储 都会因干扰的存在或电压的突然降低而被更改,因此,从提高软件可靠性的角度来说,对单片机内部的寄存器尤其是中断和外部数据存储器进行保护,也是一项在设计中必须考虑的事项。6.3 中断设计对单片机的中断保护主要是针对某些高优先级的中断对低优先级中断数据的破坏,几种常用的中断保护措施有:利用堆栈保护中断现场在中断服务程序中,为保护主程序不被破坏,均要在服务程序的开始处将主程序需要使用的资源弹入堆栈,使用 POP、PUSH 指令可以方便地做到这一点。单片机的可靠性与抗干扰25对堆栈的使用需要预防堆栈的溢出。MCS-51 单片机的堆栈指示器复位值为SP=07H 实际上将 SP 设置的这么低会给编程造成困难,可以用指令对 SP 重新赋值,例如 MOV SP,#4FH,这时可利用的堆栈空间为 50H70H。需要注意的是,单片机的堆栈资源非常有限,所以在编程中要昼避免多重调用子程序、程序的嵌套和递归。工作中的寄存器保护MCS-51 单片机有寄存器组,每个寄存器组有寄存器 R0R7,被称为工作寄存器。 他们都可以做通用寄存器使用,且建起方式多样。程序使用哪一个寄存器组是由 PSW 的 D3、D4 位确定。为避免主程序和中断服务程序对各自工作寄存器的相互干扰,编程时,可以让主程序使用寄存器组 0,低优先级国断服务使用寄存器组成部分,高俦级中断使用寄存器组 2。在中断服务的开始处就须将PSW 弹入堆栈,并重新设置 PSW 的 D3、D4 指定中断服务使用的寄存器组,在退出中断服务时相应的要将 PSW 弹出堆栈,并恢复中断现场。公用数据区的保护公用数据也即程序均可访问的数据。使用公用数据的缺点是存在对公用数据有期望的修改这个隐患,而且,这种情况的发生很不容易被发现和调试。参考下面的 C 示例程序:int var void main() ;var=10;sub1();SUB2(VAR,);void sub1();for(var=15;var0;var-);单片机的可靠性与抗干扰26;在上面的示例中,var 是全局变量,在主程序中称被除数赋值,子函数sub1 中需要利用 var 的值实现循环,但在执行循环体的过程中,var 的值被更改,于是传递到 sub2 中的 vat 值已经不是期望的输入,程序的输出也就晃正确了。为预防一些子函数对全局变量值的更改,可以在子函数的内部设置一变量,并将全局变量的值赋给该变量,于是子函数中涉及到对全局变量的操作全部改为对子函数中局部变量的操作,这样可保证全局变量的值不被更改。对上面的示例程序,可对 sub1 作如下修改:Void sub1() int temp;Temp=var;;For (temp=15;temp0;temp-);对作片选功能的 I/O 线必须保护在设计中,某些 I/O 口用作片选,用以在不同的状态下选择不同的芯片,例如某 I/O 口低电平时选中液晶控制器,高电平时选中译码器。在程序中,会出现这样的情况:在主程序正处于对液晶的操作过程中发生中断,程序转入中断服务中去;在中断服务程序中,需要选中译码器,于是作片选的端口值被改变以选中译码器。在中断服务结束后,主程序继续对液晶进行操作,但由于中断已经更改了端口值,液晶此时此刻是处于非选中状态,因此,主程序就会得到错误的结果。对此类隐藏故障的解决,首先在硬件设计上昼避免中断服务和主程序共享硬件端口,其次,在程序设计尤其是中断服务退出前,要注意对硬件端口的恢复,保持中断前后主程序状态的稳定。充分使用芯片的节电功能或掉电模式单片机的可靠性与抗干扰27某些外围芯片具有掉电模式,使用掉电模式可以保护芯片的内部寄存器不被更改。因此,对于此类外围芯片,应该在确实要对其操作时才让其进入供电模式,在不对其操作时使其进入节电模式。6.4 上电方式上电方式辨别即根据某些信息来确定是以体积方式进入 0000H 单元的,是以上电复位还是故障复位。通常可以采用软件设置上电标志的方式来判断。软件设置上电标志是利用单片机上电复位后某些寄存器的值或在 RAM 中预先庙宇的标志位作为上电标志,对于软件复位的情况,这些位在设置后即使复位了也不会改变,因此在程序开始处检测这些标志位,若改变了即可认为是上电复位;若未改变则认为是软件复位。可以利用 PSW、SP 和 RAM 中特定的单元设置软件上电标志。PSW 中的第 5位 PSW。5 可以由用户自行设定,若系统是上电复位,则 PSW 为 00H,程序开始后,通过将 PSW. 5 置 1 来作为上电标志;SP 的上电复位值是 07H,可以将 SP设置为其他大于 07H 的值作为上电标志;利用 RAM 如此类似。下面以 PSW 为例说明这种方法。ORG 0000HAJMP START START:MOV C,PSW。5JC ERRORSETB PSW。5LJMP MAINERROR:LJMP EER系统的复位处理用软件抗干扰措施来使系统恢复到正常状态,重新进行彻底的初始化使系统的状态进行修复或有选择的进行部分初使化,这种操作也被称为“热启动” 。热启动首先要对系统进行复位,也就是执行一系列指令来使各种专用寄存器达到与硬件复位时轴样的状态,这里需要注意的是还有中断激活标志。如用软件WDT 使系统复位时,有可能在中断子程序中发生程序出错。此时中娄激活标志单片机的可靠性与抗干扰28已经置位,它将阻止同级的中断响应,由于软件 WDT 是高优先级中断,它会屏蔽其他所有的中断。 由此可见,清除中断激活标志是非常重要的。下面给出了一段系统复位处理的程序。ORG 3000HERR:CLR EAMOV DPTR,#ERR1PUSH DPLPUSH DPH RETIERR1:MOV 66H,#0AAHMOV 67H,#55HCLR A PUSH ACCPUSH ACCRETI在这段程序中,用两条 RETI 指令清除了全部的中断激活标志,另外,在工作上 66H67H 两个单元中存入了特定数 0AA55H 作为“上电标志” 。系统在执行复位操作时,可以根据这一上电复位标志来决定是全面初始化还是部分初始化。当然,如果系统遭受的干扰比较严重,热启动不能是系统正确恢复时,还是采用冷启动进行系统的全面初始化。系统采用启动的策略可以采用辨别上电方式来处理。在进行热启动时,关闭中断后在正式恢复系统之前要设置好栈底,这是因为在热启动过程中要执行各种子程序,而子程序的工作需要堆栈的配合,在系统等到正确恢复之前枪柄指针是无法确定的。设置好堆栈后,要将所有的 I/O设备都设置成安全状态,封锁 I/O 操作,以免干扰造成的破坏进一步扩大。再根据系统中残留的信息进行恢复工作,对系统进行恢复实际上就是恢复各种关键的状态信息和重要的数据信息,同时尽可能地纠正因干扰造成的错误,对那些临时数据则没有必要进行恢复。在恢复关键的信息之后,还要对各种外围芯单片机的可靠性与抗干扰29片重新写入它们的控制字,必要时还要补充一些新的信息,才使信息重新进入工作循环。RAM 数据的备份与纠错单片机在实际运行中遭受干扰后,储存在其 RAM 中的数据会遭到破坏,例如数组的某些值缺失,或单元的值被更改。但这种破坏通常是局部的,只有个别单元被更改,不可能将 RAM 区所有的数据都冲掉。因此,在编程时,应将一些重要的数据多作备份。备份时,各备份数据间应远离且分散设置,以防同时被破坏,此外黑种人数据区应远离堆栈,避免枪柄操作对数据的更改。对于重要的数据,在条件允许的情况下,应多作备份。纠错是根据备份的数据来进行的。将原始数据与各备份数据的对应单元逐一比较,若这一组单元数据中大多数都是同一个值,只有少数单元的值显示了较大的差异,则把同一值数据作为正确数据,并将那些存在差异的单元存储值设置成与大多数单元相同的值,完成数据的纠错。采用冗余备份实现对数据的纠错时,还可以通过事先设置奇校验或偶校验甚至其他的校验方案来判别数据是否正确,如果不正确,则对备份的数据进行校验,想到找到正确的数据并对其他单元的错误数据进行更正。因此,对 RAM 中重要的数据做备份对提高 RAM 数据抗干扰能力是很重要的,如果存储空间有余的话,建议多做备份,其可靠性会很高。备份不得少于 2 份,因为少于 2 份,当数据丢失后就不能判断哪份数据是正确数据了。具体过程如下。假如 0200H02FFH 区为重要参数区,在参数输入后立即进行备份。分别在0400H04FFH 和 0600H06FFH 区备份 2 份。显然在正常情况下 3 份内容应完全一样。当外界原因造成数据丢失时,也只是 1 份之中的某些单元,而使 3 份对应单元内容不完全一致。在系统正常复位后,首先检测 3 份数据是否一致,如果不一致说明某些单元已遭到破坏。在这时检验程序会将其中 2 份相同的数据作为原始数据,自动寻遭到破坏的数据进行复制,使其恢复原来的数据。这样3 份数据又保持一致,从而避免了数据的丢失。由于每次正常复位都进行了 1次这样的自检和校验,所以 3 份数据会相互补救,极大地提高了数据的安全性。图 8 所示是 8031 单片机系统中的 RAM 自检程序框图。单片机的可靠性与抗干扰30YNY NYN NY初始化A:1 区指针B:2 区指针C:3 区指针1 区数据丢失恢复 2 区数据1 区数据丢失恢复 2 区数据3 区数据丢失恢复 2 区数据(A)=(B )?(B)=(C )?数据校验完毕?返回(A)=(C )?图 6-1 RAM 自检流程图6.5 恢复处理通过对对各个模块编码,并设置一单元以记录程
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!