AUTOSAR接口类型
AUTOSAR中有三种类型的接口,分别是:AUTOSAR接口,标准化AUTOSAR接口和标准化接口。
AUTOSAR接口
AUTOSAR接口定义了SWC之间、BSW模块之间以及SWC与BSW模块之间交互的信息。以SWC或BSW模块端口(Port)的形式实现。无论这些SWC与BSW位于本地ECU,还是位于不同的ECU(通过车载网络),都可以通过AUTOSAR接口实现数据交换。AUTOSAR接口传递的数据或提供的服务是标准中没有明确定义的,需要根据具体的应用场景进行设计。
标准AUTOSAR接口
标准AUTOSAR接口指的是AUTOSAR标准中对语法和语义有明确定义的AUTOSAR接口,用来定义AUTOSAR服务,这些服务是BSW提供给SWC应用软件的标准化服务。
标准接口
标准接口是指AUTOSAR标准各软件模块中明确定义的API。标准接口主要用于在同一ECU内部的软件模块之间的通信。两个不在同一个ECU内且靠通信网络建立联系的软件模块之间不能采用标准接口进行通信。标准接口本质上是函数调用关系,不像AUTOSAR接口通过端口传递数据和服务。
通过上面这张图可以帮助大家更好地理解这三种接口的用法,由上图可以看出AUTOSAR接口主要用于应用软件组件(SWC)之间以及应用软件组件与基础软件之间(BSW)的通信。标准化AUTOSAR接口主要用于应用软件组件与基础软件的标准化服务之间的通信。而标准化接口则主要用于不同基础软件模块之间的通信(OS、通信模块可以通过标准化接口与SWC通信)。
AutoSAR接口通用规则
- 允许服务层(Service Layer)内部软件模块间的相互访问。
- 允许 ECU 抽象层(ECU Abstraction Layer)内部软件模块之间的相互访问。
- 允许复杂驱动(Complex Drives)访问其他 BSW 子模块。
- 允许顶层软件访问同功能组的下一层级软件模块的全部接口。例如 Memory Service 相关软件模块可以访问 Memory Hardware Abstraction 中所有软件模块的接口。
- 允许硬件抽象层(I/O HW Abstrction)访问除其同功能组内的 MCAL I/O Drivers 外的其他功能组 MCAL 驱动。例如 Communication Drivers。
- 允许所有软件层级的模块访问 System Service 相关模块。
- 禁止 MCAL 软件模块间的相互访问。
- 避免上层软件模块跨层级访问下层软件模块。例如禁止 Service Layer 中的软件模块跨过 ECU Abstraction Layer 直接访问 MCAL 的模块。
- 禁止上层软件模块跨越两级或以上访问下级软件。例如禁止 SWC 直接访问 MCAL 。
- 禁止上层软件模块跨过 MCAL 直接访问 MCU 硬件。
详细的访问规则可参考下图: