0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

开发支持符合AUTOSAR标准的软件组件的建模特定领域的语言

工程师邓生 来源:智能汽车开发者平台 作者:Saša 2022-10-08 11:19 次阅读

开发支持符合AUTOSAR标准的软件组件的建模特定领域的语言。支持建模软件组件的应用是基于TextX python模块和内部开发的建模框架。通过应用程序建模带来了更安全和更快的方式来应对各种模型的变化。在这篇论文中,我们展示了应用程序工作的基本算法、应用程序的部分功能和使用特定领域语言的例子,其结果显示了模型的一些变化。

I.简介

在现代汽车行业中,软件和电子控制单元正变得越来越多。如果我们观察一下现代新车,我们会注意到大量的电子控制单元(ECUs),它们基本上是车辆的思想,完成所有的逻辑和驱动工作。汽车行业的目标是提高司机、乘客和其他交通参与者的整体安全,这正是软件进入汽车行业的原因和方式。由于车辆中有大量的ECU,有非常复杂的系统,随着新的安全功能和技术的实施,这些系统变得更加复杂。

现代汽车甚至可以包含超过100个ECU,其中每个ECU都负责和执行特定的任务。每项任务都必须在准确规定的时间内执行。也就是说,任何应用于硬件层面的变化都会影响到软件,需要对软件进行额外的修改和校准,以使其按预期工作。面对这个问题,行业内领先的汽车公司已经建立了合作关系,他们将使硬件开发和软件开发相互独立。

II.AUTOSAR标准

AUTOSAR(汽车开放系统架构)是一个由汽车制造商、供应商、服务提供商和来自汽车E/E、软件行业的公司组成的全球开发合作伙伴关系。它成立于2003年。一个目标是使硬件开发独立于软件。 AUTOSAR架构由4层组成,如图1所示。这4个层是:应用层、运行时间环境(RTE)层、基本软件层(BSW),最下面是硬件(微控制器)层。

0ef664c6-414a-11ed-96c9-dac502259ad0.png

图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显示了应用程序的工作情况。有三个输入文件,语法定义变化应该如何写才能成功应用,文件包含对模型的实际需要的变化和模型本身。 作为应用程序的输出,对已经修改过的模型,只有在符合标准和规则的情况下,才会对其进行需要的修改。


0f0d02bc-414a-11ed-96c9-dac502259ad0.png

图2 应用程序的工作原理 在图片3中,显示了应用程序的工作原理(核心算法)。


0f190fa8-414a-11ed-96c9-dac502259ad0.png


图3 执行建模应用程序的工作流程

在建模应用程序的开始阶段,所有的输入都被加载(语法、包含变化和模型的文件)。 在语法检查中,它被分析为书面变化是否符合定义的语法。如果在这里出现一些错误,这意味着该变化不被支持或书写错误,在这种情况下,不应采取进一步行动。

语法检查成功后,在建模框架的协助下,模型被加载为输入。模型的所有属性和配置都被作为对象加载到应用程序中,一旦完成,加载的模型就可以用输入文件中描述的变化进行修改。 如果改变需要修改模型中已经存在的部分(例如,想改变现有端口的名称),首先将在建模框架的帮助下找到代表该确切部分的对象。之后,当它被找到时,基本上变化将作为修改对象的一个属性来执行。

在其他情况下,如果需要创建新的东西,将有必要定义创建这种对象所需的强制性信息(例如,如果创建新的组件,需要的信息是名称,它应该有哪些端口和可运行性)。在提供这些信息后,建模框架将创建对象并将其添加到模型中。 完成对象操作(创建新对象或修改现有对象)后,有必要根据AUTOSAR标准和约束条件进行检查。

这样做的目的是为了消除人为错误因素,并保证应用于模型的变化是有效的。如果有任何形式的违反,更改将不会被应用到模型上。

在应用结束时,只有当所有条件都得到满足时,模型才会完成修改。

V.建模应用实例

出于测试目的,一些AUTOSAR模型被作为输入,并将对其进行某些修改。我们将定义如下变化,在现有的两个组件(CtApTest1_SH00和CtCdMiddlewareQM_SH00)上,将增加两个新的端口,由两个数据元素组成。创建端口后,它们将被连接起来,以便在新创建的端口之间实现通信。 图4它展示了如何编写更改以完成上面描述的所需更改。 0f39f01a-414a-11ed-96c9-dac502259ad0.png

