2025 年 3 月 19 日草榴社区,在第六届软件界说汽车论坛暨 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 软件开垦》主题演讲草榴社区。)