汽车ECU软件测试将面临巨大挑战

摘要

控制和信息系统对当今汽车工业至关重要。实际上,几乎所有车辆都装了数量众多的电子控制单元(ECU),用于控制其所有或大部分机械、机电和电气系统、单元或部件。测试并早期发现和修复这些ECU的软件漏洞非常重要,不仅对汽车驾驶的安全,而且对在汽车开发期间节省巨额费用的软件更新也非常重要。汽车中最重要的ECU之一是仪表板组合(IPC)。IPC向驾驶员提供与主要汽车系统(发动机、变速箱、ABS)相关的实际信息、当前速度信息、机油和冷却液温度警告、灯光使用、导航等。本文讨论了IPC系统软件测试的一些特点和问题,以及对特定测试人员技能和知识的要求。

1.简介

负责控制主要汽车系统和节点的电子设备的水平在过去几年中大幅度提高,它们约占内燃机汽车中所有系统的40%,电动和混合动力汽车的约70%。这些设备被称为电子控制单元(ECU)。实际上,ECU是带有片上软件的嵌入式控制系统(控制器)。它们的数量(图1)在新车中从30到100不等,而在新BMW系列中,ECU多达200个。

汽车ECU软件测试将面临巨大挑战_第1张图片

图1汽车内部的电子控制单元(ECU)

ECU之间的通信基于控制器局域网(CAN)总线。每个ECU都可以通过CAN总线广播自己的消息,并可以监听来自其他ECU的特定消息。通常,ECU控制发动机的直接燃油喷射和节气门、制动器(ABS)、主动悬架、灯光、动力转向、导航、气候、停车辅助、收音机、电话等。根据从不同类型的传感器收集的各种类型的输入数据,每个ECU实现自己的软件控制算法,并将计算结果(输出)应用于受控硬件。输入和输出数据都可以被视为CAN报文或包含在这些消息中的信号。

一个特定的ECU是仪表板组合(IPC),它以各种格式向驾驶员显示大量信息-指示灯(信号灯)、仪表(指针)和界面,如图2所示。

用于控制发动机、制动器、动力转向等的ECU软件很少更改,而IPC软件是一个大量修改、更新和频繁变化的对象。事实上,即使是一种型号的汽车,也有各种各样的IPC硬件类型。例如,大众汽车的IPC有三种型号-黑白显示屏-一种是低分辨率的,另一种是高分辨率的,第三种是彩色显示屏。客户可以根据自己的喜好或特定需求为自己的汽车选择一个。

汽车ECU软件测试将面临巨大挑战_第2张图片

图2仪表板组合

由于IPC的频繁硬件变化,组合软件也是密集测试的对象。

本文旨在介绍测试IPC的功能,以及特定系统软件的测试需求、测试环境(CANoe)以及对测试人员的要求。

2. IPC需要测试的功能

如图3所示,IPC收集大多数汽车ECU和传感器提供的信息,并将其呈现给驾驶员。只向驾驶员呈现有价值的并且可以被正确解释的信息。与主要系统相关的诊断或特定故障信息存储在IPC的错误存储器,或问题单元的存储器中,可以通过诊断程序在服务中读取。

汽车ECU软件测试将面临巨大挑战_第3张图片

图3 IPC采集的ECU和传感器信息

PC视觉信息以多种方式呈现:

- 带指针的仪表(步进电机),如车速表、转速计、机油、冷却剂和温度计等。

- 指示不同汽车单元和系统的状态或使用情况的信号灯,例如灯的使用(远光灯/近光灯、左转/右转等)、电池状态、刹车、安全气囊、稳定性等。

- 显示主里程计和行程里程计、车载计算机消息(平均速度或油耗)或警告、变速箱信息或一些主要汽车ECU报告的一些错误等。

上述IPC单元的主要功能将在以下段落中讨论。

2.1 车速表

