0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

上海控安 来源:上海控安 作者:上海控安 2023-01-30 17:54 次阅读

作者 |李伟上海控安安全测评中心安全测评部总监

来源 |鉴源实验室

01车辆研发基本知识

1.1整车电源状态

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

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

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

pYYBAGPXky-AI8wIAAFIDxK--oI862.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阶段基本都是企业高层战略设计规划相关的工作,另外项目生命周期结束关闭节点,这两个节点跟一般工程师都不相关,下图中省略。

poYBAGPXk0OAfV2yAAK0-GIFN2k711.png

图2车型研发项目节点

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

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

poYBAGPXk1mAeEA6AAI6atWxaBg731.png

图3车型开发总过程

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

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

poYBAGPXk2yAdYtgAAGv6cCceXo381.png

表1 测试时间阶段

*注:

VDR:Verified Data Release 造型数模发布

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

G5:Engineering Release 工程发布

G2:Pilot 试生产

02CAN网络数据帧

为什么在测试入门的第一课讲述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进行了响应回答。工具通常显示的实时报文如下所示。

poYBAGPXk4qAepu8AAWkvRMS2zc510.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。

pYYBAGPXk5qAM1NAAAFsroi8Nig836.png

图 5

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

审核编辑黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 测试
    +关注

    关注

    8

    文章

    5260

    浏览量

    126588
  • ecu
    ecu
    +关注

    关注

    14

    文章

    885

    浏览量

    54474
  • 汽车
    +关注

    关注

    13

    文章

    3485

    浏览量

    37235
收藏 人收藏

    评论

    相关推荐

    嵌入式系统开发中的测试方法 嵌入式系统开发与AI结合应用

    嵌入式系统开发中的测试方法 嵌入式系统开发是一个复杂的过程,涉及到硬件和软件的紧密结合。测试是确保系统可靠性和性能的关键步骤。以下是一些常用
    的头像 发表于 12-09 10:22 279次阅读

    嵌入式学习建议

    对广大渴望学习嵌入式系统的学子提出几点基础阶段的学习建议: ①嵌入式系统软件硬件密切相关,一定要打好软硬件基础。其实,只要找到正确的方法,加上努力,任何理工科学生,甚至非理工科学生,都能学好
    发表于 10-22 11:41

    ECU电控软件开发及测试介绍

    本文重点介绍符合AutoSar架构的应用软件开发、MBD开发模式下的软件质量评估与优化方案、复杂场景下的ECU性能压力测试方案。
    的头像 发表于 09-26 14:25 3312次阅读
    <b class='flag-5'>ECU</b>电控<b class='flag-5'>软件</b>开发及<b class='flag-5'>测试</b>介绍

    嵌入式软件开发与AI整合

    嵌入式软件开发与AI整合是当前技术发展的重要趋势之一。随着人工智能技术的快速发展,嵌入式系统越来越多地集成了AI算法,以实现更复杂的智能功能。以下是关于嵌入式
    的头像 发表于 07-31 09:25 690次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>开发与AI整合

    嵌入式入门心得:从新手到老鸟的蜕变

    作为一名在嵌入式领域摸爬滚打多年的老鸟,我深知新手在入门时面临的困惑与挑战。嵌入式系统是一个复杂而迷人的领域,它涉及硬件、软件以及它们之间的交互。在这里,我想分享一些我的
    的头像 发表于 07-24 09:34 601次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>入门</b>心得:从新手到老鸟的蜕变

    嵌入式开发者的未来

    测试这些产品的硬件和软件。汽车行业:现代汽车包含大量的嵌入式系统,例如车载娱乐系统、发动机控制单元、自动驾驶系统等。在这个领域,工程师可以从事嵌入
    的头像 发表于 06-23 08:10 356次阅读
    <b class='flag-5'>嵌入式</b>开发者的未来

    Vector推出符合ISO 26262最高安全标准的ECU嵌入式软件

      Vector推出符合ISO 26262最高安全标准的ECU嵌入式软件,远远超越市场常规标准。该软件可以确保可靠运行,因此尤其适用于自动驾驶和线控底盘系统。新
    的头像 发表于 06-03 17:21 740次阅读

    嵌入式软件工程师和硬件工程师的区别?

    、机器人等。 定义和工作职责 嵌入式软件工程师的主要职责包括但不限于:设计、开发、测试和调试嵌入式软件应用程序,以满足特定硬件和
    发表于 05-16 11:00

    入门嵌入式系统这些知识你知道吗?

    嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用
    发表于 05-03 09:54 544次阅读

    嵌入式软件设计的原则分享

    嵌入式软件开发如果具有更好的阅读性、扩展性以及维护性,就需要考虑很多因素。今天给大家分享几个嵌入式软件设计的原则。
    发表于 02-25 10:54 679次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>设计的原则分享

    嵌入式学习步骤

    硬件组件。 (4).开发固件:编写嵌入式系统的固件,这是嵌入式系统的软件部分。固件负责控制硬件并执行特定任务。 (5).调试和测试:在将嵌入式
    发表于 02-02 15:24

    嵌入式软件开发和软件开发的区别

    嵌入式软件开发和软件开发是两个不同的概念,它们在一些关键方面有着明显的区别。嵌入式软件开发是指开发嵌入
    的头像 发表于 01-22 15:27 2260次阅读

    Tessy—嵌入式软件单元测试/集成测试工具

    Tessy源自戴姆勒—奔驰公司的软件技术实验室,由德国Hitex公司负责销售及技术的支持服务,是一款专门针对嵌入式软件进行单元/集成测试的工具。它可以对C/C++代码进行单元、集成
    的头像 发表于 01-15 14:39 807次阅读
    Tessy—<b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>单元<b class='flag-5'>测试</b>/集成<b class='flag-5'>测试</b>工具

    基于功能安全的汽车嵌入式软件单元验证技术研究

    随着汽车嵌入式软件功能的不断叠加,软件复杂性不断提升,对汽车嵌入式软件的安全性提出了更高要求,基于功能安全的
    的头像 发表于 01-07 11:27 1040次阅读
    基于功能安全的汽车<b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>单元验证技术研究

    聊聊嵌入式软件分层

    今天以控制LED闪烁为例,聊聊嵌入式软件分层
    的头像 发表于 12-28 09:22 668次阅读