科普:嵌入式代码软件在环(SiL)测试的可靠性

这篇具有很好参考价值的文章主要介绍了科普:嵌入式代码软件在环(SiL)测试的可靠性。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

​​关键词:嵌入式系统、软件在环(SiL)、测试、生命周期
01.简介
当前,嵌入式系统开发的大趋势为通过软件实现大量的硬件功能,这导致软件的复杂程度显著上升——代码开发成本和风险也成倍增加。复用已有系统中的软件组件是改进嵌入式系统生命周期的一种可能的解决方案,对代码的可移植性和可测试性有较高要求。
测试的复杂度和成本与代码量正相关,尽早发现可能存在的错误可以避免后续阶段的成本。考虑到软件开发过程的“V”型模型,在软件模块测试(Module tests)和软件集成测试(Integration tests)阶段应该使用 SiL(Software-in-the-Loop)环境。
 ▲嵌入式系统设计阶段的“V”模型
 
​本文的主要目的在于横向对比应用HiL和SiL测试环境所获得的结果,以证明SiL测试的可靠性。本文被测嵌入式系统针对英飞凌C167CR单片机开发,操作系统选用的是典型的实时操作系统(RTOS,Real Time Operating System)OSEK 操作系统,被测功能为控制直流电机的转速。
 

02.实践1:HIL测试

硬件在环(HiL)测试是一种无损检测环境,常见的被测设备(Device Under Test, DUT)一般为控制器硬件,如整车控制器VCU(Vehicle Control Unit)、电池管理系统BMS(Battery Management System)。本实践的HiL测试框图如下图所示,带有DUT的接口板是使用NI PCI 6251高速多功能数据采集板完成。
  ▲HiL测试框图
本实践中,HiL测试由三部分组成:
  • 主机PC(HOST PC):直流电机模型由MATLAB/Simulink实现,并使用Real-Time Workshop和xPC Target编译为xPC实时内核。
  • 目标计算机:直流电机模型通过实时约束运行,模拟信号通过接口板卡转换为物理信号。
  • 嵌入式硬件系统:被测控制算法。

A:直流电机模型

用于直流电动机建模的方程如下所示:
 
​其中,Ia为电机电流,Va为电机电压,Ωm为角速度,Ra为终端电阻,La为终端电感,J为惯性,b为摩擦系数,Km为扭矩常数,Ts为采样周期,T为电机扭矩,TL为负载扭矩,Vb为反电动势电压。
基于上述公式的MATLAB/Simulink离散模型实现如下图所示:
▲直流电机的Simulink离散模型

B:控制算法实现

本实践所采用的控制算法选择的是工业应用最为广泛的PID算法(比例积分微分)。使用积分项的双线性变换法和微分项的反向变换法,即可从下列公式中获得PID算法的递归离散形式:
 
​其中,K是比例常数,τi是积分常数,τd是导数常数,Ts是采样周期。
控制算法是在基于OSEK实时操作系统的10毫秒任务上实现的。角速度的测量方法如文献[2]所述,使用 HALL传感器,在1Hz至10kHz范围内的绝对精度小于1Hz。
03.实践2:SIL测试
本实践的SiL测试基于OSEK实时操作系统的仿真,测试框图如下图所示:
  • OSEK实时操作系统、被测控制算法代码和XCP模块一起封装成一个S函数。
  • 仿真操作系统、底层驱动程序、XCP和S函数与MATLAB/Simulink模型中的直流电机模型形成闭环。
  • GUI:Graphical User Interface,图形用户界面。
▲SiL测试框图
XCP主要用于测量和校准嵌入式系统变量,所选用的标定工具为CANApe,也用于保持数据测量值与在HiL环境中所获得的数据测量值一致。通过这种方式可以轻松比较以证明SiL测试的可靠性。
选用四个非抢占式任务:10ms、20ms、40ms和80ms。任务启动延迟及其时间调度如下图所示:
▲数据对比图
 
​SiL测试中,每个任务的执行时间被认为等同于仿真步长,因此不会出现某个任务运行时间过长而影响另一个任务的情况,无需采取特别措施。
外围设备等与处理器相关的一切都在S函数内模拟;硬件驱动器和信号调节电路通过MATLAB/Simulink 模型中的附加系统进行模拟;PWM驱动器模型和HALL传感器模型已经实现。Simulink模型如下图所示:
▲SiL测试中的MATLAB/Simulink模型

04.对比结果与结论

 

在完成SiL和HiL测试环境的搭建后,对比同一条件下的测试结果即可证实SiL的可靠性。为此,使用相同的参数对控制算法进行校准,将角速度设定为1000rpm。通过对比角速度反馈值(模拟步长均为200us)可知,两种测试结果完全相同,SiL的可靠性得到证实。
▲SiL与HiL的测试结果
然而,通过测试不同步长下的实际模拟执行时间可知,模拟的时间越短,实际执行时间就越长,因此必须权衡模拟精度和实际执行时间,选择一个折中、合适的模拟步长。显然,SiL环境下主机PC的性能对实际执行时间的影响很大。
▲不同步长下,模拟1分钟所需的实时执行时间
模型的复杂性同样会对实际执行时间产生影响。SiL最大的优点在于不会受到时间约束和模型复杂性的约束,而HiL测试下,使用复杂模型则可能会导致数据损坏,能够使用HiL测试的模型复杂性与真实HiL硬件的处理能力和可用资源密切相关,正确的模型选择便成为HiL测试的难点。
综上所述,SiL测试对于嵌入式代码测试是可靠的。最大的缺点与模拟步长参数有关:实现模型的精度越高,执行时间越长。因此得出结论:
  • 当测试目标为与硬件相关的参数时,如通过测量操作系统的空闲任务来测量处理器负载、任务激活延迟、任务运行时间值、中断锁定时间、资源锁定时间等,SiL测试是不可靠的。
  • 当测试目标为软件功能时,SiL是可靠的。
