单片机系统可靠性设计解决方案之软件设计(二)

发布时间:2014-03-18 阅读量:1170 来源: 我爱方案网 作者:

【导读】前面我们了解了单片机应用系统硬件可靠性设计方案,而单片机应用系统的软件和硬件是紧密相关的。要使整个系统具有较高的可靠性,除了在尽可能提高硬件可靠性的前提下,软件的可靠性设计也是必不可少的,必须从设计、测试及长期使用等方面来解决软件可靠性。

单片机系统的抗干扰能力是系统可靠性的重要指标。由于51单片机的指令系统是复杂指令集结构,致使其抗干扰性能较低,尤其用在工业控制的场合,如果不增加额外的抗干扰措施,甚至无法正常工作。单片机软件抗干扰设计的主要目的就是及时发现“跑飞”的程序,并及时地将程序拉入正常轨道,主要方法有:指令冗余、软件“陷阱”、软件“看门狗”等等。

1、指令冗余

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

2、设计软件“陷阱”

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

软件陷阱的一般结构为:

NOP

NOP

LJMP FLY

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

3、软件“看门狗”技术


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

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

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


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

5、刷新输出端口

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

6、进行多次输入采样

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

总结

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

扩展阅读:
单片机系统可靠性设计解决方案之硬件设计(一)
一个可利用PC机对单片机直接开发的方案
单片机应用系统中抗干扰解决方案

相关资讯
碳化硅MOSFET驱动电路的研究与设计:开启高效电力电子新时代

碳化硅MOSFET凭借其高击穿电场强度、高热导率、高开关频率及低导通损耗等优势,在新能源汽车、光伏逆变器、数据中心电源及工业电机驱动等高功率、高效率应用场景中展现出巨大潜力。

苹果iPhone 17最全爆料:新设计、新机型、新价格,史上最大升级来袭!

此次发布的iPhone 17系列或将迎来苹果近十年来最彻底的一次革新——全新机型、颠覆设计、全系高刷、自研基带、5000mAh电池……亮点密集,堪称“王炸”级别。

破局算力能耗:SiC器件如何重塑数据中心电源的未来

相较于传统的硅(Si)基IGBT和MOSFET,SiC器件在材料层面实现了质的飞跃。其禁带宽度是硅的3倍,击穿电场强度是硅的10倍,热导率也远超硅材料。

步进电机驱动中的微步控制:解锁平滑运动与精准定位的核心技术

在现代精密自动化设备、3D打印机、CNC机床以及机器人技术中,步进电机因其开环控制、结构简单、成本低廉且定位精准等优点而被广泛应用。

C电源系统:结构解析、核心特性与典型应用全景

本文将深入剖析RC电源系统的结构组成、核心特性,并探讨其常见的应用领域,为相关技术人员提供全面的参考。