车速表用于以km/h或mph为单位指示车辆速度。组合仪表执行从输入值(脉冲数或每秒转数或来自总线的值)到步进电机步数反映的角度指示的转换(1步=0,05625度)。当通过总线接收到速度时(图4),通常伴随着有效信号(品质因数)。转换是使用包含一些点(4-6)的特性曲线完成的,这些点具有输入值和输出角度之间的对应关系,在这些点之间使用线性插值。特性曲线存储在IPC的EEPROM中。为了避免指针闪烁或跳跃,使用了阻尼。

汽车ECU软件测试将面临巨大挑战_第4张图片

图4车速表数据流及特性曲线

阻尼(图5)曲线有一个t(τ)参数(时间),它确保指针变化在时间τ之后达到64%的变化范围,在大约4-5倍τ之后达到99%的最终值。

汽车ECU软件测试将面临巨大挑战_第5张图片

图5阻尼(系数)曲线

在某些汽车组合仪表中,应用了提前系数。它表示添加到实际车辆速度的百分比,会指示更大的速度值。这样做是为了保证安全行车。在下面的仪表中,将20%的提前系数添加到100km/h的速度(图6a),对于驾驶员来说,它是120km/h,如图6b所示。

汽车ECU软件测试将面临巨大挑战_第6张图片

测试车速表的常见行为

在车速表测试期间,必须检查以下与电池连接和发动机点火相关的要求:

- 当电池关闭时,车速表指针保持在相同位置。在重新连接时,指针被同步,然后返回到有效指示。

- 当点火开关打开时,指针返回零指示,然后返回有效指示。对于正常范围内的值,指针根据特性曲线以阻尼方式移动。如果有效信号为假,则指针下降到零(无效速度信号)。

- 电源恢复后(在某些情况下欠压/过压后)指针返回零位,然后返回有效指示(同步)。

- 如果输入信号超出范围,(错误处理)指针会在延迟后下降到零位置(无阻尼)来指示这种情况。

- 在欠压(小于9V)/过压(大于16V)和电源故障的情况下-指针保持在相同位置,当电压回到正常范围时,指针同步(在某些IPC中它保持在同一位置),然后指示有效值。

2.2 转速表

转速表测试类似于速度表。这里可以使用两个阻尼。一种是在发动机运转且车辆静止时,则阻尼较高(可以在短时间内进行较大的变化)。第二个阻尼是在车辆移动时-然后阻尼较小(可能的变化较小)。

必须对转速表进行与速度表类似的常见行为测试。

2.3油位指示

如果通过CAN总线接收信号,则特性曲线类似于速度表。如果信号直接来自传感器,则使用两条曲线:ADC值->升数->步进电机步数。

关于车辆移动状态使用两个阻尼值(在某些情况下,一个如图5所示,另一个是线性的)-当车辆停止时,阻尼较低。行驶中的车辆需要更大的阻尼,以克服由于加速和制动而导致的油箱中的燃油移动。

当燃油液位低于定义的阈值时,燃油储备指示器将被激活。

2.4 冷却液温度指示

冷却液温度的测试类似于燃油油位指示。行为和阻尼取决于车速。当车辆停止时(在驾驶会话之后),由于传感器周围的温度会升高(热量爆发),指示将不会超过最后一个有效值,持续时间与驾驶持续时间成正比。

一些额外的测试与正常冷却剂值(75-115度)有关-然后指针静止不动。如果发动机过热(温度>阈值)-会生成警告(可以是LED、声音警告、显示屏上的警告消息或它们的组合),因此还必须检查这些警告。

2.5 里程表

主里程表存储在IPC EEPROM区,不可复位(生产后);最大显示值为999.999公里。存储使用多块存储技术完成-值(公里/英里)存储在更多字节的位置(例如32),每个字节都根据IPC特定算法写入(以避免每次写入相同的位置)。该EEPROM位置不能被较低的值覆盖。

行程里程表存储在IPC RAM中(在某些情况下存储在EEPROM中)。达到最大值(999,0或1999,0 公里)后,将翻滚至0,0公里。

2.6 指示器

信号装置具有特定的激活/停用/再激活条件。图7给出了一些最流行的指示器及其含义。在一些组合中,指示器的灯或LED位于速度表而一些指示器位于这些区域之外或转速表区域,。在某些组合中,一些信号装置(警告)仅在主显示器中显示为图标。

