博客专栏

EEPW首页 > 博客 > 详解AUTOSAR:AUTOSAR CAN网络管理/CAN NM

详解AUTOSAR:AUTOSAR CAN网络管理/CAN NM

发布人:美男子玩编程 时间:2023-04-25 来源:工程师 发布文章

图片


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


图片


3种运行模式:

  1. 睡眠模式(Bus-Sleep Mode);

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

  3. 网络模式(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)。


图片


本项目AUTOSAR配置中设定计时器CanNmWaitBusSleepTime为2秒。


网络模式(Network Mode)

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




本项目AUTOSAR配置中设定计时器CanNmTimeoutTime为2秒,所以0X505网络管理报文的发送周期要在2秒内,超时会进入预睡眠模式(Prepare Bus-Sleep Mode)。




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

  1. 报文重复状态(Repeat Message State);

  2. 常规运行状态(Normal Operation State);

  3. 准备睡眠状态(Ready Sleep State)。


报文重复状态(Repeat Message State)

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


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

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


图片


图片


本项目AUTOSAR配置中发送网络管理报文的周期是640毫秒,重复次数为5,总时常3.2秒。


图片


常规运行状态(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代码中体现如下所示:


图片


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


图片


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。



关键词: CAN

技术专区

关闭