2025 年 3 月 19 日勾引 twitter,在第六届软件界说汽车论坛暨 AUTOSAR 中国日上,长城汽车总工程师杜建福先容了 EE 架构从传统单一 ECU 向整车 SOA 架构的演变,指出系统被区别为时刻处事层和应用处事层等多个层级。跟着时刻发展,中央计较单位向 AP 平台挪动,但平台采用尚未合股。在 SOA 建筑过程中,面对多核处理器环境兼容、C++ 东说念主才稀缺以及 Simulink 建筑模式挪动等挑战。这些问题条款汽车行业在东说念主才和时刻上握住改进,以适合新的建筑环境。
杜建福 | 长城汽车总工程师
随后,迈斯沃克首席应用工程师 / 时刻客户司理龚小平先容了 MathWorks 针对 SOA 建筑的惩办决议。通过提供架构缠绵器具、自动代码生成时刻和中间件处事栈,MathWorks 助力汽车行业收尾高效 SOA 建筑。其惩办决议复古从架构缠绵到代码生成、部署的完好进程,同期提供臆造仿真功能,加快建筑进度。此外,推选采用增量式部署步调,简化软件问题排查。
龚小平 | 迈斯沃克首席应用工程师 / 时刻客户司理
以下为演讲内容整理:
EE架构的演变与软件体绑缚构
在传统架构缠绵中,咱们主要聚焦于单一的 ECU,情切其应用层或底层软件架构的构建。着 SOA 理念在汽车行业中的兴起,架构缠绵的视角已拓展至整车的层面。在此架构下,系统被区别为时刻处事层、应用处事层等多个层级,表层承载着种种应用,而基层则由中央区域放手器及一系列原子处事等组成。
图源:演讲嘉宾素材
刻下,车辆仍运行于传统的 CP 平台,诸如 VCU 或车身放手器等组件均部署在此类平台上。可是,跟着时刻的发展,部分中央计较单位已驱动向 AP 平台挪动。对于改日平台的采用,现在业界尚未达成共鸣,各方均在按照本人计谋进行探索。但长期来看,约略"分久必合,合久必分",最终或将趋向于一种归一化的惩办决议。
在 SOA 建筑过程中,咱们面对着一系列挑战。中央架构中不仅包含 A 核,还会通了 M 核与 R 核等多种类型的处理器。SOA 软件的建筑需兼顾运行于 Posix 兼容系统内核的环境,以及运行于经典及时操作系统(RTOS)的 M 核(或 R 核)环境。
在 SOA 建筑过程中,咱们遇到了诸多挑战。在式样初期,一个显耀的问题就是 C++ 东说念主才的匮乏,因为刻下妥贴 AP 范例的建筑大宗采用 C++ 话语,而商场上此类专科东说念主才资源稀缺,招聘责任变得尤为繁难。即便能够招募到相关东说念主才,咱们也面对着怎样将汽车行业日常使用的 Simulink 建筑模式灵验挪动到 AP 平台的问题。Simulink 原有的模子如安在新平台下收尾复用,成为亟待惩办的要道议题。
此外,对于俗例于基于 Simulink 模子建筑的建筑者而言,转向手工代码编写后,代码的可视化着力显耀拖沓。相较于 MBD 建筑,后者在可视化方面存在不及,对于算法进行仿真考证的绵薄性亦有所裁减。
测试法子亦面对挑战。在模子建筑环境下,建筑者能够借助多种测试器具和仿真器具来提拔完成责任。可是,在手工代码编写的情境下,测试责任的便利性大打扣头,加多了建筑难度和复杂度。
MathWorks SOA 惩办决议
刻下,EE 架构正资格着从分散式架构向域放手器、区域放手器乃至中央集成架构的演变,软件也随之发生相应的变革。咱们面对的一大挑战在于怎样构建一个系统,该系统既能复古基于信号的面貌,又能兼容面向处事的架构,并最大程度地分享这两种面貌的进程。
MathWorks 在此限制提供了一套相对完备的惩办决议。架构方面,跟着软件复杂度的握住普及,行业大宗招供"架构先行"的理念。在架构缠绵阶段,需要全面讨论处事的界说、功能区别、端口创建以及处事接口和端口的分派等要道要素。
现在有两种实施旅途可供采用。第一种旅途是,采用其他架构器具完成缠绵责任后,通过导出 AI Excel 文献的神志与 Simulink 进行对接。另一种旅途是班师在 Simulink 环境中期骗架构缠绵器具进行缠绵,其显耀上风在于能够班师从架构组件中创建 Simulink 模子,从而幸免了中间文献信息可能丢失的问题。
对于 C++ 代码建筑而言,要撰写高质料代码颇具挑战性,很大程度上依赖于建筑东说念主员的教化水平,这种依赖性可能导致代码质料的不一致性。为了侧目这一问题,咱们不错利用自动代码生成时刻。该时刻能够减少东说念主为成分带来的不实,提高代码生成的准确性和着力。咱们不错从 Simulink 自动生成妥贴 AUTOSAR 范例的 C++ 代码。
代码生成完成后,咱们仍需面对一个要道问题,即怎样将这些代码编译并部署到中间件平台上。络续,与第三方中间件进行匹配时,都会资格一个适配过程。为了加快这一部署进程,咱们自行提供了一套中间件处事栈,该处事栈涵盖了通讯、存储、日记记载、推论等软件建筑中最常用的组件,旨在使用户无需依赖第三方处事栈,即可班师将生成的代码编译并部署到一个可运行环境中。此外,咱们还提供了一个上位机交互界面以及测试与标定界面,行为崇拜部署到量产中间件之前的准备阶段。
在此基础上,咱们推选采用增量式或渐进式的步调来部署 AUTOSAR 的 SOA 建筑。第一步是在硬件臆造环境中运行咱们的原型栈,包括应用层算法,主要主张是考证处事的功能和接口。随后,咱们不错将臆造环境替换为本体的主张硬件,举例基于 IMA 的芯片,络续运行 SOA 处事。在这一阶段,咱们不错进一步考证驱动层的性能。
在第三步中,咱们将原型栈替换为面向量产的中间件,这一过程允许咱们检查中间件与其他应用层软件之间的兼容性。增量式步调的一个显耀上风在于,它有助于软件解耦,从而在面对软件问题时,能够马上定位问题源泉。软件问题的排查往往复杂且耗时,而此步调能灵验简化这一过程。
此外,咱们还具备臆造仿真功能。昔时门预警系统为例,当咱们将算法部署到原型硬件上时,不错利用 UDP 合同、SUMIP 合同以及 consume LINK 进行原型逢迎仿真。在 Simulink 中运行的车辆模子能够模拟多样场景,从而收尾完好的闭环仿真。
福利姬 自慰除了 A 核能够收尾臆造化以外,M 核雷同具备臆造化的材干。咱们与协作伙伴在亚马逊云平台上共同实施的一个案例中,咱们分别臆造了 A 核与 M 核,其中 A 核上运行的是 VCU,M 核上运行 BMS。两者通过商用 IP 进行通讯。相较于 A 核,M 核的臆造化过程稍显复杂,因为它需要借助第三方软件进行硬件模拟。通过这一臆造化考证过程,咱们能够收尾悉数建筑进程的提前,即进程左移。
SOA 建筑实际
SOA 建筑层面,咱们总体上不错采用三种步调。第一种步调是手工编写,同期也可融入部分自动化技能,悉数 APP 的框架不错通过自动代码生成来完成,而算法部分则仍需手工编写。
第二种步调是纯 Simulink 建筑,即王人备在图形化环境中进行。此时,利用 Simulink 生成悉数框架和算法代码,并采用 AUTOSAR 的 TLC 模板,班师利用其主函数和特定函数等原生组件。
第三种步调是将手工与 Simulink 两种步调相结合,建筑者不错采用使用自动或手工面貌编写 APP 框架,随后利用 Simulink 生成算法代码。接着,通过 AUTOSAR 的 ERP 模板生成第三方代码,这些代码随后被手工代码或框架代码所调用。
针对采用 Simulink 进行隧说念的 AUTOSAR 建筑,咱们进行了一些实际探索。在 AUTOSAR 框架下,存在一个数据辞书,它复古 Events 和 Methods 的界说。对于 Events,不错通过老例的 input 与输出 output 以及添加一个 message box 来收尾;而对于 Methods,则可通过 Simulink Function 和 Function Caller 模块来收尾。Field 是 Event 和 Method 的组合体。
咱们利用了一款架构器具,来界说处事的接口和步调,从而生成了处事架构图。在 Simulink 环境中进行建模时,只需将架构器具生成的 ARXML 文献导入,并添加两行代码,即可日常构建处事端和客户端。
在处事端的模子中,需要更新一些相关建树,举例某些实体或 IDEA 在导入时可能因版块未更新而不被复古,因此需要进行相应的更新。雷同,客户端的相关参数也可能需要更新。
在 SOA 建筑过程中,咱们弗成幸免地会触及到 A 核与 R 核的建筑。A 核中运行着多样应用,而这些应用需要与 R 核进行信号交互。因此,处事与信号之间的缠绵成为了一个迫切法子。在该式样中,咱们采用将 S2S 功能放在 A 核中收尾信号与处事的退换,但雷同也不错在传统的 M 核中完成这一任务。
在使用 MBD 建筑过程中,咱们遇到了一些小问题。由于各家厂家对尺度的闪现存在各异,他们在生成代码以及应用层与底层结合时,可能会遇到一些兼容性问题,这需要工艺厂家握住优化和校正。
在 CP 环境下,咱们的责任进程相对闇练。率先进行收集拓扑缠绵,然后进行软硬架构缠绵。接下来,将缠绵文献导入到另一个架构器具中,进行里面行为的缠绵。最终,在 Simulink 中进行建模和算法建筑。
(以上内容来自长城汽车总工程师杜建福和迈斯沃克首席应用工程师 / 时刻客户司理龚小平于 2025 年 3 月 18 日 -19 日在第六届软件界说汽车论坛暨 AUTOSAR 中国日发表的《使用 MBD 进行 AUTOSAR 平台的 SOA 软件建筑》主题演讲勾引 twitter。)