面向汽车集中式EE架构下的MCU类域控制器软件开发集成过程研究

2022-08-03 06:51孙忠刚姜珊于鑫刘双双张静
汽车零部件 2022年7期
关键词:集中式子系统控制器

孙忠刚,姜珊,于鑫,刘双双,张静

中国第一汽车集团有限公司,吉林长春 130000

0 引言

伴随汽车新四化的发展趋势,汽车EE架构正在由分布式架构向集中式架构过渡。在分布式架构阶段,一个控制器的功能相对独立、单一,在集中式EE架构下,多个控制器的功能会合并到一个域控制器中,传统控制器软件开发集成过程不能直接应用于域控制器开发。本文分析了传统控制器软件开发集成过程应用于域控制器开发存在的问题,进而提出一种适用于MCU类型域控制器的软件开发集成过程,并使用行业现有开发工具链,通过Demo项目进行实践验证,此软件开发集成过程能完成集中式EE架构下的MCU类型域控制器开发,且容易实施。

1 传统控制器软件开发集成过程的介绍

传统控制器软件开发集成过程,特指车上基于MCU实现的控制器开发过程中所采用的软件开发集成步骤。车用控制器按其实现所使用的计算单元类别划分,可分为两类:一类是MCU控制器,另一类是MPU类控制器。两类计算单元应用定位、算力及运行的系统不同,软件开发集成过程也不同。现阶段传统控制器软件开发集成通常采用如下过程:控制器应用软件开发工程师提出基础软件需求;基础软件工程师依据需求开发控制器驱动软件、中间层软件、设计操作调度框架和内存部署框架,交付一个可运行的基础软件平台;应用软件工程师在基础软件平台框架下进行应用软件与基础软件平台的总体集成和测试,交付最终软件版本,在集成过程中通常不改变基础软件平台。

2 集中式架构下MCU类域控制器的特点

集中式EE架构示意如图1所示。核心拓扑结构由中央计算平台和域控制器组成。

图1 集中式EE 架构示意

在集中式EE架构下,整车的控制功能主要集中部署在中央计算平台和域控制器中。域控制器与传统控制器最大的区别是:域控制器中会承载多个子系统的控制功能,功能与硬件分离。域控制器功能的部署分配由EE架构工程师主导完成。在域控制器开发之前,EE架构工程师会根据硬件资源描述、系统限制描述及安全需求,将整车级软件架构分配部署到各控制器上,然后进行控制器级开发工作。

3 传统控制器软件开发集成过程应用于域控制器开发的问题分析

传统控制器开发过程为:控制器功能相对独立,应用软件工程师了解控制器所有功能,能够给出应用软件所有需求,基础软件工程师依据需求,可以开发出满足应用软件运行的基础软件平台,应用软件工程师可在此基础上,完成应用软件与基础软件平台的总体集成和测试。该软件开发集成过程应用于域控制器开发,主要有两个方面的问题:第一,域控制器合并了多个传统控制器的功能,传统控制器应用软件工程师,在域控制器中是子系统应用软件工程师,子系统应用软件工程师不能给出域控制器所有应用软件的需求;第二,域控制器采用多核芯片且支持内存保护,在多个子系统集成过程中,通常会涉及调度内核的重新分配及内存分区访问权限的调整,软件开发集成不能在一个预先开发完的基础软件平台上简单堆砌软件组件完成。因此,传统控制器集成开发过程不能应用于域控制器开发,域控制器开发需要统筹考虑各子系统的特性需求,并进行集成设计、软件集成和集成测试。

4 域控制器软件开发集成过程的设计及验证

4.1 域控制器软件开发集成工作过程的设计

本文所设计的域控制器软件开发集成工作过程是在AUTOSAR方法论基础上,对SWC设计过程进行了步骤分解。使得参与传统控制器开发的各角色工程师共同协作,从而完成域控制器开发。

按照AUTOSAR 方法论,域控制器功能部署完毕后,其应用层SWC信息是完整的,可以直接进行域控制器基础软件平台开发。然而,目前汽车行业的情况是EE架构工程师不能设计出具备完整信息的应用层SWC,通常不能设计出SWC内部的运行实体,SWC内部运行实体设计需要由应用软件工程师完成。

域控制器软件开发集成工作过程开始于域控制器应用层软件SWC部署完毕,此时部署在域控制器的所有SWC是不含有运行实体的。域控制器开发集成工作过程如图2所示。

图2 域控制器开发集成工作过程

域控制器软件开发集成过程共包括5个工作步骤:

(1)域控制器应用层SWC模型分解发布。将部署在域控制器上的应用层软件组件,按照功能特性,分解成多个软件Composition,分发给各子系统应用软件工程师。

(2)软件Composition模型内软件组件运行实体设计。子系统应用软件工程师设计软件Composition内软件组件的运行实体。

(3)域控制器级软件构件模型集成及软件内部算法开发,两项工作可以并行开展。①域控制器级软件Composition模型集成将完成运行实体设计的软件Composition模型集成在一起,形成完整的域控制器应用层SWC,可以作为基础软件开发的输入。②软件构件内部算法开发:基于设计完软件运行实体的软件Composition模型,子系统工程师做进一步软件构件算法代码开发。软件构件算法开发有两种方式,或者通过AUTOSAR 软件架构设计工具生成软件构件代码框架,然后手写代码完成开发;或者将软件Composition模型导入到Simulink中,通过Simulink建模生成符合AUTOSAR的代码。

(4)基础软件平台底座开发。基于步骤(3)的输出结果及域控制器硬件IO配置表等信息,完成域控制器基础软件底座开发及测试。

(5)软件总体集成。将经过测试的应用层算法SWC和基础软件平台底座集成在一起,调试验证,生成域控制器执行文件。

4.2 域控制器软件开发集成工作过程的验证

通过一个基于AURIXTC397芯片的Demo域控制器开发对软件开发集成工作过程进行了验证。具体如下:

(1)EE架构工程师采用架构设计工具PreeVision完成整车级SWC设计及SWC在各控制器上的部署,提取出部署在AURIXTC397 Demo控制器上.arxml文件(SWC中不含有运行实体信息)。

(2)EE架构工程师将AURIXTC397 Demo域控制器上.arxml导入到ECU架构设计工具Davinci Develper中,将SWC分组,然后提取出每组SWC的.arxml文件,分发给不同的应用软件工程师。

(3)应用软件工程师收到一组SWC的.arxml文件后,导入到Davinci Developer工具中,设计每个SWC内的运行实体,完成SWC内部运行实体设计后,提取出增加有运行实体的整组SWC的.arxml文件。将.arxml文件导入到Simulink工具中进行SWC内部代码开发,同时也将该.arxml释放给基础软件工程师。

(4)基础软件工程师将来自各应用工程师.arxml文件导入到Davinci Developer中,完成各组SWC的集成,形成完整的AURIXTC397 Demo域控制器上.arxml文件。

(5)基础软件工程师基于完整的AURIXTC397 Demo域控制器上.arxml文件,使用Configurator工具进行基础软件配置开发,并结合手写的复杂驱动代码,完成AURIXTC397 Demo域控制器基础软件底座开发。

(6)基础软件工程师集成AURIXTC397 Demo域控制器基础软件底座和开发完算法的SWC软件,形成最终可在AURIXTC397 Demo域控制器中运行的目标文件。在集成过程中使用GLIWA T1进行系统分析,根据系统分析结果,对操作系统调度进行优化完善。

通过以上工具及工作分工,EE架构工程师、应用软件工程师、基础软件工程师共同完成了AURIXTC397 Demo域控制器开发,软件开发集成过程运行顺畅,达到预期目标。

5 结束语

本文分析了传统控制器软件开发集成流程应用于集中式EE架构下MCU类域控制器开发存在的问题,给出了一种域控制器开发集成流程方法,并使用汽车行业现有工具链,对流程方法进行了实践验证。软件开发集成过程,运行顺畅,实现预期目标。目前,集中式EE架构下MCU类域控制器开发还处于起步阶段,研究成果容易实施,并有一定的参考意义。

猜你喜欢
集中式子系统控制器
南京溧水电子3款控制器产品
水泥生料立磨压差变参数二型模糊控制器设计
基于NFV的分布式SDN控制器节能机制
网络空间供应链中入侵检测及防御子系统的投资机制研究
网络空间供应链中入侵检测及防御子系统的投资机制研究
团队与知识管理的关系研究
硬式内镜器械清洗消毒集中式与分散式的管理效果比较
国有企业的集中式财务管理模式分析
浅谈中职学校新型模块化机房建设
集中互动式多媒体术前宣教在门诊手术患者中的应用