基于模型的设计通过提供高级设计抽象和产品代码的自动生成,比传统开发具有许多优势。AUTOSAR软件组件的建模和代码生成允许您自动化指定和同步设计、代码和描述文件中的冗长标识符的过程。
加入我们,学习Simulink对AUTOSAR金宝app特性建模AUTOSAR经金宝app典和自适应软件应用程序的高级支持,编写AUTOSAR软件架构,模拟AUTOSAR成分和ecu,以及C/ c++产品代码生成。
MathWorks工程师将简要介绍最新的AUTOSAR标准,包括经典和自适应平台,并提供产品演示,展示如何使用Simulink、AUTOSAR Blockset和Embedded Coder来设计、模拟、验证和生成AUTOSAR应用软件组件的代码。金宝app
Shwetha Bhadravathi Patil是MathWorks的产品经理,用于验证AutoSAR和Code Inginiame产品。下载188bet金宝搏在MathWorks之前,Shwetha担任AutoSAR基于AutoSAR的Delphi汽车的嵌入式软件工程师,并担任ADIM DEVENTION Inc.的技术营销工程师。
记录:11月17日2020年
大家好。欢迎来到Autosar Classic和Adaptive的网络研讨会,使用基于模型的设计简单。所以我是Shwetha Bhadravathi Patil,Mathworks的Autosar Slockset产品经理。这是我们今天的议程。首先,我将为您提供AutoSAR的概述,然后谈谈Simulink for AutoSAR Classic以及我们提供的最新金宝app支持我们从AutoSAR SlockSet提供,然后我会讨论Simulink 金宝appfor AutoSAR自适应。
让我开始为您提供AutoSAR的概述。在这里,您可以看到非AutoSAR和Classic AutoAR。正如您在非自动启动架构中看到的那样,应用软件和基本软件密切集成。这一层看起来很僵硬。应用软件依赖于硬件,而在AutoSAR Classic中,它具有分层体系结构。这将提供清晰的硬件依赖和标准软件与较高级别的应用程序功能。有效地,硬件和软件将彼此广泛独立,并且该软件将增加模块化和特征的可转换性。
因此,可以通过水平层解耦。这降低了开发时间和成本。软件的重用也在OEM以及供应商处增加。这通过减少市场时间来提高质量和效率。
经典软件架构遵循基于信号的通信和静态分配的软件组件,并支持对ecu的单片更新。金宝app这对于传统的汽车应用来说非常棒,包括车身控制模块、动力系统等等。为了满足高度自动驾驶应用的需求,AUTOSAR组织引入了自适应AUTOSAR。它利用了更多的计算能力,满足了可伸缩性和易于更新的需求。自适应AUTOSAR是基于一种面向服务的体系结构的新范式创建的,在这种范式下,应用程序将系统中可用的服务组合起来实现。
因此,通过这种概念,应用程序可以根据新的和更新的服务动态重新配置,以满足可扩展性和简单更新。好消息是使用Simulink,您可以设计软件金宝app,然后在多个体系结构之后配置和部署到许多目标。关于此的重要点是开发人员可以从遗留模型开始,为经典或自适应架构配置它,而不是每次从头开始。
您还可以通过使用现有的工作流将现有的组件迁移到新的体系结构。因此,有了Sim金宝appulink,您可以设计、部署和模拟您的模型到遗留ecu到AUTOSAR Classic或Adaptive应用程序,或到fpga和gpu,以满足电机控制和自动驾驶应用程序的要求。AUTOSAR Classic非常受欢迎,它已经上路了。我们为生产目的提供过去10年的经典AUTOSAR支持。金宝app
因此,在此幻灯片中,我已编制了来自AutoSAR客户的用户文章和演示文稿。FCA描述了从Simulink中的建模和代码生成的需求的完整开发过程,到汽车软件的车载测试。金宝app因此,BMW是AutoSAR联盟的创始成员之一,谈到使用基于模型的开发和AutoSAR在敏捷工作流中,具有持续集成。
John Deere提供了一个有趣的讨论,关于他们如何使用AUTOSAR和基于模型的设计来应对复杂农业机械的挑战。LG Chem和Magneti Marelli讨论在符合ISO 26262和A-SPICE标准的背景下开发AUTOSAR软件。最后,IDNEO提供了使用AUTOSAR工具链开发复杂设备驱动程序的不同视角。他们报告说开发时间快了70%,并且在设计阶段发现了80%的错误,而不是在硬件测试阶段。
好的,现在让我谈谈Simulink AUTOSAR 金宝appClassic。在这里,我们看到一个放大的AUTOSAR经典建筑的代表。应用层包含软件的算法部分,算法部分又分为软件组件。软件组件和基本软件之间的所有通信都通过标准化接口的RTE路由。这样,RTE就像一个虚拟功能总线。
金宝app我们的客户使用Simulink对应用软件进行建模和代码生成。如果您使用AUTOSAR创作工具进行架构定义,您可以在Simulink中导入或导出软件描述文件或ARXML文件。金宝app从2019b版开始,您可以使用System Composer在Simulink环境中直接创建组合模型,并拥有一个与Simulink实现紧密集成的体系结构模型版本。金宝app我们稍后会更详细地讨论。最后,使用AUTOSAR Blockset,您可以模拟基本的软件服务。因此,通过这种方式,可以在Simulink中直接模拟应用软件调用基本软件服务的函数行为。金宝app
好的,现在我将向您展示如何将非AutoSar模型转换为AutoSAR模型。所以在这里,我有一个简单的Simulink模型,我金宝app想直接转换为AutoSAR。为此,我将推出AutoSar组件应用程序。它将开始启动快速入门。在这里,您可以选择组件类型。创建模型引用,以便将模型映射到软件组件。
在这里,您可以创建基于Simulink模型或从ARXML导入的默认值。金宝app
好的,快速入门工具已经完成了映射。现在让我启动代码映射,您可以看到这些函数是如何在AUTOSAR中映射到可运行程序的。在右侧,您可以选择更改代码属性。在这里,您可以看到Simulink端口是如何映射到A金宝appUTOSAR元素的。在这里,你可以改变Communication属性等等。
在AUTOSAR字典中,您可以看到如何配置这些接收器端口和可运行程序。你可以点击一个可运行的,然后改变[听不清]事件。所以默认情况下,它被设置为TimingEvent。有一个可循环的变量。这就是数据元素如何与发送接收器接口相关联。
此外,您可以根据需要更改XML选项。一旦您对此感到满意,您现在可以转到Config参数设置。你可以转到AutoSar Code Gen Pane。在这里,您可以选择要在ARXML 4中生成代码的架构。
现在我们已经准备好进行代码生成了。我们继续,生成代码。好的,这里您可以看到代码生成报告已经创建。在[听不清]视图中,你可以点击生成的代码函数。它将显示在相应的块。或者,如果您单击Simulink块,它也将金宝app显示相应的代码。您还可以查看生成的ARXML文件。
通过这种方式,您可以将非AUTOSAR模型转换为AUTOSAR模型。现在我要谈谈AUTOSAR的工作流程。如果您已经有一个现有的Simulink模型,您可以直接在Simu金宝applink中为AUTOSAR配置它。或者您也可以从在System Composer中编写架构开始。然后将AUTOSAR配置的Simulink模型链接到System Com金宝appposer中的体系结构模型。一旦您对自己的开发感到满意,您就可以使用嵌入式编码器生成代码和ARXML。这被称为自底向上的工作流。
另一方面,如果您在第三方创作工具中启动,则可以导出ARXML,可以将其导入Simulink或系统Composer。金宝app因此,这在Simulink中创建了一个预先配置的骨架模型和系统编写器中的架构模型,您只需添加实现。金宝app这称为自上而下的工作流程。
最后一个工作流是前两个的组合。如果您使用的是创作工具,您仍然可以使用系统编写器或Simulink进行架构更改。金宝app在这种情况下,必须将生成的ARXML文件导入到第三方创作工具以维持一致性。这称为圆形跳闸。
在这里,我将通过在Simulink中创建AutoSar架构来显示自下而上工作流程的演示。金宝app我将通过构建AutoSAR兼容节气门位置控制系统来展示创作到ARXML代码生成。所以这里是组件模型实现。例如,控制器模型和节气门传感器模型。接下来,我们可以通过启动Simulink Start页面创建架构。金宝app
让我打开软件架构模板。一个新的AUTOSAR体系结构模型打开了。在这个新的Simulin金宝appk工具栏中,Modeling选项卡支持用于架构建模的常见任务。金宝app在这里,选项板包括软件组件、软件组合和基本软件建模的图标,包括与模型一起操作的诊断和NvM服务组件。
这种目的构建的编辑器称为合成编辑器。给出了基于AUTOSAR虚拟功能总线的AUTOSAR软件体系结构。现在让我清除窗口中的默认内容,这样我就可以构建一个新的合成。因为我们有一堆传感器组件,让我为传感器创建一个子组合架构。在传感器内部,我们可以添加一个组件,并可能将其命名为TPS_Primary。
注意,有一些选项可以为这个组件创建新的Simulink模型。金宝app您可以链接到现有的Simulink模型,并从ARXML创金宝app建组件。在这里,我们将链接到AUTOSAR_Throttle_sensor1模型。注意,组件上的标记变化反映了由Simulink模型指定的组件类型。金宝app同样,我们将添加其余的传感器组件并将它们连接起来。
合成编辑器重用了所有你喜欢的关于Simulink的直观的东西金宝app编辑功能。当你连接时,它会自动减少线路混乱。
好了,现在我们已经组装了合成层次结构,我们可以更新模型来解决任何集成问题。都准备好了。我们现在将保存我们的模型,并将其命名为myTPC。您可以使用与任何常规Simulink模型相同的扩展。金宝app
现在我们已经创建了我们的组合,我将向您展示与Simulink需求的集成。金宝app让我打开需求管理器应用程序。它会打开需求选项卡,这样我们就可以打开需求集。注意,它包含四个节气门位置控制应用程序组件。要在AUTOSAR组件中链接到需求,我们可以将需求从浏览器拖到组件块。
现在,在工作流中自然的下一步是通过模拟合成来应用V和V。为此,我们将打开Function Connectors来可视化组件模型可能正在调用的函数调用。节气门传感器模型调用排雷NvM服务功能和诊断功能。为了进行模拟,让我为诊断和NvM服务组件块添加参考实现。
让我们再次更新模型。好的,现在我们可以为客户机端口配置id了。接下来,我想把成分输入和输出与真实刺激数据联系起来。我有我们对这个模型的测试与油门身体植物和踏板输入。我们将添加一个模型块和引用TPC组合,然后连接输入和输出。
现在,我将使用schedule Editor来调度我的组合组件的所有入口点可运行性。我可以可视化和控制可运行程序的执行顺序。看起来很好。现在让我点击播放来确保算法符合你的要求。它看起来很酷。
现在让我为组件生成AUTOSAR代码,并导出整个合成ARXML。现在,对于组合,一个通常是处理组件的数量,因此,生成的工件的数量。因此,在这里,我们使您可以很容易地收集所有这些工件,以便您准备好工作流中的下一步,这很可能在没有外部环境的情况下进行集成。
因此,这已开始逐个构建组件模型并在此查看器上显示进度。请注意,有六个组件由组件构建组件。现在它也在创建构图ARXML。好的,有两个称为ARXML和源的子文件夹。因此,在ARXML文件夹中,每个AutoSAR组件都具有组件和实现描述文件,而架构模型具有组成,数据类型和接口描述文件。
在源文件夹中,您将看到每个组件的代码。通过这种方式,您可以为组合创建体系结构模型,然后生成代码。因此,您可以使用文档中提供的这个活动脚本来尝试这个示例。
现在让我向您展示一个自顶向下工作流的演示。我将从导入合成描述开始。将组合导入到体系结构的过程应该是熟悉组件导入器的那些人所熟悉的。但是这里是我们在前面的演示中创建架构模型的重要组成描述和System Composer。
这是一个在第三方工具中创建的ARXML。注意,它是为4.2.2创建的。我可以使用这个API创建一个新的架构模型和对象。我打开的那个API也是一个架构模板。这里,我选择建模选项卡。然后使用这个从ARXML导入选项。
这个导入的应用会让你选择要导入的ARXML。如果你愿意,你可以配置建模选项。这个导入的应用程序正在创建一个骨架架构模型。注意,它正在为所有五个组件创建体系结构模型。
这是一个架构模型。让我来看看建模设置。到代码生成面板。是的,它已经在模式4.2中导入了。在这个组合模型中,在这个组件中,你可以缩小它来添加一个Simulink模型。金宝app你还可以看到一个标志代表组件类型。现在,在添加逻辑之后,就可以在ARXML中导出代码了。
总结一下,在演示中,我们使用这个选项导入了一个ARXML。此外,您还可以使用这个importFromARXML API将这个组合描述导入到我们的体系结构模型中。同样,这个示例也可以作为实时脚本演示。您可以尝试此操作以了解更多关于此特性的信息。
现在让我谈谈AUTOSAR定时扩展规范。如您所知,汽车问题的复杂性正在增长,因为它包括2到3个核心,可能15到20个任务,数百个RTE事件到任务关系。有些任务可能映射到50到60个可运行事件。因此,集成成为一项必不可少的关键任务,将任务分配到核心。
因此,AUTOSAR引入了一个称为时间扩展的概念,以提供时间需求,指导系统的构建,并分析和验证系统的时间行为。在这里,您可以看到许多可运行程序映射到任务,然后映射到代码。同时,保持功能行为和及时执行也很重要。
这里的问题是可运行程序的执行顺序是什么?那么你怎么知道你评估或模拟了这个模型的顺序呢?数据依赖关系很难判断。让我来看看执行顺序是如何影响最终结果的。在这里,我们的端口连接到一个作用域以检查最终结果。如果可运行R1在可运行R2之前执行,你会得到这样一个图。但如果我改变执行顺序,结果就会改变。不同的延迟值是完全不同的。
我们的客户提到了这些信息非常重要。因此,我们导出了执行顺序以进行进一步使用。所以在这里,我有一个例子来展示我们如何支持Simulink中的执行顺序约束。金宝app金宝app所以这里,存在一个类似的Simulink金宝app模型,其具有多个可运行的模型。您可以在计划编辑器中查看其执行顺序。而且我只是通过拖放来更改执行顺序。现在我继续验证,然后生成代码。您可以在此ARXML中看到执行顺序约束。
为了总结,在版本20B中,我们支持导入和导出执行顺序约束,包括将Runna金宝appble和执行顺序的调度编辑器修改以及ARXML文件更新,以及使用ARXML更改为执行订单约束的Autosar组件模型。为了总结,通过AutoSAR SlockSet,您可以模拟和模拟AutoSAR Classic软件,您可以采用多个设计工作流以导入,更新和导出软件描述文件,包括其时序扩展。然后,您可以在系统编写器中创建AutoSAR组合,导入和导出组合ARXML文件,并为生产目的生成优化的C代码。
所以我想提一下,AUTOSAR Blockset可以用于开发周期的每个阶段。您可以将模型与需求链接起来,并在组合、组件和子组件级别上对软件进行建模。此外,您还可以通过仿真验证您的设计并调整您的软件。这包括模拟AUTOSAR的基本软件服务。
从组件生成C代码。使用SIL和PIL的验证工作流是Simulink测试,以确保充分覆盖您的算法。金宝app我们还生成ARXML,包括组合ARXML,并将其打包,以进入工具链中的下一个元素。例如,RTE生成器。
然后使用嵌入式代码和AUTOSAR块集,您可以为ASIL d的应用程序生成AUTOSAR代码。IEC认证套件帮助您简化ISO 26262开发过程。它包含ISO 26262中的表与相应的基于模型的设计工具(如可执行的背靠背测试)之间的映射,也包括设计符合AUTOSAR的代码。
好,现在让我来谈谈AUTOSAR自适应的Simuli金宝appnk。Adaptive的层与Classic相似,有组件、运行时、基本服务和硬件。也许Adaptive和Classic之间最大的区别在于,称为基金会公共接口的应用程序直接是服务,因此API服务领域要大得多。
也许有助于注意,自适应不一定在裸机上运行,但可以在虚拟机上运行。这里,MathWorks工具用于建模代码生成自适应应用程序。我将经过一些适应性的关键概念。
现在,对于关键概念,OS提供多处理POSIX OS功能。然后每个Adaptive应用程序都是自己的操作系统进程,具有自己的主要功能,逻辑存储空间和名称空间。现在,如果您查看过程管理,OS也提供了流程调度。执行管理器提供流程生命周期管理,启动,运行,终止进程。通信经理提供进程间通信。
现在介绍关键概念二,面向服务的进程间通信的使用。如果您查看进程间的IPC, IPC可以通过通信管理器或网络在本地进行,也可以通过通信管理器进行。如果你看一下通信的类型,Classic有发送方,接收方,客户端服务器。Adaptive具有面向服务的特性,它可以被分解为方法(更像函数)和通过事件进行的通信(像消息)以及通过字段进行的通信(像数据)。到目前为止,我们支持在金宝appSimulink中以消息的形式对事件建模。金宝app
第三个关键概念是一切都是C ++。所有模块和应用程序都需要用C ++写入。那些是Autosar自适应的三个关键概念。所以这是Autosar Adaptive路线图。我们现在是标准的第四版。我很高兴地说,Mathworks开始支持2019年发布的自适应标准。金宝app
在接下来的几张幻灯片中,我将介绍这些Adaptive概念,并向您展示如何在Simulink中为Adaptive应用程序建模和生成代码。金宝app自适应应用程序需要并提供端口,如我们所讨论的,这些端口由服务接口类型化。在Si金宝appmulink中,自适应应用程序将映射到模型。所需的端口事件将映射到Simulink中的消息。金宝app在这里,我使用这个应用程序的发货AUTOSAR块将消息转换为信号。
在提供的端口端,这是非常类似的。同样,自适应应用程序映射到模型,甚至映射到输出端口。现在我将向您展示如何在Simulink中完成自适应工作流。金宝app您还可以导入或导出自适应ARXML文件到Simulink,就像我们在经典ARXML工作流中做的那样。金宝app
可以从Simulink模型开始金宝app,你可以通过使用他们的数据字典将Simulink模型转换为AUTOSAR Adaptive。一旦对设计满意,就可以生成代码,然后生成ARXML。这被称为自底向上的工作流。或者,您可以从为自适应应用程序编写架构开始,然后导出ARXML,然后将其导入到Simulink。金宝app这就是所谓的自上而下的工作流程。在自顶向下和自底向上工作流之间的迭代称为往返。
现在让我们看看这一点。所以在这里,我有一个ARXML,在创作工具中创建。现在我想使用这两行代码将其导入Simulink。金宝app好的,现在这已经创建了一个骨架自适应Simulink模型。金宝app请注意,创建端口和端口。所以现在让我看看代码映射。请注意端口中的Simulink金宝app如何映射到AutoSar属性以及如何配置这些所需端口。
此处“服务发现方式”为“OneTime”。我可以把它转换成动态发现。然后,相应的服务接口具有导入的事件和名称空间。下面是您可以选择的XML选项。现在,在代码映射编辑器中,我们可以看到哪个Simulink端口映射到哪个AUTOSAR事件。金宝app
现在切换到设置。注意,系统目标文件设置为AUTOSAR Adaptive,语言设置为c++。在这里,可以看到导入的ARXML的模式。我将保持代码生成的模式不变。好的,现在让我将示例实现添加到车道导航骨架模型中。
现在让我在ARXML中生成代码。所以在生成的代码中,它在相应的位置有ARA调用。我们可以看到正在生成的应用程序、清单和服务清单ARXML文件。
正如您刚刚在演示中看到的那样,您可以将应用程序配置为使用一次性服务发现或动态服务发现模式。在一次性发现中,应用程序在初始化期间找到并订阅自适应服务。一次性发现可能需要自适应服务以在应用程序之前启动,并防止应用程序在可用时使用新服务。
对于版本2020a,您还可以使用动态服务发现,以便它在后台监视服务可用性,并在服务可用时订阅自适应服务。这就形成了一个更强大的系统。在版本2020b中,作为自适应代码生成的一部分,您可以为Linux主机上的运行时校准创建一个可执行文件。您也可以将可执行文件作为独立的应用程序运行。
Adaptive AutoSAR Linux可执行工具链提供用于编译生成的代码的AutoSAR自适应功能集群库。使用ASAP2生成器应用程序,您可以将ASAP2文件生成配置为指定ASAP2文件版本。您也可以选择在A2L文件生成时排除或包含注释。
总之,使用AUTOSAR Blockset,通过对具有事件通信和动态服务发现的自适应应用程序建模,您可以对AUTOSAR Adaptive软件建模、模拟和测试。您还可以导入和导出自适应ARXML文件。最后,您可以为代码生成生成优化的AUTOSAR c++代码。
好了,现在是时候在Simulink中构建AUTOSAR应用算法了。金宝app首先,您可以尝试这些发货示例,并探索AUTOSAR Blockset支持的最新特性。金宝app要了解更多关于AUTOSAR支持的信息,可以访问Math金宝appWorks.com上的AUTOSAR Blockset页面。谢谢你的聆听。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。