0

#优质创作者#详解AUTOSAR:AUTOSAR CAN网络管理/CAN NM-汽车开发者社区-51CTO.COM

 1 year ago
source link: https://icv.51cto.com/posts/1416
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

#优质创作者#详解AUTOSAR:AUTOSAR CAN网络管理/CAN NM 原创 精华


AUTOSAR CAN网络通信中有三种模式和三种状态,如下图所示:

#优质创作者#详解AUTOSAR:AUTOSAR CAN网络管理/CAN NM-汽车开发者社区

3种运行模式:

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

睡眠模式(Bus-Sleep Mode)

当CAN网络中没有远程唤醒或者本地唤醒请求时,ECU应处于睡眠模式(Bus-Sleep Mode),将功耗降低至最低水平,这种模式是ECU启动时的起始状态或者是ECU睡眠时的最终状态。

在该模式下,网络管理报文和应用报文都禁止发送,但是可以被网络上的报文唤醒。

CAN收发器应当支持设定唤醒帧(如果有CAN收发器的情况下),ECU只会接受到特定的NM报文才会正常唤醒,否则就会一直处于休眠状态,能够不受网络上应用报文的干扰。

预睡眠模式(Prepare Bus-Sleep Mode)

ECU进入预睡眠模式(Prepare Bus-Sleep Mode)后禁止网络管理报文的发送,允许接收网络管理报文。应用报文已经在buffer中的一般允许继续发送,进入到预睡眠模式(Prepare Bus-Sleep Mode)计时器CanNmWaitBusSleepTime就会启动,一旦计时器CanNmWaitBusSleepTime超时,就会进入到睡眠模式(Bus-Sleep Mode)。

网络模式(Network Mode)

当CAN网络处于开启或者工作情况下会进入网络模式,ECU进入网络模式(Network Mode)后计时器CanNmTimeoutTime就会启动,只要成功接收到来自CAN总线上的网络管理报文或者成功发送至CAN总线网络管理报文,都会将计时器CanNmTimeoutTime重置。

网络模式(Network Mode)包含3种状态:

  • 报文重复状态(Repeat Message State);
  • 常规运行状态(Normal Operation State);
  • 准备睡眠状态(Ready Sleep State)。

报文重复状态(Repeat Message State)

当ECU从其他模式进入网络模式(Network Mode)时,默认进入报文重复状态(Repeat Message State)。该阶段是CAN网络正式开始工作前的准备阶段,用来等待CAN网络中所有相关节点进行网络通信的准备时间。

该模式下计时器CanNmRepeatMessageTime规定了重复发送网关管理报文的时间,CanNmImmediateNmTransmissions规定了发送网络管理报文的次数。

在报文重复状态(Repeat Message State)ECU使用计时器CanNmMsgCycleTime周期时间发送网络管理报文。

常规运行状态(Normal Operation State)

ECU进行正常CAN通信时会处于常规运行状态(Normal Operation State),该阶段中,节点要按照计时器CanNmMsgCycleTime时间周期发送网络管理报文。每次成功发送或者接收CAN网络报文计时器CanNmTimeoutTime就会重置。

在常规运行状态(Normal Operation State)下的网络管理报文和应用报文都应该正常收、发通信。

准备睡眠状态(Ready Sleep State)

在准备睡眠状态(Ready Sleep State)ECU应当停止发送网络管理报文,每次成功接受到来自CAN网络上的网络管理报文,计时器CanNmTimeoutTime就会重置,一旦CanNmTimeoutTime超时,就会进入预睡眠模式(Prepare Bus-Sleep Mode)。

在AUTOSAR中规定了各种模式和状态下计时器的默认时间:

#优质创作者#详解AUTOSAR:AUTOSAR CAN网络管理/CAN NM-汽车开发者社区

配置参数在AUTOSAR代码中体现如下所示:

#优质创作者#详解AUTOSAR:AUTOSAR CAN网络管理/CAN NM-汽车开发者社区

下图梳理了所有网络管理的模式转换情况,通常控制器的状态转换如蓝色箭头所示:

#优质创作者#详解AUTOSAR:AUTOSAR CAN网络管理/CAN NM-汽车开发者社区

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK