电子说
什么是软件组件?
一般来说,一个软件应用程序可以被分解成若干部分,以减少整个应用程序的复杂性。这些部分,或者说组件,以一种标准化的方式相互作用,这使得组件可以像机器的可替换部件一样被换入或换出。基于分层的方法是降低整体设计复杂性的另一种方式。AUTOSAR基础设施从这两种方法中获益。
AUTOSAR允许在RTE之上进行基于组件的软件设计,并对BSW采用分层方法。
AUTOSAR软件组件(SW-C)
AUTOSAR 应用程序涉及相互连接的软件组件。它们中的每一个都封装了整个应用的一部分功能。AUTOSAR规定了允许几个AUTOSAR软件组件在涉及网络ECU的基础设施中正确集成所需的一切。 一个AUTOSAR软件由以下部分组成:
正式的软件组件描述,指定基础设施必须如何为该组件配置。
作为目标代码或源代码的软件组件的执行。
AUTOSAR SW-C描述 AUTOSAR SW-C 是以 .arxml 文件格式描述的。该描述的结构被称为软件组件模板,它包含:
软件组件提供和要求的操作和数据元素,
该软件组件对基础设施和所需资源的要求(服务),
关于该软件组件实施的信息。
SW-C描述是通过AUTOSAR编写工具生成的,或者使用文本编辑器手动编写。.arxml 文件将由描述软件组件的标准 AUTOSAR XML 标签组成。
AUTOSAR SW-C的执行
在SW-C描述的必要部分如内部行为准备好后,可以使用组件API生成器(可以是RTE生成器)生成SW-C的API。有了C头文件,SW-C的功能就可以独立实现,并且可以生成C源文件。
对于经典的AUTOSAR应用来说,软件组件的实现通常是在C源文件中完成的。
通信机制
被广泛采用两个的通信模式是客户端-服务器和发送器-接收器。首先谈谈这些通信模式,以便能够了解AUTOSAR是如何支持这两种模式的。
客户端-服务器通信
在这种通信模式中,客户端请求一个服务,服务器执行该服务。如果客户端等待服务器完全解决该请求,那么该通信被称为同步通信,否则,如果客户端没有被阻止,那么它被称为异步通信。 在AUTOSAR背景下,SW-C可以作为客户端或服务器或两者。通信的启动方向被用来划分SW-C是客户端还是服务器。
多个客户端可以从一个服务器上请求一个服务。该服务通常是在另一个软件组件中实现的C函数,它被称为 "操作"。
发送者-接收者通信
在这种通信模式中,发送方永远不会被拦截,接收方自主决定何时和如何使用发送方发送的信息。 在 AUTOSAR 上下文中,发送方 SW-C 并不期望从接收方 SW-C 得到响应。与流量控制和信息分配有关的后勤问题由AUTOSAR软件栈中的通信基础设施处理。发送方SW-C也不知道接收方的身份,甚至不知道接收方的数量。
发送方SW-C将放送数据,所有接收方SW-C将随意获得该数据。
端口和接口
为了实现多个软件组件之间的通信,AUTOSAR 将端口定义为软件组件之间的交互点。只有通过端口,一个软件组件才能与另一个软件组件互动。根据通信的性质,端口可以是PP端口(提供某种东西的端口)或R端口(需要某种东西的端口)。请注意,端口是特定于一个软件组件的。
一个使用客户端-服务器接口的提供类端口的例子。
一个使用发送者-接收者接口提供类端口的例子。 通过端口,可以确定哪些软件组件是相互作用的。但它们是如何互动的呢?为了解释一个软件组件的端口所提供或要求的服务/数据,AUTOSAR引入了接口概念。有不同种类的接口选项,为实现发送方-接收方通信,需要使用发送方-接收方接口。同样,当需要从软件组件中请求服务时,也要使用客户端-服务器接口。请注意,接口不是特定于一个软件组件及其端口的。
发送者-接收者接口的例子
客户端-服务器接口的一个例子 当一个软件组件的PP端口提供一个接口时,这意味着该端口所属的软件组件提供了客户端-服务器接口中定义的操作的执行,要么生成面向数据的发送者-接收者接口中描述的数据。
AUTOSAR为端口接口定义了特定的形状,这样就可以在AUTOSAR编写工具或文档中一目了然地了解SW-C的结构。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !