AUTOSAR 网络管理

当前CAN网络管理有两种策略:

  • OSEK NM
  • AUTOSAR NM

1 AUTOSAR 网络管理概述

AUTOSAR NM 是AUTOSAR软件架构默认的一种网络管理策略。

AUTOSAR NM是一种分布式直接网络管理,每个节点根据网络管理帧的状态独立的控制自己的网络状态。

AUOSAR网络管理的目的其实就是为了降低汽车的功耗,当网络上没有信息交与时,网络将进入睡眠模式。AUTOSAR的网络管理(Network) 是通过网络管理报文 (NM Message) 实现的,主要分为三大模式:

  • 网络模式(Network Mode)
  • 预睡眠模式 (Prepare Sleep Mode)
  • 睡眠模式 (Bus-Sleep Mode)

其中网络模式有三个状态:

  • 帧重复状态(Repeat Message State),
  • 正常运行状态(Normal Operation State),
  • 准备睡眠状态(Ready Sleep State)

状态机(右键图片,在新标签页打卡,更清晰)

时序图

每个模式下帧的发送情况如下:任何状态下都可以接收网络管理帧,只有在网络模式下才能接收应用帧

2 网络管理模式

2.1 睡眠模式(Bus-Sleep Mode)

为了降低汽车的功耗,当网络上没有信息交互时,网络将进入睡眠模式。该模式下,所有节点不发帧(网络管理帧和应用帧)。ECU会将CAN收发器设置成睡眠模式,并激活相应的唤醒机制。
ECU 上电后默认进入睡眠模式。

在这个状态下,不是代表ECU已经下电,NM的状态实际上只能影响ComM的状态。
在睡眠模式下,有如下两个条件使得网络进入网络模式:

  • 接收到其他节点的网络管理帧(Passive Wake-up)
  • 主动请求唤醒网络(Active wake up)

2.2 网络模式(Network Mode)

网络模式下,ECU处于信息交互阶段,可以正常的收发应用帧。ECU上的CAN收发器处于正常工作状态。
网络模式包含三个状态:

  • 帧重复状态(Repeat Message State),
  • 正常运行状态(Normal Operation State),
  • 准备睡眠状态(Ready Sleep State)
2.2.1 帧重复状态(Repeat Message State)

当ECU从睡眠或预睡眠进入到网络模式后,帧重发状态保证了自己可以被其他节点发现。此外,也使得网络上的节点在一定时间(T_REPEAT_MESSAGE)内保持激活状态。该状态可用于检测网络上存在的节点。
在该状态下,ECU要周期性地向外发送网络管理帧。根据进入该状态的条件不同,发送网络管理帧的周期也不同。

快速模式:

当进入帧重复状态的条件是网络请求(自身条件满足)或者重发请求(自身请求重发)。也可以叫做主动进入帧重复状态。这时,ECU要立即发出规定数量(N_ImmediateNM_TIMES.)的网络管理帧,并且发出第一帧的时间越快越好。发送周期按照T_NM_ImmediateCycleTime。发完这些规定数量的帧后,发送周期换成T_NM_MessageCycle。并且,如果进入条件是自身请求重发时,发送的网络管理帧要置为重复帧标志位。如下图:
 

常速模式:

当进入帧重复状态的条件是接收到网络管理帧或者帧重复请求位(Repeat Message Request Bit Indication)。也可以叫做被动进入帧重复状态。这时,ECU以正常的周期T_NM_MessageCycle发送网络管理帧。如下图:

进入Repeat Massage State后必须在T_START_NM_TX时间内发出第一帧网络管理帧。第一个网络管理帧成功发出后,应用帧要在T_STARTx_AppFrame时间内发出。
在此状态下,每次发生T_NM_TIMEROUT超时,都要重置这个时间。
ECU会在T_REPEAT_MESSAGE时间内保持为Repeat Massage State。过了这个时间后,ECU要离开重复帧状态。离开此状态后,如果有请求网络,则进入正常运行状态(Normal Operation State);如果有释放网络,则进入准备睡眠状态(Ready Sleep State)。离开后,要清除帧重复请求位(Repeat Message Request Bit Indication)。

2.2.2 正常运行状态

正常运行状态是为了确保在ECU需要网络时,网络一直保持唤醒状态。
在该状态下,ECU会一直以T_NM_MessageCycle为周期发送网络管理帧。同时,当发生T_NM_TIMEROUT定时器超时后,重置该定时器。
在正常运行状态下,当ECU主动释放网络后,转移到准备睡眠状态。
在正常运行状态下,当ECU接收到重复帧标志位(Repeat Message Request Bit Indication)或者自身请求进入重复帧状态后,转移到重复帧状态。


 2.2.3 准备睡眠状态

准备睡眠状态下,还有其他节点会发网络管理帧保持网络唤醒,此时ECU处于等待进入预睡眠模式的阶段。
在此状态下,ECU停止发送网络管理帧。当发生T_NM_TIMEROUT定时器超时后(即其他节点没有再发送网络管理帧),ECU进入到预睡眠状态。
在此状态下,如果自身请求网络,ECU进入正常运行状态;如果接收到重复帧标志位(Repeat Message Request Bit Indication)或者自身请求进入重复帧状态后,转移到重复帧状态。
 

2.3 预睡眠模式

预睡眠模式是为了使网络上的所有节点在进入睡眠模式前有足够的时间停止自身的网络活动。在该模式下,所有节点停止发送网络管理帧和应用帧,总线静默。从网络模式进入该模式时,会启动一个睡眠等待时间(T_WAIT_BUS_SLEEP),当这个时间到后,网络就进入睡眠模式。
在预睡眠模式下,如果ECU接收到网络管理帧或者自身请求网络,ECU会回到网络模式,默认状态是重复帧状态。

3.4 网络请求与释放

网络请求: 当ECU需要总线通信时,它会调用CanNm_NetworkRequest请求网络;
网络释放: 当ECU不需要总线通信时,它会调用CanNm_NetworkRelease释放网络。
触发这两个动作的条件由客户需求决定。

当ECU已经处于released 时,但是还是在通讯时,说明总线上还有其他节点处于requested状态。
 

3 网络管理帧

3.1 时间参数

CanNm一共有四个重要的时间参数,关乎到各个状态之间的流转时间。

  1. CanNmTimeOutTime
  2. CanNmRepeatMessageTime
  3. CanNmWaitBusSleepTime
  4. CanNmRemoteSleepIndTime

一般情况下,网络管理帧长度为8个字节。这8个字节的内容如下:

其中,byte0的内容是节点ID;byte1的内容是网络控制信息;byte2~byte7是用户数据。

3.2 节点ID

节点ID一般是网络管理帧ID的低8位。

3.3 网络控制信息

bit0: 默认值是0, 当ECU是主动请求进入重复帧状态时,要把这一位置为1,直到离开重复帧状态。
bit4: 当ECU是主动请求网络而进入重复帧状态时,该位为1;当ECU是接收到其他节点的网络管理帧而进入重复帧状态时,该位为0。
网络管理帧的长度和内容都是可以配置的。
 

4 接口调用

  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值