正常上电启动请求FULL_COMMUNICATION 网络关闭 Passive Startup 通信抑制 总线唤醒抑制 No Communication限定模式 ComM模块提供的服务 简介 通信管理模块(COM Manager, 下称ComM),是AUTOSAR BSW中的一个模块。作为资源管理者,ComM封装了下层的通信服务。ComM控制通信相关的BSW模块,但不会去控制SWC或Runnable。ComM收集来自...
允许通信后,ComM模块调用CanSM_RequestComMode请求COMM_FULL_COMMUNICATION通信。 CanSM开启通道的通信后,ComM模块通道切换到COMM_FULL_COM_NETWORK_REQUESTED状态。随后,ComM模块调用Nm_PassiveStartUp请求NM被动开启网络管理,NM也调用ComM_Nm_NetworkMode通知到ComM当前NM的网络模式。 1.3网络关闭(以CAN通道为例) 1.4通信...
ComM收到通信请求以后,这里关注NM Msg触发的请求。会去检查对应EcuM是否处于RUN模式,以及对应Channel是否CommunicationAllowed=TRUE。如果满足上述两个条件,则ComM将对应的Channel切换到COMM_FULL_COMMUNICATION,之后,对应Channel的通信打开,网络唤醒(进入NM(Network Mode))。 综上述:NM Msg能否接收,与Controller和Transceiver...
如果满足上述两个条件,则ComM将对应的Channel切换到COMM_FULL_COMMUNICATION,之后,对应Channel的通信打开,网络唤醒(进入NM(Network Mode))。 综上述:NM Msg能否接收,与Controller和Transceiver的状态相关,只有Controller和Transceiver处于正常的工作模式,才能有效的收/发报文;NM Msg有效的接收,NM可以请求ComM开启网络,EcuM也...
COMM_FULL_COMMUNICATION表示ComM通信的Highest状态,在该状态下总线可以进行正常的数据通信在该状态下具有下面两个子状态:COMM_FULL_COM_NETWORK_REQUESTED和COMM_FULL_COM_READY_SLEEP。 下面分别对每个状态进行详细的说明: COMM_NO_COM_NO_PENDING_REQUEST
而Autosar的规范中,对于CanNM状态切换到RSS子状态,并不要求其通知到ComM。所以,如果是单纯的调用CanNm_NetworkRelease()接口,并不会影响ComM的状态切换,也就是ComM此时不会切换到COMM_SILENT_COMMUNICATION模式,ComM应该继续保持在之前的模式中,eg:COMM_FULL_COMMUNICATION。因此,应用报文的通信不受影响。这就是我个人...
再然后,CanNm调用ComM_Nm_NetworkMode()接口,通知ComM网络管理状态已经进入Network Mode。 当CanSM状态进入到CanSM_CommFullCommunication状态时,会调用ComM_BusSM_ModeIndication() 进行通知。 完整时序图可以参考: 如果你现在对启动后通信上线的流程已经有所理解,让我们来看看状态机图,是一个什么样的状态迁移流程: ...
由于项目需求的不同,并不限定一定用何种方式请求通信。无论是在ComM文章里提到的那样,由SWC去主动调用请求ComMUser的接口, 还是你期望等待总线上消息唤醒的方式,(注:此处代码为模拟设置唤醒事件的代码) 都可以。 当然,别忘了设置进入FULLCOMMUNICATION状态时,还要使能对应的PduGroup。
在经典的AUTOSAR架构中,ComM系统服务是通信状态管理的关键组件。当ECU从休眠状态唤醒,用户通过主动请求COMM_FULL_COMMUNICATION或被动唤醒通知ComM_EcuM_WakeUpIndication,表明通信需求。在休眠期间,通过设置COMM_NO_COMMUNICATION释放通信请求,ComM通过SM模块和NM模块对总线通信状态进行无缝切换,简化了用户与...
(1)EcuM或者NM模块调用ComM_EcuM_WakeUpIndication()接口,且配置参数ComMSynchronousWakeUp = TRUE,PNC的状态由PNC_NO_COMMUNICATION切换到PNC_FULL_COMMUNICATION::PNC_PREPARE_SLEEP状态。且该PNC对应的ComMPncPrepareSleepTimer(ComMPncPrepareSleepTimer> 0)启动,同时通知到BswM,PNC状态切换。