择要
开拓支持符合AUTOSAR标准的软件组件的建模特定领域的措辞。支持建模软件组件的运用是基于TextX python模块和内部开拓的建模框架。通过运用程序建模带来了更安全和更快的办法来应对各种模型的变革。在这篇论文中,我们展示了运用程序事情的基本算法、运用程序的部分功能和利用特定领域措辞的例子,其结果显示了模型的一些变革。
I.简介

在当代汽车行业中,软件和电子掌握单元正变得越来越多。如果我们不雅观察一下当代新车,我们会把稳到大量的电子掌握单元(ECUs),它们基本上是车辆的思想,完成所有的逻辑和驱动事情。汽车行业的目标是提高司机、搭客和其他交通参与者的整体安全,这正是软件进入汽车行业的缘故原由和办法。由于车辆中有大量的ECU,有非常繁芜的系统,随着新的安全功能和技能的履行,这些系统变得更加繁芜。
当代汽车乃至可以包含超过100个ECU,个中每个ECU都卖力和实行特定的任务。每项任务都必须在准确规定的韶光内实行。也便是说,任何运用于硬件层面的变革都会影响到软件,须要对软件进行额外的修正和校准,以使其按预期事情。面对这个问题,行业内领先的汽车公司已经建立了互助关系,他们将使硬件开拓和软件开拓相互独立。
II.AUTOSAR标准
AUTOSAR(汽车开放系统架构)是一个由汽车制造商、供应商、做事供应商和来自汽车E/E、软件行业的公司组成的环球开拓互助伙伴关系。它成立于2003年。一个目标是使硬件开拓独立于软件。
AUTOSAR架构由4层组成,如图1所示。这4个层是:运用层、运行韶光环境(RTE)层、基本软件层(BSW),最下面是硬件(微掌握器)层。
图1 AUTOSAR分层构造
A.运用层
运用层是架构中最顶真个部分,由特天命量的软件组件组成,每个组件实行规定的任务。
1) 软件组件
软件组件代表了有明确任务的运用程序。组件的类型可以根据其目的而变革,例如,它可以是运用程序、传感器、实行器、输入/输出组件和更多。两个或多个组件之间可以通过连接的端口进行通信(只有连接的端口可以交流数据)。
有两种类型的端口可用,发送者/吸收者(S/R)通信或客户端/做事器(C/S)通信。S/R通信紧张用于定期传输数据,C/S通信仅用于按哀求供应数据或操作。软件组件可以有1个或多个S/R或C/S类型的端口,这便是组件之间相互通信的办法。
除了端口,每个软件组件还有一个紧张部分,那便是它的可运行性。Runnable代表软件组件的实现,它们可以被多种类型的触发器所触发。触发器可以是初始化触发器(启动时实行)、周期性触发器(在定义的韶光段内实行)、客户端要求(要求操作)等等。
B.运行韶光环境 (RTE)
RTE实现了虚拟功能总线,有助于ECU内的SWC和ECU外的SWC的连接。它利用端口和接口实现通信路径,用于连接软件组件和下层的基本软件(BSW)模块。
C.根本软件 (BSW)
根本软件(BSW)是标准化的软件模块,供应运行上层软件的功能部分所需的各种做事。
III.建模中的运用
AUTOSAR模型描述的是将被集成到汽车ECU中的软件。有了模型,软件的配置就有了很多可能性,也便是说,通过模型我们可以定义将被利用和传输的数据类型、组件的端口数量、组件的实行韶光等。为了改变模型(改变一些配置),必须要有专门的软件和利用容许才能做到这一点。利用特定领域措辞(DSL)进行建模的运用程序可以大大简化和加快建模阶段。利用运用程序进行建模,归根结底便是把模型中须要的变革写到一个文件中,然后实行该运用程序。
利用这种运用程序进行建模的上风很多。最主要的上风之一是,如果存在人为缺点,运用程序将不许可对模型进行修正。除此以外,运用变革所需的韶光应更短,所利用的措辞应简化并对用户友好(易于阅读和理解),等等。为了开拓这种建模运用程序,利用了名为TextX的python模块来创建特定领域的措辞,并在模型中利用内部开拓的建模框架来操作AUTOSAR工具。
A.TextX 模块
TextX 模块是一个用于创建domaing specific措辞(DSL)的工具。创建的DSL将被用于编写模型中想要的变革。在这个模块的帮助下,我们定义了DSL的语法,这意味着每一个动作(模型中的变革)都必须以特定的办法编写,以使变革成功运用于模型。
B.建模框架
建模框架是开拓的工具,能够更随意马虎地操纵模型内的工具。该工具遵照AUTOSAR标准,模型中的每个字段/属性都被视为运用程序中的一个工具。
IV.利用建模运用程序
上述TextX模块与建模框架相结合,供应了对各种模型进行修正的可能性。图片2显示了运用程序的事情情形。有三个输入文件,语法定义变革该当如何写才能成功运用,文件包含对模型的实际须要的变革和模型本身。
作为运用程序的输出,对已经修正过的模型,只有在符合标准和规则的情形下,才会对其进行须要的修正。
图2 运用程序的事情事理
在图片3中,显示了运用程序的事情事理(核心算法)。
图3 实行建模运用程序的事情流程
在建模运用程序的开始阶段,所有的输入都被加载(语法、包含变革和模型的文件)。
在语法检讨中,它被剖析为书面变革是否符合定义的语法。如果在这里涌现一些缺点,这意味着该变革不被支持或书写缺点,在这种情形下,不应采纳进一步辇儿为。
语法检讨成功后,在建模框架的帮忙下,模型被加载为输入。模型的所有属性和配置都被作为工具加载到运用程序中,一旦完成,加载的模型就可以用输入文件中描述的变革进行修正。
如果改变须要修正模型中已经存在的部分(例如,想改变现有端口的名称),首先将在建模框架的帮助下找到代表该确切部分的工具。之后,当它被找到时,基本上变革将作为修正工具的一个属性来实行。在其他情形下,如果须要创建新的东西,将有必要定义创建这种工具所需的逼迫性信息(例如,如果创建新的组件,须要的信息是名称,它该当有哪些端口和可运行性)。在供应这些信息后,建模框架将创建工具并将其添加到模型中。
完成工具操作(创建新工具或修正现有工具)后,有必要根据AUTOSAR标准和约束条件进行检讨。这样做的目的是为了肃清人为缺点成分,并担保运用于模型的变革是有效的。如果有任何形式的违反,变动将不会被运用到模型上。
在运用结束时,只有当所有条件都得到知足时,模型才会完成修正。
V.建模运用实例
出于测试目的,一些AUTOSAR模型被作为输入,并将对其进行某些修正。我们将定义如下变革,在现有的两个组件(CtApTest1_SH00和CtCdMiddlewareQM_SH00)上,将增加两个新的端口,由两个数据元素组成。创建端口后,它们将被连接起来,以便在新创建的端口之间实现通信。
图4它展示了如何编写变动以完成上面描述的所需变动。
图4 按照定义的语法,将在模型中运用的变革实例
根据写入修正的输入文件,可以看到名称为PpTestInterface的端口被添加到两个不同的组件CtApTest1_SH00和CtCdMiddlewareQM_SH00。端口内的数据元素数量或将添加的端口数量没有严格规定,只要符合AUTOSAR标准,由用户决定。
在实行建模运用程序后,将看到书面修正运用在输入模型上。
在图片5和图片6中,显示了建模运用的结果。正如在图片5中所看到的,在arxml文件中,想要添加的端口很随意马虎被添加到组件CtApTest1_SH00中,利用建模运用程序,它包含为该端口定义的所有数据元素。
在CtApTest1_SH00组件上,我们定义了端口为生产者(图像中的P-端口),意味着数据将从这里被进一步发送,而在另一个组件CtCdMiddleware_SH00上,我们创建了相反的吸收器(R-端口),它将吸收从生产者发送的任何数据,使这些端口兼容连接。
图5 组件上创建的端口
图片6显示了新创建的端口之间的连接器。基本上这种连接为它们供应了通信和交流数据的能力。
图6 新建端口之间的连接
VI.总结
建模本身越来越繁芜,越来越耗时。此外,为了对模型进行任何改变,必须要有利用软件的容许证和知识。这个建模运用程序的紧张目标是完成大略和快速的建模,在对模型进行修正时犯缺点的风险很低。
建模运用的紧张上风表示在大略、快速和可靠的模型变动上。在一个文件中编写大略的、人类可读的变革,应足以实行一些繁芜的模型更新。
进一步改进建模运用程序的下一步可能是可视化地展示书面变动。一旦编写了变动,终端用户将更随意马虎直不雅观地看到和理解将要进行的变动。这可以通过利用工具图或组件图来实现。
参考文献:
[1]M. Staron, “Automotive Software Architecture. An introduction”,Chapter, pp 1-19
[2]Vector Academy: AUTOSAR fundamentals
[3]Robert Warschofsky, AUTOSAR Software Architecture, Hasso- Plattner-Institute for Softwaresystemtechnik, https://hpi.de/fileadmin/user_upload/fachgebiete/giese/Ausarbeitungen_ AUTOSAR0809/Software_Architecture_Warschofsky.pdf
[4]BSW modul, https://automotive.wiki/index.php/Basic_Software_Module