Passive Mode的要求
根据上图CANNM的规范可知:
- 处于Passive Mode的网络节点只能接收网络管理PDU,不能发送网络管理PDU。
- Passive Mode由CanNmPassiveModeEnable参数静态配置。
- 如果一个ECU包含多个节点,那么所有的节点要么都是Passive Mode要么都不是。
根据上述要求,Passive Mode这种节点的ECU因为不能发送NM PDU,因此不需要保持网络唤醒。
关于Passive Mode节点状态迁移的说明
如下图,当节点为Passive Mode时,从Bus-Sleep Mode唤醒时由于不能发送报文,所以进入到Repeat Message State需要调用CanNm_PassiveStartup(),在Repeat Message State时由于依然不能发送报文,所以不能请求网络,状态进入Ready Sleep State。
当Passive Mode节点在Prepare Bus-Sleep Mode时通过CanNm_PassiveStartUp()接口进入到Network Mode的Repeat Message State状态。