Autosar基础软件模块交互

Autosar basic software modules interaction

我在看这个AUTOSAR文档,里面说软件组件之间的通信以及SWC与BSW的通信是通过RTE Layer实现的,但是我没有找到任何关于实现的信息基础软件模块之间的交互,例如ECU AL层和MCAL层的交互。
根据 AUTOSAR,有 3 种类型的接口。它们是:“autosar 接口”、“标准化autosar 接口”和“标准化接口”。
“autosar 接口”用于定义 SWC 的端口。然后是“standardized autosar interface”类型,用于为SWCs定义SERVICE端口。这两种类型都用于 SWC,并且都使用端口模拟通信机制,但“标准化接口”不使用与“autosar 接口”相同的技术。
我的意思是可能“标准化接口”合同不使用 PORTS 来定义 BSW 模块之间的通信,我想知道 如果 BswM 没有端口,那他们如何沟通呢?这些模块本身是否建模了通信机制?
1。 BSW 模块有端口吗?
2。 RTE是否定义了MCAL层和ECU抽象层之间的通信?如果没有,那么它应该在代码的哪一部分实现?

1.) 端口是软件组件级别接口定义的首选方式。 “标准化接口”是允许访问底层 BsW 模块功能的 SwC 端口。它们被归类为 service-ports,它们的组件通常绑定到 ECU。 供应商通过他们的自定义 SwC 向其他 SwC-s 公开 BSw 模块功能正在破坏分层架构,这被认为是不好的做法。 (感谢 Uwe 在评论中指出这一点)

2.) 在模块级别的接口是头文件,其中包含某些函数声明。 Inter-BSwM 沟通不是 RTE 的设计任务。此外,启动顺序是自下而上的;可能 RTE 甚至还没有启动供 BSwM-s 使用。

将端口视为一种逻辑功能。根据它们的类型,您可以自由地对它们进行建模。当您生成 RTE 时,这些端口被实现(或者换句话说 boil-down)到某个解决方案:编写缓冲区或像 C 函数调用一样简单。这种抽象甚至使您能够 re-allocate 将您的 SwCs 连接到另一个 AUTOSAR ECU,并且端口仍然可以正常工作。

你在BSwMs中没有这么多的自由;他们的沟通更具体,使用 C 函数调用。 BSwM 可以选择在 AUTOSAR 中建模:它们的接口以及它们的内部行为。但与 SwC 不同的是,此类模型不会对实施产生直接影响。它们更适合用于记录、编写测试或合规性检查。