电子发烧友网 > 控制/MCU > 正文

如何解决单片机系统失效的问题

2020年03月30日 15:31 次阅读

目前,大量的嵌入式系统均采用了单片机,并且这样的应用正在更进一步扩展;但是多年以来人们一直为单片机系统的可靠性问题所困惑。在一些要求高可靠性的控制系统中,这往往成为限制其应用的主要原因。

1 单片机系统的失效分析

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

2 提高可靠性的措施

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

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

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

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

2.2软件抗干扰技术

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

如何解决单片机系统失效的问题

如何解决单片机系统失效的问题

当程序顺序执行时,每一个程序块都能够得到有效正确的执行。现在假设程序由于干扰而发生跑飞,由SUB—PRO1的块处理跳到了程序SUB-PR03处开始执行,那么在执行中密码校验会出错,程序将转移到错误处理程序进行处理,避免进行错误的操作。

设计程序陷阱的目的,主要是为了防止程序跑飞到程序盲区进行执行。一般情况下,对于程序代码空间以外的ROM空间的处理是采用空置的方法。固化程序时,这些空置空间被全写为1或全写为O,这样程序跳入这一区域将不可控。为了捕获跳入此区的程序,可以采用程序陷阱来予以实现。下面通过例子来说明:假设某系统程序空间为32KB,程序编译后共生成18 KB的代码,那么,还有14 KB的程序空间未被使用,可以在该区域放置下面的陷阱程序:

如何解决单片机系统失效的问题

用上面程序段重复覆盖剩余的程序空间陷阱程序里的每一段含有的NOP指令的多少对于捕获的成功率及捕获的时间有影响。NOP指令放置的越多捕获的成功率就越高,但花费的时间就越长,程序失控的时间也越长;否则,情况则相反。因为只有程序跳转到NOP指令或LJMP指令的首个字节时,才能成功捕获;当程序跳到LJMP指令的后两个字节时,可能会出现不可预知的执行结果。被捕获的程序如果跳到程序的起始处执行时,还必须考虑程序的可重人性。

2.3采用备份系统提高可靠性

备份系统在许多重要控制系统中已被广泛使用,但多在工控机中或较大型的系统中采用。备份系统可根据具体的情况分为在线备份系统和后备备份系统。对于在线备份系统,系统中的两个CPU均处于工作状态,有可能两个CPU处在对等的位置,也可能一个处在主CPU的位置,而另一个处在从CPU的位置。在对等的情况下,两个CPU共同决定系统对外的操作,任何一个CPU出错都将引起对外操作的禁止。对于一主一从的情况,往往是主CPU负责系统控制逻辑的实现,而从CPU负责对主CPU的工作状态进行监控。当监控到主CPU工作异常时,从CPU通过强行复位主CPU等操作使主CPU恢复正常,同时,为确保从CPU工作正常,从CPU的工作状态也被主CPU监控;当从CPU的工作状态不正常时,主CPU也可采取措施使从CPU恢复正常工作,即实现互相监控的目的。在具体的设计中,主从CPU进行信息交换的途径非常灵活、多样。例如,采用公用的存储器来实现监控信息的交换(如把公用信息存入双口RAM),采用握手信号的方法实现监控信息的交换等。

3 提高系统可靠性的综合设计方法

在一个具体的系统设计中,为提高系统的稳定性和可靠性,往往要综合采用多种措施来达到满意的效果,这是全面提高系统可靠性的必由之路。系统不同,其具体的控制对象就可能不同,运行环境也会千差万别,因而其面临的主要干扰问题就不同,采取的措施也就不同;但仅采取某项措施就希望全面提高系统的可靠性常常是不现实的,而要针对主要问题综合采取多项措施联合提高可靠性。

4 设计实例

下面给出一个设计实例,以进一步说明提高系统可靠性设计的一些常用方法。

在某卫星通信系统中,为了降低系统的相噪,要求其前置低噪声放大器(LNA)的工作温度保持恒定(40℃);而该放大器在野外工作的环境温度范围为一40~+60℃之间,因此必须把该放大器放入特制的恒温箱中。该恒温箱应具有既能制热又能制冷的功能。制热采用电阻丝加热器,制冷采用半导体制冷片来实现。为防止恒温箱因控制器失灵而造成温度失控甚至损坏低噪声放大器,破坏整个系统的正常工作,恒温箱的设计主要采用了主从双CPU系统来提高系统的可靠性。除此以外,还采用了如电源监控技术、看门狗技术、软件陷阱技术、光电隔离技术等措施综合提高系统的可靠性。该系统的结构框图如图1所示。

