产品选型

单片机 可靠性 如何优化单片机系统使其运行拥有更好的可靠性

小编 2024-11-25 产品选型 23 0

如何优化单片机系统使其运行拥有更好的可靠性

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

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

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、进行多次输入采样

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

总结

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

提高单片机系统可靠性的研究

一个单片机系统的可靠性是其自身软硬件与其所处工作环境综合作用的结果,因此系统的可靠性也应从这两个方面去分析与设计。对于系统自身而言,能不能在保证系统各项功能实现的同时,对系统自身运行过程中出现的各种干扰信号及直接来自于系统外部的干扰信号进行有效的抑制,是决定系统可靠性的关键。有缺陷的系统往往只从逻辑上去保证系统功能的实现,而对于系统运行过程中可能出现的潜在的问题考虑欠缺,采取的措施不足,在干扰信号真正袭来的时候,系统就可能会陷入困境。任何系统的可靠性都是相对的,在一种环境下能够很好工作的系统在另一种环境下却有可能是很不稳定的。这就充分说明环境对系统可靠运行的重要性。在针对系统运行环境去设计系统的同时,应尽量采取措施改善系统运行的环境,降低环境干扰,但这样的措施往往比较有限。

2 提高可靠性的措施

提高单片机系统可靠性的方法与措施很多。一般地,应根据系统所面临的具体的可靠性问题,针对引起或影响系统不可靠的因素采取不同的处理措施。这些措施一般从这样两个目的出发:第一,尽量减少引起系统不可靠或影响系统可靠的外界因素;第二,尽量提高系统自身抗干扰能力及降低自身运行的不稳定性。例如,为了抑制电源的噪声和环境干扰信号而采用的滤波技术、隔离技术、屏蔽技术等都是出于第一个目的;另外,针对系统自身而采用的看门狗电路、软件抗干扰技术、备份技术等均是出于第二个目的而采取的措施。其中第一类的措施较常使用,其使用简单而且效果也较好,但其对系统可靠性的提高是有限的,许多情况下不能满足系统的要求。第二类措施的使用可以更进一步提高系统的可靠性,往往在高可靠性的系统设计中被广泛使用。下面就第二类技术使用中的一些相关问题作进一步的分析。

2.1 用监视定时器技术提高系统的可靠性

监视定时器(Watchdog)技术现在使用得非常广泛,技术已较为成熟,这一技术的支持手段也很多。目前,各处理器的生产厂家几乎都在生产内置有看门狗定时器的单片机产品,市场上还有许多独立的看门狗定时器芯片可供选择。要实现这样的电路已经较为容易,因此这里对于如何实现这一技术的一般细节不作详细的论述,仅就采用此技术所导致的可重人性问题进行分析。采用监视定时器技术后,一旦程序跑飞,系统立即会被监视定时器复位掉,从头重新启动系统,从而退出不正常的运行状态,但是这样使用时必须注意系统的可重人性。所谓系统的可重人性可以这样来定义:当一个微处理器系统在重新复位启动以后,系统对外的执行操作不因重新启动而改变,或者说这种改变是能够容忍的,从而保证整个系统对外操作的连续性和顺序性,也就是系统最终的安全性和可靠性。对于一个系统,如果它对外的控制操作只与系统当前的输入状态有关,那么这个系统就几乎具有完全的重入性能;相反,如一个系统对外的输出操作不仅与系统当前的输入相关,而且与系统的历史状态有关,那么如果系统重入时系统的历史状态没有保留或者历史状态被破坏,那么此时系统对外的操作就可能完全是错误的,这样的系统虽然在看门狗定时器的作用下退出了不正常的运行状态,但重入的状态也不会正常,那么这样的系统也只能是病态的系统,不能使用。因此,对于采用了看门狗电路来提高可靠性的系统,必须严格保证系统的可重入性。

