软件冗余技术在嵌入式系统中的作用

时间:2022-10-29 03:46:32

软件冗余技术在嵌入式系统中的作用

摘要:软件冗余技术的应用,使嵌入式系统更加可靠。一般的嵌入式系统为了确保系统程序正常运行使用看门狗,看门狗确实能够避免死机现象的发生,但是其存在干扰导致存储被破坏需要充分编写程序这种风险。为此嵌入式系统开始运用软件冗余技术,使嵌入式系统可靠性得到进一步提高。

关键词:软件冗余技术;嵌入式系统;可靠性

中图分类号:TP309.3 文献标识码:A文章编号:1007-9599(2011)24-0000-01

Software Redundancy Technology Using for Embedded Systems

Chen Lin

(Nanjing Engineering Institute of Aircraft Systems,Nanjing211102,China)

Abstract:The application of software redundancy techniques to make embedded systems more reliable.Embedded systems in order to ensure the normal operation of the system program using the watchdog,the watchdog is indeed able to avoid the occurrence of the phenomenon of death,but there is interference to store programming this risk need to be fully To this end,embedded systems using software redundancy techniques to further improve the reliability of embedded systems.

Keywords:Software redundancy technology;Embedded systems;Reliability

一、软件冗余技术及嵌入式系统概述

软件冗余技术在软件设计过程中不仅需要进行程序代码编程,而且还需要额外增加一些其他必要的程序代码,进而使系统的性能和可靠性等特性能够进一步提高。软件冗余技术的采用应该在程序编码及程序书写风格上体现出来,不应当只是在软件技术处理手段上体现。

嵌入式系统是以应用为中心,可裁剪软硬件,适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统具有很多特点,如应用范围较广,具有较长的生命周期,可靠性较高等。嵌入式系统一般由硬件、实时操作系统及应用软件这三个部分组成。

在嵌入式系统中,通常情况下,Flash是其程序存储器主要使用的,使用Flash主要是由于其存储容量较大,并且成本廉价。在大容量的程序存储器中,为了确保软件冗余,应为软件多做几个备份。如图1所示,将Flash划分为很多区域,将Bootloader代码存放在Flash的起始地址中,在软件的3个备份和校验值的2个备份的相应位置分为放置其各自的备份。一般而言,当程序编写完成后,拉低Flash的WP脚,从而使其写保护作用得到充分发挥,由此可见,现在的Flash存储器一般都具有写保护功能。

图1 代码布局

二、嵌入式系统可靠性提高的具体方法

(一)看门狗的使用。提高嵌入式系统可靠性的一个有效方法就是采用看门狗。这种方法既简单又常用,这种方法能够有效地防止系统死机现象的发生。看门狗的使用一般都是做定期操作,主要是在定时器或者主程序中进行。另外,看门作也应该在较长延时的地方进行。在使用看门狗时,需要合理配置和操作“喂狗”的时机和看门狗“溢出时长”,从而能够避免一些问题的出现,如在工作时会出现不必要的复位现象发生等。(二)“复位键”的设置。系统启动速度快是嵌入式产品的一个显著特点。因此,系统“复位键”应该设置在人机接口设计中,这个“复位键”并不是单独的一个单键,而是一个组合键。“复位键”的主要特点就是能够重启系统,当系统发生故障或者死机时,只要按下这个“复位键”,那么系统就会重新启动,进而正常运行。当然,在使用“复位键”时,要讲究时机,它也并不是万能的,能够让“复位键”发挥其作用的时机就是系统处于空间状态或者系统处于异常状态。此时应注意“复位键”发挥作用的前提是系统发生问题,那么如果系统在运行过程中并没有任何问题的话,复位操作就没有必要进行。(三)采用出错重发通信协议。在通信过程中若使用点对点的方式进行,由于线路条件和外界环境对其产生影响,那么数据包丢失及传输错误这种现象很有可能发生,因此,在对数据进行发送和接收时,不能仅仅只使用简单的收、发方式进行,为了进一步确保收、发双方通信的可靠性,而应当采用带有检错及出错重发功能的通信协议。实现出错重发的通信协议种类较多,如停等协议、滑动窗口协议等。停等协议就是指发送方每发送一个数据包,就必须等待接收方的证实,既包括肯定证实,也包括否定证实。接收方判断所有接收到的数据包,如果经判断,所接收到的数据没有任何问题,则为肯定证实,如果经判断,所接收到的数据有问题,则为否定证实。接收方将肯定证实发送给发送方,则可进行下一个新数据包的发送,反之,如果接收方将否定证实发送给发送方,那么发送方必须对这些数据进行重新发送。如果发送方将所接收到的数据进行发送过程中出现丢失,那么此时发送方也必须设置一个发送超时计数器,等一个数据包由发送方发送完之后,在一定的时间内发送方并没有接收到接收放的任何回应信号,那么还需将上次的数据包进行重新发送。像这种每次发送一个信息都需要等接收方回应信号的出错重发协议效率是比较低的,尤其是在线路传输时延较长的系统中,这个问题尤为突出,此时,就可以采用滑动窗口协议,此协议具有较高效率,并且此协议一次能完成发送和接收多个数据包。(四)采用热备份、双CPU工作。采用热备份、双CPU工作虽然可以提高嵌入式系统的可靠性,但是其对硬件和软件要提出了更高的要求。针对硬件而言,这种方式必须要具有两个CPU,另外,实时检测机制也需要系统给予提供,也就是说,当主CPU发生故障时,其故障也能够被立即检测出,主要由从CPU完成这项工作,并且还能够将系统总线接管过来,使其与其他各种系统资源并投入运行。另外,从CPU的实时传送也能够通过主CPU的各种状态信息进行,从而保证一旦主CPU发生故障时,不会导致整个系统瘫痪,从CPU能够发挥其作用,确保系统的正常运行,当然在此过程中,主、从CPU参数的一致性也应该保留住。为了使从CPU能够顺利代替主CPU运行,应该在主、从CPU双方都增加一部分程序代码,这部分程序代码可以是体现主CPU运行状态,主要是对方CPU的故障检测程序代码等。

总而言之,嵌入式系统采用哪种措施,其可靠性的保证是必不可少的,实践证明,软件冗余技术是确保嵌入式系统可靠性的一个有效措施,重要保证。

参考文献:

[1]张晶,曾宪云.嵌入式系统概述[J].电测与仪表.2002,(04)

[2]陈智,邱跃洪,董佳.冗余技术在单片微机系统中的应用[J].电测与仪表.2005,(02)

上一篇:浅谈GDTrg1.0exe程序在重要气象情报中的应用 下一篇:电子技术中单片机的应用和开发技术探讨