百度网站安全检测平台,大理企业网站建设,wordpress设置导航栏,灰色网站ComM的内外部唤醒
ComM可以通过NM保持网络的唤醒#xff0c;同时也可以通过SM激活通信#xff0c;总之就像一个通信的总管。 下面通过两种唤醒源来解释ComM的状态机。
1、内部唤醒 ① 当ComM上电初始化时会首先进入NO COMMUNICATION状态#xff0c;在该状态下ComM会持续循…ComM的内外部唤醒
ComM可以通过NM保持网络的唤醒同时也可以通过SM激活通信总之就像一个通信的总管。 下面通过两种唤醒源来解释ComM的状态机。
1、内部唤醒 ① 当ComM上电初始化时会首先进入NO COMMUNICATION状态在该状态下ComM会持续循环判断是否有本地唤醒请求。 ② 如果检查到有本地通信请求API执行本地请求可以由SWCDCM或者BSWM发起API为Rte_Call_UR_XXX_RequestComMode()或者ComM_RequestComMode()状态则将往FULL COMMUNICATION迁移过程中ComM会Allow通信通道让CanSM打开Transceiver和ControllerBswM启动收发IPDU网络被激活。 ③ 进入FULL COMMUNICATION后由于是本地唤醒NM首先会进入Network Requested执行正常的报文收发能一直主动去保持Network的唤醒状态。 ④ 一旦本地ComM释放后则Network进入Ready Sleep状态NM PDU停发。 ⑤ 如果这时其它ECU也都不需要通信等收到NM Prepare-Bus-Sleep的指示后Network进入Prepare Bus Sleep状态并停止发送Tx IPDUs。ComM进入SILENT COMMUNICATION状态。 ⑥ 在SILENT COMMUNICATION状态下如果收到了NM Message则ComM又回到FULL COMMUNICATION中并重新开始发送Tx IPDUs。 ⑦ 在SILENT COMMUNICATION状态下如果没有收到NM Message并且这时收到了NM Bus-Sleep的指示则让CanSM去关闭通道包括切换Transceiver和Controller的状态停止接收Rx IPDUs然后ComM进入NO COMMUNICATION状态。
2、外部唤醒 如果被外部唤醒NM会进入被动状态Passive。然后当ComM进入Full Communication后也会默认往Ready Sleep状态里面去跑除非持续收到外部的唤醒否则不会去保持Network的唤醒状态
EcuM、ComM和CanNm的状态关联
① 在ComM处于NO COMMUNICATION状态时由BswM来管理通信的允许与禁止。 ② 只有当EcuM处于UP状态下才能保持ComM的FULL COMMUNICATION状态和SILENT COMMUNICATION状态。 ③ ComM的FULL COMMUNICATION状态对应着CanNm的Normal/Repeat/Ready Sleep三个子状态。 ④ EcuM负责验证ECU的唤醒事件然后发送指示给ComMComM请求ComM模式变更但是需要由EcuM和BswM一起来配合执行。 ⑤ 可以请求ComM切换通信模式的用户有SWC、DCM、BswMDCM在诊断通讯激活DCM_ActiveDiagnostic时可以请求ComM进入FULL COMMUNICATION状态BswM可以根据用户配置的行为列表请求ComM执行相应通信请求。 ⑥ 用户只能请求FULL或者NO COMMUNICATIONSILENT模式及其子状态只是为了同步AUTOSAR NM。
CanNm状态机