目录
前言
我们知道ECU的网络管理是按照AUTOSAR标准开发的话,诊断报文是无法唤醒ECU且唤醒网络的,因为CanNm状态机处于Bus-Sleep Mode的时候,因为ComM-->CanSm-->CanIf-->CanTrcv, CanDriver关闭了Can收发器和控制器,则在Bus-Sleep Mode下通信协议栈是无法收到Can报文的,诊断报文也就无法唤醒网络。但是,但CanNm处于Prepare Bus-Sleep Mode时Cantrcv和CanDriver还是没被关闭,则诊断报文是可以被通信协议栈收到的,那么CanNm处于Prepare Bus-Sleep Mode时诊断报文是可以唤醒网络的(注意:前面这些结论如果不能理解的朋友可以查阅前面的文章)。
那么,我们的问题来了,CanNm处于Prepare Bus-Sleep Mode时收到诊断报文唤醒网络,到底是主动唤醒还是被动唤醒了?
当CanNm处于Prepare Bus-Sleep Mode时,接收诊断报文可以唤醒网络。根据状态机分析,此过程是主动唤醒。在AUTOSAR标准下,DCM模块接收到特定诊断报文后,通过ComM_DCM_ActiveDiagnostic函数启动主动唤醒网络的过程。诊断报文内容影响唤醒效果,某些内容可能无法唤醒网络。此外,还讨论了应对OEM的特殊需求的解决方案。
订阅专栏 解锁全文
875

被折叠的 条评论
为什么被折叠?



