概览可以使用强大的硬件在环(HIL)仿真方法更高效地测试嵌入式控制系统。鉴于安全性、可用性或成本等因素,使用完整的嵌入式控制系统执行所有必要的测试是不切实际的。而借助HIL仿真,就可以对系统中具有挑战性的部分进行仿真。在对整个系统进行实际测试之前,可先在虚拟环境中对嵌入式控制设备进行全面测试,这样即使所测试的系统变得日益复杂,也能以经济高效的方式保持高可靠性以及满足产品上市时间要求。 HIL测试系统的组成 HIL测试系统由以下主要组件组成:实时处理器、I/O接口、操作界面和被测控制单元-ECU,甚至半实物执行器、相关传感器及相关仿真模型。实时处理器是HIL测试系统的核心。它负责HIL测试系统中大多数组件的确定性执行,例如硬件I/O通信、数据记录、激励生成和模型执行等。实时系统通常用于精确仿真系统中无法进行实体测试的部分。I/O接口是指与待测设备交互的模拟、数字和总线信号,可用于生成激励信号,采集数据以便进行记录和分析,并提供受测电子控制单元(ECU)与模型所仿真的虚拟环境之间的传感器/执行器交互,比如用于故障信号的模拟和生成。操作界面通过与实时处理器通信来提供测试命令和实现可视化。通常,操作界面组件还负责配置管理、测试自动化、分析和生成任务报表。被测控制单元-ECU是被测试的嵌入式控制器,通过上述I/O将相关数据比如以CAN通信方式输入到被测ECU中,通过嵌入式内部逻辑处理后将输出处理后的控制信号给执行器。半实物执行器是硬件在环的一种,在测试过程中我们为了反应真实的情况,被ECU控制的执行器也在整个测试环境中,比如ESC控制器测试中,我们可以将整个压力系统和制动钳等部件保留,同时在系统中使用真实的传感器感知制动踏板行程、制动踏板变化率、主缸压力及轮岗压力等,并将这些采集的数据给I/O通信板卡,然后转到车辆仿真模型和ECU控制器中。传感器模块目前可以通过两种方式,一是基于半实物台架采集的实时数据,二是通过仿真模型或者板卡生成,比如上述中制动主缸压力大小,是通过真实的传感器来获得,同时通过相关板卡模拟磁电式或者霍尔式轮速传感器,对于车身质态横摆角速度、横纵向加速度等车辆上真实纯在的传感器是通过车辆动力学模型获得。而在智能驾驶相关HIL台架中,传感器可以通过仿真模拟,比如PreScan中可以模拟毫米波雷达、摄像头、激光雷达和超声波雷达等相关输出信息,通过ADAS ECU需求的协议输出相关感知信息即可;同时ADAS HIL也可以使用真实的传感器,探测周围环境,比如目前基于11V的智能驾驶方案,通过将仿真动画投在大屏中,使用真实视觉识别大屏中的环境,这种方式最常见的是单V的ADAS HIL;也可以使用将仿真的环境直接通过输出协议进行视频注入到控制器的传感器接口中。另外一个相关模块是仿真模型,从智能驾驶的HIL台架包含环境仿真模型、传感器仿真模型、动力学仿真模型、执行器被控ECU模型等等。 图1.比较简单的HIL测试系统简图(I/O通过电脑转换) HIL测试用途 硬件在环测试用于系统集成测试,系统层面功能逻辑测试及系统故障注入等。前两方面大家请关注公众号,后续单独讲一讲系统集成测试和系统功能逻辑测试。 硬件故障插入 许多HIL测试系统使用硬件故障插入方法,在ECU和系统的其余部分之间生成信号故障,以便在故障条件下测试、分析或验证设备的行为。因此,可以在I/O接口和ECU之间插入故障插入单元(FIU),让HIL测试系统在正常操作和故障条件(如对地短路或开路)之间切换接口信号。随着功能安全和预期功能安全在产品开发中越来越重视,基于系统层面的功能安全和预期功能安全的逻辑验证也越来越重要,而如何高效并且安全的验证,是当前大家在实车测试中遇到的最大难题。而通过HIL测试,我们可以通过硬件板卡故障注入实现对传感器、执行器和控制器等相关故障信号的模拟,从而高效安全的验证嵌入式系统ECU。 图2.可以使用硬件故障插入来测试信号故障期间ECU的行为 测试多ECU系统 汽车、飞机或风电场等嵌入式控制系统使用了多个ECU,这些ECU通常相互连接来进行协作。尽管这些ECU中每个ECU一开始都可以单独地进行测试,但通常还需要借助系统的集成HIL测试系统(例如整车仿真器或铁鸟仿真器)来提供更完整的虚拟测试。比如当前ADAS控制系统的测试,会涉及到座舱、底盘的ESC\EPB\EPS、动力系统的VCU\BMS\MCU等多个控制器,而对于L3及以上的ADS控制器会涉及到智能驾驶主从两个控制器、同时在制动和转向都具备两个控制器,那么安全且高效对多个控制器之间的逻辑验证是必须通过HIL测试来完成。 图3.汽车、飞机和风电场使用多个ECU 更高的处理能力 — 分布式处理 即使利用最新的多核处理能力,某些系统需要的处理能力也远远超过单个机箱所能提供的能力。为了应对这一挑战,您可以使用分布式处理技术来满足这些系统的性能要求。在超高通道数系统中,不仅需要更高的处理能力,还需要额外的I/O。相较而言,使用大型、处理器密集型模型的系统往往仅通过增加机箱来获得更高的处理能力,使得这些处理器能够继续专用于某个任务来提高效率。根据仿真器任务的分配方式,可能需要在机箱之间提供共享触发和定时信号以及确定性数据镜像,从而在不同的任务之间实现协作。 图4.机箱之间提供定时和数据同步接口 高通道数系统的布线及维护不仅昂贵,而且耗时。这些系统可能需要在ECU和HIL测试系统之间连接数百到数千个信号,通常需要跨越数米的距离来弥补空间不足的缺陷。 幸运的是,确定性分布式I/O技术可以帮助您简化布线的复杂性,并提供与ECU的模块化连接,从而实现有效的系统配置修改。您无需将所有连接通过I/O接口路由回包含一个或多个实时处理机箱的单个机架,而是可以使用确定性分布式I/O,在每个ECU附近提供模块化I/O接口,而且不会影响精确仿真系统虚拟部分所需的高速确定性。 这种方法可以实现ECU和I/O接口之间的本地连接(距离小于一米),只需使用一根总线来连接实时处理机箱,从而大大降低了HIL测试系统的布线成本和复杂性。此外,利用这种方法的模块化特性,HIL测试系统可以轻松地从多ECU测试系统(其中只有一个真实的ECU,其余都是仿真的ECU)逐步扩展为一个完整的系统集成HIL测试系统(所有ECU都是真实的,而非仿真的)。 图5.ECU和I/O接口之间的本地连接 实现HIL测试系统 为HIL测试系统选择合适的架构后,构建HIL测试系统的第一步是选择最符合开发要求的组件。比如NI提供了实现HIL测试系统所需的各种实时处理和I/O选项。 NI HIL平台具有开放性和可扩展性,这意味着它可以适应不断变化的系统要求。由于采用模块化架构,NI HIL平台可以轻松地进行升级和功能扩展,可以确保测试系统能够适应未来需求并满足严苛的嵌入式软件测试应用要求。除了市场上提供的各种I/O外,NI还提供软件工具,可以自动执行HIL测试、后期处理和报表生成,并将测试结果与需求相匹配。这些工具可帮助您在软件开发过程的早期阶段执行更广泛的测试,从而降低总体开发成本,同时提高产品质量。 |