讨论AUTOSAR方法中的软件组件的概念

电子说

1.2w人已加入

描述

什么是软件组件?

一般来说,一个软件应用程序可以被分解成若干部分,以减少整个应用程序的复杂性。这些部分,或者说组件,以一种标准化的方式相互作用,这使得组件可以像机器的可替换部件一样被换入或换出。基于分层的方法是降低整体设计复杂性的另一种方式。AUTOSAR基础设施从这两种方法中获益。

ecu

AUTOSAR允许在RTE之上进行基于组件的软件设计,并对BSW采用分层方法。  

AUTOSAR软件组件(SW-C)

AUTOSAR 应用程序涉及相互连接的软件组件。它们中的每一个都封装了整个应用的一部分功能。AUTOSAR规定了允许几个AUTOSAR软件组件在涉及网络ECU的基础设施中正确集成所需的一切。 一个AUTOSAR软件由以下部分组成:

正式的软件组件描述,指定基础设施必须如何为该组件配置。

作为目标代码或源代码的软件组件的执行。

AUTOSAR SW-C描述 AUTOSAR SW-C 是以 .arxml 文件格式描述的。该描述的结构被称为软件组件模板,它包含:

软件组件提供和要求的操作和数据元素,

该软件组件对基础设施和所需资源的要求(服务),

关于该软件组件实施的信息。
 

ecu


SW-C描述是通过AUTOSAR编写工具生成的,或者使用文本编辑器手动编写。.arxml 文件将由描述软件组件的标准 AUTOSAR XML 标签组成。  

AUTOSAR SW-C的执行

在SW-C描述的必要部分如内部行为准备好后,可以使用组件API生成器(可以是RTE生成器)生成SW-C的API。有了C头文件,SW-C的功能就可以独立实现,并且可以生成C源文件。

ecu

对于经典的AUTOSAR应用来说,软件组件的实现通常是在C源文件中完成的。  

通信机制

被广泛采用两个的通信模式是客户端-服务器和发送器-接收器。首先谈谈这些通信模式,以便能够了解AUTOSAR是如何支持这两种模式的。  

客户端-服务器通信

在这种通信模式中,客户端请求一个服务,服务器执行该服务。如果客户端等待服务器完全解决该请求,那么该通信被称为同步通信,否则,如果客户端没有被阻止,那么它被称为异步通信。 在AUTOSAR背景下,SW-C可以作为客户端或服务器或两者。通信的启动方向被用来划分SW-C是客户端还是服务器。

ecu

多个客户端可以从一个服务器上请求一个服务。该服务通常是在另一个软件组件中实现的C函数,它被称为 "操作"。  

发送者-接收者通信

在这种通信模式中,发送方永远不会被拦截,接收方自主决定何时和如何使用发送方发送的信息。 在 AUTOSAR 上下文中,发送方 SW-C 并不期望从接收方 SW-C 得到响应。与流量控制和信息分配有关的后勤问题由AUTOSAR软件栈中的通信基础设施处理。发送方SW-C也不知道接收方的身份,甚至不知道接收方的数量。

ecu

发送方SW-C将放送数据,所有接收方SW-C将随意获得该数据。  

端口和接口

为了实现多个软件组件之间的通信,AUTOSAR 将端口定义为软件组件之间的交互点。只有通过端口,一个软件组件才能与另一个软件组件互动。根据通信的性质,端口可以是PP端口(提供某种东西的端口)或R端口(需要某种东西的端口)。请注意,端口是特定于一个软件组件的。

ecu


一个使用客户端-服务器接口的提供类端口的例子。


ecu

一个使用发送者-接收者接口提供类端口的例子。 通过端口,可以确定哪些软件组件是相互作用的。但它们是如何互动的呢?为了解释一个软件组件的端口所提供或要求的服务/数据,AUTOSAR引入了接口概念。有不同种类的接口选项,为实现发送方-接收方通信,需要使用发送方-接收方接口。同样,当需要从软件组件中请求服务时,也要使用客户端-服务器接口。请注意,接口不是特定于一个软件组件及其端口的。

ecu

发送者-接收者接口的例子

ecu

客户端-服务器接口的一个例子 当一个软件组件的PP端口提供一个接口时,这意味着该端口所属的软件组件提供了客户端-服务器接口中定义的操作的执行,要么生成面向数据的发送者-接收者接口中描述的数据。 ecu

AUTOSAR为端口接口定义了特定的形状,这样就可以在AUTOSAR编写工具或文档中一目了然地了解SW-C的结构。  



审核编辑:刘清

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分