负责控制主要汽车系统和节点的电子设备的水平在过去几年中大幅度提高,它们约占内燃机汽车中所有系统的40%,电动和混合动力汽车的约70%。这些设备被称为电子控制单元(ECU)。实际上,ECU是带有片上软件的嵌入式控制系统(控制器)。它们的数量(图1)在新车中从30到100不等,而在新BMW系列中,ECU多达200个。
图1汽车内部的电子控制单元(ECU)
一个特定的ECU是仪表板组合(IPC),它以各种格式向驾驶员显示大量信息-指示灯(信号灯)、仪表(指针)和界面,如图2所示。
用于控制发动机、制动器、动力转向等的ECU软件很少更改,而IPC软件是一个大量修改、更新和频繁变化的对象。事实上,即使是一种型号的汽车,也有各种各样的IPC硬件类型。例如,大众汽车的IPC有三种型号-黑白显示屏-一种是低分辨率的,另一种是高分辨率的,第三种是彩色显示屏。客户可以根据自己的喜好或特定需求为自己的汽车选择一个。
图2仪表板组合
由于IPC的频繁硬件变化,组合软件也是密集测试的对象。
本文旨在介绍测试IPC的功能,以及特定系统软件的测试需求、测试环境(CANoe)以及对测试人员的要求。
2.IPC需要测试的功能
图3IPC采集的ECU和传感器信息
PC视觉信息以多种方式呈现:
-带指针的仪表(步进电机),如车速表、转速计、机油、冷却剂和温度计等。
-指示不同汽车单元和系统的状态或使用情况的信号灯,例如灯的使用(远光灯/近光灯、左转/右转等)、电池状态、刹车、安全气囊、稳定性等。
-显示主里程计和行程里程计、车载计算机消息(平均速度或油耗)或警告、变速箱信息或一些主要汽车ECU报告的一些错误等。
上述IPC单元的主要功能将在以下段落中讨论。
2.1车速表
车速表用于以km/h或mph为单位指示车辆速度。组合仪表执行从输入值(脉冲数或每秒转数或来自总线的值)到步进电机步数反映的角度指示的转换(1步=0,05625度)。当通过总线接收到速度时(图4),通常伴随着有效信号(品质因数)。转换是使用包含一些点(4-6)的特性曲线完成的,这些点具有输入值和输出角度之间的对应关系,在这些点之间使用线性插值。特性曲线存储在IPC的EEPROM中。为了避免指针闪烁或跳跃,使用了阻尼。
图4车速表数据流及特性曲线
图5阻尼(系数)曲线
在某些汽车组合仪表中,应用了提前系数。它表示添加到实际车辆速度的百分比,会指示更大的速度值。这样做是为了保证安全行车。在下面的仪表中,将20%的提前系数添加到100km/h的速度(图6a),对于驾驶员来说,它是120km/h,如图6b所示。
测试车速表的常见行为
-当电池关闭时,车速表指针保持在相同位置。在重新连接时,指针被同步,然后返回到有效指示。
-当点火开关打开时,指针返回零指示,然后返回有效指示。对于正常范围内的值,指针根据特性曲线以阻尼方式移动。如果有效信号为假,则指针下降到零(无效速度信号)。
-电源恢复后(在某些情况下欠压/过压后)指针返回零位,然后返回有效指示(同步)。
-如果输入信号超出范围,(错误处理)指针会在延迟后下降到零位置(无阻尼)来指示这种情况。
-在欠压(小于9V)/过压(大于16V)和电源故障的情况下-指针保持在相同位置,当电压回到正常范围时,指针同步(在某些IPC中它保持在同一位置),然后指示有效值。
2.2转速表
必须对转速表进行与速度表类似的常见行为测试。
2.3油位指示
如果通过CAN总线接收信号,则特性曲线类似于速度表。如果信号直接来自传感器,则使用两条曲线:ADC值->升数->步进电机步数。
关于车辆移动状态使用两个阻尼值(在某些情况下,一个如图5所示,另一个是线性的)-当车辆停止时,阻尼较低。行驶中的车辆需要更大的阻尼,以克服由于加速和制动而导致的油箱中的燃油移动。
当燃油液位低于定义的阈值时,燃油储备指示器将被激活。
2.4冷却液温度指示
一些额外的测试与正常冷却剂值(75-115度)有关-然后指针静止不动。如果发动机过热(温度>阈值)-会生成警告(可以是LED、声音警告、显示屏上的警告消息或它们的组合),因此还必须检查这些警告。
2.5里程表
主里程表存储在IPCEEPROM区,不可复位(生产后);最大显示值为999.999公里。存储使用多块存储技术完成-值(公里/英里)存储在更多字节的位置(例如32),每个字节都根据IPC特定算法写入(以避免每次写入相同的位置)。该EEPROM位置不能被较低的值覆盖。
行程里程表存储在IPCRAM中(在某些情况下存储在EEPROM中)。达到最大值(999,0或1999,0公里)后,将翻滚至0,0公里。
2.6指示器
信号装置具有特定的激活/停用/再激活条件。图7给出了一些最流行的指示器及其含义。在一些组合中,指示器的灯或LED位于速度表而一些指示器位于这些区域之外或转速表区域,。在某些组合中,一些信号装置(警告)仅在主显示器中显示为图标。
图7指示器指标
2.7车载里程计算机
-距离公里或英里;
-速度km/h或mph;
-消耗1/100公里,mpg(英国或美国),km/l
2.8信息和警告
可以显示一条文本消息,也可以通过符号或/和提示音加倍显示。
消息可以用不同的语言显示(可从菜单或EEPROM配置)。
接下来给出了一些可以显示的附加消息,它们是特定测试的对象:
-燃油液位
-冷却液温度
-室外温度
-警告信息
-油位
-服务间隔指示
-时钟,日期
-齿轮箱位置和模式
-分区/临时
-导航
2.9EEPROM
EEPROM存储器包含一些作为测试对象的配置参数。它包含有关组合本身的信息-型号、版本、生产日期、月份、年份、有关发动机和汽车中最重要的ECU的类似数据、里程表数据、特性曲线、阻尼参数tau、发动机类型(汽油、柴油、混合)、测量单位公里、英里、错误代码和许多其他数据。
电源管理测试涉及9V至16V的正常电压范围、欠压(9V以下)、过压(16V以上)和电源故障(6V以下)。
在正常电压范围内,组合仪表具有正常功能。测试电压在13.5V左右。超出此范围,除电源故障外,我们可能会遇到以下情况:-指针冻结到实际位置,微处理器控制的LED(灯)被停用,EEPROM的写入功能被停用。所以要确保RAM中的数据保留,当电压恢复到正常范围(有滞后)时,恢复正常功能。指针同步(回到零位,再回到有效指示),避免失步。
在电源故障期间,除了欠压情况外,RAM数据不再保留。当电压恢复到正常范围时,组合仪表复位。
背景照明与显示、刻度和指针有关。它们可以单独照明。照明根据两种情况而有所不同:-白天,只有显示屏以小亮度照亮,夜间,显示屏、刻度和指针都被照亮。在夜间照明期间,可以手动或自动修改亮度。当前灯被激活(手动模式)或当外部照明水平低于定义的阈值(自动模式)时,日/夜转换完成。照明级别存储在EEPROM中,所选级别作为指针存储在该照明表中。显示器和刻度+指针可以有不同的照度表来有不同的照度。
使用一个组合按钮或菜单中的功能执行手动调光。自动调光是使用一个传感器来执行的,该传感器决定从白天到夜间照明水平的转变。照明调暗不影响信号灯的亮度。照明可用作发出警告的一种方式。例如,在某些汽车中,当发动机转速超过定义的阈值时,转速表刻度照明会以全亮度激活(而其他刻度的照明会停用),以表示发动机可能已损坏。
3.测试环境CANoe
仪表组合(IPC)的真实系统软件测试与特殊软件环境的使用有关,该环境模拟所有或大部分汽车ECU的工作。这个环境是VectorCANoe。它可用于任何汽车ECU或任何使用CAN实时网络通信的控制器的软件开发。CANoe是基于事件驱动的通信访问编程语言CAPL的面向Windows的工具。CANoe的仿真是基于软件节点(每个节点对应一个汽车ECU)。节点通过虚拟或真实的CAN网络连接。可以为每个节点定义CAN消息和信号(事件),并可以模拟和测试虚拟CAN网络的互通。当节点的软件经过测试和验证后,可以将其上传到真实的ECU或用于进一步测试。
出于IPC的测试目的,CANoe仿真解释了向IPC发送消息的永恒ECU和传感器的行为。因此,通过组织良好的图形面板(图8),模拟向IPC发送消息,测试人员能够分析(比较)IPC是否正确地可视化。换句话说-IPC行为是否符合(客户和测试)要求。
图8CANoe仿真窗口视图
从描述中可以看出,CANoe仿真为IPC的手动测试提供了可能。有一些额外的基于Excel和VisualBasic宏的软件工具,可以连接到CANoe仿真以提供IPC的半自动化测试。然后运行测试的测试人员必须回答测试问题,验证IPC单元是否对外部SW工具发送的测试消息/信号做出正确反应,或者使用外部电源单元设置组合电压的一些特定值(图9)或信号发生器。
手动或半自动测试的测试结果和发现的错误会在Excel文件中报告,并发送给高级管理人员,以便根据错误的优先级激活错误修复或更改请求。
图9IPC测试的硬件和软件环境
下一个例子与汽车组合的实际导航测试有关,当导航ECU报告到目的地的距离(图10)时,发现了一个错误。可以看出,在CANoe仿真中设置了较大的公里值(上部红色区域),仪表盘显示(下部红色区域)上的值被削减到前8位,这与测试要求不符。还发现这个区域可以设置非数值,因为数据不被解释为数字而是被解释为字符串。
图10在导航数据中发现错误的测试示例
4.结论
本文介绍了针对IPC单元的汽车SW测试技术,它为驾驶员提供了非常重要的视觉信息。讨论了作为密集测试对象的IPC的主要功能,以及相应的软件和硬件测试环境和工具。
IPC的测试大多是手动或半自动化的,一方面取决于大量的IPC类型和型号,另一方面取决于这些HWIPC型号的大量软件版本和更新。很少有完全自动化的测试工具用于将显示图标与准备好的图形数据库中的图标进行比较,但目前它们用于测试少量汽车组合。
可以看出,汽车测试需要测试人员具备跨学科技能。他们必须具有嵌入式系统、消息和事件驱动编程方面的经验,并且具有自动化、电子、机械方面的知识,当然还有测试和配置管理理论领域的知识。