鉴源实验室

Jingyuan Laboratory

车载ECU嵌入式软件的测试入门

发布时间:2022-07-18 作者:李伟 点击次数:

作者 | 李伟 上海控安安全测评中心安全测评部总监
来源 | 鉴源实验室



按语:上一章节我们讲了汽车电子架构和网络历史。本章节我们将先给大家讲述汽车测试的基础小知识,然后描述CAN网络数据帧的相关基础知识。


01

车辆研发基本知识


1.1 整车电源状态

整车所有电子零配件均工作在一定电源状态下,没有供电的话零部件将无法工作。关于零部件在何种状态下应对进入何种工作状态,在对应车型的技术文档网络部分中均有详细要求和描述,每个厂家的文档名称可能不一致,但是该技术文档肯定存在。

整车的电源状态正常情况下有以下几种:深度休眠、休眠、锁车未休眠、ACC 、ON、点火、RUN。

深度休眠、休眠、锁车未休眠,这三个状态容易理解,我们主要讲解其余几个状态。在机械钥匙启动的车辆中,通常我们都会看到钥匙插口对应如下图所示的状态。

1.png

图1 钥匙插口状态

(1)LOCK状态:术语是锁止档,此时是机械钥匙仅插入或将拔出时的状态。整车电子设备中故障报警灯、大灯、发动机防盗系统等非常少量的设备处于工作,其他设备均热关机准备进入休眠状态。

(2)ACC状态:附属设备通电档,此档位在LOCK基础之上会增加少部分设备进入唤醒工作状态,整车内部油路系统部分油泵开始启动工作,润滑机械部件为发动起启动进行准备,所以当钥匙拧到此档位时我们可以听到一些机械设备运转的轻微声音。另外有收音机、空调风扇等均可以正常工作。

(3)ON状态:整车通电档,顾名思义此状态下全车电路接通,同时整车进行自检,可以在仪表台上看到自检设备灯亮起,自检完成大部分灯会熄灭。尾气排放等自检灯会在发动机启动后自动熄灭。

(4)START状态:发动机启动档,此状态跟其余状态均不一样,其余状态均是车辆可以长时间保存的状态,SRART状态是发动机启动点火的一小段时间状态,当车辆机械钥匙拧到此状态后立即触发车辆点火启动,松开钥匙后,机械钥匙会自动弹回ON状态档位。如果通过设备连接车辆网络,追踪整车电源状态信号(SYSPowerMode各个车辆命名可能不一样)点火前的状态信号值为ON;点火后钥匙同样是在ON档,但电源状态信号的值会变为RUN;而点火的那一瞬间,钥匙指向START时电源状态信号的值会是CRANK(各个车型命名可能不一致)。

需要注意的是,当前主流研发车型钥匙虽然都配备了机械备用钥匙,但是车辆点火一般都是无钥匙启动。在这些类型的整车电源状态中,相比传统机械钥匙车型,电源状态少了1个,只有3个状态,无钥匙启动车型将上文的ACC和ON两个状态进行了合并。

在测试中工程师们为了方便,经常会使用一些流传的术语,常有几个电源状态相关术语如下:

· 车辆下电:指的是车辆熄火,未落锁未休眠;

· 车辆上低压电:一般指的是车辆进入电源ON状态;

· 车辆上高压电:一般指新能源车进入电源RUN状态,燃油车发动起启动;

· 车辆上KL15电:之所以有KL15此类的专业术语,是因为整个汽车行业受德国汽车工业的影响比较深远,KL是德语Klemme(ECU针脚)的缩写。KL15电指的就是车辆发动机启动后整车发动机供电,即常说的上高压电;

· 车辆上KL30电:对应KL15,KL30电指的是发动机熄火,由车辆蓄电池供电。

1.2 车辆研发里程碑节点

之所以在测试入门就介绍项目的相关知识,是因为在汽车行业项目研发过程中,项目组一旦确定并发布了里程碑节点,这些时间节点通常情况下就不会变更。如要发生变更车型项目总监则需向企业领导层进行说明并获得批准,这种变更的影响一般都比较大。我们所有的活动安排都需要适配项目的里程碑节点,包括所有的研发和测试活动。

德国汽车制造业对国内的影响是巨大的,上汽集团以及部分新兴造车企业受德国大众的影响,研发体系的项目管理基本都沿用大众的体系,当然广汽受丰田影响,更多使用了丰田的体系,还有其他类似的体系。本文中我们介绍的是大众集团车型研发项目管理里程碑的划分。

整个车型研发过程中共有15个项目节点,A4-A1(架构开发阶段节点),G9-G0(整车开发阶段节点),还有项目关闭节点。G9阶段基本都是企业高层战略设计规划相关的工作,另外项目生命周期结束关闭节点,这两个节点跟一般工程师都不相关,下图中省略。

2.png

图2 车型研发项目节点

一个全新产品车型的开发过程总体可以分为架构开发阶段和整车产品开发阶段两个。且架构开发是整车开发的前导阶段,理论上架构工作完成后才进入整车开发阶段,实际项目中在架构进入实质性的开发阶段后,主项目就开始并行启动。

工程师通常从G8(Program Commencement)阶段介入项目,不过此时介入的一般是项目总工,以及部分的VSE(Vehicle Systems Engineer)和DRE(Design Release Engineer),一般零配件的DRE只是接到通知参与前期的工作会议,做前期的准备工作。

3.png

图3 车型开发总过程

一般工程师在G6(Program Approval项目批准)开阀成功后,开始满负荷投入。

测试工程师的测试时间阶段通常如下表所示。

4.png

表1 测试时间阶段

*注:

VDR:Verified Data Release 造型数模发布

OTS:Off Tool Sample 全工装零件造车

G5:Engineering Release 工程发布

G2:Pilot 试生产


02

CAN网络数据帧


为什么在测试入门的第一课讲述CAN相关的知识,在上一篇中我们就CAN网络的重要性进行了表述。CAN网络将整车所有电子零部件进行了连接,从零部件到子系统,至整车电子,我们测试中每时每刻都在使用CAN网络,CAN网络相关知识是汽车测试基础中的基础。

在CAN网络的使用上,目前乘用车系统主要使用高速CAN,低速CAN主要用在卡车、货车等工程车辆中。高速CAN由ISO 11898进行规范,低速CAN由ISO 11519进行规范。

车辆零部件通常会以三种场景使用CAN网络进行通讯。1.零部件基本都会周期性的主动通过CAN网络向网关、其他ECU(设计需要的ECU)周期发送特定报文的;2.零部件探测到某种条件,受到触发主动通过CAN网络向其他ECU发送触发信息(如故障报警等);3.零部件接收到其他ECU或tester发送的报文,根据设计对报文进行响应(网络诊断)。

本章节我们给大家讲解我们工具观察到的CAN网络数据帧如何进行初步分析和识别。如下图所示,使用了Tester工具向某ECU发出服务请求报文,ECU进行了响应回答。工具通常显示的实时报文如下所示。

5.png

图 4

(1)Time:通常时间可以在相对时间和实际时间之间进行切换,相对时间将第一帧报文时间设置为起始时间,后继报文跟此报文时间差进行累计显示,如上图中所示。实际时间软件系统会跟当前的日期时间进行同步后,将每个报文标记当前时间。无论哪种方式,我们都可以通过相邻两个报文的时间差计算得到报文的间隔时间。

(2)Bus:总线编号,我们在上一篇中讲述了车辆CAN总线有多路CAN,如动力CAN、车身CAN等等,每路CAN上ECU均需要通过网关进行报文的交互,而本网络上的广播报文是不能在其他网络上接收到的,因此工具一般会有支持多路CAN功能,在实车测试时,通过不同CAN转接出的OBD口,分别连接需要使用的CAN网络,这样就需要通过编号来标记不同的CAN网络,就是此处Bus的意义。

(3)Type:Tx意思是由此Tester发送的报文,Rx的意思是接收到的报文。

(4)ID:是此Tester发送报文的目标ECU的网络ID,跟Rx报文的接收ID成对。一个ECU通常有3个地址,分别对应物理寻址的接收和发送地址,如本条最开始的叙述,图中的0X717为此ECU的报文接收地址,0X71F为此ECU的报文发送地址。此外ECU还有一个功能寻址地址通常为0X7DF。

(5)DLC:报文数据部分的长度,CAN网络报文数据长度固定为8字节,如果长度不够则补全为8字节,报文超过8字节时超长帧分为多帧发送。

(6)Data:数据部分。网络上的周期性报文在工具软件加载了项目网络DBC(网络信号矩阵数据库)之后,工具会自动解析显示为我们可以直接阅读的格式。展开报文后如下图所示。如报文不能展开就表明工具软件尚未加载对应DBC。

6.png

图 5

此外我们在抓取CAN网络需要的报文时,网络上的报文数量非常多,很多是我们不需要的报文,此时就需要通过工具的过滤器进行报文过滤。过滤器基本都支持通过报文ID进行过滤,此种过滤方式也是我们最常用的方式,各个工具的设置方式大同小异,基本都是在过滤器中输入希望抓取的设备ID,或者不希望抓取的设备ID,设置完成后应用即刻生效。


阅读原文