CAN网络管理(TJA1145如何实现MCU的休眠唤醒)

41 篇文章 105 订阅 ¥15.90 ¥99.00
本文介绍了CAN网络中节点的唤醒方式,包括本地唤醒和远程唤醒。本地唤醒涉及KL15和KL30节点的不同下电流程,而远程唤醒依赖于网络管理报文实现同步睡眠和唤醒。此外,详细阐述了TJA1145如何通过SPI指令进入Sleep和Wakeup状态,以及其在ECU休眠和唤醒过程中的作用。
摘要由CSDN通过智能技术生成

节点唤醒方式

本地唤醒: 唤醒源来源于自身模块,比如常说的KL15,控制器由KL15线供电,即只能在钥匙置于“ACC”或者“ON”档时运行软件和维持CAN通信

  • 对于正在运行的CPU软件,无论它处在什么状态,只要Hardware OFF,PMIC供电立即切断,3.3V,5.0V立即消失,程序立即停止运行,ECU系统进入OFF模式,不存在Sleep模式。该状态下PMIC也不消耗电能,ECU系统的电能消失是0,比较KL30节点的Sleep模式最节省电能。
  • KL15节点没有下电流程,随时可能终止运行,没有时间进入AfterRun模式和做Eeprom最终存储。WakeUp信号的消失后ECU直接进入OFF模式,不存在Sleep模式,不耗费电能。
  • KL30节点有完整的下电流程,软件根据WakeUp信号的消失可以控制自己按步骤进入AfterRun模式,存储数据到flash,设置PMIC进入Sleep模式。ECU进入Sleep模式只有PMIC在耗电。AutoSar网络管理只针对KL30节点。(参考BSWMECUM的上下电流程)

远程唤醒: 唤醒源来源于自身ECU节点所在的网络报文

  • 网络唤醒是以网络管理报文为基础来协同整个网络“同睡同醒”,CanNM采用分布式的直接网络管理方式来发送自身节点所需的网络管理请求及自身网络管理状态,并接受来自网络上其他ECU节点的网络管理请求与状态。"同睡同醒"机制的目的是确保所有节点在睡眠和唤醒操作上保持同步。当一个节点准备进入睡眠模式时,它会通过网络发送一个特殊的同步消息,通知其他节点它即将进入睡眠状态。其他节点接收到该消息后,会做出相应的响应,以确保整个系统在同一时间进入睡眠状态。同样地,当一个节点准备唤醒时,它会发送一个唤醒消息来通知其他节点。其他节点接收到唤醒消息后,会做出相应的响应,以确保整个系统在同一时间唤醒。
  • 该状态机的状态类型可分为“三大三小”。

“三大”指的是Bus Sleep Mode、Network Mode、Prepare Bus-Sleep Mode;

“三小”则值得是Network Mode下的三个子状态:Repeat Message State、Normal Operation Mode、Ready Sleep Mode。

  • 一旦进入Network Mode,计时器T_NM_Timeout就会启动,只要成功接收到来自总线上的NM报文或者成功发送至总线NM报文,都会将该计时器T_NM_Timeout重置。一旦T_NM_TIMEROUT 超时,那么就会离开该状态转而进入Prepare Bus-Sleep状态。
  • 报文发送与接受状态

“Bus-Sleep”阶段,只接收NM报文唤醒,不发送任何报文;

“Pre-Bus-Sleep”阶段,同样仅允许接收NM报文,对于早已在发送Buffer中的APP报文应发送完毕后立刻停止APP报文;

“Network Mode”模式下,除了在Ready Sleep阶段不允许发送NM报文之外,其余阶段APP报文与NM报文正常收发;

CanNM报文周期性的向MCU发送,如果一旦一段时间没有收到,MCU就通过SPI向TJA115的寄存器写数据,要进入sleep模式,之后TJA1145在向PMIC拉低

如何让TJA1145进入sleep和wakeup状态

下图以TJA1043简单说明can报文如何使MCU进入到休眠唤醒状态:

  • S1:MCU满足休眠条件时,通过发送SPI相应指令让TJA1145进入Sleep状态;

例如下面的用法:

简单的指令代码实现就是下图:

  • S2:TJA1145进入到Sleep状态后,INH引脚就会拉低,控制5V或者3V关闭电源输出,间接导致MCU整个系统处理掉电状态,此时TJA1145始终处于供电状态(由于BAT始终有电),整个ECU成功进入到休眠状态;
  • S3:TJA1145虽然处于Sleep状态,属于极低功耗状态,同步也检测着网络是否存在有效唤醒源;
  • S4:当TJA1145发现有效唤醒源之后,就会自动从Sleep状态切换成Standby状态,在Standby状态下INH引脚拉高,此时5V与3V便会正常输出,从而MCU被正常供电,程序开启正常运行;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梅尔文

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值