网路管理概述

  1. 网路管理的目的

使网路中的ECU节点有序地睡眠和唤醒,在没有通信需求的时候睡眠,可以节约整车电池的电量。

  1. 网路管理的分类

根据是否需要网路管理报文分为直接网路管理和间接网路管理。需要网路管理报文的为直接网路管理,不需要网路管理报文的为间接网路管理。本文介绍的基于AUTOSAR网路管理属于直接网路管理。

基于AUTOSAR网路管理

  1. ECU唤醒分类
  • 主动唤醒请求

来自ECU内部对网路的请求。主动唤醒节点的网路管理报文必须先于应用报文发送。

  • 被动唤醒请求

来自汇流排上的其他模块对该模块的网路请求。被动唤醒的节点,发送网路管理的报文和应用报

文的先后顺序无特殊要求。

OEM会定义好各个ECU的唤醒分类,如果是主动唤醒还会定义唤醒源。

2.ECU网路状态

  • 网路请求

模块需要主动与汇流排上其他节点进行信息交换时,必须通过发送网路管理报文来请求网路,并将其网路状态设置为「网路请求」。

  • 网路释放

当模块不需要主动与汇流排上的其他节点进行交互时,必须将网路状态设置为「网路释放」,节点在「网路释放」状态下依然需要响应汇流排上其他节点的网路请求。

3.网路管理模式及状态转换图

基于Autosar的网路管理有三种模式:睡眠模式,网路模式和预睡眠模式。如下图所示:

  • 睡眠模式:当节点没有主动网路唤醒及被动唤醒请求时,ECU通信控制器切换至睡眠模式,ECU功耗降低至适当水平。OEM一般通过测量静态电流的方法来检测各个ECU是否满足设计要求。在睡眠模式下,节点的网路管理报文和应用报文禁止发送,同时节点在该模式下,如果检测到有效的唤醒源,节点必须唤醒。
  • 预睡眠模式:该模式是为进入与睡眠模式之前的状态,各个ECU要实现汇流排活动静止下来,进入该模式后,已经下发送队列的报文允许发送到网路上,不再往发送队列中放置报文,禁止发送网路管理报文和应用报文,但应该对汇流排上的报文进行ACK应答(CAN收发器自动完成)。在预睡眠模式下会设定一个可配置的定时器,参数为CANNM_WAIT_BUS_SLEEP_TIME, 一旦超时,网路管理状态应该离开预睡眠模式,进入睡眠模式。
  • 网路模式:分为三种状态,重复报文状态、常规操作状态、准备睡眠状态。
  1. 重复报文状态:该状态分为快速发送状态和正常发送状态。都是发送固定个数网路管理报文,发的次数和时间间隔都是可配置的。
  2. 常规操作状态:当节点为主动唤醒网路需要与其他节点继续进行通信时,必须保持在常规操作状态,该状态下网路管理报文和应用报文正常发送。
  3. 准备睡眠状态:进入该模式节点停止发送网路管理报文,当NM Timeout Timer超时后停止发送应用报文。

NOTE:关于NM Timeout Timer,节点进入Network Mode之后会开启,当节点收到或者发送网路报文时reset该定时器。该定时器time out时,进入Prepare Bus Sleep Mode。

4.模式转换如下图所示:

01-蓄电池上电

02-ECU主动唤醒网路

03-ECU被动唤醒网路

04-快发状态发完规定的网路报文(周期和帧数可定义)后进入正常发送状态

05-有网路需求的ECU进入正常工作状态

06-网路管理数据的Repeat bit 被置1

07-ECU释放网路请求

08-ECU有网路请求

09-无网路需求的ECU直接进入准备睡眠状态

10-网路管理数据的Repeat bit 被置1

11-NM Timeout Timer 溢出

12-ECU有网路需求并主动唤醒网路

13-网路有需求,ECU被动唤醒

14-Bus Sleep timer溢出

15-断开蓄电池

以主动唤醒ECU举例,假定主动唤醒源为KL 15 ON。

整个流程:

01——KL 15 ON——02——04——05,如果KL 15 一直为ON,则ECU保持在常规操作状态。当KL 15 OFF后——07——其他ECU也无网路需求——11——14.

以被动唤醒ECU举例,流程如下:

01——03——09——其他ECU也无网路请求——11——14.

5.网路管理报文

报文包含两部分,ID和Date

ID如下:

Date 如下:

数据的具体内容此处不做详细描述。

以上如果我的理解有误,望指正。谢谢!

推荐阅读:

相关文章