• 862查看
  • 0回复

[Autosar] AUTOSAR架构下关于CanNm的几点思考

[复制链接]

  • TA的每日心情
    无聊
    1-7-2015 18:46
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 29-8-2023 08:20:59 | 显示全部楼层 |阅读模式

    汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


    前言

    CanNm模块配置完成后,基本不需要和其他非标准AUTOSAR模块进行交互(除了user data数据的使用),但是在深入理解CanNm模块是发现一下几个问题还是比较疑惑:

    (1)Dcm通过BswM控制CanNm报文的Enable和Disable后会影响CanNm状态机吗?

    (2)谁来触发CanNm状态机跳转,什么条件下怎么触发?

    (3)CanNm怎么知道是主动(本地)唤醒还是被动(NM网络)唤醒?

    本文就来回答这些问题。

    正文

    1.网络管理基本概念

    参考:https://mp.weixin.qq.com/s/GyGCdNZu3_0E2ZN6KnD-EQ

    2.CanNm和BswM模块交互

    2.1 BswNMControl配置容器

    AUTOSAR架构下关于CanNm的几点思考w1.jpg

    AUTOSAR架构下关于CanNm的几点思考w2.jpg



    BswM模块的BswMAction配置容器下的BswNMControl配置容器可以配置enable或者disable一路Can网络管理报文的发送,通常这个功能需求在DCM模块的0x28服务开关应用/网络管理通信中会使用到。



    AUTOSAR架构下关于CanNm的几点思考w3.jpg

    BswMComMNetworkHandleRef参数属于BswNMControl配置容器下的配置项,应用此路网络管理在Com下的通道号。



    AUTOSAR架构下关于CanNm的几点思考w4.jpg

    AUTOSAR架构下关于CanNm的几点思考w5.jpg



    CanNm模块提供CanNm_DisableCommunication和CanNm_EnableCommunication两个函数接口用来开关CanNm报文的发送,如果在BswM模块中配置了BswNMControl配置容器,且有对应的LE逻辑表达式能够触发这个Action,那么就会完成BswM和CanN的交互。


    2.2 BswMNmIfCarWakeUpIndication

    AUTOSAR架构下关于CanNm的几点思考w6.jpg

    AUTOSAR架构下关于CanNm的几点思考w7.jpg



    AUTOSAR架构下关于CanNm的几点思考w9.jpg

    BswM的BswMModeRequestPort配置容器中提供了BswMNmIfCarWakeUpIndication模式请求端口来通过NMif --> CanNm来获取网络管理唤醒状态。这个MRP在实际应用中很少用到。

    3.ComM模块通过NMIf模块和CanNm模块交互

    3.1 本地唤醒源主动唤醒

    AUTOSAR架构下关于CanNm的几点思考w10.jpg

    AUTOSAR架构下关于CanNm的几点思考w11.jpg

    主动唤醒:来自模块内部对网络的请求,比如KL15唤醒。主动唤醒节点的网络管理报文必须先于应用报文发送。

    ECU上电或唤醒后,如果检测到为本地唤醒或其他条件需要ECU进行主动唤醒时,用户调用ComM接口ComM_RequestComMode()请求ComM COMM_FULL_COMMUNICATION以使能通信,ComM在接收到请求后,调用 CanSM_RequestComMode()请求CanSM将相应的Can通道状态切换为FULLCOM,CanSM再通过CanIf切换控制器和收发器状态,调用如果该通道的NMVariant为FULL,调用NM接口 Nm_NetworkRequest(),NM再调用CanNm接口 CanNm_NetworkRequest()请求进入主动唤醒。ComM进入COMM_FULL_COMMUNICATION后,可通过BSWM或手动方式,启动相应通道的Com IPdu Groups,通信开始。

    3.2 网络唤醒源被动唤醒

    AUTOSAR架构下关于CanNm的几点思考w12.jpg

    AUTOSAR架构下关于CanNm的几点思考w13.jpg

    AUTOSAR架构下关于CanNm的几点思考w14.jpg

    被动唤醒:来自总线上其他模块对该模块的网络请求。被动唤醒的节点,发送网络管理报文和应用报文的先后顺序无特别要求。

    ECU上电或唤醒后,如果检测到为远程唤醒或其他添加需要ECU进行passive唤醒时,调用 ComM_EcuM_WakeUpIndication()(如果ECUM中的wakeup source绑定了ComM通道,则在调用EcuM_CheckWakeup()时自动调用),如果通道的NMVariant为FULL或PASSIVE,ComM调用 Nm_PassiveStartUp()请求NM进行passive唤醒,并调用 CanSM_RequestComMode()请求CanSM将相应的Can通道状态切换为FULLCOM。

    3.3 网络休眠

    AUTOSAR架构下关于CanNm的几点思考w15.jpg

    AUTOSAR架构下关于CanNm的几点思考w16.jpg

    当某个网络通道需要休眠时,调用ComM接口ComM_RequestComMode()请求COMM_NO_COMMUNICATION以释放通信请求,COMM在接收到请求后,调用 CanSM_RequestComMode()请求CanSM将相应的Can通道状态切换为NOCOM,如果该通道的NMVariant为FULL,调用NM接口Nm_NetworkRelease()请求NM进入sleep,NM在等待总线同步休眠后(其他节点都停发了网络管理报文准备休眠),进入Bus-Sleep状态,反馈给ComM,ComM进入NOCOM状态,如果BswM中配置了ComM模块状态为NO COMMUNICATION就执行ECUM下电动作时,此时ECUM就可以启动下电流程。

    4.问题回答

    问题1:Dcm通过BswM控制CanNm报文的Enable和Disable后会影响CanNm状态机吗?

    答:AUTOSAR网络管理规范中没有明确说明这个问题。不过在阅读源码后,发现 CanNm_DisableCommunication和 CanNm_EnableCommunication不会影响CanNm状态机,只是设置一个标志用来控制NM报文的发送。

    问题2:谁来触发CanNm状态机跳转,什么条件下怎么触发?

    答:ComM模块获取到EcuM上报的被动唤醒事件后通过Nm_PassiveStartUp来被动唤醒NM。ComM收到用户的网络通信请求后通过Nm_NetworkRequest来主动唤醒NM。ComM收到用户的网络通信请求后通过Nm_NetworkRelease释放NM。

    问题3:CanNm怎么知道是主动(本地)唤醒还是被动(NM网络)唤醒?

    答:主动唤醒一般都是本地Local唤醒,来自ComM的用户(User)调用ComM_ModeRequest请求网络唤醒。被动唤醒一般都是NM网络唤醒,来自EcuM调用ComM_EcuM_WakeUpIndication上班的唤醒事件。

    参考文献:

    [1]Specification of CAN Network ManagementAUTOSAR CP Release 4.3.1

    [2]Specification of NetworkManagement Interface AUTOSAR CP Release 4.3.1

    [3] Specification of Communication Manager AUTOSAR Release 4.2.2

    [4] Specification of Basic Software Mode Manager AUTOSAR Release 4.2.2


    

    该用户从未签到

    发表于 18-3-2025 12:43:00 | 显示全部楼层
    针对上述问题,以下是我的专业回复:

    关于AUTOSAR架构下的CanNm模块,我理解您所提出的疑惑。首先,关于Dcm通过BswM控制CanNm报文的Enable和Disable,确实会影响CanNm状态机。它会改变报文的发送和接收状态。其次,CanNm状态机的跳转通常由外部事件触发,如网络状态变化或特定指令请求。具体触发条件和方式,依赖于AUTOSAR规范及具体实现。至于如何区分主动和被动唤醒,CanNm通过特定的通信协议或信号来判断。例如,当接收到特定的唤醒信号时,CanNm会判断为被动唤醒;若无信号输入而系统自行启动,则视为主动唤醒。详细的解释和具体实现方法,可以参考AUTOSAR相关文档或规范。以上内容仅为简要回答,详细情况还需结合实际代码和系统架构深入理解。
    回复 支持 反对

    使用道具 举报

    快速发帖

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

    GMT+8, 19-8-2025 02:05 , Processed in 0.464333 second(s), 37 queries .

    Powered by Discuz! X3.5

    © 2001-2013 Comsenz Inc.