如何解决单片机系统失效的问题

主CPU负责加热器、制冷片及箱内箱外温度的检测,担负主要的控制任务。主CPU选AT89S52单片机,内含看门狗定时器,在芯片外加MAX707作为电源监控电路;除可以向主CPU提供可靠的复位信号以外,还可以检测掉电中断申请信号,当掉电发生时及时保存现场数据。加热棒使用交流220V供电,制冷片采用15V直流稳压电源供电。为防止高电压强电流对弱电部分的干扰,主CPU产生的控制信号都经过光电隔离送向驱动电路,以提高系统的可靠性。

从CPU选AT89C2051,主要负责对主CPU工作情况的监控及电源供电电压的监视。当掉电现象发生时,AT89C2051内的电压比较器会检测到这种变化,并由后备电池供电,通过485口向监控台报告。

主从CPU之间的监控是相互的。主从CPU通过它们之间的I/O口线握手,彼此监视对方的工作状态,并采取相应的处置措施,保证系统对外操作的安全。通过上述措施的实施,系统的可靠性非常出色,自投入运行以来一直稳定可靠,无不明原因的死机或失控现象发生,充分说明了系统设计的成功。而根据以往的经验,如不采用上述的综合设计方法,这样的系统通常在连续运行1~2周后就很可能产生问题。

结 语

本文详细分析了单片机系统失效的原因,讨论了提高系统可靠性的措施,并提出了提高系统可靠性的综合设计方法。在低噪声放大器恒温控制器中的成功应用,表明这种设计方法是行之有效的,系统的可靠性得到了充分的保障。
责任编辑;zl

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

书童哥(龙顺宇)62讲生动课程带您玩儿转STM8单片机

【课程介绍】:朋友们大家好,本套视频教程由本人录制,现做为录播课程上传至电子发烧友网平台,感谢电子发烧友网让单片机学习的
发烧友学院发表于 2019-01-19 00:00 3004次阅读
书童哥(龙顺宇)62讲生动课程带您玩儿转STM8单片机

新手该如何才能尽快地学会使用单片机

在学习单片机之初应当有一些基础知识准备。单片机是电子技术发展到一定程度才出现的产物,本身就是众多电子....
发表于 2020-03-30 15:36 0次阅读
新手该如何才能尽快地学会使用单片机

基于CAN现场总线的集散型火灾报警控制系统设计

CAN(Controller Area Network)即控制器区域网——一种有效的支持分布式控制和....
发表于 2020-03-30 15:23 2次阅读
基于CAN现场总线的集散型火灾报警控制系统设计

OBG调试接口在单片机中的应用解析

OBG在单片机中的解释STM32单片机的内核(Cortex-M3)含有硬件调试模块,支持多种复杂的调....
发表于 2020-03-30 15:19 0次阅读
OBG调试接口在单片机中的应用解析

介绍一下单片机有什么特点

单片机是单片微型计算机的简称,从广义上讲单片机是微型计算机的一种,是集成在一个芯片上的,专门用于检测控制领域上...
发表于 2020-03-30 11:23 54次阅读
介绍一下单片机有什么特点

采用西门子profibus dp高速现场总线实现...

山东德州兴泰纸业公司是山东照东方纸业集团新建的具有国内领先水平的高档板纸生产企业。其高档板纸项目为国....
发表于 2020-03-30 10:53 32次阅读
采用西门子profibus dp高速现场总线实现...

基于mm440变频器实现连铸机切割自动控制系统的...

济钢集团第三炼钢厂是济钢集团“十五”期间的重点投资项目,引进的是国内外一流的先进设备和自动化控制技术....
发表于 2020-03-30 10:46 34次阅读
基于mm440变频器实现连铸机切割自动控制系统的...

通过CAN-bus总线对室内空调的温/湿度模拟系...

本系统是一个室内空调温/湿度控制系统的模拟系统数据采集及控制中心通过CAN-bus 总线定时采集各个....
发表于 2020-03-30 09:38 31次阅读
通过CAN-bus总线对室内空调的温/湿度模拟系...

38译码器真值表讲解

