历史上的今天
返回首页

历史上的今天

今天是:2025年03月04日(星期二)

正在发生

2018年03月04日 | 利用单片机系统可靠性设计

2018-03-04 来源:eefocus

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

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

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

    总结

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


推荐阅读

史海拾趣

Epistar Corp公司的发展小趣事

作为一家电子产品制造企业,Epistar始终关注环保和可持续发展问题。公司积极采用环保材料和生产工艺减少污染排放和能源消耗;同时,Epistar还加强了对废旧产品的回收和处理工作以减少对环境的负面影响。这些努力不仅提升了公司的社会形象也增强了公司的市场竞争力。

Antiference公司的发展小趣事

随着技术的不断进步,Antiference公司开始将目光投向国际市场。公司积极参与国际电子展,展示其先进的电磁干扰抑制技术,并成功吸引了众多国外客户的关注。通过与国外知名企业的合作,Antiference的产品逐渐打入国际市场,品牌知名度也大幅提升。

Herotek Inc公司的发展小趣事

随着半导体技术的飞速发展,Henkel公司紧跟行业趋势,不断研发适用于半导体封装的高性能粘合剂。其研发的粘合剂产品不仅满足了半导体封装过程中对于高精度、高可靠性的要求,还显著提升了封装效率。例如,Henkel的某些粘合剂产品能够在极端温度条件下保持稳定的性能,确保半导体器件在各种工作环境中都能正常运行。这一技术突破为Henkel在半导体封装市场赢得了广泛的认可。

Elpress AB公司的发展小趣事

Elpress AB公司成立于1959年,由一群具有前瞻性和创新精神的工程师在瑞典的克拉姆福什市创立。公司从成立之初就专注于电气连接系统的研发和生产,致力于为电力行业提供高效、可靠的解决方案。在初期,Elpress AB凭借其专业的技术能力和对质量的严格把控,逐渐在市场上赢得了客户的信赖。

APM Hexseal公司的发展小趣事

APM Hexseal的创始人Milton Morse是一位自学成才的工程师和杰出的创新者。他敏锐地洞察到电子行业对密封解决方案的迫切需求,于是开始设计原始的密封开关“靴子”。这种模制的覆盖物能够保护拨动开关和安装面板免受各种液体和气体的渗透。这一创新产品迅速取得了巨大的成功,为APM Hexseal公司奠定了坚实的基础。

DCD [Digital Core Design]公司的发展小趣事

在市场竞争日益激烈的情况下,DCD公司意识到单打独斗难以取得更大的发展。因此,公司开始寻求与其他企业建立战略合作关系。通过与上下游企业的紧密合作,DCD公司实现了资源共享和优势互补,进一步提升了自身的竞争力。同时,公司还积极参与行业标准的制定和推广工作,为行业的健康发展贡献了自己的力量。

问答坊 | AI 解惑

51单片机外部中断问题

小女子我初学单片机,很多不懂得地方,向大家请教下啊 关于使用外部中断点亮发光二极管的问题,为实现同一功能,写了两方案,具体程序和问题如下 方案一: ORG 0000H LJMP MAIN ORG 0003H LJMP INT MAIN: SETB EA  /*首先开启总中 ...…

查看全部问答>

GPS在公路测量中的应用

 1 GPS 测量简介   全球定位系统(GPS) 是美国国防部主要为满足军事部门对海上、陆地和空中设施进行高精度导航和定位的要求而建立的。该系统从本世纪70 年代初开始设计、研制。GPS 具有全天候提供高精度的连续实时三维导航、定位能力。自1980 年 ...…

查看全部问答>

有没有办法从应用程序得到windowmessage的值

因我要拦截系统自定义的系统消息,只知道消息名字,不知道值,如何得到其值。谢谢Q…

查看全部问答>

介绍一种串口设备联网的解决方法

1.串口联网服务器的定义   串口联网服务器顾名思义就是串口连接到网络的接口转化设备,由于串口一般包括RS-232/485/422,网络协议也指TCP/IP 协议,所以串口联网服务器也可以称为将RS-232/485/422数据形式转化为TCP/IP数据形式或TCP/IP数据形式 ...…

查看全部问答>

6410,wince软件开发项目合作

基于S3C6410的WINCE 6.0 R3软件开发. 最好在顺德,需要与硬件调试.…

查看全部问答>

c8051f,at89s5x,sst89等51系列单片机仿真器、编程器和学习板

西安杨工    13002928013 email: yang96381@126.com http://c8051fmcu.blog.sohu.com …

查看全部问答>

WINCE OS启动桌面后为什么总是提醒我设置IP?

我的平台是CEPC X86,使用PB4.2自带的CEPC BSP定制的,系统可以正常启动。 但是,当桌面启动后,就弹出一个对话框要我设置DHCP或者静态IP,对话框的标题是:\'Mycrosoft null Ethernet Miniport Driver\' settings 当我设置DHCP时,确实可以得到 ...…

查看全部问答>

wince 串口的处理速度问题

    用串口与MCU通信,用57600波特率,8位数据,1位停止位,无校验位。mcu端发送一个数据包号请求命令(共10个字节长度),wince端收到后,解析出包号,把对应包号的数据发送给MCU(共40个字节长度)。mcu端收到数据后继续请求下一包数据 ...…

查看全部问答>

【忽悠】STM32的技术研讨会先睹为快

此次STM32的技术研讨会的一个重要的部分是,与使用STM32的工程师们面对面的讨论一些大家普遍碰到的问题。STM32是个新产品,Cortex-M3也是个新产品,有很多应用上的概念与大家原有的概念是相通的,也有一些概念是有些人没有碰到过的,我们希望 ...…

查看全部问答>

求问手动复位,谢谢大侠们!

我在430的复位管脚设置了一个复位按键,如果系统运行过程中复位键被按下,系统就复位,备份数据清除。我想问怎么判断是否有复位键按下呢?是不是如下: while(1) { if(IFG1&BIT4==1) System_reset(); //系统 ...…

查看全部问答>