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

发布于 2023-3-22 23:16
浏览
3收藏


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-汽车开发者社区

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
6
收藏 3
回复
举报
回复
相关推荐