AUTOSAR-CanNm篇

1 概述

       网络管理是一种为网络组织提供服务的网络综合协议。它是一种分散和直接的网络管理。这意味着每个ECU都传输一个特殊的网络管理消息,该消息只预留给网络管理。

2 状态机

自动存储器NM包括三种操作模式:

       .   Network Mode
       .   Prepare Bus-Sleep Mode
       .   Bus-Sleep Mode

       下图显示了与API规范有关的UML状态图。与模式变化相关的转换用绿色表示,与错误处理相关的转换用红色表示,可选的节点检测/动态pnc到信道映射相关的转换用蓝色表示。

2.1 Bus-Sleep Mode

       单片机上电,调用CanNm_Init()之后会进入此状态。

状态跳转到Network Mode条件:

1)主动唤醒请求:CanNm_NetworkRequest()

2)被动唤醒请求:CanNm_PassiveStartup()

2.2 Network Mode

该网络模式包括以下三种子状态:

       .  Repeat Message
       .  Normal Operation
       .  Ready Sleep

2.2.1 Repeat Message

    进入Network Mode首先进入此状态,在Repeat Message状态下,节点会周期性发送NM报文,该状态的持续时长是可以配置的。

    1)主动唤醒进入此状态,会先快发几帧NM报文,然后以正常周期发生NM报文,到达设置超时时间,进入Normal Operation 状态。

    2)被动唤醒进入此状态,会跳过快发阶段,直接以以正常周期发生NM报文,到达设置超时时间,进入Normal Operation 状态。

2.2.2 Normal Operation

       节点本地有通信需求时会一直处于Normal Operation状态,在该状态下会周期性的发送NM报文,Normal Operation State的进入路径有:

       1)Repeat Message State结束时仍有本地请求

       2)Ready Sleep State下有通信需求(Network requested)

     此状态跳转至Ready Sleep状态条件:

      收到网络释放请求:CanNm_NetworkRelease()

2.2.3 Ready Sleep

    在此状态下,根据当前网络请求进行模式跳转。

  此状态跳转至Repeat Message状态条件:收到CanNm_RpeatMessagerRequest()请求。

  此状态跳转至Prepare Bus-Sleep模式条件:不再收到其它节点的NM报文时,等待NM Timeout  Timer超时后跳转到Prepare Bus-Sleep Mode。

2.3 Prepare Bus-Sleep Mode

        在Prepare Bus-Sleep模式下,会停发应用报文,但那些已经装填到底层寄存器/buffer等待发送的报文仍然会继续发完,因此,在该模式总线活动最终会恢复平静。

     此状态跳转至Bus-Sleep Mode的条件:不再收到其它节点的NM报文时,等待NM Timeout  Timer超时后跳转Bus-Sleep Mode。

    此状态跳转Repeat Message State条件:

    1)接收到主动唤醒请求:CanNm_NetworkRequest()

    2)接收到被动唤醒请求:CanNm_PassiveStartup()

3 网络报文格式

       下图显示了网络管理PDU的格式,例如8个字节,其中源节点标识符(SNI)位于第一个字节,控制位向量(CBV)位于第二个字节,使用用户数据,并启用部分网络。用户数据范围位于系统字节和PNC位向量之间:

其中Byte1 反应NM控制位,下图描述了控制位向量的格式:

Bit0:重复消息请求位             

0:重复消息状态未请求1:重复消息状态请求

Bit1:PN关闭请求位(PNSR)

0:NM消息不包含同步部分网络关闭请求1:NM消息确实包PNC位的同步部分网络关闭请求

Bit3:NM协调器睡眠位

0:主协调器未请求启动同步关闭状态1:主协调器请求启动

Bit4 主动唤醒位 

 0:节点未唤醒网络(被动唤醒)1:节点已唤醒网络(主动唤醒)

Bit5 位部分网络学习位(PNL)

0: PNC学习不被请求1: PNC学习被请求第

Bit6 位部分网络信息位(PNI)

0: NM PDU不包含部分网络请求信息1: NM PDU包含部分网络请求信息,

Bit2 和Bit7 被保留以供将来扩展

4 主动唤醒及被动唤醒过程NM状态跳转

4.1 主动唤醒NM状态跳转

  1)单片机上电,调用CanNm_Init()之后会进入Bus-Sleep Mode

  2)ComM模式请求ComM_RequestComMode(FULLCOM),通知NM模式

  3)NM模块根据主动唤醒请求调用Nm_NetworkRequest()

  4) CanNm模块调研CanNm_NetworkRequest()进入Repeat Message状态

  5)Repeat Message State 设定TimeOut超时结束时进入 Normal Operation状态

  6)正常工作时会一直停留在此状态

4.2 被动唤醒NM状态跳转

 1)单片机上电,调用CanNm_Init()之后会进入Bus-Sleep Mode

  2)ComM模式请求ComM_RequestComMode(FULLCOM),通知NM模块

  3)NM模块根据被动唤醒请求调用Nm_PassiveStartUp()

  4) CanNm模块调研CanNm_PassiveStartup()进入Repeat Message状态

  5)Repeat Message State 设定TimeOut结束时进入 Normal Operation状态

  6)正常工作时会一直停留在此状态

4.3 休眠NM状态跳转

  1)ComM模式请求ComM_RequestComMode(NOCOM),通知NM模式

  2)NM模块根据被动唤醒请求调用Nm_NetworkRelease()

  4) CanNm模块调研CanNm_Nm_NetworkRelease()进入Ready Sleep状态

  5)Ready Sleep状态下设定TimeOut结束时进入 Prepare Bus-Sleep Mode

  6)Prepare Bus-Sleep Mode状态下设定TimeOut结束时进入Bus-Sleep Mode

5  不同模式下报文收发情况

AUTOSAR网络管理状态:

1)睡眠模式(Bus-Sleep Mode):NM报文只收不发,APP报文不收不发

2)预睡眠模式(Prepare Bus-Sleep Mode):NM报文只收不发,APP报文不收不发

3)网络模式(Network Mode):

包含3个子状态:

  • 重复报文状态(Repeat Message State):NM报文可收可发,APP报文可收可发

  • 正常工作状态(Normal Operation State):NM报文可收可发,APP报文可收可发;

  • 准备睡眠状态(Ready Sleep State):NM报文只收不发,APP报文可收可发;

  • 22
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Autosar-CAN NM是一种用于网络管理的通信协议,旨在实现CAN总线系统的高效管理和控制。Autosar-CAN NM支持多个节点共享相同的CAN总线,通过提供网络管理功能来确保节点之间的通信可靠性和稳定性。 Autosar-CAN NM的主要功能包括节点的电源管理、通信总线状态的监控和管理、节点之间的网络通信和报文的传输。首先,节点的电源管理功能包括监测节点的供电状态和能力,并根据需要进行电源管理,以确保节点之间的正常通信。其次,通过监控和管理CAN总线的状态,Autosar-CAN NM可以检测并处理潜在的通信故障,如总线冲突和错误帧。此外,还可以对总线负载进行监控和管理,以避免总线过载和通信延迟。 在节点之间的网络通信方面,Autosar-CAN NM通过提供网络管理帧(用于节点之间的通信)和网络管理报文(用于各个节点之间传输数据)来实现。网络管理帧用于在节点之间传递通信状态和配置信息,并支持节点之间的网络拓扑管理。网络管理报文是主要用于节点之间的数据传输和通信,通过CAN总线进行传输。这样可以确保节点之间的数据通信具有高可靠性和实时性。 总的来说,Autosar-CAN NM提供了一种有效的方法来管理和控制CAN总线系统中节点之间的通信。它通过电源管理、总线监控和状态管理、网络通信和报文传输等功能,实现了节点之间的可靠通信。这不仅提高了CAN总线系统的性能和稳定性,还为制造商和开发人员提供了一种有效的方法来设计和管理CAN网络。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值