AutoSAR系列讲解(入门篇)2.3-Ports的类型

Ports的类型

一、接口的类型

二、S/R接口

三、C/S接口


一、接口的类型

Ports是SWC和SWC做接口(Interface)通信使用,或者SWC通过RTE和BSW做接口(Interface)通信使用。

Ports主要分为5种类型,列在下面的图中:

其中又可分类为:R-Ports、P-Ports和PR-Ports。值得注意的是,这里的PR-Ports只在AutoSAR4中定义了。 或者又可以分为:Send/Receiver(S/R)接口和Client/Server(C/S)接口。而S/R接口是用来传输数据的;C/S接口是用来执行操作的。

二、S/R接口

作用:

  • 传输数据。通过RTE传输数据,并且通过RTE管理数据的传输,避免数据出问题(例如同时调用同一数据时可能出错)
  • 一个接口可以包含多个数据,类似于通过结构体传输
  • 可以传输基础数据类型(int,float等)和复杂数据类型(record,array等)
  • 再说具体一点,举个例子调用接收接口:

Rte_Read_Port>_Data>()

//这里的xx是指的传输的数据内容,比如DoorOpen就是:

SWC_DoorOpen = Rte_Read_Door_DoorOpen();

三、C/S接口

作用:

  • 提供操作。就是Server提供函数供Client调用
  • 可以同步和异步。同步就是直接调用,相当于函数直接插入上下文运行;异步的话需要等待,相当于让函数在另一个线程中运行,运行完了再返 回,原上下文依然运行
  • 一个接口可以提供多个操作,就是一个接口可以包含很多函数
  • ECU内部和跨ECU都可以调用,跨ECU也是通过外部总线
  • 再说具体一点,举个例子调用客户接口:

Rte_Call_Port>_Function>()

//这里的xx是指的调用的函数,比如调用State()就是:

Rte_Call_Door_State();

猜你喜欢

转载自blog.csdn.net/qq_42700289/article/details/131366060