Simulink for Adaptive AUTOSAR
Adaptive AUTOSAR是一种现代软件框架,适用于自动系统中经常使用的高性能机载计算机。它基于POSIX和c++,支持动态和可更新的软件以及面向服务的通信,并具有安全和安全性的扩展。
在本次演讲中,MathWorks将向您介绍自适应AUTOSAR的概念,并展示如何使用Simulink®产品系列为自适应AUTOSAR提供支持,包括:
- 使用面向服务通信的自适应软件组件的建模和仿真
- 支持AUTOSAR自适应模式18-10
- 使用自适应中间件接口(ara::com)和AUTOSAR XML导出的c++产品代码生成
记录:2019年4月11日
是的,早上好。所以我很高兴来到斯图加特,汽车的诞生地,来谈谈AUTOSAR Adaptive的Simulink。在我开始之前,请大家举手表决好吗?那么,观众中谁在使用AUTOSAR ?不少。谁在使用自适应AUTOSAR?一两个。希望这次演讲能很好地融合。
这就是我要讲的内容。首先,我将给你们一些AUTOSAR有多受欢迎的背景知识,以及Adaptive的一些动机,他们为什么要引入Adaptive平台。然后我们将看看Simulink中的AUTOSAR支持。我们将深入研究Adaptive平台,然后用其他的资源来结束它。让我们从AUTOSAR和AUTOSAR自适应的一些背景知识开始。
我相信你们都知道,AUTOSAR经典版非常受欢迎,而且已经上路了。以下是一些用户故事和我们客户的演示。宝马,他们谈论基于模型的软件开发和AUTOSAR。FCA,他们有一篇关于基于模型的开发和代码生成的好文章,LG Chem基于模型的设计和ISO 262262。当然,你知道,AUTOSAR不仅仅是汽车公司的专利也是其他相关行业的专利,John Deere有一篇很好的文章是关于基于模型的开发和他们一直在做的工作的。
这是AUTOSAR经典版。我们已经看到AUTOSAR Classic非常受欢迎。这就引出了一个问题,为什么要引入自适应平台?所以其实有两个词,自动驾驶。
所以我相信你很清楚,自动驾驶需要大量的计算能力和通信带宽,而且它还需要容易更新。所以自动驾驶有很多东西要做。AUTOSAR组织,他们引入了自适应平台。所以他们基于POSIX操作系统。这就是计算能力的来源。
他们引入了基于服务的交流。所以这就是你获得沟通能力的地方,当然,如果他们让它很容易更新账单。这就是你得到。你知道,你可以很容易地更新这些东西。所有这些都是针对自动驾驶的。
但是自动驾驶系统,它们只构成了现代汽车系统的一些功能。我们经常从客户那里听到的一个问题是自适应平台如何与其他平台发挥作用?经典和非autosar平台。我们经常听到的一个问题是,Adaptive如何与Classic发挥作用?
所以它不会消失。它们会共存。其次,Simulink提供了一个设计环境,你可以从组件扩展到组合,也可以跨平台扩展。以上就是AUTOSAR经典版和自适应版的简单背景知识。我现在要做的是在深入研究自适应平台之前先讲一下在Simulink中使用AUTOSAR的一些实用性。
好的,我们的大量客户正在使用Simulink来建模经典应用程序。所以他们所做的,他们主要做的是在Simulink中建模大部分,如果不是全部的话,应用软件。他们还在Simulink中对一些RTA、基本软件和例程库进行建模,这取决于模型的保真度。让我们来看看我们的客户如何获得AUTOSAR,将他们的AUTOSAR架构引入Simulink。
这张幻灯片涵盖了设计AUTOSAR软件组件的主要步骤。下面我将依次介绍这些主要步骤。如果我们看一下导入步骤,有些用户从ARXML开始,软件描述。然后他们会把它导入到Simulink中。这就是两行MATLAB代码。你将从中得到一个Simulink模型,然后他们可以进一步细化软件组件设计。所以把你的架构导入Simulink是非常容易的。
现在如果我们从一个现有的Simulink模型开始,让我们看看为AUTOSAR配置它有多容易。你可以使用AUTOSAR组件快速启动它会问你几个简单的问题让你开始为AUTOSAR配置模型。然后你就可以自由地——然后你就可以细化你的软件组件设计,你的实现和生成代码。非常简单。好的,我要给大家看一段视频。这只是一个现有的Simulink模型。
我要启动快速启动,AUTOSAR快速启动。这将会问一到两个问题,比如如何命名组件、路径、组件的类型,以及如何设置接口。这里你可以从ARXML导入,或者你可以从Simulink接受默认值,就这样。你可以看到你的模型都设置好了。您可以为您的模型生成代码。
这里,我要展示AUTOSAR字典。如果你想微调一些东西,你可以进入AUTOSAR字典。您可以看到端口,看到接口,然后我们可以继续生成代码。因此,使用AUTOSAR的现有仿真模型非常容易上手。
这很好。我已经展示了开始是多么容易。让我们来看一些建模。一些客户模型是这样的。有些客户模型甚至看起来像这样,非常复杂。你可能会问自己这些问题。那么,模型中的哪些块需要为AUTOSAR配置呢?这并不明显,光看就知道。如何更改模型中的一些AUTOSAR属性,如何获得更多信息和帮助?
为了回答这些问题,我们在Simulink模型中引入了AUTOSAR透视图。这个透视图是模型内UI组件,有三个。我将依次讲解这些。这里有一个帮助面板。这是针对第一次使用的用户,如果他们想要一些帮助。
还有代码映射电子表格。所以Simulink模型中的每个元素都会映射到这个,会显示在这个电子表格中,你可以这样配置它。然后在右手边,你有属性检查器。如果你想做更高级的配置,这是你设置一些属性的地方。
好的,我们从经典平台学到的另一件事是——通过与你们,也就是客户的交流。因此,当你设计应用软件组件时,对AUTOSAR基础软件进行功能模拟是很重要的,这有很多原因。应用软件会调用很多基础软件。你会用到基本的软件模块,会有很多对基本软件模块的调用。
其次,基本的软件功能是高度动态的,所以有很多状态,所以任何你可以针对基本软件进行的前期模拟都将节省你的时间,从长远来看提高质量。好吧,顾客们大概能理解这一点。他们还指出,AUTOSAR规范非常详细。这只是其中之一。
这是用于诊断事件管理器的。你可以看到有475页,非常详细。我们所做的就是将这些规格的内容封装到基本的软件库中,在这里你可以直接将这些块拖到你的模型中模拟一个基本软件的功能模拟。
我给大家举个例子。这里,我所建模的是我们在做一些容错,这是一个容错位置控制器。我们有两个传感器,监视器会选择最好的,它认为没有任何故障的传感器。我们来播放一下。
好,这是两个传感器,然后我们有一个监视器组件。我们看传感器,我们会使用非易失性内存初始化一些状态。这里,我把那个块拖进来。你可以选择多种操作。我们只是从非易失性内存读取数据。
这里,我们将默认值锁定到诊断事件管理器。还是那句话,有几种操作可以选择。这些都是监视器调用者接口中的操作。这是传感器,然后监视器会检查哪个传感器是最好的。好了,这些就是组件,要进行模拟你只需将这些服务组件块拖到你的集成模型中,然后你可以立即按下播放键就可以得到一个基本软件的功能模拟。所以你不需要看说明书,只看界面。
这就是函数模拟。您还可以双击这些块并更改默认的参数。客户问我们的另一个问题是图书馆的日常工作。这是AUTOSAR经典版的一组数学程序。在这里。我在展示插值程序。这五个块代表了AUTOSAR的127个函数。
这里的想法是你可以把块拖到模型中,然后你可以改变各种设置。但我们总是要确保使用这些设置为Ifx库生成一个函数调用。我甚至会给你一个提示,你的目标是什么。
这是这个特殊设置生成的代码。这里我们看到的是IFL插值。好的,我们已经看了工作流程,组件,基本软件。快速地讲一下,这些是如何结合在一起的?让我们快速看一下。
所以我们已经为我们的软件组件建模,我们有了我们的基本软件服务。我们也可以在上面放刻度盘和仪表。在这里,我们有一个虚拟的,易于使用的系统模拟。好的,我们已经看了我们在Simulink中用来支持AUTOSAR的构建模块。
因此,在本节中,我将深入研究Adaptive平台,并从Adaptive平台中提取一些关键概念。如果我们看看分层的软件架构。所以在非常高的层面上,它与经典非常相似,它是分层的软件架构。
你有——它们不叫组件,它们叫适应性的应用程序。你有一个运行时环境。它是AUTOSAR运行时环境。你有AUTOSAR基础库和AUTOSAR服务,还有硬件。因此,也许Classic和Adaptive之间最大的区别之一是Adaptive,应用程序可以调用AUTOSAR基础或AUTOSAR库的任何公共接口。所以应用程序可以调用的东西的表面积比Classic要大得多。
另外需要注意的是,这并不一定是纯金属硬件。它也可以是虚拟的,虚拟化的,在服务器上运行,也可以用于Adaptive。这就是分层软件架构。我要讲一下我们已经提出来的一些关键概念。对于第一个关键概念。
Adaptive中的一切都是操作系统过程。因此,操作系统提供了多进程能力,每个Adaptive应用程序都是自己独立的进程。所以与Classic相比,它只是一个整体过程。但是对于Adaptive,你有多个处理间进程。每个应用程序都有自己的主函数,自己的内存空间名称空间,它可以是单线程的,也可以是多线程的。
如果我们看一些过程管理。因此,操作系统提供了进程调度。执行管理器提供生命周期管理,然后通信管理器提供进程间通信。因此,您可以认为执行管理器和通信管理器相当于经典版的RT84。但这些是应用程序直接调用的东西。
这是第一个关键概念。关键概念二,我要讲的是面向服务的进程间通信。首先,让我们看看进程间通信。因此,对于自适应,IPC可以是本地的,也可以通过通信管理器。也可以通过网络,通过通信管理器。
现在,如果我们看看交流的类型。我相信你知道,经典版有发送方,接收方和客户端服务器。Adaptive有服务接口的概念,所以它可以包含三件事。所以你有方法,那是通过网络的远程程序调用[听不清]。事件,我想到了消息,字段,我想到了数据。这是服务接口这是Adaptive的面向服务的通信方面。
这是第二个关键概念。第三个关键概念。Adaptive中的所有东西都是c++。所有的模块所有的应用都需要用c++编写。我已经讲了,AUTOSAR自适应的三个高级的关键概念。这就是AUTOSAR自适应路线图。
因此AUTOSAR联盟发布了三个版本的标准。其中一些客户是Adaptive的早期采用者。他们都出现在去年11月的第11届AUTOSAR会议上。然后我很高兴地说,两周前,我们在[?19A, ?]我们对AUTOSAR Adaptive的支持。
看看我们为什么在Simulink中支持AUTOSAR Adaptive的动机是很有趣的。首先,Simulink被你们大量用于AUTOSAR你们要求我们支持AUTOSAR自适应。其次,从技术的角度来看。所以我们已经在面向服务的沟通概念上投资了很多年。首先是通过Simulink函数和函数调用者,还有Simulink消息。然后是代码生成器。我们已经生成了C代码和c++代码。所以从技术的角度来看,这是非常自然的。
第三,我们加入了标准委员会,我们都支持经典和适应性。这就是AUTOSAR Adaptive中MathWorks支持的三个高级动机。在接下来的几张幻灯片中,我会介绍其中的一些概念然后向你们展示它是如何映射到Simulink的。在Adaptive应用中,它有两个必需端口和提供端口。这是带有事件、方法和字段的服务接口,我之前展示过。让我们把这些概念映射到Simulink中。
首先,在自适应应用中映射到Simulink中的模型然后我们看它们映射到的事件。Simulink中的Simulink消息,以及I/O端口旁边的区块,这些将事件转换为信号,我们将这些作为AUTOSAR区块集的一部分,用于任何主要基于信号的模型。我们看另一面。因此,提供的端口。因此,一个Adaptive应用程序映射到一个模型然后这里的事件映射到[?八?]港口。
所以我将把这次演讲的所有内容整合到一个AUTOSAR自适应支持的演示中。让我们为AUTOSAR Adaptive配置这个模型。首先,我要将系统目标文件设置为AUTOSAR Adaptive TLC,然后启动Adaptive的快速启动。
再一次,它会问我们一些问题,你知道,我们要叫这个包的应用程序什么。现在我们已经完成了模型的配置。这些是所有被映射到AUTOSAR的留言板。如果我们查看字典,你可以看到应用程序的必需和提供的报告,然后在服务接口上,我们有事件,你可以为Adaptive设置名称空间。
然后是XML选项。我们这里有一些包配置。好的,这个模型已经为AUTOSAR自适应建立好了。让我们为模型生成代码。这里我们看到了模型CPP文件,然后我们将看一些对Communication Manager的调用。
所以我们有[听不清],然后我们把事件发送到这里,然后生成ARXML。这是AUTOSAR Adaptive ARXML,然后我们有Adaptive应用软件组件,然后是数据类型。我们也产生了主要的CPC。你可以为Adaptive创建一个可执行文件。
这是我们AUTOSAR自适应支持的一张总结幻灯片。因此,您可以在Simulink中生成AUTOSAR自适应c++代码。所以工作流程非常简单直观。你可以用一个Simulink模型,配置它来生成AUTOSAR c++。你可以进入字典,修改这些设置。在配置好模型之后,就可以生成Adaptive c++代码和ARXML了。
好了,我想用一些关于额外资源的信息来结束这次演讲。首先,非常感谢大家的聆听。如果你想了解更多信息,请访问我们的网站,AUTOSAR blockset网站,我们在楼下有一个演示摊位。所以请在演示台上和我们谈谈。非常感谢大家。谢谢你!
(掌声)
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。