ni.com is currently undergoing scheduled maintenance.

Some services may be unavailable at this time. Please contact us for help or try again later.

什么硬件(HIL)?

概述

​​本白皮书介绍了什么是硬件在环(HIL)测试,它为何重要,以及如何通过仿真和基于模型的设计使用虚拟测试。 如今,HIL测试不仅在识别缺陷方面,而且在确保安全关键环境(例如,生命受到威胁的航空航天和汽车行业)的可靠性方面起着至关重要的作用。 此外,HIL可加快以软件为中心的产品设计和开发生命周期,缩短产品上市时间,同时通过最小化昂贵的物理测试需求降低成本。

内容

上市时间缺陷成本

通过麦肯锡前顾问Donald G. Reinertsen的开创性工作,上市时间的重大影响在20世纪80年代变得十分明显,这表明“六个月的延迟相当于生命周期利润的33%”。此外,1996年6月4日阿丽亚娜5号火箭的发射和摧毁 — — 这是历史上最臭名昭著的软件漏洞之一 — — 告诉了工程界嵌入式软件质量的重要性和正确测试的必要性。结果是损失超过3.7亿美元。ii 这些数字清楚地表明了延迟的后果,即需要缩短上市时间,以及通过在产品设计和开发生命周期早期进行适当测试来识别问题和错误来降低成本。

使用在生产开始前捕捉缺陷的技术是关键。将测试作为整个产品设计和开发周期的一部分,而不仅仅是事后考虑或甚至流程结束时的演示,变得越来越重要。这种理解导致开发和实施了前加载测试、左移、基于模型的设计和任何在环(XIL)测试等方法和策略。本白皮书着重强调HIL测试是嵌入式软件验证中的关键测试方法之一。

开发软件中心设备(DUT)

直接进行HIL测试之前,最重要的是要查看要开发的实际产品:待测设备或系统(DUT/SUT)。当今和未来的产品显然变得更加以软件为中心和复杂。例如,Wi-Fi路由器、洗碗机、食品加工机等,它们现在都基于嵌入式软件或Firmware。轿车、飞机和智能手机就是最好的例子,因为它们不仅软件定义严格,而且非常复杂,因为它们是基于软件的系统。归根结底,它们都有一个共同之处,即软件是其当前功能集和未来发布的改进中的决定性元素。智能手机上的可更新应用使其成为数千种特性和功能的多功能工具就是这一趋势的明显体现,这一趋势已经演变为当今客户对几乎所有其他产品的不可否认的期望。

应用程序、Firmware和软件通常无法独立运行,因为它们需要硬件才能运行。通常,硬件是计算机或处理器,或简单地说,控制器。这意味着产品或系统(包括系统系统)需要硬件(控制器)和软件的组合和集成,即DUT。此外,控制器还需要与其交互的环境。例如,洗衣机的控制器需要检查是否存在足够的水、测量水的温度、控制洗衣机滚筒的速度(RPM)等。因此,控制器需要连接至传感器(温度、RPM)和执行器(加热器、电机),提供数据或反馈作为输入,发送命令或设定点作为输出。这些只是控制循环设计理论的基本组成部分,如图1所示。控制器周围的环境通常称为被控对象。

图中显示了一个基本控制回路,该回路由控制器(也称为待测设备(DUT))和被控对象组成。设定值和反馈作为输入送入控制器,而控制器的输出和潜在的干扰一起送入被控对象。

图1.控制循环设计的基础

从产品设计和开发周期来看,显然并非所有控制循环的组件在项目开始时都可用。更严重的是,在开发的早期阶段准备好所有必需的硬件和软件组件也是不现实的。从仿真和基于模型的设计开始填补空白。

图2以典型的V图表示法显示了产品开发生命周期的不同阶段,从设计到原型设计、软件和控制器测试到物理测试。同时还显示了循环中模型(MIL)、循环中软件(SIL)和循环中硬件(HIL)的测试方法。

生产测试之前尽早经常进行测试

该图以典型的V图表示法显示了产品开发生命周期的不同阶段,从设计到原型开发、软件和控制器测试到物理测试,以及循环中模型(MIL)、循环中软件(SIL)和循环中硬件(HIL)的测试方法。

图2.V程序框图:从循环中的任何部分(XIL)到物理测试

数字仿真和基于模型的设计是整个设计流程的关键,因为它们:

  • 允许在所需物理组件可用之前进行开发和测试
  • 扩大测试覆盖率,加速设计迭代
  • 最大限度地减少冗余(物理)测试数量,从而提高测试速度
  • 加快极端情况和所有可能场景下的产品质量测试速度

