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

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

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

单片机系统的抗干扰能力是系统可靠性的重要指标。由于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机对单片机直接开发的方案
单片机应用系统中抗干扰解决方案

相关资讯
英特尔CEO陈立武在华投资引争议,特朗普施压辞职遭强硬拒绝

近期,围绕英特尔首席执行官陈立武的任职资格问题,美国政界刮起一阵强风。事件源于美国参议员汤姆·科顿(Tom Cotton)本月5日致函英特尔董事会,对陈立武在华投资历史及其潜在利益冲突提出尖锐质疑,认为这可能危及英特尔获得的美国政府巨额补贴(包括《芯片与科学法案》下的近80亿美元)所应承担的国家安全责任,尤其涉及敏感的“安全飞地”(Secure Enclave)国防芯片项目。此质疑引发了广泛关注。

中国晶圆龙头企业二季度业绩强劲,产能利用率创新高

2025年8月7日,中国半导体行业领军企业中芯国际和华虹半导体正式发布2025年第二季度业绩报告。数据显示,两家企业销售收入均实现高两位数增长,并带动盈利能力大幅提升。这一成绩不仅体现了国内晶圆制造领域的高效运营,还反映出全球半导体需求的稳健复苏。分析机构指出,在人工智能、汽车电子和5G通信技术的推动下,中国半导体企业正通过优化产线和扩产战略,持续提升市场竞争力。

设计革新显成效!三星Galaxy Z7系列全球热销,俄罗斯预售激增30%​

三星电子最新一代折叠屏智能手机Galaxy Z Fold 7与Galaxy Z Flip 7甫一上市,即在全球多地区域引发显著消费热潮。最新数据显示,在俄罗斯这一三星曾战略退出的关键市场,该系列的预售表现超出预期。行业分析机构透露,相较于前代产品,Z7系列在俄罗斯的预订量实现了约30%的显著提升。值得关注的是,采用超薄设计、轻量化大幅改进的Galaxy Z Fold 7在俄预售中占据主导,份额高达约70%,充分体现了消费者对于产品形态革新突破的高度认可。

德州仪器启动史上最大规模涨价,中国芯片供应链加速重构

2025年8月,全球模拟芯片龙头德州仪器(TI)对中国客户启动覆盖超6万款产品的价格调整,涨幅达10%-30%,远超6月仅3300款产品的定向调价规模。尽管官方通知生效日为8月15日,部分客户反馈新定价已于8月4日提前执行。此次涨价涵盖工业控制、汽车电子、消费电子及通信设备全品类,其中41.3%的产品涨幅超30%,工业级数字隔离器和车规电源管理芯片(PMIC)成为重灾区,涨幅普遍超过25%。

罗姆加速SiC技术布局应对市场变局,2025财年Q1利润承压

2025财年第一季度,日本罗姆半导体(ROHM)面临严峻财务挑战:营收同比下滑1.8%至1162亿日元,营业利润暴跌84.6%至1.95亿日元。尽管净利润下滑14.3%,但公司成功结束连续三季亏损,实现扭亏为盈。业绩承压主因工业机械与汽车应用领域需求疲软(销售额分别下降5%和7%),叠加中国碳化硅(SiC)厂商的竞争冲击。