论文部分内容阅读
摘 要:随着使用软件和微处理器控制各种嵌入式设备的增加,对嵌入式系统的快速测试变得越发重要,根据统计,当前嵌入式系统的硬件故障率曾下降的趋势,同时软件的故障率却不断的攀升。本文介绍了嵌入式软件测试关键技术,通过对软件和硬件的结合、加强对其监控、进行总体优化设计等措施,提高嵌入式系统运行的可靠性。
关键词:嵌入式系统;控制系统;可靠性设计
1 嵌入式系统的可靠性
国际电机工程师协会提出嵌入式系统是控制、监视或者辅助装置、机器和设备运行的装置。嵌入式系统是软件、硬件的组合,同时包括机械附属装置。硬件系统是软件运行的基础,硬件系统的质量好坏容易通过直觀判断,一般通过对其外观检查和测试,对其质量、性能进行评估。软件系统的研发受研发人员对需求认识、对硬件系统掌握的程度、实践的经验积累、编程设计能力等方面影响,所以对软件系统的可靠性评估工作较为困难。嵌入式系统运行失效会导致灾难性的后果,由于大批量生产从而使生产企业遭受一定的经济损失,在产品出产前必须对对嵌入式系统,包括硬件、软件和系统进行严格的测试 [1]。
2 程序总体结构的优化设计
嵌入式系统是以控制为主,软硬件结合紧密,功能性操作复杂,模块互相调频繁,外部工作环境多样,容易干扰别和被干扰,且执行错误会导致整个系统的崩溃。在嵌入式软件的设计过程中注重软件、硬件之间接口的冗余性、预防性设计。设计时采用看门狗电路、状态保存等技术设计。软件锁和程序陷阱设计等抗干扰技术以,通过备份技术进行系统容错的设计。系统的有序运行,取决于顶层软件程序协调和控制下级单元一起工作,低层软件保持与顶层软件同步可靠的运行。
嵌入式微处理器控制系统软件、硬件相辅相成,硬件是软件的基础,软件使硬件充分高效地运行,以完成自动化、智能化控制。提高软件运行的可靠性,编写软件中对硬件作深入全面的研究、科学、合理地规划各个软件模块,使其在不同的时间使用硬件资源,尽量避免不同程序模块同时使用同一硬件资源。开始软件编写工作要深入学习硬件结构及其提供的资源,使软件编写更加合理性、规划性和科学性,最终形成高质量的软件系统。人性化设计指软件执行过程中的人机交互符合计算机使用者的心理特点,明确系统使用者心理特点的基础上,分析低层次的界面人性化设计中界面元素与帮助的人性化及高层次的功能结构人性化设计等方面。系统目标细化,设计人员根据总体任务需求,将现有的硬件条件和工作环境,将任务分解成数个相互联系、独立运行的控制单元模块,每个控制单元模块完成有自己的主要任务及配属任务,使各个控制单元模块负荷平均。以上为系统重点设计部分,可将一个复杂问题分解为几个简单易解的问题,并行运行的提高系统能力,从而现用几个简单运算解决复杂问题的能力,这样可以大大提高系统的工作效率,还可以大大减轻中央处理器的负担,同时全面提高系统的可靠性。每个控制单元模块同单元模块之间具有独立性,最大程度的减少彼此之间的依赖性,每当其中一个控制单元模块工作不正常时,不会影响系统正常运行,每个控制单元模块的功能设计不易太大,需考虑每个控制单元模块之间的负荷保持均衡,控制单元模块对系统硬件资源的占用的时间不能太常,但采取冗余设计是非常必要的。硬件资源中加入节能控制设计,比如运行中改变中央处理器运行频率、中央处理器空闲模式等。节能设计可减少系统电能的消耗,在减少电能损耗时,可降低中央处理器和硬件电路中电子元器件的温度,从而延长系统硬件的使用寿命,同时可以大大提高软件运行的可靠性。
3 程序设计中的具体措施
软件系统中,子程序运行会受到本身设计的缺陷、内外部电磁干扰、工作环境的温度等因素的影响。如果系统程序本身设计存在缺陷,可采用备用子程序进行替换,如果是系统硬件电路运行不可靠,软件设计做出相关的预警,提示操作人员及时进行排除。在系统子程序运行中的状态参数通过硬件的特定位置做出标识,供给系统监控函数和系统主程序使用。运行状态标志位是根据系统电路结构、硬件资源进行设计。虽然在高性能微处理器、优化电路的设计情况下,软件程序的可靠性较强,但程序可能还会出现一些不可意料的问题,即使硬件系统进行高水平的设计,其软件程序运行过程中的监控设计作为提高软件系统可靠性的要点。当多个子程序共同完成一目标协调工作时,不可避免的存在不协调的情况,只要科学合理的处理,一般不影响太大。对于受到内外环境的电磁干扰、偶然发生的子程序运行失效问题,改进软件算法进行解决,比如采用多次运算,去掉最大值部分和最小值部分,进行平均值计算等算法。当频繁出现运行失效情况时,分析是程序设计存在缺陷还是硬件资源冲突或硬件本身出现故障。如果软件程序设计存在一定缺陷,可通过调用备用程序予以解决。当因硬件资源存在冲突,可重新扫描硬件资源,调整硬件资源占用的时间与空间。动态软件缺陷测试技术是发现和消除软件缺陷的重要手段。在对软件程序存在缺陷进行检测时,可采用混合执行测试初始输入评估和选择方法,该方法结合部分控制流敏感的细粒度污点分析、符号执行。可通过识别、计算不同备选初始输入覆盖容易触发缺陷的危险路径的能力,来为混合执行测试评估和选择合适的初始输入,可有效的提高混合执行测试的缺陷检测效果[2]。
嵌入式软件既是系统的核心,作为硬件系统的有效补充,需要具备防错、判错、纠错和容错等功能,具备了这些功能,可以保证系统可靠性要求在软件分系统设计中的实现。但是软件可靠性又不同于硬件电路,它不会随时间的推移而降低,其可靠性保障全部在设计过程中实现。
参考文献
[1]徐忠兵.嵌入式软件可靠性测试用例自动生成技术的研究与实现[D].国防科学技术大学,2009.
[2]孙辉.嵌入式软件质量体系和软件质量自动评价系统的研究[D].东华大学,2010.
(作者单位:中国航空工业集团公司洛阳电光设备研究所)
关键词:嵌入式系统;控制系统;可靠性设计
1 嵌入式系统的可靠性
国际电机工程师协会提出嵌入式系统是控制、监视或者辅助装置、机器和设备运行的装置。嵌入式系统是软件、硬件的组合,同时包括机械附属装置。硬件系统是软件运行的基础,硬件系统的质量好坏容易通过直觀判断,一般通过对其外观检查和测试,对其质量、性能进行评估。软件系统的研发受研发人员对需求认识、对硬件系统掌握的程度、实践的经验积累、编程设计能力等方面影响,所以对软件系统的可靠性评估工作较为困难。嵌入式系统运行失效会导致灾难性的后果,由于大批量生产从而使生产企业遭受一定的经济损失,在产品出产前必须对对嵌入式系统,包括硬件、软件和系统进行严格的测试 [1]。
2 程序总体结构的优化设计
嵌入式系统是以控制为主,软硬件结合紧密,功能性操作复杂,模块互相调频繁,外部工作环境多样,容易干扰别和被干扰,且执行错误会导致整个系统的崩溃。在嵌入式软件的设计过程中注重软件、硬件之间接口的冗余性、预防性设计。设计时采用看门狗电路、状态保存等技术设计。软件锁和程序陷阱设计等抗干扰技术以,通过备份技术进行系统容错的设计。系统的有序运行,取决于顶层软件程序协调和控制下级单元一起工作,低层软件保持与顶层软件同步可靠的运行。
嵌入式微处理器控制系统软件、硬件相辅相成,硬件是软件的基础,软件使硬件充分高效地运行,以完成自动化、智能化控制。提高软件运行的可靠性,编写软件中对硬件作深入全面的研究、科学、合理地规划各个软件模块,使其在不同的时间使用硬件资源,尽量避免不同程序模块同时使用同一硬件资源。开始软件编写工作要深入学习硬件结构及其提供的资源,使软件编写更加合理性、规划性和科学性,最终形成高质量的软件系统。人性化设计指软件执行过程中的人机交互符合计算机使用者的心理特点,明确系统使用者心理特点的基础上,分析低层次的界面人性化设计中界面元素与帮助的人性化及高层次的功能结构人性化设计等方面。系统目标细化,设计人员根据总体任务需求,将现有的硬件条件和工作环境,将任务分解成数个相互联系、独立运行的控制单元模块,每个控制单元模块完成有自己的主要任务及配属任务,使各个控制单元模块负荷平均。以上为系统重点设计部分,可将一个复杂问题分解为几个简单易解的问题,并行运行的提高系统能力,从而现用几个简单运算解决复杂问题的能力,这样可以大大提高系统的工作效率,还可以大大减轻中央处理器的负担,同时全面提高系统的可靠性。每个控制单元模块同单元模块之间具有独立性,最大程度的减少彼此之间的依赖性,每当其中一个控制单元模块工作不正常时,不会影响系统正常运行,每个控制单元模块的功能设计不易太大,需考虑每个控制单元模块之间的负荷保持均衡,控制单元模块对系统硬件资源的占用的时间不能太常,但采取冗余设计是非常必要的。硬件资源中加入节能控制设计,比如运行中改变中央处理器运行频率、中央处理器空闲模式等。节能设计可减少系统电能的消耗,在减少电能损耗时,可降低中央处理器和硬件电路中电子元器件的温度,从而延长系统硬件的使用寿命,同时可以大大提高软件运行的可靠性。
3 程序设计中的具体措施
软件系统中,子程序运行会受到本身设计的缺陷、内外部电磁干扰、工作环境的温度等因素的影响。如果系统程序本身设计存在缺陷,可采用备用子程序进行替换,如果是系统硬件电路运行不可靠,软件设计做出相关的预警,提示操作人员及时进行排除。在系统子程序运行中的状态参数通过硬件的特定位置做出标识,供给系统监控函数和系统主程序使用。运行状态标志位是根据系统电路结构、硬件资源进行设计。虽然在高性能微处理器、优化电路的设计情况下,软件程序的可靠性较强,但程序可能还会出现一些不可意料的问题,即使硬件系统进行高水平的设计,其软件程序运行过程中的监控设计作为提高软件系统可靠性的要点。当多个子程序共同完成一目标协调工作时,不可避免的存在不协调的情况,只要科学合理的处理,一般不影响太大。对于受到内外环境的电磁干扰、偶然发生的子程序运行失效问题,改进软件算法进行解决,比如采用多次运算,去掉最大值部分和最小值部分,进行平均值计算等算法。当频繁出现运行失效情况时,分析是程序设计存在缺陷还是硬件资源冲突或硬件本身出现故障。如果软件程序设计存在一定缺陷,可通过调用备用程序予以解决。当因硬件资源存在冲突,可重新扫描硬件资源,调整硬件资源占用的时间与空间。动态软件缺陷测试技术是发现和消除软件缺陷的重要手段。在对软件程序存在缺陷进行检测时,可采用混合执行测试初始输入评估和选择方法,该方法结合部分控制流敏感的细粒度污点分析、符号执行。可通过识别、计算不同备选初始输入覆盖容易触发缺陷的危险路径的能力,来为混合执行测试评估和选择合适的初始输入,可有效的提高混合执行测试的缺陷检测效果[2]。
嵌入式软件既是系统的核心,作为硬件系统的有效补充,需要具备防错、判错、纠错和容错等功能,具备了这些功能,可以保证系统可靠性要求在软件分系统设计中的实现。但是软件可靠性又不同于硬件电路,它不会随时间的推移而降低,其可靠性保障全部在设计过程中实现。
参考文献
[1]徐忠兵.嵌入式软件可靠性测试用例自动生成技术的研究与实现[D].国防科学技术大学,2009.
[2]孙辉.嵌入式软件质量体系和软件质量自动评价系统的研究[D].东华大学,2010.
(作者单位:中国航空工业集团公司洛阳电光设备研究所)