此外,模块之间的接口也可以在集成阶段进行测试。
 
参考文献
[1] Muresan M, Pitica D. Software in the loop environment reliability for testing embedded code[C]//2012 IEEE 18th international symposium for design and technology in electronic packaging (SIITME). IEEE, 2012: 325-328.
[2] Muresan M, Pitica D. Software in the loop environment reliability for testing embedded code[C]//2012 IEEE 18th international symposium for design and technology in electronic packaging (SIITME). IEEE, 2012: 325-328.

文章来源地址https://www.toymoban.com/news/detail-858981.html

到了这里,关于科普:嵌入式代码软件在环(SiL)测试的可靠性的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 嵌入式软件自动化测试介绍

    什么是嵌入式测试 嵌入式软件测试的概念似乎没那么大众,很多人从字面上理解,可能会以为这是个硬件测试,那么嵌入式测试实际上是什么呢? 根据IEEE(国际电机工程师协会)的定义,嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置的简称”。而嵌入式

    2024年02月02日
    浏览(29)
  • Tessy—嵌入式软件单元测试/集成测试工具

    产品概述 Tessy源自戴姆勒—奔驰公司的软件技术实验室,由德国Hitex公司负责销售及技术的支持服务,是一款专门针对嵌入式软件进行单元/集成测试的工具。它可以对C/C++代码进行单元、集成测试,可以自动化搭建测试环境、执行测试、评估测试结果并生成测试报告,其多样

    2024年01月18日
    浏览(48)
  • 科普:嵌入式多核并行仿真

    ​ 自信息技术革命以来,计算机一直被应用在各种复杂的数据处理中,如火箭弹道,高能物理和生物学数据等。随着嵌入式领域的多样化需求的不断丰富,多核CPU的应用也越来越广泛:嵌入式系统通常需要同时处理多个任务和实时数据,并在有限的资源和功耗限制下提供高性

    2024年02月03日
    浏览(30)
  • 嵌入式软件测试笔记11 | 测试设计技术简单说明

    即分析测试基础,明确每一个测试需要的情形; 例如: 需要测试的情形包含所有的条件,true、false、有效值、无效值等。 测试情形被转换为测试用例; 逻辑测试用例课能就是测试情形; 逻辑测试用例即描述的测试情形的类型,不需要为相关参数赋确定的值就可以被覆盖到

    2024年02月16日
    浏览(41)
  • Tessy — 嵌入式软件单元测试/ 集成测试工具学习

    Tessy — 嵌入式软件单元测试/ 集成测试工具 本文章向大家介绍Tessy — 嵌入式软件单元测试/ 集成测试工具,主要包括Tessy — 嵌入式软件单元测试/ 集成测试工具使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。 Tessy 源

    2024年02月04日
    浏览(56)
  • 嵌入式软件测试笔记12 | 什么是状态转换测试?如何开展?

    嵌入式系统有些表现出基于状态的行为,设计此系统可使用基于状态的建模; 在设计过程中,创建的模型可作为测试设计的基础; 以下将描述基于状态的模型来导出测试用例的技术。 此技术目标是:验证事件、动作、行为与转台转换之间的关系; 通过此技术,可判定系统基

    2024年02月17日
    浏览(48)
  • 自定义循环队列、软件定时器、事件集,实用嵌入式代码库

    本篇博文分享一个很实用的嵌入式代码库。 它可灵活应用到有无RTOS的程序中,采用C语言面向对象的思路实现各个功能,尽可能最大化的复用代码,目前为止工具包包含: 循环队列、软件定时器、事件集 。 网址:https://download.csdn.net/download/m0_38106923/87765476?spm=1001.2014.3001.550

    2024年02月03日
    浏览(42)
  • 嵌入式科普(9)vscode无法跳转和恢复默认配置

    一、目的/概述 二、解决办法     2.1 使能Intelli Sense Engine     2.2 vscode恢复默认配置     2.3 c/c++与clangd冲突 嵌入式科普(9)vscode无法跳转和恢复默认配置 1、2024年的第一天突然vscode无法跳转,莫名其妙 2、尝试了各种设置和插件都无效,卸载重装vscode也无效,删除C:Usersjerry.vs

    2024年01月22日
    浏览(37)
  • 嵌入式科普(5)ARM GNU Toolchain相关概念和逻辑

    一、目的/概述 二、资料来源 三、逻辑和包含关系 四、Arm GNU Toolchain最常用的命令 嵌入式科普(5)ARM GNU Toolchain相关概念和逻辑 对比高集成度的IDE(MDK、IAR等),Linux开发需要自己写Makefile等多种脚本。eclipse、Visual Studio等需要了解预处理、编译、汇编、链接的过程,但无需自己完

    2024年02月03日
    浏览(33)
  • 嵌入式软件调试与验证4自动重现和分析嵌入式软件中的Bug

    嵌入式软件的重要性逐年增加。ISO26262标准的最高安全级别要求十个9小时内无故障运行。然而,历史上的一些项目表明,即使进行了全面的测试,多年来仍有许多错误未被发现。航天飞机的控制计算机仅有50万行源代码,却经过了长达8年的测试,每行源代码耗资1000美元,即总

    2024年02月08日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包