AUTOSAR APP层(二)Ports介绍

>>>点我返回《AUTOSAR专栏》目录

目录

  1. Ports简介
  2. Sender-Receiver
  3. Client-Server

1. Ports简介

AUTOSAR APP层(二)Ports介绍_第1张图片
在APP层面可以分成下面这些SWC
AUTOSAR APP层(二)Ports介绍_第2张图片
这是一个典型的SWC级联的工作场景,那SWC和SWC之间需要通信,通信需要用到端口Ports。
AUTOSAR APP层(二)Ports介绍_第3张图片
AUTOSAR中定义了两种类型的端口,后面详细讲述这两种端口:

  1. Sender/Receiver

  2. Client/Server

还有一种分法:

  1. 需求端口,Require Ports,R-Ports,有需求的端口,当要接收或要求数据或期望来自其他实体的数据时,使用此类型的端口。

  2. 提供端口,Provide Ports,P-Ports,提供服务的端口,当要传输数据或SWC是向其他实体提供某些服务的提供者时,使用此类型的端口。

  3. 需求/提供端口,Provide Require Ports,PR-Ports,这只在AUTOSAR4.0以后才有。

AUTOSAR APP层(二)Ports介绍_第4张图片

2. Sender/Receiver

Sender/Receiver通过RTE来传输数据(对数据一致性做了处理,比如同时访问这种问题),可以包含多种数据类型,
简单数据类型(int、float)
复杂数据类型(arry、record)

通信方式可以是:1:n(1对多,1个模块发送,多个模块接收)或者n:1(多对1多个模块发送,1个模块接收)

实际代码中如下:

//Receiver
Rte_Read_Door_DoorOpen()//Sender
Rte_Write_Door_DoorOpen()

3. Client/Server

模块之前相互调用,Client调用Server,比如A SWC调用B AWC,A就具有一个客户端Client,B具有个服务端Server,如下图:
AUTOSAR APP层(二)Ports介绍_第5张图片
Client/Server支持有以下特点:

  1. 支持同步和异步调用,同步就是相当于B模块的函数嵌入到A模块函数后面调用,相当于A等B运行完,A再运行。异步就是A模块调用B模块,但是A模块自己本身还是可以继续运行的,相当于A和B同时开工,然后B运行完后,把结果返回给A。

  2. 通信可以是1:1(1对1的调用)或者n:1(多对1的调用)
    AUTOSAR APP层(二)Ports介绍_第6张图片

  3. 一个SWC调用另外一个SWC,代码接口如下

Rte_Call_State_OpenDoor()

>>>点我返回《AUTOSAR专栏》目录

扫描下方的二维码关注“汽车软件攻城狮”可第一时间获取更新!

AUTOSAR APP层(二)Ports介绍_第7张图片

你可能感兴趣的:(AUTOSAR专栏)