图4 按照定义的语法,将在模型中应用的变化实例

根据写入修改的输入文件,可以看到名称为PpTestInterface的端口被添加到两个不同的组件CtApTest1_SH00和CtCdMiddlewareQM_SH00。端口内的数据元素数量或将添加的端口数量没有严格规定,只要符合AUTOSAR标准,由用户决定。

在执行建模应用程序后,将看到书面修改应用在输入模型上。

在图片5和图片6中,显示了建模应用的结果。正如在图片5中所看到的,在arxml文件中,想要添加的端口很容易被添加到组件CtApTest1_SH00中,使用建模应用程序,它包含为该端口定义的所有数据元素。

在CtApTest1_SH00组件上,我们定义了端口为生产者(图像中的P-端口),意味着数据将从这里被进一步发送,而在另一个组件CtCdMiddleware_SH00上,我们创建了相反的接收器(R-端口),它将接收从生产者发送的任何数据,使这些端口兼容连接。

0fa65e08-414a-11ed-96c9-dac502259ad0.png

图5 组件上创建的端口

图片6显示了新创建的端口之间的连接器。基本上这种连接为它们提供了通信和交换数据的能力。

0fb59332-414a-11ed-96c9-dac502259ad0.png

图6 新建端口之间的连接

VI.总结

建模本身越来越复杂,越来越耗时。此外,为了对模型进行任何改变,必须要有使用软件的许可证和知识。这个建模应用程序的主要目标是完成简单和快速的建模,在对模型进行修改时犯错误的风险很低。 建模应用的主要优势体现在简单、快速和可靠的模型更改上。在一个文件中编写简单的、人类可读的变化,应足以执行一些复杂的模型更新。

进一步改进建模应用程序的下一步可能是可视化地展示书面更改。一旦编写了更改,终端用户将更容易直观地看到和理解将要进行的更改。这可以通过使用对象图或组件图来实现。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    7352

    浏览量

    150393
  • AUTOSAR
    +关注

    关注

    10

    文章

    341

    浏览量

    21383
  • ecu
    ecu
    +关注

    关注

    14

    文章

    865

    浏览量

    54267
  • python
    +关注

    关注

    53

    文章

    4754

    浏览量

    84164

原文标题:根据AUTOSAR标准开发用于建模软件组件的特定领域语言

