我正在阅读这份AUTOSAR文档,它说软件组件之间的通信和SWCs与BSW之间的通信是通过RTE层实现的,但我没有发现任何关于基本软件模块之间交互实现的信息,例如ECU AL层和MCAL层之间的交互。
根据AUTOSAR有3种类型的接口。它们是:"autosar接口“、”标准化autosar接口“和”标准化接口“。
"autosar接口“用于定义SWCs的端口。然后是“标准化的autosar接口”类型,用于定义SWCs的服务端口。这两种类型都用于SWCs,两种类型都使用端口来建模通信机制,但“标准化接口”并不采用与"autosar接口“相同的技术。
我的意思是,“标准化接口”契约可能不使用端口来定义BSW模块之间的通信,我想知道如果没有BswM的端口,那么它们如何通信?通信机制是否在这些模块中建模?
1. BSW模块有端口吗?
2. RTE是否定义了MCAL层和ECU抽象层之间的通信?如果没有,那么它应该在代码的哪一部分实现?
发布于 2022-02-22 14:44:13
1.)端口是软件组件级接口定义的首选方法。“标准化整数”是提供对底层SwC模块功能的访问的BsW端口。它们被归类为服务端口,它们的组件通常绑定到ECU。通过自定义的BSw向其他SwC -公开SwC模块功能的供应商正在打破分层体系结构,这被认为是不好的做法。(感谢Uwe在评论中指出这一点)
2.)在模块级别上,接口是头文件,其中包含某些函数声明。通过设计,BSwM之间的通信不是RTE的任务.而且,引导序列是自下而上的;它可能发生RTE甚至还没有引导到BSwM-s使用。
将端口视为一种逻辑特性。根据他们的类型,你有一些自由的建模。当您生成RTE时,这些端口将被实现(或者换句话说,是向下压缩)到某个解决方案:编写缓冲区,或者像C函数调用一样简单。这种抽象甚至使您能够将SwCs重新分配到另一个AUTOSAR ECU,并且端口仍将运行。
在BSwM中您没有这么大的自由度;它们的通信更加具体,使用C函数调用。可以选择在AUTOSAR中建模BSwM:它们的接口和内部行为。但与SwC不同的是,这样的模型对实现没有直接影响。它们更适合于记录、编写测试或遵从性检查。
https://stackoverflow.com/questions/71218659
复制相似问题