对于与历史状态相关的系统,为保证其重入性能,可以把其历史状态保存在系统的RAM中,即在单片机系统的内存或其扩展的外部存储器中,开辟出专用于保存历史状态的缓冲区。在确保系统不掉电的情况下,这些历史数据在系统重入时可以被重新使用。如果不能保证系统的电源稳定,还必须考虑采用备用电池供电,以保证RAM数据的安全稳定;对于时间不是太敏感的系统,还可以采用E2PROM或Flash ROM来保存历史数据。

2.2软件抗干扰技术

一个系统可能由于存在着各种干扰及不稳定因素而出现运行故障。为解决这一问题,可以从程序的设计方面采取一些措施。传统的为抑制系统的干扰信号而经常采用的软件滤波技术、软件冗余设计就是这一类的典型应用。根据设计经验,通常还可以采用软件锁设计、程序陷阱设计。这一类方法主要是针对程序跑飞的情况而采用的。当系统在干扰信号的作用下发生程序跑飞时,程序指针有可能指向两个区域:一种可能正好转到程序区的其他地址进行执行,一种可能转移到程序空间的盲区进行执行。所谓盲区,就是说那里并没有存放有效的程序指令。对于第一种情况,可以采取软件锁加以抑制。例如为保证对外操作的安全,在软件锁设计中,对于每一个相对独立的程序块在其执行以前或执行中对一个预先设定好的密码进行校验,只有当这一密码相符时执行才真正有效,也只有程序是通过正常的转移途径转移过来时,才会由上一级的程序设定正确的密码;否则,会根据校验错而使程序强制发生转移,错误状态得到处理,并恢复程序的正常运行状态。可以看下面的一个例子:假设有顺序执行的三个程序块,每一个程序块执行时都对其设定的密码进行校验。

相关问答

单片机 在工业现场应用时为什么比一般 单片机 有更高的 可靠性 和稳定性?

问这个问题的人应该是不善于表达的,至少是在这个问题上没有表达清楚。是不是想问在工业现场使用的单片机要有更高的可靠性和稳定性?工业现场环境复杂,有可能...

单片机 使用寿命终究结果是怎样的?

有的厂商flash保证10年数据保存时间,有的厂商是20年,这个时间跟温度也有很大关系,在常温下有的是100年或更多。如果长期在高温下工作就要考虑其可靠性和耐久...

单片机 集成度?

单片机芯片的集成度非常高。它将微型计算机的主要部件都集成在一块芯片上,因此,具有如下特点:1、体积小、重量轻、价格低、耗电少、易...单片机芯片的集成...

单片机 设备与android系统设备优缺点?-ZOL问答

首先,单片机设备通常使用更简单的硬件设计,并且具有较小的尺寸和更低的功耗。与此相反,Android系统设备通常需要更大的处理能力和更多的内存来运行复杂的应用程...

单片机 ,什么是串行口,什么是并行口? - 珂珂珂的 的回答 - 懂得

有一根时钟线,一根数据线,一个时钟周期传送二进制1位,要传送一个字节至少需要8个时钟周期,串行线根数少,远程传输抗干扰能力强,成本低。...并行接...

单片机 主要技术指标?

(1)位数:是单片机能够一次处理的数据的宽度,有1位机(如PD7502)、4位机(如MSM64155A)、8位机(如MCS-51)、16位机(如MCS-96)、32位机(如IMST414).....

单片机 为什么数值计算能力相对较差?

单片机的特点抗干扰性强,工作温度范围宽,高可靠性,控制功能强,并具有许多面向控制的指令。但由于指令系统比通用微机简单,数值计算能力相对较差。单片机的...

单片机 受强电干扰?

由于单片机控制系统应用系统的工作环境往往是比较恶劣和复杂的,其应用的可靠性、安全性就成为一个非常突出的问题。单片机控制系统应用必须长期稳定、可靠地运...

童鞋们 谁能赐教: 单片机 有些什么特点?

[回答]单片机方案的优缺点分析运用单片机掌控方案,其系统结构简图如图所示,单片机虽然有一个五脏俱全的微计算机,但由于本身无自研发能力,必须利用开发工...

什么是 单片机 ,其主要特点有哪些?

单片机是一种集成电路芯片,也称为单片微控制器。它通过超大规模集成电路技术将中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/...

猜你喜欢