文章出处:【微信号:阿宝1990,微信公众号:阿宝1990】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ECU电控软件开发及测试介绍

    本文重点介绍符合AutoSar架构的应用软件开发、MBD开发模式下的软件质量评估与优化方案、复杂场景下的ECU性能压力测试方案。
    的头像 发表于 09-26 14:25 2328次阅读
    ECU电控<b class='flag-5'>软件开发</b>及测试介绍

    首款支持AUTOSAR车规MCU亮相AUTOSAR中国日

    热门话题进行了多方研讨。此外针对AUTOSAR中国区生态发展,与会嘉宾围绕基于AUTOSAR构建面向智能网联汽车的基础软件系统、组织与标准发展、汽车网络安全解决方案、芯片层
    的头像 发表于 07-02 15:56 338次阅读
    首款<b class='flag-5'>支持</b><b class='flag-5'>AUTOSAR</b>车规MCU亮相<b class='flag-5'>AUTOSAR</b>中国日

    上位机软件开发用什么语言

    上位机软件开发是指开发用于与下位机(如PLC、单片机等)进行通信、控制和数据处理的计算机软件。上位机软件在工业自动化、物联网、智能家居等领域
    的头像 发表于 06-06 10:44 1024次阅读

    SR5E1 AUTOSAR MCAL技术解决方案分享

    AUTOSAR(AUTomotive Open System Architecture)是一种开放和标准化的汽车软件架构,支持汽车电控单元(ECU)
    的头像 发表于 02-21 18:26 895次阅读
    SR5E1 <b class='flag-5'>AUTOSAR</b> MCAL技术解决方案分享

    Shield Buddy TC375开发板是否支持将经典AUTOSAR堆栈(COMM,DIAG)移植到该开发板上?

    Shield Buddy TC375开发板是否支持将经典 AUTOSAR 堆栈(COMM,DIAG)移植到该开发板上? 它适用于 MCAL 驱动程序吗? 另外,请建议使用
    发表于 01-30 08:30

    AUTOSAR Builder—符合AUTOSAR(CPAP)的嵌入式系统设计工具

    的工具并与其他工具供应商进行集成。AUTOSAR Builder在此基础上新增了多个工具套件,更加能够贴合不同用户角色(OEM、Tier1)的使用场景和研发流程,覆盖基于AUTOSAR软件研发的各个环节。
    的头像 发表于 01-08 18:06 430次阅读
    <b class='flag-5'>AUTOSAR</b> Builder—<b class='flag-5'>符合</b><b class='flag-5'>AUTOSAR</b>(CPAP)的嵌入式系统设计工具

    AUTOSAR架构中复杂驱动设计

    复杂驱动(Complex Driver,CDD)是一种不受 AUTOSAR 标准化约束的软件实体,它可以通过 AUTOSAR 接口和/或基础软件
    的头像 发表于 12-21 10:13 3496次阅读
    <b class='flag-5'>AUTOSAR</b>架构中复杂驱动设计

    复杂驱动如何将现有的或新的概念引入AUTOSAR软件架构中的?

    复杂驱动(Complex Driver,CDD)是一种不受 AUTOSAR 标准化约束的软件实体,它可以通过 AUTOSAR 接口和/或基础软件
    的头像 发表于 11-22 10:57 1283次阅读
    复杂驱动如何将现有的或新的概念引入<b class='flag-5'>AUTOSAR</b><b class='flag-5'>软件</b>架构中的?

    ESL事务级建模语言简介

    任何系统级建模语言,都需要具备在较高层次的抽象能力和对不同来源的IP的集成能力。建模方法的选择通常基于语言熟悉程度、建模
    的头像 发表于 11-02 15:10 598次阅读

    AUTOSAR OS操作系统功能特性

    AUTOSAR OS AUTOSAR OS(AUTomotive Open System ARchitecture Operating System)是AUTOSAR架构中的一个组件
    的头像 发表于 10-27 16:55 1897次阅读

    车规MCU的软件开发套件

    Non-AUTOSAR软件 虽然AUTOSAR是一个开发软件架构,在代码重用性、可维护性、开发效率和代码质量方面有诸多优势,但是使用
    的头像 发表于 10-27 16:05 1498次阅读
    车规MCU的<b class='flag-5'>软件开发</b>套件

    AUTOSAR软件开发流程简介

    软件功能和性能要求。这包括确定软件组件、接口和模块的功能和规格要求。 架构设计:在这个阶段,根据需求分析的结果,设计AUTOSAR软件的整体
    的头像 发表于 10-27 15:55 2828次阅读
    <b class='flag-5'>AUTOSAR</b><b class='flag-5'>软件开发</b>流程简介

    AUTOSAR CP运行时环境与应用软件

    运行时环境(RTE) AUTOSAR CP运行时环境(RTE)是AUTOSAR架构中的核心组件,它实现了AUTOSAR虚拟功能总线(VFB)的接口,并提供了通信基础设施和访问基础
    的头像 发表于 10-27 15:44 1198次阅读
    <b class='flag-5'>AUTOSAR</b> CP运行时环境与应用<b class='flag-5'>软件</b>

    AUTOSAR经典平台介绍

    汽车电子系统的软件组件、运行时环境和通信机制,以实现模块化、可重用和可扩展的系统开发。 在AUTOSAR CP中,软件
    的头像 发表于 10-27 15:30 1253次阅读
    <b class='flag-5'>AUTOSAR</b>经典平台介绍

    AUTOSAR架构自适应平台

    AUTOSAR架构 AUTOSAR(AUTomotive Open System ARchitecture)是一种开放的汽车电子系统架构,旨在提供一种标准化的方法来开发和管理汽车电子系
    的头像 发表于 10-27 15:23 1137次阅读
    <b class='flag-5'>AUTOSAR</b>架构自适应平台