精品方案 | GCKontrolGCAir在汽车ECU协同开发中的应用
摘要
本文针对汽车ECU开发中的多ECU交互复杂、供应商协同困难及测试验证局限等问题,提出基于GCKontrol与GCAir的协同开发解决方案。通过GCKontrol实现VCU与PEPS的精确建模与验证,利用GCAir完成系统集成与仿真测试,显著提升开发效率与质量。以VCU与PEPS间的防盗认证功能为例,展示了从组件级建模到系统级验证的全流程。GCKontrol建模实现VCU生成随机数并比对密文,PEPS加密随机数并反馈密文等逻辑,GCAir集成系统,最终通过TestManager完成自动化测试,验证功能正确性与状态跳转逻辑。
一、汽车ECU开发特点与面临的瓶颈
1.多ECU间复杂交互功能设计
现代汽车电子控制系统日益复杂,众多关键功能需要多个电子控制单元(ECU)协同工作才能实现。例如,自适应巡航控制(ACC)功能不仅涉及整车控制器VCU来调节动力输出,还需要制动控制ECU实现精准减速,同时毫米波雷达传感器负责实时监测前方车辆距离和速度,并将数据传递给其他相关ECU进行决策。这种跨多个ECU的交互设计使得系统架构变得极为复杂,任何一个环节出现问题都可能影响整个功能的正常运行。
2.多供应商协同开发的挑战
汽车制造是一个高度分工的产业,不同ECU通常由不同的供应商负责开发。每个供应商都有自己独立的设计流程、开发工具和标准规范。例如,VCU可能由一家专注于动力系统控制的专业供应商开发,而车载娱乐系统ECU则可能由另一家擅长消费电子集成的供应商负责。这种分散的开发模式虽然能够充分发挥各供应商的专业优势,但也带来了诸多挑战。不同供应商对知识产权的保护、项目开发进度不一致,增加了系统集成和协同开发的难度。
3.整车集成测试阶段的局限性
在目前的汽车ECU开发流程中,各供应商通常先完成各自ECU的开发工作,然后才在整车集成测试阶段进行ECU间交互的测试。这种开发模式存在明显的局限性。首先,在整车集成测试之前,各ECU的功能虽然经过了单独测试,但由于缺乏真实的交互环境,一些潜在的问题可能无法被及时发现。例如,某个ECU的通信延迟可能在单独测试时并不明显,但在与其他ECU协同工作时,可能会导致整个系统的响应速度变慢,甚至出现功能失效的情况。其次,整车集成测试阶段发现问题后,由于涉及到多个供应商和复杂的系统架构,问题定位和解决的成本高昂且耗时。可能需要各供应商反复沟通协调,对各自的ECU进行修改和重新测试,严重影响产品的开发周期和质量。
二、汽车ECU协同开发解决方案
针对汽车ECU开发中的多ECU交互复杂、多供应商协同困难以及传统测试验证局限等问题,我们提出基于GCKontrol与GCAir的协同开发解决方案。该方案通过将GCKontrol的精确建模与GCAir的系统集成能力相结合,实现从组件级建模到系统级验证的全流程覆盖,显著提升了汽车ECU开发效率和质量。
1.GCKontrol提供直观高效的可视化建模环境,支持拖拽式操作构建控制模型。具备全流程仿真验证能力,能精准建模并自动生成高质量代码,支持FMU导出,为后续集成做准备。
2.GCAir基于MBSE理念,是仿真测试验证一体化平台。各ECU团队用GCKontrol完成建模后,通过FMU导入GCAir,如图2.1,设置通讯矩阵实现多ECU系统集成。该平台覆盖组件级到系统级的全面测试验证,包括功能、性能、故障注入等方面。
图2.1 跨平台FMU导出
3.GCKontrol&GCAir协同工作流程
(1)组件级开发与验证,各ECU供应商使用GCKontrol完成控制算法建模、硬件接口定义、组件级功能验证、自动生成标准化模型文档与测试报告。
(2)系统级集成与验证,将GCKontrol模型导出为FMU格式,在GCAir中完成:多ECU系统集成、通讯矩阵配置、系统级仿真测试、实现从模型到硬件在环的全流程验证。
(3)全生命周期管理,通过GCKontrol&GCAir完成需求追溯与验证、模型版本控制、测试用例管理、问题追踪。
三、实际应用案例
本文以VCU(Vehicle Control Unit,整车控制器)与PEPS(Passive Entry Passive Start,无钥匙进入一键式启动单元)间的防盗认证功能为例,介绍GCKontrol与GCAir在从软件开发到系统仿真验证的应用。
3.1 系统需求说明
整个防盗认证的交互流程具体步骤如下:
1.PEPS发起认证
PEPS将按照设定的规则发起认证。当PEPS未发起防盗认证时,密文的信号数值处于特定的默认状态,即所有信号的数值都为255。当PEPS需要发起防盗认证时,密文的信号数值都设为0,表示请求进行防盗认证。
2.VCU生成随机数并发起认证
在接收到PEPS的认证请求后,VCU会根据设定的算法生成8个0 - 255之间的随机数。这些随机数将作为加密的基础数据,确保每一次加密过程的随机性和安全性。生成随机数后,VCU会通过报文发送给PEPS。
3.PEPS加密并反馈密文
PEPS在收到VCU发送的随机数后,会调用与VCU相同的加密算法对收到的随机数进行加密处理。加密完成后,PEPS会将生成的密文发送给VCU
4.VCU对比密文并判断认证结果
VCU在收到PEPS发送的密文后,会将其与自身根据相同加密算法生成的密文进行逐个字节的对比。如果两个密文的数值完全一致,则判定通过认证,VCU会通过防盗认证。如果密文不一致,则判定为密文不一致认证失败,并将失败原因标识为PEPS回复的密文错误。
5.超时处理
在VCU发出随机数后,会启动一个内部计时器,等待PEPS的反馈。如果在2s内没有收到PEPS反馈的密文,VCU会判断为PEPS超时回复,认证失败,并将失败原因标识为PEPS回复密文超时。
3.2 使用GCKontrol完成软件模型开发
使用GCKontrol分别完成VCU与PEPS功能的模型开发。
1.VCU功能模型,如图3.1。
图3.1 VCU防盗功能模块
在整个防盗认证过程中,VCU的防盗认证状态会根据不同的情况在多个状态之间进行跳转,如图3.2。VCU防盗认证过程具有以下状态:
(1)InitESKCheck:初始化ESK检查状态
(2)Standby:预备状态,等待PEPS发起防盗认证流程
(3)RandomNumGen:随机数生成状态,进入此状态生成随机数
(4)WaitAndCheck:等待检查状态,等待PEPS回复密文并对比密文
(5)Released:防盗认证成功解锁状态
(6)Locked_NoEskErr:未写入ESK码上锁状态
(7)Locked_SecretNumErr:PEPS回复密文错误上锁状态
(8)Locked_OverTimeErr:PEPS回复密文超时上锁状态
图3.2 VCU防盗认证状态跳转逻辑
对于随机数生成算法与加密算法,可以选择通过C-Code模块调用自定义的C代码,如图3.3。C-Code模块支持用户将C/C++代码导入,并支持C/C++代码对第三方库或依赖的调用,提高了系统建模的灵活性、通用性、扩展性。
图3.3 VCU生成密文模块
2.PEPS功能模型,如图3.4
PEPS需要发起认证流程,并在收到VCU发出的随机数后对其进行加密生成密文。
图3.4 GCKontrol搭建PEPS系统
3.3 跨平台FMU导出
在GCKontrol导出界面中,分别将VCU与PEPS的软件模型配置好FMU名称、导出路径、模块参数等,导出FMU文件,如图3.5。
图3.5 GCKontrol中FMU导出界面
3.4 使用GCAir完成系统集成测试
在GCAir中可进行防盗系统的模型库管理、架构设计、模型接口定义及管理、故障配置等操作,以实现防盗系统仿真模型的集成仿真。基于防盗系统架构,在GCAir中构建防盗系统模型,如图3.6。导入对应的FMU后,创建CAN总线报文和信号,以此实现VCU和PEPS之间防盗认证功能的交互逻辑的仿真。
图3.6 GCAir模型
3.5 系统集成测试
TestManager工具是一款基于GCAir仿真平台的自动化测试工具,可以实现测试用例的编写,执行测试用例,收集并分析测试用例的仿真结果。在GCAir中完成系统集成后,可使用TestManager进行系统集成测试。
本案例以创建Python脚本的方式编写测试用例,具体步骤如下:
1.设置自定义变量,与工程变量关联。python变量类型Input,关联GCA模型的输出量,作为Python脚本的输入。python变量类型Output,关联GCA模型的输入量,是Python脚本的输出量,如图3.7。
图3.7 自定义Python变量
2.用例参数设计,在Python脚本中定义的Parameter变量,可以配置此测试用例参数的取值,如图3.8。本示例中使用到的参数包括:
(1)root.PEPS_bIMMOStart,取值0表示不发起防盗认证,取值1表示发起防盗认证;
(2)root.imf_bESKWriten,取值0表示VCU未写入ESK码,取值1表示VCU已写入ESK码;
(3)root.icpeps_bReplace,取值0表示VCU采用PEPS发出的总线信号,取值1表示VCU内部使用替代值替代PEPS发出的总线信号;
图3.8 用例参数设计
3.创建python脚本,添加测试步骤,如图3.9。
图3.9 创建python脚本
4.设置曲线观测信号变化,测试仿真完成后会在曲线界面上显示仿真结果。
5.编写好测试用例后,通过“开始”按钮测试所有用例,可以在TestManager界面上看到所有用例的测试结果,如图3.10。
图3.10 TestManager测试界面
四、总结
世冠科技GCKontrol与GCAir在汽车ECU协同开发中优势显著。针对多ECU交互的复杂系统,它能提升跨团队软件开发与验证效率。各团队完成功能软件模型开发后,借助跨平台FMU,在GCAir组合成完整系统仿真模型,对软件功能、交互逻辑和通讯矩阵进行复合验证,可提前发现并拦截软件缺陷,有效避免传统开发后期问题集中爆发的情况,大幅缩短开发迭代周期,为汽车ECU开发提供高效、可靠且质量有保障的协同开发方案。