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