Autosar 网络管理

一、唤醒请求

1、主动唤醒 :ECU节点有主动工作请求,通过网管报文唤醒其他节点

2、被动唤醒: ECU节点接收到其他(有主动工作请求)节点的网管报文

当主动和被动唤醒都被释放时,就需要休眠;

 二、状态机

 三、各模式简介及报文收发情况

NM StatesubstateSend App FrameSend Nm Frame
BusSleep Modexx
Network ModeRepeatMsg state
NormalOperate state
ReadySleep statex
PreSleep Modexx

模式详解见:https://blog.csdn.net/wteruiycbqqvwt/article/details/107618518

四、从唤醒源的角度需要注意的地方

在状态机里,网络状态从BusSleep Mode或PreSleep Mode转换到Network Mode有两种方式,函数调用上CanNm_NetworkRequest和CanNm_PassiveStartup,

CanNm_NetworkRequest是在有主动请求时,例如kl15上电,

CanNm_PassiveStartup则是收到网管报文,且没有调用CanNm_NetworkRequest时

对应的还有RepeatMsg state的两个模式,快发网管报文和正常周期发送,有主动请求时,进入重复报文状态的快发模式,(好比是领导催你干活的电话连环call,“快去干活,快去干活,快去干活”),存在被动唤醒时,进入正常周期发送网管报文,作用是告诉其他ecu,本节点已被唤醒了(被催去干活的你无奈的说“好啦,知道啦”`(*>﹏<*)′),但是如果一个节点是Passive Mode,那么节点只会接收NM报文,不会发送(纯纯苦b打工人),关于Passive Mode需要注意的是:

Autosar CANNM规范中规定对于一个节点(即一个ECU)来说,该节点内的所有网络要么都使用Passive Mode,要么都不使用Passive Mode。

五、补充

    当节点只有被动唤醒:

        只有被动唤醒的节点是没有对通信的“主动请求”的,可能只是被其他节点唤醒起来后有数据上的交互。所以在被NM报文被动唤醒后,从Bus-Sleep-Mode进入RepeatMsg state,而这时因为节点本身没有“ Network Requested” , RepeatMsg state停留时间满足后就会直接进入ReadySleep state,此时该节点是不会对外发送NM报文的,应用报文则正常发送;

而当节点支持主动唤醒和被动唤醒时,节点被NM报文远程被动唤醒,从Bus-Sleep-Mode进入RepeatMsg state,此时该节点需要快发NM报文后,将自己需要的参与通信的从节点唤醒,为了从节点持续维持醒着的状态,该节点在RepeatMsg state停留时间满足后就会进入NormalOperate state,持续的以正常周期向总线发送NM报文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值