1、先来一篇大佬文章,加以引用,写的真好
2、规范理解
BSW模式管理器是实现驻留在BSW中的车辆模式管理和应用程序模式管理概念部分的模块。它的职责是根据简单的规则仲裁来自应用层SW-Cs或其他BSW模块的模式请求,并根据仲裁结果执行操作。
3、限制
在一个分区中最多可以使用一个BSW Mode Manager实例。
模块实例
1)、RTE
BswM通过RTE接收来自SW-Cs的模式请求。模式切换通知也通过RTE传播到SW-Cs。这种方式在ETAS里面属于Composition连接到一起,那么就可以进行RTE通信。
2)、ECUM-Fixed
当使用EcuM - Fixed时,它将向BswM指示当前ECU状态。
3)、ECUM-Flex
当使用EcuM Flex时,BswM将使用对RTE的标准RTE交换机调用来改变EcuM状态。EcuM Flex还可以向BswM指示其唤醒源的状态。当使用ECU模式处理时,BswM可以根据RUN请求协议设置EcuM Flex的状态和接收某些模式的状态。
4)、WdgM
WdgM可以通过BswM_WdgM_RequestPartitionReset API向BswM请求分区重置相关操作。WdgM分区重置请求的配置是通过BswMWdgMRequestPartitionReset模式请求源完成的。
5)、ComM
来自ComM的模式切换指示通过BswM进一步传播到SW-Cs。BswM可以通过commuser在ComM上请求通信模式。
6)、COM
COM中I-PDU组的处理由BswM完成。作为I-PDU组启动/停止的一部分,可以将包含的信号值重置为相应的初始化值。
BswM处理COM中信号的截止日期监视的启用和禁用。
BswM也可以触发I-PDU的传输。
7)、PduR
BswM可以使能或去使能PDU路由器中i -PDU的路由组。
8)、CanSM
来自CanSM的模式切换指示通过BswM进一步传播到SW-Cs。
CanSM ->BswM->SWCs
9)、LinSM
LinSM中LIN调度表的BswM坐标切换,以及COM中相应I-PDU组的启动和停止。
来自LinSM的模式切换指示通过BswM进一步传播到SW-Cs。
这点类似于CanSM
10)、LinTP
LIN传输协议是LinIf的一部分,它向BswM请求模式,以确保在LinTp操作期间正确的LIN调度表处于活动状态。
11)、FrSM
来自FrSM的模式切换指示通过BswM进一步传播到SW-Cs。
FlexRay上单槽模式的使用是由FrSM根据BswM的要求来控制的。FlexRay栈的发送能力可以由BswM通过FrSM调用API frsm_setecupasssive来控制。
12)、EthSM
模式切换来自EthSM的指示通过BswM进一步传播到SW-Cs。
13)、DCM
DCM根据它接收到的诊断请求向BswM执行模式请求。
示例:DCM可以请求“禁用正常通信”。在此模式下,BswM将关闭相应的I-PDU组和NM pdu。
14)、J1939DCM
J1939Dcm向BswM报告通信状态更改,以便进一步传播到SW-Cs。BswM通过J1939Dcm_SetState改变J1939Dcm的状态。
15)、J1939Nm
J1939Nm通过BswM_J1939Nm_StateChangeNotification提供状态指示。
16)、J1939Rm
BswM通过J1939Rm_SetState改变J1939Rm的状态。
17)、NM Interface
BswM将使用nm_enableccommunication和nm_disableccommunication基于当前模式来控制NM通信。
示例:在“禁用正常通信”模式下,BswM需要在相应的NM通道上禁用NM通信。
NmIf使用bswm_nmif_carwakeupindicator来指示CarWakeup。
18)、NvM
NvM模块通过注册为NvM回调的集成代码向BswM报告其块的状态。BswM有一些动作可以使NvM在启动和关闭期间读写所有的块。
19)、OS
BswM所要求的操作系统特性是具体实现的。
20)、Sd
BswM通过几个导出的api从Sd接收状态指示。这些来自Sd的状态指示可以配置为BswMModeRequestSources。
21)、File structure