汽车ECU软件测试将面临巨大挑战_第7张图片

图7 指示器指标

2.7 车载里程计算机

车载里程计算机显示的信息是通过计算距离、时间和注入的燃料来计算的。基于这些数据,获得即时/平均消耗和速度。

剩余续航里程还反映了在油箱中剩余燃料和实际速度(实际消耗)下可以行驶的距离。行程持续时间也可以计算在内。

作为测试对象的车载计算机的功能是平均速度、平均消耗、行程持续时间-可以重置(通常通过按下仪表板上的旋钮)。重置后(电池重置、手动重置、点火开始)-需要一定的距离/时间/消耗,以便计算和显示第一个值。

测试还与测量单位相关,例如:

- 距离公里或英里;

- 速度km/h或mph;

- 消耗1/100公里,mpg(英国或美国),km/l

2.8信息和警告

更复杂的仪表盘有一个大点阵显示器(在某些情况下是彩色的)显示额外的信息,提醒司机一些汽车功能的状态(轮胎压力、发动机状态、ABS、ASR、ESP、安全带、档位信息、冰警告、导航、电话、收音机/CD 等)。

可以显示一条文本消息,也可以通过符号或/和提示音加倍显示。

消息可以用不同的语言显示(可从菜单或EEPROM配置)。

当同时显示更多警告/消息时,它们将以滚动模式显示:每条消息(如果有的话,带有符号)显示一段时间,然后显示下一条。

消息具有指定的优先级。定义项目特定程序以处理优先级-消息可以/不能被更高优先级的消息打断,消息具有最短显示时间。

接下来给出了一些可以显示的附加消息,它们是特定测试的对象:

- 燃油液位

- 冷却液温度

- 室外温度

- 警告信息

- 油位

- 服务间隔指示

- 时钟,日期

- 齿轮箱位置和模式

-分区/临时

- 导航

- 电话。

2.9 EEPROM

EEPROM存储器包含一些作为测试对象的配置参数。它包含有关组合本身的信息-型号、版本、生产日期、月份、年份、有关发动机和汽车中最重要的ECU的类似数据、里程表数据、特性曲线、阻尼参数tau、发动机类型(汽油、柴油、混合)、测量单位公里、英里、错误代码和许多其他数据。

除了与上述IPC单元和元件的功能相关的软件测试外,还必须特别注意下面描述的IPC电源管理测试和照明测试。

电源管理测试涉及9V至16V的正常电压范围、欠压(9V以下)、过压(16V以上)和电源故障(6V以下)。

在正常电压范围内,组合仪表具有正常功能。测试电压在13.5V左右。超出此范围,除电源故障外,我们可能会遇到以下情况:-指针冻结到实际位置,微处理器控制的LED(灯)被停用,EEPROM的写入功能被停用。所以要确保RAM中的数据保留,当电压恢复到正常范围(有滞后)时,恢复正常功能。指针同步(回到零位,再回到有效指示),避免失步。

在电源故障期间,除了欠压情况外,RAM数据不再保留。当电压恢复到正常范围时,组合仪表复位。

背景照明与显示、刻度和指针有关。它们可以单独照明。照明根据两种情况而有所不同:-白天,只有显示屏以小亮度照亮,夜间,显示屏、刻度和指针都被照亮。在夜间照明期间,可以手动或自动修改亮度。当前灯被激活(手动模式)或当外部照明水平低于定义的阈值(自动模式)时,日/夜转换完成。照明级别存储在EEPROM中,所选级别作为指针存储在该照明表中。显示器和刻度+指针可以有不同的照度表来有不同的照度。

使用一个组合按钮或菜单中的功能执行手动调光。自动调光是使用一个传感器来执行的,该传感器决定从白天到夜间照明水平的转变。照明调暗不影响信号灯的亮度。照明可用作发出警告的一种方式。例如,在某些汽车中,当发动机转速超过定义的阈值时,转速表刻度照明会以全亮度激活(而其他刻度的照明会停用),以表示发动机可能已损坏。