从这个名字来剖析,三八译码器,就是把 3 种输出形态翻译成 8 种输入形态。从图 3-15所能看出来....
发表于 2020-03-30 09:32 20次阅读
38译码器真值表讲解

利用基金会现场总线技术对唐钢煤气焦化厂控制系统进...

唐钢煤气焦化厂化产车间仪表系统参数检测和控制采用的全部是模拟仪表,有些甚至为老式的II性仪表,存在着....
发表于 2020-03-30 09:26 33次阅读
利用基金会现场总线技术对唐钢煤气焦化厂控制系统进...

单片机进不了编程模式

如图  第一次的时候  擦除  或者  清空  都是成功的   ...
发表于 2020-03-30 09:02 13次阅读
单片机进不了编程模式

蓝牙模块和51单片机的串口连接

我的蓝牙模块是和我的51单片机的串口连接的,然后我用手机发射一个“1”的信号,蓝牙模块接收后我通过51来控制led灯亮...
发表于 2020-03-30 04:13 50次阅读
蓝牙模块和51单片机的串口连接

单片机中断一直处于等待执行状态

小弟最近在搞一个小项目,由于原来选了单片机MSP430作为控制器,做到中断处理部分,项目中总共需要两个IO外部中断...
发表于 2020-03-29 23:29 9次阅读
单片机中断一直处于等待执行状态

C8051F单片机的头文件调用出现错误

头文件定义Io口初始化static volatile unsigned char P0 @ 0x80;编译时错误1.C(28): error C129: missing ';'&nbs...
发表于 2020-03-29 23:05 46次阅读
C8051F单片机的头文件调用出现错误

请问用单片机做仪表和用PLC做自动化有什么差别?

大家好,我本来是做电子的,用单片机做了一个仪表,现在需要用PLC做一套自动化系统来配合仪表使用,我之前没有接触...
发表于 2020-03-29 22:43 9次阅读
请问用单片机做仪表和用PLC做自动化有什么差别?

基于ARM处理器和CPLD技术实现智能移动机器人...

该系统设计的轮式移动机器人机械导航结构采用四轮差速转向式的机械机构,前面两个轮是随动轮,起支撑作用,....
发表于 2020-03-29 10:44 89次阅读
基于ARM处理器和CPLD技术实现智能移动机器人...

基于单片机和TC35i型无线通信GSM模块实现L...

随着通信技术的发展,基于移动通信网络的服务功能正向工业控制和遥控领域扩展。为了适应这种需要,西门子公....
发表于 2020-03-29 10:23 546次阅读
基于单片机和TC35i型无线通信GSM模块实现L...

RJM8L151XXX系列,红外测温计首选超低功耗MCU

RJM8L151系列有三种封装:TSSOP20、QFN32、LQFP48。RJM8L151芯片是一颗高速度,高性能的8051兼容...
发表于 2020-03-28 15:13 205次阅读
RJM8L151XXX系列,红外测温计首选超低功耗MCU

采用现场总线和PLC器件实现板坯连铸机电气自动控...

板坯连铸机电气基础自动化控制系统是保证连铸机正常生产的关键系统,相对其它系统而言,对于系统硬件的可靠....
发表于 2020-03-28 10:41 67次阅读
采用现场总线和PLC器件实现板坯连铸机电气自动控...

惯导在实现生活中应用的优缺点

惯性导航传感器是传感器众多类型中的一种,是多个行业中不可缺少的检测装置。惯性导航传感器系统一般由一个....
发表于 2020-03-28 10:38 35次阅读
惯导在实现生活中应用的优缺点

基于ControlLogix结构体系的供水行业自...

此系统是珠海广昌泵站的自动化控制系统,广昌泵站是为解决珠海市及澳门咸期供水而新建的一个泵站,其日供源....
发表于 2020-03-28 10:34 71次阅读
基于ControlLogix结构体系的供水行业自...

基于ControlLogix和NetLinx总线...

大豆分离蛋白的生产工艺复杂、质量控制要求严格。我国现有的绝大部分大豆分离蛋白生产线工艺设备落后,生产....
发表于 2020-03-28 10:24 51次阅读
基于ControlLogix和NetLinx总线...

ARM-Linux应用开发和单片机开发的区别是什...

这里先要做一个说明,对于ARM的应用开发主要有两种方式:一种是直接在ARM芯片上进行应用开发,不采用....
发表于 2020-03-27 14:29 91次阅读
ARM-Linux应用开发和单片机开发的区别是什...

大家谁知道我的PIC单片机PCB需预留啥写程序插座?我用ICD4写录器

发表于 2020-03-27 13:37 187次阅读
大家谁知道我的PIC单片机PCB需预留啥写程序插座?我用ICD4写录器

美国奥法特空军将接收一套洲际弹道导弹发射控制系统...

ALCS是一种非常独特的核武器系统,如果地面的发射控制中心被摧毁,该系统为美国军方提供了一种从飞机上....
发表于 2020-03-27 10:57 38次阅读
美国奥法特空军将接收一套洲际弹道导弹发射控制系统...

采用CC-Link解决隧道掘进设备自动控制系统的...

飞机、导弹、宇宙飞船等“上天”装备对自动控制系统的要求是众所周知的,而隧道掘进设备对自动控制系统的要....
发表于 2020-03-27 10:06 71次阅读
采用CC-Link解决隧道掘进设备自动控制系统的...

采用现场总线技术的NETWORK-6000+控制...

NETWORK-6000+分散控制系统,其分散处理单元(DPU)T940X的CPU采用Pentium....
发表于 2020-03-27 09:29 52次阅读
采用现场总线技术的NETWORK-6000+控制...

请问5V单片机与GPS GPRS模块通信可行吗?

各位大侠, 我公司想做一款工程车辆GPS,想用飞思卡尔MC9S12DG系列(5V供电)+SIMCOM900A(4.2V)+丽...
发表于 2020-03-27 05:59 84次阅读
请问5V单片机与GPS GPRS模块通信可行吗?

单片机采集数据后怎么通过光纤连接?

我现在在做一个项目,主要是测量一个厂区20个不同点的信号,这20个点的距离都很远,然后集中到一起监测。   &nb...
发表于 2020-03-27 02:18 86次阅读
单片机采集数据后怎么通过光纤连接?

如何理解单片机中的高阻态

高阻态这是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平。 如果....
发表于 2020-03-26 15:30 146次阅读
如何理解单片机中的高阻态

如何把uC/OS-II操作系统移植到M16C62...

uC/OS-II采用完全占先式的实时内核,最多可以管理56个任务,每个任务对应一个不同的优先级,因而....
发表于 2020-03-26 15:25 54次阅读
如何把uC/OS-II操作系统移植到M16C62...

互联互通一卡通

在控制系统中,所谓的“语言”被称为“协议”,是系统中的设备之间进行指令和信息传递时,采用的数据格式等....
发表于 2020-03-26 10:57 227次阅读
互联互通一卡通

为什么很多单片机的工作电压是5v?

因为大多数芯片都是5V的TTL电平,要做到电平兼容,电平匹配,避免要电平转换操作,所有很多单片机的工....
发表于 2020-03-26 09:57 101次阅读
为什么很多单片机的工作电压是5v?

CC-Link现场网络实现印刷机控制系统的设计

在全面审视上述要求之后,选择什么样的电控系统和现场总线,还应该比较它们的性能价格比,以及实现通信的方....
发表于 2020-03-26 09:30 38次阅读
CC-Link现场网络实现印刷机控制系统的设计

现场总线技术的结构、特点及在化工行业中的应用研究

随着电力行业的技术进步,化工行业自动化水平日益提高,国内各大化工厂纷纷将配电自动化系统纳入DCS(集....
发表于 2020-03-25 10:18 82次阅读
现场总线技术的结构、特点及在化工行业中的应用研究

基于现场总线和单片机实现分布烤烟实时远程监控系统...

当今计算机控制系统正迅速向分散的现场总线控制系统(FCS)方向发展,现场总线的使用,使得包含工业控制....
发表于 2020-03-25 10:09 60次阅读
基于现场总线和单片机实现分布烤烟实时远程监控系统...

电子标签在煤矿井下人员监控定位中的应用

目前,煤矿井下普遍存在入井人员管理困难,管理人员难以及时掌握井下人员的动态分布及作业情况,一旦事故发....
发表于 2020-03-25 09:28 169次阅读
电子标签在煤矿井下人员监控定位中的应用

存储器的工作原理是怎么样的

存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、低
发表于 2020-03-25 08:50 87次阅读
存储器的工作原理是怎么样的