可靠性

摘要:可靠性设计是单片机应甩系统设计必不可少的设计内容。本文从现代电子系统的可靠性出发,详细论述了单片机应用系统的可靠性特点。提出了芯片选择、电源设计、PCB制作、噪声失敏控制、程序失控回复等集合硬件系统的可靠性设计技术和软件系统的可靠性设计技术的解决方法。可供单片机应用系统的开发人员借鉴与参考。

单片机应用系统的设计包括功能性设计、可靠性设计和产品化设计。其中,功能性是基础,可靠性是保障,产品化是前途。因此,从事单片机应用系统开发工作的设计人员必须掌握可靠性设计。

一、可靠性与可靠性设计

1.现代电子系统的可靠性

现代电子系统具有如下特点:嵌入式的计算机系统.智能化的体系结构;以计算机为核心的柔性硬件基础,由软件实现系统的功能;硬件系统有微电子技术的有力支持。单片机应用系统是当前最典型、最广泛的现代电子系统。

现代电子系统的可靠性表现为,在规定条件下,系统准确无误运行的能力.突出了可靠性的软件和运行中的失误概率。可靠性设计则是在产品开发过程中,保证运行可靠的全部设计手段,甚至包括了产品出厂后软件升级中的町靠性设计。由于软件的介入,可靠性问题除了二值可靠性的“失效”外.出现了除了“正常”与“失效”以外介于其间的诸如“出错”、“失误”、“不稳定”的多值可靠性问题。

2.单片机应用系统的可靠性特点

(1)系统运行状态的可靠性特点

单片机应用系统普遍采用CMOS器件,因此,经常的运行状态有静态运行与动态运行之分。

静态运行是指单片机在休闲或掉电方式下的工作状态。此时,单片机指令停止运行。外围电路被关断或电源被关断,系统中只有值守电路在工作。因此,静态运行下的系统不存在软件的可靠性问题,其可靠性主要表现在值守电路的抗干扰能力、系统中器件的静态参数余度,如直流特性参数余度、工作电压、工作稳定以及接插件的可靠性等。

动态运行是指单片机应用系统工作在程序运行状态。此时的可靠性主要是软件运行的可靠性问题.表现在动态参数余度,如逻辑电平噪声容限、时钟误差、时序误差等。

(2)固化软件运行环境与可靠性

单片机应用系统中,CPU运行的是事先固化在单片机的程序存储器的软件.用户无法更改和输入新的程序。这就避免r外来计算机病毒的侵袭,其可靠性表现在固化软件本身的可靠性和程序存储器数据保护的可靠性。

(3)时空边界性问题与可靠性

时空边界性问题普遍存在于单片机应用系统中.如单片机应用系统中采用二位十进制数代替四位公元纪年的定时时钟系统。在跨越2000年时就会形成数据处理失误;采用有限写入次数的程序存储器。在超过写入次数的运行操作时会出现数据错误;程序存储器保存数据也有一定的年限,超过此年限也会出现数据错误。其它诸如计数容量.数据溢出,参数超边界应用都会带来可靠性问题。因此.必须采取时空边界性问题的可靠性防范措施。

3.本质可靠性与可靠性控制

本质可靠性是只考虑系统功能要求的软、硬件可靠性设计,是可靠性设计的基础。如采用CMOS电路代替7rrL电路提高噪声容限,增加系统抗干扰能力:采用高可靠性的软硬件开发平台实现产品开发;按照电磁兼容规范设计可靠的PCB等。

常用的可靠性控制设计有:噪声失敏控制,时空边界管理,系统自检与自修复,出错后的安全性包容等。

二、硬件系统的可靠性设计

硬件系统的可靠性是系统本质可靠性和可靠性控制的基础。

1.硬件系统总体方案的可靠性设计

硬件系统总体方案的可靠性设计内容包括:

(1)采用硬件平台的系统设计方法

单片机应用系统的硬件平台都是由相近似的应用系统基本电路组成,只适用于某一领域中的硬件系统设计。基于硬件平台设计的应用系统有基本的可靠性保证。一个良好的硬件平台应具备:标准化、系列化、规范化设计的电路系统;柔性特性的基本应用系统体系结构;丰富的软件支持;可靠性测试记录。

(2)最大的系统集成

最大的系统集成可以最大限度简化系统构成,有助于减少系统硬件失误概率。最大的系统集成应具备:依靠器件解决的思想;单片机选择实现系统的最大包容;0EM的支持。

2.器件选择的可靠性设计

单片机芯片的选择要满足系统集成的最大化要求;优选CMOS器件:为简化电路设计尽可能采用串行传输总线器件代替并行总线扩展的器件;选择保证可靠性的专用器件,如采用电源监控类器件、信号线路故障保护器、ESD(静电干扰)保护器、能实现电源短路保护的自聚合开关等。

三、软件系统的可靠性设计

在单片机应用系统可靠性设计中,软件设计最主要的任务是保证在过程空间中。应用程序按照给定的顺序有序运行。在高可靠性的硬件系统基础上。软件设计的可靠性保障了最少的软件错误以及在软件出错后仍能保证系统正常运行或安全运行。

