1 AutoSAR 接口(AutoSAR Interface)
AutoSAR 接口定义了 SWC 之间、BSW 模块之间以及 SWC 和 BSW 模块之间交互的信息。AutoSAR 接口通过 SWC 和/或 BSW 模块端口(Port)的形式实现。通过这些端口,SWC 和 BSW 模块之间实现了数据的收发和服务的调用。这些端口之间的通信既可以是本地的,也可以是通过通信网络实现的。 AutoSAR 接口传递的数据或提供的服务是标准中没有定义的,需要根据具体的应用场景进行设计。
2 标准 AutoSAR 接口(Standardized AutoSAR Interface)
标准 AutoSAR 接口指的是 AutoSAR 标准中对语法和语义有明确定义的 AutoSAR 接口(AutoSAR Interface)。主要的应用是定义 BSW 模块提供给 SWC 的标准 AutoSAR 服务。与 AotoSAR 接口(AutoSAR Interface)的不同指出在于标准 AutoSAR 接口(Standardized AutoSAR Interface)提供的服务在相关 BSW 模块的规范中给出了明确的定义。
3 标准接口(Standized Interface)
标准接口(Standardized Interface)是指 AutoSAR 标准各软件模块中明确定义的 API。例如,在 AutoSAR 规范 Specification of DIO Drive 中,为 DIO 模块定义了如下的 API。这些 API 就属于标准接口,如下:
标准接口主要用于在同一 ECU 内部的软件模块之间的通信。两个不在同一个 ECU 内且靠通信网络建立联系的软件模块之间不能采用标准接口进行通信。标准接口本质上是函数调用关系,不像 AutoSAR 接口(AutoSAR Interface)通过端口传递数据和服务。
4 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 硬件。
如下图:
详细的访问规则,如下图: