DCM模块唤醒网络是主动唤醒还是被动唤醒(重新修改)

admin 2024年8月5日13:52:23评论31 views字数 1497阅读4分59秒阅读模式

前言

我们知道ECU的网络管理是按照AUTOSAR标准开发的话,诊断报文是无法唤醒ECU且唤醒网络的,因为CanNm状态机处于Bus-Sleep Mode的时候,因为ComM-->CanSm-->CanIf-->CanTrcv, CanDriver关闭了Can收发器和控制器,则在Bus-Sleep Mode下通信协议栈是无法收到Can报文的,诊断报文也就无法唤醒网络。但是,但CanNm处于Prepare Bus-Sleep ModeCantrcvCanDriver还是没被关闭,则诊断报文是可以被通信协议栈收到的,那么CanNm处于Prepare Bus-Sleep Mode时诊断报文是可以唤醒网络的(注意:前面这些结论如果不能理解的朋友可以参考以下的文章)。

ECU系统休眠后通过诊断报文唤醒ECU且唤醒网络后快发NM报文

网络关闭但ECU没有休眠前如何网络唤醒

AUTOSAR架构下CanTrcv休眠唤醒问题再探

ECU系统休眠后通过诊断报文唤醒ECU且唤醒网络

AUTOSAR 架构下EcuM唤醒源事件详解

那么,我们的问题来了,CanNm处于Prepare Bus-Sleep Mode时收到诊断报文唤醒网络,到底是主动唤醒还是被动唤醒了

这个问题的答案很容易得到,我们在CanNm处于Prepare Bus-Sleep Mode时发送诊断报文唤醒网络,看NM报文是否有快发过程就能轻易的确定是主动唤醒还是被动唤醒。

这里直接给出答案,CanNm处于Prepare Bus-Sleep Mode时收到诊断报文唤醒网络是主动唤醒,那么为什么了?

正文

1.CanNm的状态机分析

DCM模块唤醒网络是主动唤醒还是被动唤醒(重新修改)

CanNm专题机从Prepare Bus-Sleep Mode切换到Nework ModeRepeat Message State是如果是通过CanNm_PassiveStartUp()条件切换的就是被动唤醒,如果是通过CanNm_NetworkRequest()条件切换的就是主动唤醒。

那么,DCM诊断报文使得CanNm状态机从Prepare Bus-Sleep Mode切换到Nework ModeRepeat Message State调用的是CanNm_PassiveStartUp()还是CanNm_NetworkRequest()了?

2.ComM的状态机分析

DCM模块唤醒网络是主动唤醒还是被动唤醒(重新修改)

CaNm处于Prepare Bus Sleep Mode时,ComM处于COMM_SILENT_COMMUNICATION模式,如果DCM模块收到诊断报文,则DCM模块会调用ComM_DCM_ActiveDiagnostic()这个callback函数,就会切换ComM模块状态机到COMM_FULL_COM_NETWORK_REQUESTED模式。

ComMCOMM_FULL_COM_READY_SLEEP模式切换到COMM_FULL_COM_NETWORK_REQUESTED模式后会执行什么动作了?-- 调用Nm_NetworkRequest()函数主动唤醒网络。

DCM模块唤醒网络是主动唤醒还是被动唤醒(重新修改)

3.小结

本文的结论容易得出,DCM模块唤醒网络是主动唤醒且是AUTOSAR规范定义的。但是,要想至下而上理清楚网络休眠和唤醒还是挺不容易的,我们需要理解CanTrcv, CanDriver, CanIf, CanNm, EcuM, ComM, Dcm这么多模块的功能及其之间的耦合关系才能真正理解。至于怎么把这么多模块理清楚还能串起来,个人是从CanTrcv开始自底向上学习各个模块,然后以报文唤醒和网络唤醒源这条线索把所有的模块给串起来的

End

原文始发于微信公众号(汽车电子嵌入式):DCM模块唤醒网络是主动唤醒还是被动唤醒(重新修改)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月5日13:52:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   DCM模块唤醒网络是主动唤醒还是被动唤醒(重新修改)https://cn-sec.com/archives/2768281.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息