仿真和基于模型的设计可通过MIL、SIL和HIL等测试方法更早地开始测试(称为前加载测试)。如图2底部所示,在V型图上从右向左移动(也称左移)时,控制循环的组件被分步替换,而根据实际产品设计和开发生命周期向右移动时,组件被替换为可用的实际硬件和软件。

此外,虚拟测试可最大化测试覆盖率,减少昂贵耗时的物理测试。据粗略估计,在嵌入式软件中,每1000行代码中会出现10-20个缺陷。这貌似并不多,但试想一下日常系统中的代码行数,预计缺陷数量高得惊人。如果医疗设备出现同样的问题(例如具有8万行软件代码的起搏器或具有700万行软件代码的MRI扫描仪),巨大的代码数量给复杂系统带来的影响更加明显,后果也会更严重。

此类系统的复杂性极高,无法以传统方式对其进行详尽全面的测试。由于时间成本过高,针对所有场景进行物理测试并非明智之举。此外,保证测试用例涵盖所有可能的实际条件同样重要。如本白皮书介绍中的Ariane 5范例所示,大故障、灾难和设备召回代价高昂。但更重要的是,这些后果对品牌印象和公司声誉的负面影响是无价的。可通过建模和仿真降低该风险。事实上,我们可以先在所有可能、可重复的场景中测试产品,将物理测试作为检验过程的最后一步,以避免出现代价高昂的灾难性事件。

循环中的硬件(HIL)如何工作?

嵌入式软件测试是问题检测的一种方法,可以将设计和测试团队与大量使用仿真和基于模型设计的兼容工作流程联系起来。

该图显示了基本控制循环,以及从MIL到SIL再到HIL最后再到物理测试时,仿真组件到实际组件的设置变化。

图3.控制循环表示法中的MIL、SIL、HIL和物理测试

第一级MIL(图3中的第1象限)仿真一切,包括控制器和控制器周围的整个工厂(环境)。

在第二阶段SIL(图3中的象限2)中,软件工程师仅从控制模型生成终端就绪的代码,在设备仍处于仿真状态时替换程序块并创建软件原型。前两个阶段可通过仿真实现测试执行,模型仅需要实际的物理硬件组件。

第三阶段(图3中的象限3)是该方法的关键。代码在基于硬件的物理控制单元(快速控制原型开发平台或生产的控制器)上部署和执行,允许在进入(最终)物理测试之前使用仿真设备对所有可能的实际场景进行测试(图3中的象限4)。

因此,HIL可视为等同于汽车生产线上汽车的底盘和传动系之间的结合。在实际控制器硬件上执行开发的软件代码至关重要,以确保能够识别所有定时、同步和执行问题,例如,在SIL环境中运行嵌入式代码时通常不会出现这些问题。

人们对进一步强调和使用MIL和SIL寄予厚望并取得了相当大的进展。但是,HIL将而且必须始终成为在真实控制器平台上执行嵌入式软件的验证点,从而信心十足地向市场发布安全可靠的以软件为中心的产品。总而言之,HIL测试具有下列优点:

  • 安全测试-避免损坏昂贵或危险设备的风险
  • 经济高效-减少对完整原型的需求
  • 快速开发-在构建整个系统之前实现早期测试
  • 可重复的场景-可靠地仿真常见和/或边缘分支及故障

鱼的类比。 图中左侧为水族箱中的鱼,右侧为连接至HIL系统的控制器。 水族箱模拟鱼的真实环境,而HIL系统则模拟真实的植物,如飞机、汽车或洗衣机。

图4.鱼的类比:HIL系统相当于水族箱。

HIL是一种测试方法,在物理DUT(运行在控制器上的嵌入式软件)周围提供虚拟环境或虚拟现实(数字孪生),使其“相信”自己实际上已连接至真实环境(物理孪生)。一个非常简单的类比是水族馆或鱼缸中的鱼,如图4所示。水族箱完美模拟现实世界的海洋环境,提供可控的仿真环境,确保鱼类拥有生存所需的一切(食物、水、温度、盐度等 ) 。

HIL是一种嵌入式软件测试技术,将控制器的实际信号连接至测试系统(设备)。HIL通过软件模型和仿真对现实进行仿真。因此,仿真真实环境的HIL测试系统相当于水族箱,而DUT(执行嵌入式软件的物理控制器)相当于鱼。这使得控制器(或DUT)认为它安装在洗衣机、飞机或汽车等组装产品中。

测试和设计迭代就像连接到真实系统一样,通过仿真设备进行。通过使用可重复的虚拟化场景,工程师可在数千种条件下使用控制器,而无需考虑所有实际组件的可用性、成本、复杂度或基于硬件的物理测试的调度限制。实际控制器或DUT从HIL系统获取输入,并将其输出发送回HIL系统。HIL系统由输入和输出(包括总线接口)以及运行HIL应用软件的实时计算核心(包括所需的设备模型)组成。为确保HIL测试系统设置满足在DUT周围提供广泛的虚拟现实的所有要求,至少需要包含这些核心元素,如图5所示:

  • DUT(在控制器上运行的嵌入式软件)
  • 连接至DUT的I/O和总线接口
  • 实时计算以确定性方式读取、写入和控制I/O和通信总线,以及执行应用程序软件
  • 配置测试系统、集成和部署仿真模型、执行一个或多个测试(手动和自动化)以及分析和调试结果和行为的应用软件
  • 仿真模型

显示HIL测试系统场景中的基本控制循环。实际控制器DUTHIL系统获取输入输出发送HIL系统。HIL系统输入输出(包括线接口)以及运行HIL应用程序软件计算核心组成,包括所需设备模型。

图5.HIL测试系统设置中的控制循环

如前所述,这些只是HIL系统的核心元素。其他元素可能还包括下列项:

  • 故障插入
  • 基于FPGA的I/O
  • I/O切换
  • 信号调理
  • 负载或仿真负载的连接
  • 剩余总线仿真(需要来自其他控制器的输入,例如,在系统集群中)
  • 测试自动化,直至连续集成和连续部署(CI/CD)流水线

基于平台HIL方法

NI基于平台的HIL测试方法为开发人员和用户提供了一个开放且灵活的构建块工具箱,允许使用商用上架(COTS)产品进行大量自定义,从小型桌面扩展到组件和系统,以及完全集成的HIL设置。用户可以决定使用什么以及如何扩展和扩展以应对当前和未来的挑战。他们可以完全控制工作流程以及测试设备的开发和维护,同时最大限度地减少对供应商的依赖。

NI HIL测试系统架构提供了解决HIL系统不同元素的综合硬件和软件平台。其开放、可定制的工具链可最大限度地利用NI、NI Partner和第三方硬件和软件的组合来调整、扩展和扩展HIL测试系统。

PXI是基于真正的COTS技术构建的领先行业标准硬件平台。它提供同类最佳的定时和同步功能,是HIL测试系统的基本元素。PXI还支持从DC到RF的各种I/O和总线接口,包括基于FPGA的技术、通用接口和行业特定的通信协议。

通过添加NI开关负载和信号调理(SLSC)平台,这些I/O和总线产品还可以进一步扩展。SLSC将自定义前端模块添加至测试系统侧的实际I/O和总线接口与DUT之间的信号路径。通过标准化的COTS连接和外形,它消除了点对点连线容易出错的过程。这简化了整个系统,并允许信号切换和调理、负载集成、故障插入等。

NI VeriStand是NI HIL系统和实时条件下嵌入式软件测试的核心应用软件。它通过NI LabVIEW、C/C++、Python等基于配置的HIL系统设置和控制(UI和API)、调试、模型集成、实时激励生成、产品内自动化以及广泛的自定义自动化API功能,加快了产品开发生命周期。

点击此处了解更多关于NI HIL测试系统架构的信息。

结语

当今的产品已经以软件为中心,而客户期望的基础是产品在未来不断演变和改进 — 提供持续甚至新的价值。利用仿真、基于模型的设计和HIL测试进行虚拟验证测试是提高测试覆盖率和产品质量的关键方法。这些方法还可以缩短上市时间,因为开始测试并将其集成到早期设计和开发周期中,同时还可以最大限度地减少对昂贵和耗时的物理测试的需求。

这使得“测试”一词(通常被定义为将设计推向生产并最终推向市场的最后步骤)成为整体产品创新的战略优势。HIL使测试不再是项目计划中的一个可有可无的选项,它成为使设计和公司获得成功的创新不可或缺的一部分(见“延迟六个月相当于生命周期利润的33%”)。

有远见的公司并不仅仅只是在产品上市之前进行HIL测试。虽然 HIL 的长期目标是在昂贵和/或批量生产的最终产品中避免代价高昂的错误(如 Ariane 5 范例),但它也是软件工程师可用于迭代测试和调整软件设计的设计工具。这将导致产品在正式测试开始前通过审核。此外,软件工程师还可借助HIL可以快速构思和测试新想法,通过及时反馈最大限度地进行创新。