3.测试环境CANoe

仪表组合 (IPC) 的真实系统软件测试与特殊软件环境的使用有关,该环境模拟所有或大部分汽车ECU的工作。这个环境是Vector CANoe。它可用于任何汽车ECU或任何使用CAN实时网络通信的控制器的软件开发。CANoe是基于事件驱动的通信访问编程语言CAPL的面向Windows的工具。CANoe的仿真是基于软件节点(每个节点对应一个汽车ECU)。节点通过虚拟或真实的CAN网络连接。可以为每个节点定义CAN消息和信号(事件),并可以模拟和测试虚拟CAN网络的互通。当节点的软件经过测试和验证后,可以将其上传到真实的ECU或用于进一步测试。

出于IPC的测试目的,CANoe仿真解释了向IPC发送消息的永恒ECU和传感器的行为。因此,通过组织良好的图形面板(图8),模拟向IPC发送消息,测试人员能够分析(比较)IPC是否正确地可视化。换句话说-IPC行为是否符合(客户和测试)要求。

汽车ECU软件测试将面临巨大挑战_第8张图片

图8 CANoe仿真窗口视图

从描述中可以看出,CANoe仿真为IPC的手动测试提供了可能。有一些额外的基于Excel和Visual Basic宏的软件工具,可以连接到CANoe仿真以提供IPC的半自动化测试。然后运行测试的测试人员必须回答测试问题,验证IPC单元是否对外部SW工具发送的测试消息/信号做出正确反应,或者使用外部电源单元设置组合电压的一些特定值(图9)或信号发生器。

手动或半自动测试的测试结果和发现的错误会在Excel文件中报告,并发送给高级管理人员,以便根据错误的优先级激活错误修复或更改请求。

真正的IPC测试需要一些与IPC软件上传(刷写)和EEPROM变量配置相关的准备工作。由于IPC软件有许多软件更新,因此IPC软件有专门的程序。所以SW模块可以按特定顺序上传,否则仪表在测试期间将无法正确反应。这同样适用于设置EEPROM变量。

汽车ECU软件测试将面临巨大挑战_第9张图片

图9 IPC测试的硬件和软件环境

下一个例子与汽车组合的实际导航测试有关,当导航ECU报告到目的地的距离(图10)时,发现了一个错误。可以看出,在CANoe仿真中设置了较大的公里值(上部红色区域),仪表盘显示(下部红色区域)上的值被削减到前8位,这与测试要求不符。还发现这个区域可以设置非数值,因为数据不被解释为数字而是被解释为字符串。

汽车ECU软件测试将面临巨大挑战_第10张图片

图10在导航数据中发现错误的测试示例

4.结论

本文介绍了针对IPC单元的汽车SW测试技术,它为驾驶员提供了非常重要的视觉信息。讨论了作为密集测试对象的IPC的主要功能,以及相应的软件和硬件测试环境和工具。

IPC的测试大多是手动或半自动化的,一方面取决于大量的IPC类型和型号,另一方面取决于这些HW IPC型号的大量软件版本和更新。很少有完全自动化的测试工具用于将显示图标与准备好的图形数据库中的图标进行比较,但目前它们用于测试少量汽车组合。

可以看出,汽车测试需要测试人员具备跨学科技能。他们必须具有嵌入式系统、消息和事件驱动编程方面的经验,并且具有自动化、电子、机械方面的知识,当然还有测试和配置管理理论领域的知识。

文章的篇幅不允许详细解释CANoe模拟是如何开发的。有关CANoe和CAPL 使用的更多信息可以在(“参考资料1”,关注微信公众号后台咨询获取资料链接)中在线找到。CANoe仿真是汽车开发过程的另一部分,它与验证客户需求如何在最终汽车软件产品中实现和映射有关。
 

文末福利!

软件静态和动态代码测试工具免费试用申请,扫码添加牛小喀企业微信,回复"软件测试"

汽车ECU软件测试将面临巨大挑战_第11张图片

你可能感兴趣的:(汽车,自动驾驶,系统安全)