Ports的类型
一、接口的类型
Ports是SWC和SWC做接口(Interface)通信使用,或者SWC通过RTE和BSW做接口(Interface)通信使用。
Ports主要分为5种类型,列在下面的图中:
扫描二维码关注公众号,回复:
15529103 查看本文章
![](/qrcode.jpg)
其中又可分类为: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();