您的位置 首页 测评

怎么优化单片机体系使其运转具有更好的可靠性

如何优化单片机系统使其运行拥有更好的可靠性-看门狗电路的定时时间长短可由具体应用程序的循环周期决定,通常比系统正常工作时最大循环周期的时间略长即可。编程时,可在软件的合适地方加一条喂狗指令,使看门狗的定时时间永远达不到预置时间,系统就不会复位而正常工作。当系统跑飞,用软件陷阱等别的方法无法捕捉回程序时,则看门狗定时时间很快增长到预置时间,迫使系统复位。

单论单片机硬件体系规划解决方案,一般从三个方面剖析:优选规划方案、添加冗余和容错率、选用硬件抗搅扰。本文详细的介绍了优化这三个方面临单片硬件可靠性带来的优点。

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

防止严峻搅扰,激烈的搅扰会影响单片机的输入信号,形成输入信号瞬间采样的差错或误读,要防止搅扰的影响,一般采纳重复采样,加权均匀的办法。

总结

进步单片机运用体系的可靠性要从软硬件下手,进步体系的本身防护行为,以上所说到几种进步可靠性的办法,都不是独自运用的,只需依据实践状况将这些办法有用地结合起来,才干到达最佳抗搅扰作用,使咱们的单片机体系安稳可靠地作业。当然,单片机体系运转的可靠性也会受其他不确认要素的搅扰。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/344939.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部