AUTOSAR软件组件的数据类型和端口

B站影视 2024-12-30 22:26 2

摘要:SWC大体上可分为原子组件(Atomic SWC)和部件(Composition SWC)。原子级SWC是不可再分的,对应一个.c文件,这是最小单元,不可再分。部件可包含若干原子软件组件或部件。可运行实体(runnable)是组成SWC的更小单元,但在这个上下

软件组件(SWC)不仅是应用层ASW的核心,也是一些抽象层、复杂驱动层等实现的载体。

1.SWC的分类

SWC大体上可分为原子组件(Atomic SWC)和部件(Composition SWC)。原子级SWC是不可再分的,对应一个.c文件,这是最小单元,不可再分。部件可包含若干原子软件组件或部件。可运行实体(runnable)是组成SWC的更小单元,但在这个上下文中,SWC被视为最小单元,而runnable是其中的函数。

原子软件可根据不同用途分为以下几种类型:

1)应用软件组件(Application SWC);

2)传感器/执行器软件组件(Sensor/Actuator SWC);

3)标定参数软件组件(Parameter SWC);

4)ECU抽象软件组件(ECU Abstraction SWC);

5)复杂设备驱动软件组件(Complex Device Driver SWC);

6)服务软件组件(Service SWC);

应用软件组件主要用于实现应用层控制算法。

传感器/执行器软件组件用于处理具体传感器/执行器的信号,可以直接与ECU抽象层交互。

标定参数软件组件主要提供标定参数值。

ECU抽象软件组件提供访问ECU具体I/O的能力。该软件组件一般提供引用C/S接口的供型端口,即Server端,由其他软件组件(如传感器/执行器软件组件)的需型端口(Client端)调用。

此外,ECU抽象软件组件也可以直接和一些基础软件进行交互。

复杂设备驱动软件组件推广了ECU抽象软件组件,它可以定义端口与其他软件组件通信,还可以与ECU硬件直接交互。所以,该类软件组件灵活性最强,但由于其和应用对象强相关,从而导致其可移植性较差。

服务软件组件主要用于基础软件层,可通过标准接口或标准AUTOSAR接口与其他类型的软件组件进行交互。

2.软件组件的数据类型

AUTOSAR规范定义了三种数据类型(Data Type):

1)应用数据类型(Application Data Type,ADT);

2)实现数据类型(Implementation Data Type,IDT);

3)基础数据类型(Base Type)。

应用数据类型是在软件组件设计阶段抽象出来的数据类型,用于表征实际物理世界的量,是提供给应用层使用的,仅仅是一种功能的定义,并不生成实际代码。

实现数据类型是代码级别的数据类型,是对应用数据类型的具体实现;它需要引用基础类型,并且还可以配置一些计算方法(Compute Method)与限制条件(Data Constaint)。

AUTOSAR中,对于Application Data Type没有强制要求使用,用户可以直接使用Implementation Data Type。若使用了Application Data Type,则必须进行数据类型映射(Data Type Mapping),即将Application Data Type与Implementation Data Type进行映射,从而对每个Application Data Type进行具体实现。

3.软件组件的端口与端口接口

软件组件的端口根据输入/输出方向可分为需型端口(Require Port,RPort)与供型端口(Provide Port,PPort),在AUTOSAR 4.1.1标准中又提出了供需端口(Provide and Require Port,PRPort)。

1)需型端口:用于从其他软件组件获得所需数据或所请求的操作;

2)供型端口:用于对外提供某种数据或某类操作;

3)供需端口:兼有需型端口与供型端口的特性。

需型端口可以和供型端口连接。

AUTOSAR软件组件端口:

由于端口仅定义了方向,所以AUTOSAR中用端口接口(Port Interface)来表征端口的属性,端口接口类型主要有如下几种:

1)发送者-接收者接口(Sender-Receiver Interface, S/R);

2)客户端-服务器接口(Client-Server Interface,C/S);

3)模式转换接口(Mode Switch Interface);

4)非易失性数据接口(Non-volatile Data Interface);

5)参数接口(Parameter Interface);

6)触发接口(Trigger Interface);

最常用的端口接口是1)、2)。

如下图,软件组件SWC1具有2个端口:其中一个引用的端口接口类型为发送者-接收者(S/R)接口,另一个引用的端口接口类型为客户端-服务器(C/S)接口。

对于引用发送者-接收者接口的一组端口而言,需型接口为接收者(Receiver),供型端口为发送者(Sender)。对于引用客户端-服务器接口的一组端口而言,需型端口为客户端(Client),供型端口为服务器(Server)。

AUTOSAR软件组件端口接口:

1)发送者-接收者端口

用于数据的传递关系,发送者发送数据到一个或多个接收者。该类型接口中定义一系列的数据元素(Data Elemet,DE),这些数据元素之间相互独立。如下图,发送者-接收者接口SR_Interface中定义了2个数据元素,名字分别为DE_1、DE_2,并且需要为每个数据元素赋予相应的数据类型。

注意:一个软件组件的多个需型端口、供型端口、供需端口可以引用同一个发送者-接收者接口,且它们可以使用该接口中所定义的任意一个或多个数据元素,而不一定使用所有数据元素。

2)客户端-服务器接口

客户端-服务器接口用于操作(Operation,OP),即函数调用关系,服务器是操作的提供者,多个客户端可以调用同一个操作,但同一个客户端不能调用多个操作。客户端-服务器接口定义了一系列操作(Operation),即函数,它(们)由引用该接口的供型端口所在地软件组件来实现,并提供给引用该接口的需型端口所在地软件组件调用。如下图所示,该客户端-服务器接口CS_Interface中定义了两个操作OP_1与OP_2,对于每个操作需要定义相关参数及其方向,即函数的形参。

客户端-服务器端口定义:

注意:每个端口只能引用一种接口类型,并且引用相同端口接口类型的端口才能进行交互。

[1] 宋珂,王民,单忠伟,谭杨.AUTOSAR规范与车用控制器软件开发[M].北京:化学工业出版社,2018.

来源:小王论科技

相关推荐