1.本质可靠性的软件设计

软件的本质可靠性是指不依靠软件附加.最大限度减少自身错误及缺陷,并且要有足够的时序余度。

单片机系统在CPU的控制下实现分时操作.程序完全依靠时序调度、切换控制。程序运行的可控不仅要求时序准确,而且要有足够的时序余度。

第一,系统复位时序。多个器件复位的时序要求是主要问题。应保证MCU对外围可编程器件的初始化在该器件复位后进行。软件设计时,可以在系统上电复位后,MCU延迟片刻,确保外围器件复位后,再对其初始化。

第二,外围器件工作时序。对外围器件的工作时序必须分析清楚,MCU的操作必须保证时序信号的衔接控制和时序信号的时序余度。

第三。应用系统的状态转换时序。应用系统中的状态转换有MCU运行状态转换、外围器件运行状态转换和电源系统供电状态转换等。在程序设计中.必须考虑状态转换时过渡期对程序运行的影响,精心设计时序控制。通常。MCU本身的状态转换,都有自动监视、自动运行管理功能,程序设计只需按MCU数据手册及指令系统的操作要求进行即可。对于有较长过渡期的外围状态转换,可采取足够的延时或设置提前转换状态的办法。

第四,总线时序。单片机应用系统中有并行总线和串行总线,这些总线在规范化操作时,其时序数据通信协议保证。在虚拟总线方式时,虚拟总线运行的可靠性在于时序的准确模拟。并行总线要保证读、写操作指令运行下的读写时序:同步串行总线要保证时钟线控制下的同步时序;串行异步时序则要考虑波特率对数据传送的影响。

四、结束语

单片机应用系统的可靠性设计涉及硬件系统的抗干扰设计和软件系统的抗干扰设计,采取的措施多而复杂。实际应用时,应根据设计条件与目标要求,制定应用系统的可靠性等级,合理采用硬性可靠性措施。充分利用软件的可靠性设计,提高系统的抗干扰能力。

本文来自网络,版权归原作者所有,如有侵权,请联系删除。

围观 31

单论单片机硬件系统设计解决方案,一般从三个方面分析:优选设计方案、增加冗余和容错率、采用硬件抗干扰。本文详细的介绍了优化这三个方面对单片硬件可靠性带来的好处。

1、选优设计

在系统硬件设计和加工时,应该选用质量好的接插件,设计好工艺结构;选用合格的元器件,进行严格的测试、筛选和老化;设计时技术参数(如负载)要留有一定的余量或降额使用元器件;提高印制板和组装的质量。

2、采用硬件抗干扰措施

来自供电系统以及通过导线传输、电磁耦合等产生的电磁干扰信号,是单片机系统工作不稳定的重要因素,在系统硬件设计时必须采取有效的干扰抑制措施。单片机应用系统中还常使用系统监视电路检测系统发生的错误或故障,自动报警或使系统自动恢复正常工作状态。如采用电源故障监视、看门狗定时器等采用89C51单片机和X25045组成的看门狗电路,X25045硬件连接图如图所示。X25045芯片内包含有一个看门狗定时器,可通过软件预置系统的监控时间。在看门狗定时器预置的时间内若没有总线活动,则X25045将从RESET输出一个高电平信号,经过微分电路C2、R3输出一个正脉冲,使CPU复位。如图1所示电路中,CPU的复位信号共有3个:上电复位(C1、R2),人工复位(S、R1、R2)和Watchdog复位(C2、R3),通过或门综合后加到RESET端。C2、R3的时间常数不必太大,有数百微秒即可,因为这时CPU的振荡器已经在工作。

利用单片机系统可靠性设计

看门狗电路的定时时间长短可由具体应用程序的循环周期决定,通常比系统正常工作时最大循环周期的时间略长即可。编程时,可在软件的合适地方加一条喂狗指令,使看门狗的定时时间永远达不到预置时间,系统就不会复位而正常工作。当系统跑飞,用软件陷阱等别的方法无法捕捉回程序时,则看门狗定时时间很快增长到预置时间,迫使系统复位。需要注意的是,在程序正常运行的时候,应该在适当的地方加一条喂狗指令,使系统正常运行时的定时时间达不到预置时间。系统就不会复位。

3、冗余与容错设计

保证单片机应用系统100%无故障是不可能的。容错是指当系统的某个部件发生故障时,系统仍能完全正常地工作,即给系统增加容忍故障的能力。为使系统具有 容错能力,必须在系统中增加适当的冗余单元,以保证当某个部件发生故障时能由冗余部件接替其工作,原部件修复后再恢复出错前的状态。硬件冗余设计可以在元 件级、子系统或系统级上进行。

4、指令冗余

CPU取指令过程是先取操作码,再取操作数。在程序的关键地方人为的插入一些单字节指令,或将有效单字节指令重写称为指令冗余,通常是在双字节指令和三字节指令后插入两个字节以上的NOP指令。这样即使跑飞程序飞到双字节指令和三字节指令操作数上。由于窄操作指令NOP的存在,避免了后面的指令被错误地执行,为程序纳入正轨做好准备。此外,对系统流向起重要作用的指令,如RET、RETI、LCALI.、LJMP,JC等,可以在这些指令之后插入两条NOP指令,可将跑飞程序纳入正轨,以确保这些重要指令的执行。指令冗余只能使CPU不再将操作数当作操作码错误地执行,却不能主动地将程序的错误执行方向扭转过来,要想纠止程序的错误执行方向,就需要下面的技术。

5、设计软件“陷阱”

通常在程序存储器中未使用的EPROM空间填入窄操作指令NOP,最后再填入一条跳转指令,跳转到跑飞处理程序,或者直接填入指令LJMP 0000H,当跑飞程序落到此区域。即可在执行一段空操作后转入正轨。如果未使用的EPROM空间比较大,可以均匀地填入几条空操作指令和跳转指令,这种几条空操作指令加一条跳转指令的结构我们称之为“软件陷阱”.

软件陷阱的一般结构为:
NOP
NOP
LJMP FLY

FLY为跑飞处理子程序,如果程序正常执行,软件陷阱部分是永远也执行不到的,只有在程序跑飞到陷阱里,软件陷阱会立刻将程序跳转到正常轨道。即使程序没有跑飞到陷阱里,也可以在程序执行一段错误操作后遇到一个软件陷阱,从而转入正轨。除了程序存储器的空白区域,程序的数据表结尾也应该设置软件陷阱,如果数据表比较大,应该在数据表的中间也设置软件陷阱,以保证程序跑飞到数据区能及时转入正轨。另外,如果程序存储器的空间足够大的话,可以在每两个子程序中间设 置一个软件陷阱。当使用的中断因干扰而开放时,在对应的中断服务程序中设置软件陷阱,能及时捕获错误的中断。软件陷阱的数量要根据实际受到干扰的情况和程序存储器的容量来确定,如果太少不能进行有效的跑飞拦截,如果太多又会占用大量的程序存储器空间。

6、软件“看门狗”技术

跑飞的程序在执行一些错误操作之后,经常会进入“死循环”,也就足常说的“死机”。通常采用“软件看门狗”技术使程序脱离“死循环”,软件“看门狗”技术的原理是通过不断检测程序循环运行时间,若发现程序循环时间超过最大循环运行时间,则认为系统陷入“死循环”,需要进行出错处理。在实际应用中,通常用定时中断服务程序定时地检查主程序的运行情况。例如,在RAM区选择一个字节作为软件看门狗寄存器,主程序每循环一次将该寄存器加l,定时器TO的中断服务程序每中断一次将该寄存器减l并检查一次,如果程序执行正常。看门狗寄存器不会改变或改变不大,如果看门狗寄存器发生了改变或改变很大,则说明系统陷入“死循环”。需要进行出错处理。在工业应用中,严重的干扰有时会破坏中断方式控制字,关闭中断,造成看门狗失效,这时可以采用环形中断监视系统。用定时器TO监视定时器Tl,用定时器Tl监视丰程序,主程序监视定时器T0。

采用这种环形结构的软件“看门狗”具有良好的抗干扰性能,大大提高了系统可靠性。对于需经常使用Tl定时器进行串口通讯的测控系统,则定时器Tl不能进行中断,可改由串口中断进行监控。当然,对主程序最大循环周期、定时器T0和Tl定时周期应于全盘合理考虑。软件“看门狗”技术需要使用定时器,而在大多数的控制程序中,定时器都是紧俏的资源。这就使“软件看门狗”技术的实际应用受到了限制,我们可以采取一些技巧性的处理,将软件“看门狗”程序与其它定时程序复用同一个定时器,这样既完成定时功能又完成软件“看门狗”的功能。

7、检查RAM区标志数据及时发现严重干扰

这种方法是在RAM区中选择几个固定单元,在初始化程序中将其设置成固定的数据,只要程序正常运行,这些单元的内容是不会改变的。如果因为程序“跑飞”或其它干扰导致这些RAM单元中的任何单元的数据发生了变化,说明单片机系统已经受到了严重的干扰,不能可靠地运行下去了。我们可以在程序执行的过程中适时地检查这些RAM单元的内容,一旦发现有数据改变,立刻执行LJMP 0000 H语句,强制单片机复位。

8、刷新输出端口

排除严重干扰,当单片机系统受到严重干扰时,输出端口的状态也可能因干扰而改变,在程序的执行过程中适时地根据相关程序模块的运算结果刷新输出端口,可以排除干扰对输出端口状态的影响,使错误的输出状态及时得到纠正。

9、进行多次输入采样

避免严重干扰,强烈的干扰会影响单片机的输入信号,造成输入信号瞬间采样的误差或误读,要避免干扰的影响,通常采取重复采样,加权平均的方法。

总结

提高单片机应用系统的可靠性要从软硬件入手,提高系统的自身防御行为,以上所提到几种提高可靠性的方法,都不是单独使用的,只有根据实际情况将这些方法有效地结合起来,才能达到最佳抗干扰效果,使我们的单片机系统稳定可靠地工作。当然,单片机系统运行的可靠性也会受其他不确定因素的干扰。

转自: www.eeworld.com

围观 440
订阅 RSS - 可靠性